1. Field
The technology herein relates generally to game machines for playing realistic video and/or computer games. In particular, the technology herein is directed to a game machine having the abilities to capture and/or transfer an image, to manipulate and edit the captured image, to incorporate the captured and/or manipulated captured image into a game that is being played on the game machine, and to map the captured image onto an animated player in the came so that the player has characteristics, e.g., facial features, that are derived from the captured image.
2. Description of Related Art
Video and computer game machines have been known for quite some time. Typically, these game machines include a game machine housing, a processing unit, associated hardware for running a gaming program, and a display for displaying images of the game. The gaming program is typically contained in a game program memory, such as, for example, a semiconductor memory (e.g., ROM, EPROM, etc.) that is part of a removable cartridge or other removable memory device. By storing the gaming program in a removable cartridge, the user is allowed to conveniently and easily change the game being played by simply exchanging the cartridge with one containing a different game. Examples of such game machines are the “N64” and “Game Boy” products manufactured and sold by Nintendo Corporation.
Conventional game machines of the type described above execute the game that is contained in the game program memory of a particular removable cartridge or other removable memory device. The images displayed during game play are limited to those that are contained in a memory of the removable game cartridge. While the images may change based on various inputs received from the user, images of these conventional game machines are generally predefined and are generally not subject to any manipulation, or editing or variation by the user, other than those predetermined changes that occur based on the various situations encountered during game play.
The limited predetermined images available for use in most video games restrict the ability of the user to enjoy the game. It may be more enjoyable for the user to have a more interactive relationship with the game program and the game machine. To that end, what is needed is a game machine that enables the user to define, manipulate, edit and incorporate images into the game being played. This ability would allow the user to personalize the game, including the animated game players that appear in the images of the game.
Additionally, it would be beneficial to provide the user with the ability to capture images for use with a game, and store captured images for use with various other features of the game machine. Image capture and manipulation technologies. e.g., digital cameras, are well known and exist in many forms. Typically, these image capturing and manipulation devices are very costly and are cumbersome to use, especially in the context of a personal game machine. For example, there are many different types of video cameras and digital still cameras available for capturing images. However, video cameras and digital still cameras are sometimes expensive (especially as compared to portable game machines), and have not in the past been much used as a toy or game for children. It also tends to be complicated to manipulate the images captured by these cameras, especially for use in a game environment.
There are also various computer based applications that provide a user with the ability to receive a digital image and to manipulate the digital image. There are also numerous computer programs that enable a user to draw an image or to create animation. However, as set forth above, these known image capturing and manipulation technologies are generally ill suited for portable game use, and are typically prohibitively expensive in the context of gaming applications.
Prior video game systems have been developed that capture a real-life image of an individual's face and insert that facial image onto an animated game player. Such a system is disclosed for example in U.S. Pat. No. 4,710,873 ('873 patent), that is entitled “Video Game Incorporating Digitized Images of Being Into Game Graphics.” See also U.S. Pat. Nos. 6,120,379, 6.285,381, 6,435,969. However, further improvements are possible.
To overcome the above-noted and other deficiencies of game systems, and to improve the enjoyment of game system users, we provide a game machine that maps external images onto animated game players in a game program and includes an image editor to facilitate the mapping. Using a non-limiting exemplary illustrative implementation, an image of a person's face may be mapped onto the head of an animated game player. The person may then play the game using the animated game player having a face that appears to be that of the person. Similarly, images of other persons can be mapped on other animated game players that appear in the video game program. Accordingly, the exemplary non-limiting implementation improves the realism of video games by enabling individuals to create animated game players that have features, e.g., a facial image, of the individual or that were selected and imported by the individual.
These images to be imported into the game program are, in one exemplary implementation, not native to the program. The images may be taken by a digital or video camera, scanned in from a photograph or otherwise captured from an external source. An excellent source of images is a digital camera cartridge that is inserted in the game machine, captures digital pictures and stores them onto a memory device associated with the video game machine. Typically, the captured images will be two-dimensional images of a person, place or thing, such as the face of a person.
The captured digital images are transferred into a game machine running a game program that embodies an image editor. The transferred image is imported into a video editor program module of the video game program. The video editor enables the individual to display the transferred image; manipulate the image, e.g., crop, rotate, enlarge, reduce and adjust the contrast of the image; map the image onto animated game player, such as a three-dimensional head of such a player; change certain features of image painted on the player, such as changing the hair/eye color; and save the player with the mapped 2D image. The individual may also create several different animated game players with different transferred images. Accordingly, the exemplary non-limiting implementation enables individuals to create personalized animated players for video game play. During game play, the individual may select one or more personalized animated players for use during game play.
Advantageous features of preferred exemplary implementations include:
The present exemplary non-limiting implementation will be described in detail herein with reference to the following drawings, in which like reference numerals refer to like elements, and wherein:
Controllers 16a, 16b, such as hand controllers, are electrically connected to the machine 10 typically via wires 17, although a wireless connection may be used. The hand controller has a joystick, buttons, keys and other user input devices for interactively controlling game play as displayed on a television 18. In addition, the hand controller includes an electrical connector 24 which provides a data connection between a removable data transfer pack 26 plugged into the controller and a processor in the game machine. A transfer cartridge is disclosed in pending U.S. patent application Ser. No. 09/189,797 (now U.S. Pat. No. 6,132,315), entitled “Game System Operable With Backup Data On Different Kinds of Game Machines” filed Nov. 12, 1998, the entire contents of which are incorporated by reference. The data transfer pack includes a connector 28 for electrically connecting to other game cartridges, a memory pack cartridge or to a cartridge with digital camera 14, as is disclosed in pending U.S. patent application Ser. No. 09/430,169 (now U.S. Pat. No. 6,435,969), entitled “Portable Game Machine Having Image Capture, Manipulation and Incorporation” filed Oct. 29, 1999, the entire contents of which are incorporated by reference. The digital camera cartridge 14 may be used in connection with the transfer cartridge 26 to interface the digital camera cartridge to the machine, via the transfer pack and controller. An advantage of inserting the digital camera cartridge into a hand-held controller is that a user may easily align the field of view of the camera with a desired subject simply by holding and positioning the controller and camera. In addition, a digital camera cartridge may be inserted into a connector of the controller, while at the same time a game cartridge 12 having an image editor and game program may be inserted in a cartridge connector of the machine. In addition, the digital camera may be inserted into a first hand controller 16a, and a second hand controller 16b may be used to input user control information for capturing, editing and saving an image and to connect to a memory pack (not shown in
The game machine 10 may be a console having one or more processors for executing game programs downloaded from a game cartridge 12, for generating graphical images and sounds related to game play, responding to player commands entered through hand controllers 16a, 16b, and displaying the generated images and sounds on a display 18, such as a television in a manner providing interactive game play between the displayed images and sound, and the user's inputs to the hand controllers.
Preferably, the supporting camera housing has a rotation angle range of approximately 180 degrees so that a viewing range of the camera portion can turn to both of the forward direction of the front surface and the backward direction of the rear surface. Further, a mount angle (i.e., an angle which is a mount axis, which is parallel to an optical axis, of the camera portion tilts with respect to the direction at a right angle to one main surface and the other main surface of the housing) is selected in a range of 10 to 45 degrees (preferably, approximately 15 degrees), for example, which is in a upward direction with respect to a depth direction (a direction going through at a right angle from one main surface to the other main surface) of the housing. When the user holds the controller, data pack and camera cartridge with both hands and when the image pickup device points to the forward direction of one main surface, the face of the user who watches the image display device is received by the camera 22, and in reverse, when the image pickup device points in a backward direction the face of a person ahead of the user is received by the camera 22.
In this manner, the supporting portion rotatably supports the camera portion in a lateral direction of the body portion to allow the user to easily change the shooting range by simply changing the direction of the camera portion and also to shoot and display the forward direction of the user and the user himself/herself (or the backward direction toward the user) on the image display device when the rotation range is selected to approximately 180 degrees. Further, the supporting axis with which the supporting portion supports the camera portion is inclined to allow the user to freely adjust the shooting range in the forward direction or on the user side by only slightly including both wrists when holding the housing with both hands, without requiring the user to take an uncomfortable position when adjusting, thereby reducing the fatigue of the wrists.
The game machine 120 includes a CPU 121 that is connected to an input/output interface 122 (hereinafter referred to as “I/O”). To the I/O are connected connectors 123b, 123d for connection with a hand controller 124. Where the game machine 120 is usable for a game in which a plurality of players participate at a same time, a plurality of sets of connectors and controllers are provided. The hand controller 124 may also include a connection 150 to a portable memory pack 115, having a read/write memory for storage of user data, e.g., facial images, to be used during game play. The memory cartridge connectable to the hand controller incorporates, by mounting on a substrate, a non-volatile memory (e.g., ROM, EP-ROM) for storing image files, editing files and identification codes.
Another connector 123a is disconnectably connected to the game/camera cartridge 125. Further, the CPU is connected to a RAM 126 employed as a working RAM and an image processing unit (RCP) 127. The RAM includes memory areas respectively utilized for a plurality of players, and further including a flag area, a counter area, and register areas. The RCP is connected to a video RAM 128. The video RAM has a memory area for storing red (R), green (G) and blue (B) color data corresponding to each dot of one CRT screen 140 such as a raster scan display, so that color data is written in and/or read from the memory area for color display under control of RCP. The color data read from video RAM is converted by an encoder 129 and/or composite image signal generating circuit into analog R, G, B signals and/or a composite image signal which is supplied to the CRT.
The camera cartridge 304 may be inserted into and electrically coupled to a data transfer pack 314 to transfer the digital image files into the memory of the game machine console 316. The transfer pack is a digital coupling device for transferring data and program files from one game cartridge (which may be normally incompatible with the game machine) into the RAM memory of the game machine so that those files may be used during game play. The transfer pack 314 may connect to a controller 318, e.g., hand controller, of the console 316 of the game machine. The game machine console 316 may also have a removable game program cartridge 320 inserted into a connector. The software of the game program is downloaded from the cartridge into the memory of the game machine during game initialization. The processors in the machine execute the game program, which includes image capture and editing programs. These programs display the image of the subject on a display 32′.
When a user selects generation of a new head, step S52, the program may generate a screen menu (
The camera may be used to take pictures of the face of the user, where one or more of the pictures are to be chosen to be applied to the animated head being created. During the image capture step S58, a screen is displayed (
During image capture, an oval template 1004 is displayed on the screen to prompt the user to center his face in image capture area. During the “Take Picture” menu (
Showing the oval template during image capture enables the user to take a better picture of himself and reduces the need for subsequent editing of the captured image. When the user is satisfied with the real-time image of himself (or other person or scene) being displayed within the oval template, the user activates a key on the hand controller to capture the image S60. The hand controller is the user input device through which the user selects options presented on the display screen and to otherwise interact with the program. The hand controller used to select an image need not be the controller supporting the camera.
After selecting an image to capture, the processor captures the image by storing the 2D image in memory, such as the image capture memory of the camera or a memory location in the game console. The captured image is displayed on a similar screen (
A facial image may also be selected by choosing one of the stored 2D images in the camera cartridge (
In addition, the user may select an existing 2D image, such as those stored in the digital camera in S76 from a selection of images that are stored in the camera, S78. These pre-existing images may have been taken by the user while outside or some other location remote from the game console, or may have been taken of the face another person, animal or thing, e.g., the face/grill of a car.
Once a pre-existing image is selected, the image is transferred from the camera memory to memory in the game machine, in step S80. Regardless of whether the image is a preexisting image or an image captured from a real-time camera image, the program saves the image in temporary memory in the game machine so that the image may be applied to a head and edited, in step S82. The mapping of a 2D image onto the head may occur during start-up of each game (as the existing heads are readout of the memory pack) and, during the editing process, as 3D heads and 2D facial images are being edited. The major portions of each 3D head are its face, hair and sides (neck and sides around the ears). The two-dimensional facial image 1200 is mapped to the face portion 1204 of the 3D head 1206, as is shown in FIG. 12. The hair 1206 and sides 1208 of the head are not mapped with a 2D image. The 3D face area 1202 is a 3D generally oval surface. This face area surface is defined mathematically by computer software as triangles, e.g., 20 triangles, that when assembled together form a 3D surface of the face of the head. To generate a 3D face to be inserted in a head that may be oriented from the front, side, looking-up, looking down or other point of view, the computer determines the location and position of each of the triangles that define the face. The location in three-dimensions of the surface of the face is determined by determining the location of each of the mathematically defined triangles that form the 3D face image.
The 2D facial image is applied to the 3D face by mapping the 2D image to the triangles that form the 3D face. For mapping, the 2D image is segmented into triangular sections that correspond to the 3D triangles of the face. The segmentation is done by identifying three points on the 2D image that correspond to the corners of each triangle of the 3D face. The section of the 2D image within the triangle defined by each of the three identified points is mapped onto the corresponding triangle of the 3D face. For example, one of the triangles of the 3D face portion may correspond to the nose of the face. To map the nose of the 2D image to the 3D nose triangle, three points on the 2D image are identified that outline the nose shown in that 2D image. The 2D image within the triangle defined by the three selected points are mapped to the triangle corresponding to the nose of the 3D face. Similarly, the other triangular sections' 2D image are mapped to the other triangles that make up the 3D face. The mapping of the 2D image onto a 3D face is accomplished each time the video game starts up and during editing.
With reference to the 3D model, the center of the face is determined by equation (1):
wherein the nomenclature for the above equation (1) is:
In step 1306, the far edges of the 3D facial images are determined by the following equations (2) and (3):
Xmax=Maximum distance in x direction of any vertex from the center of the face Xcen (equation 2)
Ymax=Maximum distance in y direction of any vertex from the center of the face Ycen (equation 3)
The transformation scalars, S1308, that convert the position of a 3D face vertex (xyz) into a corresponding 2D co-ordinate on the face image may also be referred to as a texture co-ordinate. This position dictates the corresponding position in 2D space that the 3D-vertex position should represent.
Xscalar=w/(2*Xmax) Equation 4
Yscalar=h/(2*Ymax) Equation 5
To calculate the transformed (texture) co-ordinates, equations 4 and 5 are applied to each vertex, S1310, S1312, S1314 and S1316.
The i'th transformed vertex has co-ordinates in X and Y and these are defined as the U and V texture co-ordinates whereby:
Ui=s+(VXi−Xcen)*Xscalar Eq. 6
Vi=t+(VYi−Ycen)*Yscalar Eq. 7
Ui and Vi are included in the 3D information of the face which is used to draw the head with the relevant areas of the 2D image mapped onto the 3D triangles that make up the face model.
The stored 3D “heads” which the user selects are stored in the game program (or memory controller pack) as “slots” S82. When completed, the one slot contains all the information to generate a custom character head. This includes face texture information, hair and face colors, head type, etc. The game allows multiple slots for multiple heads that can be used in the single player version of the game where the custom heads can be used for either your player character's head or that of a random guard or other computer-controlled game character.
The customer heads, i.e., those generated using a 2D facial image and the image editor, can be used throughout game play for those animated players controlled by individuals and for the computer generated animated players. In multi-player mode, there may be more head slots, e.g., twelve, to be stored because there is the potential of multiple memory packs in each of the hand controllers being used by the multiple players.
When loading files that are previously saved S64, S70, on the memory packs, a menu appears whereby icons representing the stored files are displayed on screen, FIG. 14. The icon image of each head 1400 is a reduced size version of the captured image. The user selects an image using the controller and hits the trigger to load the head. The data that is loaded from the memory pack includes a compressed version, e.g., JPEG compression, of the original image taken from the camera and all other parameters set up by the user; these include head type, color, etc.
Once a facial image has been selected, the user is prompted to apply the image to an animated three-dimensional head, in step 568 and shown in FIG. 15. The machine may have stored several, e.g., five, animated 3D heads which are used to create animated game players. These heads may be male or female, and have different shapes, hair color and skin tone. The heads are presented on the display as individual 3D head images. The heads may have blank faces, a computer generated face or have the face of the 2D facial image that has been captured and selected for use in creating a personalized head. The heads may move, e.g., turn from side to side and tilt up and down, so that the user may see the head from different angles. The user selects a head on which to apply the facial image that has been captured.
Once a head is selected, the program maps the 2D facial image (as framed by the oval template) on the face portion of the selected head. Alternatively, the computer may have automatically mapped the image onto each of the heads displayed for selection. The head selected by the user is saved, in step S82 at a location in memory that may be selected by the user as is shown in
The saved head is ready for game play and may be applied to the body of an animated game player so that play may begin in step S84. At this stage all the information is available to display a custom head. Various options will still be in their default modes but these may be changed at a later time using the editor menu,
To edit an animated 3D head with a mapped 2D facial image, the user selects one of several available editing functions, including select a new 2D facial image S86, select a new 3D head S88, repositioning the 2D facial image S90, adjusting the 3D shape of the head S92, changing the hair color and skin tone of the head S94, deleting the saved head S96, canceling any changes S98 that have been made to a saved head during the editing process, and saving any changes made to the head and facial image S1100.
In particular, the editor contains various sections to alter the characteristics of the current head, these including:
Take Another Picture (S86)
This option leads to the “Take Picture” menu allowing the user to change the image that is mapped onto the head's face.
Change Head (S88)
The “Change Head” function allows the user to alter his or her choice of the special face mapping enabled character heads.
Position Picture (S90)
This menu allows the user to change which parts of the captured image are mapped onto the head's face. Five control handles allow the size, shape and position of the aforementioned oval area to be altered, as is shown in FIG. 19. The software maps the 2D image that falls inside this oval onto the facial area of the head. An additional “Brightness” feature allows the user to change the brightness of the facial image helping to disguise the joint between the face and the rest of the head.
The editing by the user of the captured 2D image S90 includes: adjusting the position of the oval template over the 2D image, expanding and contracting the oval shape about the major and minor axes (length and width) of the oval, and adjusting the brightness of the 2D image 1900 in FIG. 19. The oval template 1902 defines the portion of the 2D image that will be mapped to the 3D face. The template is translucent so that the entire 2D image (both inside and out of the template) may be viewed—which facilitates the positioning of the template on the 2D image. The template can be moved with respect to the 2D image by use of cursor commands and drag points that are on the rim of the oval and that can be manipulated by the user with the hand controller and a cursor that appears on the image in FIG. 19.
Moving the template with respect to the image allows the user to better align his face in the oval template and, thereby, adjust the alignment of the facial image on the 3D head 1904. Expanding and contracting the length and width of the oval also allows a user to better position his facial image within the oval and, thus, onto the 3D face (head).
The editing of the 2D image is done with a screen display of the 2D image in the oval and a mapped 3D image, which shows in real time the effect of editing the 2D image. In addition, the brightness/contrast 1906 of the 2D image may be adjusted during 2D image editing.
The oval 2D image becomes distorted when mapped to the 3D face, especially as various sections of the 2D image are deformed to fit the triangles that make up the 3D face. Allowing editing of the 2D image allows the user to improve his 3D facial image by adjusting the 2D image before it is mapped. The still image editor displays the 2D image and the 3D image (with limited rotation of the head) during the editing process so that the user can view the ultimate 3D image of his face while editing the 2D image.
The 2D image editor may also automatically balance the contrast of the image to reduce the unintended effects of shading on the 2D image. These shading effects can cause poor 3D visual effects when the 2D image is mapped on the 3D face. To balance the contrast, the image editor compares the brightness of the left side of the image to the right side of the image. If the brightness between the two sides varies excessively, such as by more than 10%, then the editor reduces the brightness on the bright side of the image and may increase the brightness on the dark side of the image. In addition, the brightness/darkness adjustments are more pronounced at the edges of the oval image than at the center because the brightness adjustments are applied in a linear manner in which the center of the image is not adjusted so as to avoid creating a perceptible contrast change at the center of the image.
When using a digital camera to take an image in “real” world conditions, it is often found that the brightness of the image is not consistent across the image when measured from left to right. This can create problems with face image mapping as the brightness of the join line at each side of the head is at the same brightness. The join line is the 3D surface line where the face portion of the head meets the sides of the face. If there is a difference in brightness at the join line, the result is a distinct and unwanted shade discontinuity on one or both sides of the mapped head.
In order to combat this effect, “Automatic Shade Compensation” techniques are used during the mapping phase of the operation. This attempt to modify the brightness of the 2D-captured image gives a more even mapping without unduly affecting the “look” of the overall image.
This is achieved by applying a non-linear filter to the 2D image, which modifies the intensity of each pixel as a function of pixel position and based upon the following equations (this filter is applied to the whole image, however only pixels within the oval are used to calculate the filter parameters):
An intensity value is calculated for each side to generate a measure of the balance error in the current image. In this regard all intensities may be normalized (i.e. Range from 0.00 (Black) to 1.00 (White)). The average intensity is calculated for the left and right sides of the image using all pixels that fall between 25% and 75% of maximum intensity. This helps to reduce errors caused by small artifacts that have extreme intensities.
Shade compensation is used if |ALeft−ARight|<0.05.
If shade compensation is to be added then the following filter is applied to the image for pixels left of the center of the image:
ITxy=Ixy*(1+(Nx−(2*x)/Nx)*0.5*(ARight−ALeft)))
For pixels right of the center of the image:
ITxy=Ixy*(1+((((2*x)−Nx))/Nx)*0.5*(ALeft−ARight)))
Note that at x=Nx/2 no intensity changes occur on either side thus preventing a discontinuity from appearing at the center of the image.
Color Face & Hair (S94)
The face and head colors can be each changed to one of four pre-determined types. The user is free to pick any combination of these to suit his or her preference.
Shape Head (S92)
The “Shape Head” feature allows the user to alter the three dimensional shape of the current head as is shown in
The 3D entire head is manipulated, including the face, side and hair. The color of the skin tone and hair can be selected using the editor. In addition, the shape of the head may be changed via a screen (
The box has eight (8) points, located at its four corners 2004 and midway 2006 between pairs of corner, that can be dragged using a cursor and hand controller to change the shape of the box and, thus, change the shape of the head. A comparison of
Using the 3D head manipulator, the head can become wide and squared; narrow and oval like, or many other shapes. In addition, a slider bar in this screen stretches or compresses the front-to-back dimension of the head. In addition, by adjusting the slider bar 1906, the head may be stretched from nose to back, so as to generate a head that is long (nose to front) and narrow (side-to-side) or, alternatively, a head that is short (nose to front) and wide (side-to-side).
Other editing functions include:
Removed Head (S96)
Removing a head clears the slot that is currently being edited; all changes are lost.
Cancel Changes (S98)
Canceling changed returns the head to that state that it was in prior to the editor menu being opened.
Keep Changes (S100)
Keeping changes updates the current selected slot with the alterations made during the editing session. Following this the user is again invited to save his or her work to a controller pack.
The personalized heads that were created using the image capture/edit/save functions may be used during game play. Typically, a user will select a personalized head that includes the user's facial image and applies that head to the body of a desired animated game character. In this way, users can personalize game play by having the animated player that they control be a player that has the appearance of the user. During multiple-user combat game play, it would enhance the realism of game play if the animated game players appear in multi-player game mode.
Moreover, the personalized heads may be applied (in a random manner or some prescribed manner, e.g., all guards have a certain head) to computer controlled game characters, such as guards that appear in a combat game, where the guards are not controlled by any of the game playing users. During game play, any heads that occupied the “Single Player Slots” are randomly selected and used as the heads for that particular level of guard characters. Thus, the user will see personalized computer generated players as he plays a game. In addition, if the slots set aside for multi-player games contain any valid personalized heads then these heads may appear (
The 2D image and settings made with the editor are stored to save a personalized animated game player. The 2D image and settings may be stored in the user's controller memory pack so that they may be carried by the user from one game console to another. The memory pack plugs into the hand controller and may be carried by the user from game machine to game machine and, thus, allows the user to load his personalized 3D animated game player (including a face that is derived from a 2D image of the user) into any game machine that the user may be playing. Thus, an advantage of using controller game packs for storage of personalized player head is that the user can carry personalized player settings to other game consoles, especially those consoles owned by friends. Other advantages of a portable personalized player head stored in the controller memory pack include that friends may play each other where each friend has his or her own personalized player, and personalized images may be formed for the computer controlled players, e.g., automatically generated guards and other “bad guys” to randomly have personalized heads appear on animated figures during the game.
As shown in
The saved heads, including 2D facial image, may be compressed to conserve storage space in the memory pack. A compression technique similar to the well-known JPEG technique may be used. Such a technique would be embodied in a software program included in the image editor program. To compress the slot (head file), a smoothing filter can be applied to the image to eliminate sharp contrast gradients in the image. The image is then divided into blocks, such as 8×8 pixel blocks. A discrete Cosine transformation is applied to each block of the image. A quality controller program may be applied to the blocks defining a compromise between image quality and image file size that is applied to compress the image data without unacceptably deteriorating image quality. The data is re-ordered in a zig-zag pattern to improve compression potential. Then that data is processed by a run length encoder compression scheme and a bit pack compression scheme to create a compressed data file of the image.
Detailed Implementation Example
Roots Though the System: Description
Root Menu (VTC=00:01:08) VTC is “video time code” in hours/minutes/seconds).
The Root menu if the start point for the user to access the Face mapping technology.
Load a saved head (VTC=00:01:11).
This section allows the user to load data previously created into the system. This information is stored in the current game instance as “slots”. One slot contains all the information to generate a custom character head, this includes face texture information, hair and face colors, head type etc.
The game allows six slots to be head at one time that can be used in the single player version of the game where the custom heads can be used for either your player character's head or that of a random guard.
The multi-player mode of game (“combat simulator”) allows twelve head slots to be stored at any one time. These can be used by any of the players participating in a multi-player game and are used as that player's character head.
The user can select to load a head into the slots available for single player or multi-player or to load a copy of the head into each of these.
Load Perfecthead (VTC=00:01:15)
When loading files that are previously saved on the memory packs, a menu appears whereby icons representing the stored files are displayed on screen. The icon image is a reduced size version of the captured image. The user selects an image using the controller and hits the trigger to load the head. The data that is loaded includes a compressed version of the original image taken from the camera and all other parameters set up by the user; these include head type, color, etc.
Make a New Head (VTC=00:01:24)
To make a new head the user firstly needs to grab an image from the camera, which will be used as a game character's face. As in the previous section, the resultant head can be used in either or both the single and multi player areas of the game.
Insert Camera Prompt (VTC=00:01:24)
The user is invited to insert his or her camera during the “Insert Camera Prompt”. At this stage the Transfer Pack is inserted into the Game Controller and the Camera then inserted into the Transfer Pack.
At this stage the user has two options:
During the “Take Picture” menu, the current visual data as being received by the camera is displayed on screen, this is updated at around 2 times per second. A blue overlay highlights a vertical oval area of the image which is deemed to be the ideal position for the user to position his or her face. Face images that fit correctly with this oval will need little fine tuning and as such the whole processes speeded up.
When the user is happy with the current image, the shoot button freezes and stores the image after which the user can continue with the process or retry the capture.
Choose Head (VTC=00:02:04)
Special character heads were developed that allows the system to add a different facial image. At this stage the user chooses a head whose shape and hairstyle best suits his or her requirements.
Save Perfecthead (VTC=00:02:11)
At this stage all the information is available to display a custom head. Various options will still be in their default modes but these may be changed at a later time using the editor menu.
The user is given the option to save the current head information to a controller pack so that the head can be easily retrieved at any time. It may be the user only wishes to use the head in this instance of the game or that he or she does not own a controller pack. If either of these is the case then the head need not be saved.
Select Location (When saving) (VTC=00:02:13)
If the user is saving a head, the system displays information on any controller packs that it finds that have the adequate amount of free space. The user can also delete previous files to free up room should he or she require to do so.
Head Complete (VTC=00:02:18)
The “Head Complete” menu inform the player that enough information has been gathered to used the head inside the game but invited him or her to edit various features of the head inside the editor feature.
Perfect Head Editor (VTC=00:02:22)
The editor contains various sections to alter the characteristics of the current head, these include:
Take Another Picture (VTC=00:02:25)
This option leads to the “Take Picture” menu allowing the user to change the image that is mapped on to the head's face.
Change Head (VTC=00:02:40)
The “Change Head” function allows the user to alter his or her choice of the special face mapping enabled character heads.
Position Picture (VCT=00:02:45)
This menu allows the user to change which parts of the captured image are mapped onto the head's face. Five control handles allow the size, shape and position of the aforementioned oval area to be altered. The software then maps image data that falls inside this oval on to the facial area of the head. An additional “Brightness” feature allows the user to change the brightness of the facial image helping to disguise the joint between the face and the rest of the head.
Color Face & Hair (VTC=00:03:33)
The face and head colors can be each chanced to one of four pre-determined types. The user is free to pick any combination of these to suit his or her preference.
Shape Head (VTC=00:03:44)
The “Shape Head” feature allows the user to alter the three dimensional shape of the current head. Control points allow the head to be squashed and stretched in dimensions coplanar to the face and an additional slider allows the depth of the head or scale in the front to back direction to be altered.
Removed Head)
Removing a head clears the slot that is currently being edited; all changes are lost.
Cancel Changes
Canceling changed returns the head to that state that it was in prior to the editor menu being opened.
Keep Changes (VTC=00:04:14)
Keeping changes updates the current selected slot with the alterations made during the editing session. Following this the user is again invited to save his or her work to a controller pack.
Edit a Loaded Head (VTC=00:04:20)
Selecting “Edit a Loaded Head” allows the user to choose from any of the currently active slots in the game's memory. On making this choice, the relevant head is loaded into the editor and the changes are made as described in the aforementioned section.
Using the Heads in Game:—Description
Single Player Game
Any heads that occupied the “Single Player Slots” are randomly selected and used as the heads for that particular levels guard characters.
Multi-Player Player Game (VTC=00:04:37)
If the slots set aside for multi-player games contain any valid heads, then these heads will appear as a head option when the player chooses to modify his character's properties. An example of this head selection can be found at VTC=00:04:50.
Additional Information:—Saving Data and File Formats
When a player saves Perfecthead data to a Controller Pack, the image data needs to be compressed both to allow load times and file sizes to be reasonable. The compression is performed using a custom piece of software that:
Nomenclature:
With reference to the 3D model, the centre of the face is determined by:
Xmax=Maximum distance in x direction of any vertex from the centre of the face Xcen
Ymax=Maximum distance in y direction of any vertex from the centre of the face Ycen
We define transformation scalars that convert the position of a 3D face vertex (xyz) into a corresponding 2D co-ordinate on the face image that is sometimes referred to as a texture co-ordinate. This position dictates the corresponding position in 2D space that the 3D-vertex position should represent.
Xscalar=w/(2*Xmax) Yscalar=h/(2*Ymax)
To calculate the transformed (texture) co-ordinates the follow equation is applied to each vertex.
To i'th transformed vertex has co-ordinates in X and Y and these are defined as the U and V texture co-ordinates whereby:
Ui=s+(VXi−Xcen)*Xscalar Vi=t+(VYi−Ycen)*Yscalar
Ui and Vi are included in the 3D information of the face which is used by the renderer to draw the head with the relevant areas of the 2D image mapped onto the 3D triangles that make up the face model.
Automatic Shade Compensation
When using the camera in “real” world conditions it is often found that the brightness of the image is not consistent across the image when measured from left to right. This can create problems with face image mapping as the brightness of the join line at each side of the head is at the same brightness. The result is a distinct and unwanted shade discontinuity on one or both sides of the mapped head.
In order to combat this effect “Automatic Shade Compensation” techniques are used during the mapping phase of the operation. This attempted to modify the brightness of the 2D-captured image to give a more even mapping without unduly affecting the “look” of the overall image.
This is achieved by applying a non-linear filter to the 2D image, which modifies the intensity of each pixel as a function of pixel position and based upon the following equations. This filter is applied to the whole image, however only pixels within the oval are used to calculate the filter parameters.
An intensity value is calculated for each side to generate a measure of the balance error in the current image. All intensities are normalized (i.e. Range from 0.00 (Black) to 1.00 (White)).
The average intensity is calculated for the left and right sides of the image using all pixels that fall between 25% and 75% of maximum intensity. This helps to reduce errors caused by small artifacts that have extreme intensities.
Shade compensation is used if |ALeft−ARight|>0.05.
If shade compensation is to be added then the following filter is applied to the image.
For pixels left of the centre of the image:
ITxy=Ixy*(1+(Nx−(2*x)/Nx)*0.5*(ARight−ALeft)))
For pixels right of the centre of the image:
ITxy=Ixy*(1+((((2*x)−Nx))/Nx)*0.5(ALeft−ARight)))
Note that at x=Nx/2 no intensity changes occur on either side thus preventing a discontinuity appearing at the centre of the image.
While this invention has been described in conjunction with specific exemplary non-limiting embodiments thereof, it is evident that many alternatives, modifications and variations will be apparent to those skilled in the art. Accordingly, the preferred exemplary implementations, as set forth herein, are intended to be illustrative, not limiting. Various changes may be made without departing from the full scope of the invention, as defined in the following claims.
This application claims benefit of 60/204,546 filed on May 16, 2000.
Number | Name | Date | Kind |
---|---|---|---|
4104625 | Bristow et al. | Aug 1978 | A |
4261012 | Maloomian | Apr 1981 | A |
4286849 | Uchidoi et al. | Sep 1981 | A |
4359223 | Baer et al. | Nov 1982 | A |
4467349 | Maloomian | Aug 1984 | A |
4486774 | Maloomian | Dec 1984 | A |
4517658 | Iida | May 1985 | A |
4521014 | Sitrick | Jun 1985 | A |
4539585 | Spackova et al. | Sep 1985 | A |
4541010 | Alston | Sep 1985 | A |
4566263 | Miyazaki et al. | Jan 1986 | A |
4591897 | Edelson | May 1986 | A |
4662635 | Enokian | May 1987 | A |
4684995 | Baumeister | Aug 1987 | A |
4688105 | Bloch et al. | Aug 1987 | A |
4710873 | Breslow et al. | Dec 1987 | A |
4731743 | Blancato | Mar 1988 | A |
4803554 | Pape | Feb 1989 | A |
4823285 | Blancato | Apr 1989 | A |
4827347 | Bell | May 1989 | A |
4858930 | Sato | Aug 1989 | A |
4885702 | Ohba | Dec 1989 | A |
5016107 | Sasson et al. | May 1991 | A |
5093731 | Watanabe et al. | Mar 1992 | A |
5095798 | Okada et al. | Mar 1992 | A |
5111283 | Nagasawa et al. | May 1992 | A |
5111409 | Gasper et al. | May 1992 | A |
5153729 | Saito | Oct 1992 | A |
5182647 | Chang | Jan 1993 | A |
5184830 | Okada et al. | Feb 1993 | A |
5185665 | Okura et al. | Feb 1993 | A |
5185818 | Warnock | Feb 1993 | A |
5191645 | Carlucci et al. | Mar 1993 | A |
5200863 | Orii | Apr 1993 | A |
5237648 | Mills et al. | Aug 1993 | A |
5239419 | Kim | Aug 1993 | A |
5249242 | Hanson et al. | Sep 1993 | A |
5255357 | Byron et al. | Oct 1993 | A |
5262867 | Kojima | Nov 1993 | A |
5293236 | Adachi et al. | Mar 1994 | A |
5301026 | Lee | Apr 1994 | A |
5301267 | Hassett et al. | Apr 1994 | A |
5303334 | Snyder et al. | Apr 1994 | A |
5305118 | Schiller et al. | Apr 1994 | A |
5343243 | Maeda | Aug 1994 | A |
5363119 | Snyder et al. | Nov 1994 | A |
5369736 | Kato et al. | Nov 1994 | A |
5371540 | Tamura et al. | Dec 1994 | A |
5393073 | Best | Feb 1995 | A |
5396225 | Okada et al. | Mar 1995 | A |
5414444 | Britz | May 1995 | A |
5423554 | Davis | Jun 1995 | A |
5430496 | Silverbrook | Jul 1995 | A |
5437008 | Gay et al. | Jul 1995 | A |
5438359 | Aoki | Aug 1995 | A |
5440401 | Parulski et al. | Aug 1995 | A |
5442543 | Tresp | Aug 1995 | A |
5459819 | Watkins et al. | Oct 1995 | A |
5469536 | Blank | Nov 1995 | A |
5475441 | Parulski et al. | Dec 1995 | A |
5475539 | Orii | Dec 1995 | A |
5477264 | Sarbadhikari et al. | Dec 1995 | A |
5493409 | Maeda et al. | Feb 1996 | A |
5504842 | Gentile | Apr 1996 | A |
5506944 | Gentile | Apr 1996 | A |
5519826 | Harper et al. | May 1996 | A |
5524194 | Chida et al. | Jun 1996 | A |
5533181 | Bergsneider | Jul 1996 | A |
5539459 | Bullitt et al. | Jul 1996 | A |
5539865 | Gentile | Jul 1996 | A |
5543835 | Mumura | Aug 1996 | A |
5544290 | Gentile | Aug 1996 | A |
5546528 | Johnston | Aug 1996 | A |
5552799 | Hashiguchi | Sep 1996 | A |
5553864 | Sitrick | Sep 1996 | A |
5577189 | Gay et al. | Nov 1996 | A |
5581299 | Raney | Dec 1996 | A |
5581311 | Kuroiwa | Dec 1996 | A |
5586238 | Murata | Dec 1996 | A |
5592609 | Suzuki et al. | Jan 1997 | A |
5595389 | Parulski et al. | Jan 1997 | A |
5600767 | Kakiyama et al. | Feb 1997 | A |
5601487 | Oshima et al. | Feb 1997 | A |
5602976 | Cooper et al. | Feb 1997 | A |
5612716 | Chida et al. | Mar 1997 | A |
5612732 | Yuyama et al. | Mar 1997 | A |
5621431 | Harper et al. | Apr 1997 | A |
5625711 | Nicholson et al. | Apr 1997 | A |
5625716 | Borg | Apr 1997 | A |
5630043 | Uhlin | May 1997 | A |
5631701 | Miyake | May 1997 | A |
5633678 | Parulski et al. | May 1997 | A |
5633733 | Miyazawa | May 1997 | A |
5633985 | Severson et al. | May 1997 | A |
5634064 | Warnick et al. | May 1997 | A |
5638498 | Tyler et al. | Jun 1997 | A |
5638502 | Murata | Jun 1997 | A |
5638503 | Hoel | Jun 1997 | A |
5659490 | Imamura | Aug 1997 | A |
5666159 | Parulski et al. | Sep 1997 | A |
5680533 | Yamato et al. | Oct 1997 | A |
5681223 | Weinreich | Oct 1997 | A |
5682197 | Moghadam et al. | Oct 1997 | A |
5689611 | Ohta et al. | Nov 1997 | A |
5696850 | Parulski et al. | Dec 1997 | A |
5706097 | Schelling et al. | Jan 1998 | A |
5706457 | Dwyer et al. | Jan 1998 | A |
5708883 | Segan et al. | Jan 1998 | A |
5715486 | Kim et al. | Feb 1998 | A |
5719799 | Isashi | Feb 1998 | A |
5729637 | Nicholson et al. | Mar 1998 | A |
5737452 | Schiller | Apr 1998 | A |
5737491 | Allen et al. | Apr 1998 | A |
5742291 | Palm | Apr 1998 | A |
5745122 | Gay et al. | Apr 1998 | A |
5748196 | Coelho et al. | May 1998 | A |
5748326 | Thompson-Bell et al. | May 1998 | A |
5754227 | Fukuoka | May 1998 | A |
5781198 | Korn | Jul 1998 | A |
5784525 | Bell | Jul 1998 | A |
5785598 | Hsu | Jul 1998 | A |
5796429 | Suzuki et al. | Aug 1998 | A |
5828862 | Singkornat et al. | Oct 1998 | A |
5830065 | Sitrick | Nov 1998 | A |
5835101 | Otsuka | Nov 1998 | A |
5850230 | San et al. | Dec 1998 | A |
5880740 | Halliday et al. | Mar 1999 | A |
5937081 | O'Brill et al. | Aug 1999 | A |
5984780 | Takemoto et al. | Nov 1999 | A |
6007428 | Nishiumi et al. | Dec 1999 | A |
6022274 | Takeda et al. | Feb 2000 | A |
6026215 | Fantone et al. | Feb 2000 | A |
6061532 | Bell | May 2000 | A |
6064393 | Lengyel et al. | May 2000 | A |
6115036 | Yamato et al. | Sep 2000 | A |
6120379 | Tanaka et al. | Sep 2000 | A |
6139432 | Watanabe et al. | Oct 2000 | A |
6208347 | Migdal et al. | Mar 2001 | B1 |
6227974 | Eilat et al. | May 2001 | B1 |
6229904 | Huang et al. | May 2001 | B1 |
6256047 | Isobe et al. | Jul 2001 | B1 |
6280323 | Yamazaki et al. | Aug 2001 | B1 |
6282362 | Murphy et al. | Aug 2001 | B1 |
6283858 | Hayes, Jr. et al. | Sep 2001 | B1 |
6285381 | Sawano et al. | Sep 2001 | B1 |
6343987 | Hayama et al. | Feb 2002 | B2 |
6538654 | Rose et al. | Mar 2003 | B1 |
Number | Date | Country |
---|---|---|
0431723 | Jun 1991 | EP |
0780771 | Jun 1997 | EP |
2130842 | Jun 1984 | GB |
2323738 | Sep 1998 | GB |
9917742 | Sep 1999 | GB |
004165 | Apr 2000 | GB |
53-127524 | Nov 1978 | JP |
54-319 | Jan 1979 | JP |
54-16320 | Feb 1979 | JP |
54-179710 | Nov 1979 | JP |
57-41360 | Mar 1982 | JP |
57-72666 | May 1982 | JP |
58-24270 | Feb 1983 | JP |
58-36076 | Mar 1983 | JP |
60-174598 | Sep 1985 | JP |
62-167 | Jan 1987 | JP |
63-213078 | Sep 1988 | JP |
63-272261 | Nov 1988 | JP |
2-39195 | Feb 1990 | JP |
3-139064 | Jun 1991 | JP |
3-275092 | Dec 1991 | JP |
4-329758 | Nov 1992 | JP |
5-110835 | Apr 1993 | JP |
6-14215 | Jan 1994 | JP |
6-44215 | Feb 1994 | JP |
6-96180 | Apr 1994 | JP |
6-61390 | Aug 1994 | JP |
7-46462 | Feb 1995 | JP |
8-18839 | Jan 1996 | JP |
8-190504 | Jul 1996 | JP |
8-194697 | Jul 1996 | JP |
8-202337 | Aug 1996 | JP |
8-223524 | Aug 1996 | JP |
8-249329 | Sep 1996 | JP |
9-140936 | Jun 1997 | JP |
9-282474 | Oct 1997 | JP |
11-154240 | Nov 1997 | JP |
WO9743020 | Nov 1997 | WO |
WO 0163560 | Aug 2001 | WO |
Number | Date | Country | |
---|---|---|---|
20020082082 A1 | Jun 2002 | US |
Number | Date | Country | |
---|---|---|---|
60204546 | May 2000 | US |