|Title of Invention||
"A METHOD FOR GENERATING AN AVATAR AND A SYSTEM THEREOF"
|Abstract||Racing-based computer games typically include a mode in which one or more human players can compete against one or more computer-controlled opponents. For example, a human player may drive a virtual race car against a computer-controlled virtual race car purported to be driven by Mario Andretti or some other race car driver. Such computer controlled opponents may be enhanced by including a sampling of actual game behavior of a human subject into the opponent's artificial intelligence control system. Such a sampling can allow the game system to personalize the behavior of the computer control opponent to emulate the human subject. (Reference figure number: Figure 5)|
|Full Text||The present invention relates to a method for generating an avatar and a system thereof. RELATED APPLICATIONS
This application is related to US Patent Application No 10/610,167 [MS3038741/MS1-1505US] entitled "MODIFIED MOTION CONTROL FOR A VIRTUAL REALITY ENVIRONMENT", U S Patent Application No 10/609,997 [MS303S761/MS1-1507US] entitled "MIXTURE MODELS FOR RACING MOTION LINES IN A VIRTUAL REALITY ENVIRONMENT, and U S Patent Application No 10/609,703 [MS303948 1MS1-1508US] entitled "PROBABILISTIC MODEL FOR DISTRACTIONS IN A VIRTUAL REALITY ENVIRONMENT" all filed concurrently herewith, specifically incorporated hetem by reference for all that they disclose and teach
The invention relates generally to virtual reality envnomments, and more particularly to personalized behavior of computet controlled avataos m a virtual leality envuoriment
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
Most racmg-based computer games provide a mode for competing against computer-controlled opponents that use a simple form of artificial intelligence (AI)
to negotiate the race hack or course m a simulated "human-like" fashion However, despite the "human-like" goal of such, AI, the result tends to appeal quite non-human upon close observation For example, the computer opponent may travel along an ideal 01 piesribed racing line on the course, whereas a human competitor inadvertently introduces continuous imperfections into his 01 her driving, such as over/under turning, over/under accelerating over/under braking, and early/late reactions However, it is just such impeifections that characterize a "human-like" competitoi As a result, computer opponents tend to become predictable and less intresting
One reason for the non-human like behavior of some AI competitors is that a typical AI motion coutiol system effectively provides a computer opponent with a reaction time of l/60th of a second in the USA 01 l/50th of a second in Europe (i e, for each frame repaint interval m the virtual reality enviionment) Theiefcne, computer control of the AI opponent in leaction to any "visual" (e g, distance to a corner) and "physical" (e g, loss of traction) stimuli from the virtual reality environment occurs 50 01 60 times a second No human player can react so quickly, so frequently, or so perfectly as to compete with such an ideally-performing computer controlled opponent
Therefore, another popular feature of such games is the opportunity to compete against one or more human competitors For example, two friends can compete against each other at the same console or over a network Such human vs human competition typically offers a much more varied and interesting race because human competitors tend to develop then own styles of lacing and make significant, non-ideal moves during the race The result is often a more dynamic, unpredictable, and exciting competition However, when there are no human competitoi s available, a human player is geneially stuck with playing the very non-human AI controlled competitor
Implementations described and claimed herein enhance the human-like realism of computer opponents in racing-type games and other computer games In one implementation, personalized training data is parameterized and recorded for a human subject Thereafter, a computei controlled avatar may be generated to emulate the style (e g, strategy, tactics, skill, and short-comings) of the human subject In this manner, a human player may compete against a moie human-like AI control competitoi modeled on the human subject Furthermore. this avatar may be personalised to perform like a friend or a famous competitor in the real world In addition, the behavior of the avatai may be varied based on variations of the human subject's behavior over multiple framing sessions for each game segment to provide a less predictable gaming experience
In various implementations, articles of manufacture are provided as computei program products One implementation of a computer program product provides a computei progiam storage medium readable by a computer system and encoding a computei piogram for a virtual reality environment Another implementation of a computei progiam product may be provided in a computei data signal embodied in a earner wave by a computing system and encoding the computer program for a virtual reality environment
The computer program product encodes a computer program for executing on a computer system a computer process for a virtual reality environment An avatar behavior definition is computed based on environmental context of a virtual leahty environment and a landomly selected training behavior from a training set of personalied sample behaviors At least one control signal is generated to guide behavioi of an entry in the virtual leahty environment in accordance with the avatar behavior definition
In another implementation, a method is provided, such that an avatar behavior definition is computed based on enviionmental context of a virtual reality environment and a randomly selected training behavioi from a training set of personalied sample behaviors At least one contiol signal is geneiated to guide behavior of an entity in the virtual reality environment in accordance with the avatar behavioi definition
In yet another implementation, a system is provided An avatar behavioi definition module computes an avatar behavioi definition based on environmental context of a virtual reality envnonment and a randomly selected training behavioi fiom a training set of peisonalized sample behaviors A behavior control system generates at least one control signal to guide- behavior of an entity in the virtual leahty envnonment in accordance with the avatar behavior definition
Brief descriptions of the drawings included herein are listed below
FIG 1 illustrates a race course and two training racing lines for use in parameterizing an exemplary computer controlled avatar
FIG 2 illustrates an exemplary system for generating a personalized naming data
FIG 3 illustiates exemplary personalized training data
FIG 4 illustiates an exemplary system for generating control signals for a computei controlled avatar
FIG 5 illustrates exemplary operations for geneiatmg control signals for a computei controlled avatar
FIG 6 illiistrates an exemplary system useful for implementing an embodiment of the present invention
Racing-based computer games typically include a mode in winch one or more human players can compete against one or more computer-conn oiled opponents For example, a human, player may drive a virtual lace car against a computer-controlled virtual race car purported to be driven by Mario Andretti 01 some other race car driver As described herein, such computer contiolled opponents may be enhanced by including a sampling of actual game behavior of a human subject Such a sampling can allow the game system to personalize the behavior of the computei control opponent to emulate the human subject
In this manner, the computei controlled opponent may be personalized to behave like famous competitors in the field or like friends and family of the humanplayer For example, two friends are playing a computer racing game before one of the friends needs leave The departing friend can enter a training mode to create personalized naming data storing it in a persistent storage medium accessible by the gaming system The remaining friend can then choose to play an avatar that is personalized by that tiaimng data to emulate his 01 her departed friend Likewise training data may be generated and/or obtained for more famous participants (e g, Mario Andretti) and then stored m a persistent storage medium accessible by the gaming system
FIG 1 illustrates a lace course and two training lacing lines for use in parametenzing an exemplary computer controlled avatar A virtual race course 100 includes a racing surface 102 and an infield 104 It should be understood that an alternative couise may not be closed or may be applied to a non-racing environment, such as a first person shooter game, a military simulation, or a reality simulation As such, a computer controlled dnver may be leplaced by a computer controlled (01 AI contiolled) player represented by any moving object
Two exemplary training racing lines 106 and 108 are shown within the virtual race course 100 Notice that, in one lap, the human driver hit the wall at 109 Such imperfections contribute to the experience of competing against a human competitor Racing lines, examples of behavior definitions, may be characterized by various parameters, including without limitation locations on the course, and steeling, biaking, speed, and acceleration parameter sequences Such
training racing lines may be captured, for example, by morntoing and lecording a human driver's performance during multiple laps of a race
The training racing lines 106 and 108 are used to develop personalized training data specific to the human subject that lecorded them Using this personalized tiaming data, the system controls the AI controlled avatar to emulate the human subject's performance Multiple racing lines provide additional variation that contributes to the unpredictable behavior of the AI controlled avatar
During a race, at a specified interval (such as a simulation interval 01 a frame interval, which may be equal in some implementations), an AI motion control system receives stimulus inputs and computes control signals based on these inputs to change the direction, speed, etc of the compute racing vehicle 01 other entity The changes are generally intended to bring the AI drivers back into alignment with a racing line (such as an ideal racing line or. a personalized racing line) As such, a racing line is a form of a behavior definition that provides guidance to the AI motion coutrol system in controlling the AI driver's path along the trck
A course is divided up into track segments (see, for example, track segment 110) Generally, track segments are a type of game segment, which may also repiesent a game turn in a strategy game, a scene in a role playing game, a level in a first peison shooter, etc , or combinations thereof
Each racing hue is characterized relative to waypoints (such as waypoints 112, 114, 116, and 118) within a track segment Track segments are examples of a more generic game segment, such as a distance through a maze, one
or more rooms in a virtual reality setting, etc In one implementation, for example, at waypoint 118, a steering angle 120 between a normal vector (normal to the waypoint line across the track) and the sampled racing line characterizes the lacing hue to the system Waypoints and the steering angles are then used by the AI motion control system to compute proper motion control signals for the AI controlled entity (e g , the racing vehicle)
FIG 2 illustrates an exemplary system 200 fot generating a personalized training data A set of personalized training samples 202 are generated and input to the naming module 204 In one implementation, personalized training samples are generated by monitoring performance of a human subject during game play Characteristics of the environment (eg, track geometry, track conditions, etc) and subject's behavior (e g, a racing line, control signals, etc ) are parameterized and lecoided in peisonahzed training data 206 In at least one implementation, the personalized training data may be persistently stored to allow the human player to save tiaming data profiles of various avatav competitois
FIG 3 illustrates exemplary peisonalized training data 300 including personalized sample behaviois Each row corresponds to a particular game segment, as repiesented by the track segment pictorials along the leftmost column The fiist column of each low represents a given game segment in the couise Each game segment may be represented by game segment descriptors, which may include without limitation tiack segment geometry, track surface conditions, time of day,
etc Each subsequent column corresponds to a sample of the human subject's behavior (i e , personalized sample behaviors) in the associated game segment
In addition, the rate of accumulating personalized training data may effectively bo increased by "mirroring" training data for a given back segment, thereby doubling the amount of training data extracted for a given amount of training For example, for some tiack segments, by extracting tiainmg data for a light hand turn and then mirroring both the hack segment (to represent a left band turn) and the personalized racing line sample, two training samples are captured for a single track segment
In the illustrated table 300, the sample of the human subject's behavior is represented by a racing line for that track segment As shown in the last low, for example, the human subject provided four sample behavioi definitions (e g, racing lines) for the associated hack segment, which appears to be a sharp curve Differences among the behavior definitions taken "by the human subject can be seen in each cell in that row, thereby providing the opportunity to contribute to the unpredictable behavior of the AI avatar on this track segment or a track segments that are similar to this track segment
In one implementation of a racing game, a lacing line may be defined by a sequence of steering angle values at waypoints in a tiack segment A steering angle value charactenzes the steenng angle of the racing line relative to a vector that is normal to the waypoint lines in the track segment It should be understood that racing lines may be characterized by other parameters 01 combinations of other
parameters, including without limitation sampled locations 01 vectors within the course game play actions (e g, fight sequences), etc In an implementation of a first person shooter game, a behavior definition may represent a player 's movement path
The track segments included in the training set may 01 may not be from the current track In one implementation, a probability density function operation determines similarities between naming track segments and the current track segment and computes weighted contributions by sampling racing lines associated with each similar naming track segment The weighting may apply contributions of one 01 more sample racing hues to the Al avatar's current racing line within the current hack segment In an alternative implementation, peisonalized avatars may be executed only on tracks on which the human subject has actually trained
FIG 4 illustrates an exemplary system 400 for generating conhol signals for a computer controlled avatar Peisonalized training data 402 may be provided in a variety of ways, including dynamic generation of the training data based on past 01 concurrent game play by the human subject, downloading training data from a web resource 01 storage media, computing training data foi fictitious players, etc Note With the concurrent game play option, a playei could compete against an increasingly improving avatar of himself or herself by starting with an initial set of default or personalized training data and adding to the training set as the playei plays the game As the game play proceeds, the racing lines taken by the user
during the game may be added to the training data to enhance the richness of the training samples
Environmental context information 404 relating to the game segment is piovided by the virtual reality environment, such as hack location, track segment geometry, etc The context information parameters, which ate similar in format and/or content to the track segment descnptois. are used to match one or more track segments in the training data 402, so as to identify peisonalized sample behaviors that contribute to the behavior definition of the AI controlled avatai
The naming data 402 and the context information 404 are received by an avatai behavioi definition module 406, which computes a behavior definition 408 In one implementation, the behavior definition 408 specifies a personalised lacing line to be followed by the AI behavior control system 410 However, other behavior definitions may also be specified such as an AI avatar's behavioi in a fust person shooter game, etc
In one implementation, an avatai behavior definition module 406 randomly selects a sample index (e g , to select a column of sample data) and evaluates the segment descnptois against the context information 404 to identify appropriate sample data The sample behavioi for the best matching track segment under the randomly selected index may be forwarded as the behavior definition 408 to the AI behavior control system 410
In another implementation, a probability density function module 412 determines the weighted contribution that one or more samples provides to a
behavior definition for a given track segment The higher the similarity between the context information 404 and the track segment descriptor, the greater the weight applied to the sample data when computing the behavior definition The weighted sum of these contributions is then forwarded as the behavioi definition 408 to the AI behavioi control system 410 Other contribution algorithms aie also contemplated
Stimuli 414 from the virtual reality environment is input to the AI behavior control system 410, which generates control signals 416 for controlling the avatar in the virtual reality environment The control signals 416 are input to an implementation engine 418 to implement the motion 01 behavior specified by the control signals 416 For example, the implementation engine 418 may cause a virtual race car to change direction and speed
FIG 5 illustrates exemplary operations 500 foi generating control signals for a computer controlled avatai A leceiving operation 502 receives personalized training data Another receiving operation 504 receives context information for the track segments of the current track
A generation operation 506 geneiates ail avatai behavior definition for each track segment of the current track In one implementation, a sample index is randomly selected and the sample data corresponding to the hack segment having the closest match with context information 504 of the cunent track is deemed the avatar behavior definition for the current track segment This selection and
evaluation to identify the avatai behavior definition for a cuncnt track segment is repeated for each track segment in the current track
In another implementation, sample data fiom multiple track segments in the training data may contribute to the avatar behavior definition for a given tiack segment of the current hack Assume that BD1 represents the behavior definition for a given track segment in the current track and SDj/k repiesents the sample
data fiom row j, column kj of the naming data An exemplary algorithm is described below
1. For all track segments; in cunent track
2. For all tiock segments/ in the training data
3. h1=randomly selected sample index over all sample
columms in the training data
4. ,(Equation Removed) wherein Sj represents a weighting facloi
for thejth track segment in the training data, T, represents the context information foi the i"1 track segment in the cunent track, i) represents the track descriptor of the jth tiack segment in the training data, and ω represents a sensitivity factor
Normalize ,(Equation Removed)
The sensitivity factor ω specifies how sensitive the weighting factor is to similarities For example, if ω is very small, then s, is small and sample data for fewer training track segments contribute heavily to the behavioi definition BD, In contrast, if ω is very large, then sj large and sample data for more training track segments contribute heavily to the behavior definition BD, The sensitivity factor co may be preset at game design time or configured by the player or the system
In one implementation, avatar behavioi definitions for all track segments of the current. track are computed before race tune (e g, to conserve computational capacity for other functions during race time) However, it should also be understood that, in an alternative implementation, avatar behavior definitions for individual track segments m the current track may be dynamically computed as the track segment is encountered in the virtual reality environment This approach allows race time events to be considered when determining matches with naming data In addition, a human player 's behavior dunng the current lace may be used to dynamically supplement the tiammg data dunng the race (e g, to allow the human player to compete against a continually changing avatar of himself or herself)
A receiving opeiation 508 receives game stimuli from the virtual reality environment for the current simulation interval Such stimuli is input to a generation operation 510, which generates the control signals used to converge avatar behavior to the avatar behavior definition (e g, generated m the generation operation 506) based on the stimuli For example, the control signals in a lacing game are generally intended to steer the AI contiol vehicle toward a racing line
An implementation opeiation 512 applies the control signals to the virtual reality enviionment through an implementation module For example, exemplary implementation modules may include a racing physics engine Operations 508 510, and 512 repeat each simulation interval to progiess the action in the virtual reality game
The exemplary hardware and operating enviionment of FIG 6 for implementing the invention includes a general purpose computing device in the form of a computer 20, including a processing unit 21, a system memory 22, and a system bus 23 that operatively couples various system components include the system memory to the processing unit 21 There may be only one or there may be more than one processing unit 21, such that the processor of computer 20 compises a single central-processing unit (CPU), or a plurality of processing units, commonly refened to as a parallel processing environment The computer 20 may be a conventional computer, a distributed computer, or any other type of computer, the invention is not so limited
The system bus 23 may be any of seveial types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures The system memory may also be referred to as simply the memory, and includes read only memory (ROM) 24 and random access memory (RAM) 25 A basic input/output system (BIOS) 26, containing the basic routines that help to transfer information between elements within the computer 20, such as during start-up, is stoied in ROM 24 The computer 20 further includes a hard disk drive 27 for reading from and writing to a hard disk, not shown, a magnetic disk duve 28 for leading from or writing to a removable magnetic disk 29, and an optical disk drive 30 for reading from or writing to a removable optical disk 31 such as a CD ROM or other optical media
The hard disk drive 27, magnetic disk drive 28, and optical disk dnve 30 are connected to the system bus 23 by a hard disk dnve interface 32, a magnetic disk dnve interface 33, and an optical disk dnve interface 34 respectively The drives and their associated computer-readable media provide nonvolatile storage of computer-readable instructions, data structures, program modules and othel data for the computer 20 It should be apprieciated by those skilled m the art that any type of computer-readable media which can store data that is accessible by a computer, such as magnetic cassettes, flash memory cards, digital video disks, Bernoull cartndges, landom access memones (RAMs), read only memones (ROMs), and the like, may be used m the exemplary operating environment
A number of program modules may be stoied on the hard disk., magnetic disk 29, optical disk 31, ROM 24,01 RAM 25, including an operating system 35, one or more application programs 36, other program modules 37, and program data 3S A usei may enter commands and information into the personal computei 20 through input devices such as a keyboard 40 and pointing device 42 Othei input devices (not shown) may include a microphone, joystick, game pad, satellite dish, scanner 01 the like These and other input devices are often connected to the piocessing unit 21 through a serial port interface 46 that is coupled to the system bus, but may be connected by other interfaces, such as a parallel port, game port, or a universal serial bus (USB) A monitoi 47 01 othei type of display device is also connected to the system bus 23 via an interface, Such as a video adapter 48 In addition to the monitoi, computers typically include othei peripheral output devices (not shown), such as speakers and printers
The computer 20 may operate in a networked environment using logical connections to one or more remote computers, such as remote computer 49 These logical connections are achieved by a communication device coupled to or a part of the computer 20, the invention is not limited to a particular type of communications device The remote computer 49 may be another computer, a server, a loutei, a network PC, a client, a peer device or other common network node, and typically includes many 01 all of the elements descnbed above relative to the computei 20, although only a memory storage device 50 has been illustrated in FIG 6 The logical connections depicted in FIG 6 include a local-area network (LAN) 51 and a
wide-area network (WAN) 52 Such networking environments are commonplace- in office nerworks, enterprise-wide computer networks, intranets and the Internal winch are all types of netwoiks
When used in a LAN-networking environment, the computer 20 is connected to the local network 51 through a netwoik interface or adaptei 53, which is one type of communications device When used in a WAN-networking environment, the computei 20 typically includes a modem 54, a type of communications device, or any othei type of communications device for establishing communications over the wide area network 52 'Die modem 54, which may be internal or external, is connected to the system bus 23 via the serial port mteiface 46 In a networked environment, program modules depicted relative to the personal computer 20, or portions thereof, may be stored in the remote memory storage device It is appreciated that the netwoik connections shown are exemplary and othei means of and communications devices for establishing a communications link between the computer s may be used
In an exemplary implementation, AI motion control systems, physics engines, training modules, avatar control modules, avatar behavior definition modules, AI behavior contiol modules, or other modules may be incorporated as part of the operating system 35, application programs 36, or other program modules 37 The stimuli signals, behavior definitions, training data, context information, and control signals may be stored as program data 38
The embodiments of the invention described herein are implemented as logical steps in one or more computer systems The logical operations of the present invention are implemented (1) as a sequence of processor-implemented steps executing in one 01 more computer systems and (2) as interconnected machine modules within one or more computer systems The implementation is a matter of choice, dependent on the performance requirements of the computer system implementing the invention Accoidingly, the logical operations making up (he embodiments of the invention described herein are lefened to variously as operations, steps, objects, 01 modules
The above specification, examples and data provide a complete description of the structure and use of exemplary embodiments of the invention Since many embodiments of the invention can be made without departing from the spirit and scope of the invention, the invention resides in the claims hereinafter appended
1. A method for generating an avatar comprising:
computing an avatar behavior definition based on environmental context as claimed in a virtual reality environment and a randomly selected training behavior from a training set (202) as claimed in personalized sample behaviors; and generating at least one control signal to guide behavior as claimed in an entity in the virtual reality environment in accordance with the avatar behavior definition.
2. The method as claimed in claim 1 wherein the avatar behavior definition is associated with a track segment.
3. The method as claimed in claim 1 further comprising: generating the personalized sample behaviors by recording behavior as claimed in a player in one or more training sessions in the virtual reality environment.
4. The method as claimed in claim 1 wherein the computing operation comprises: combining a plurality as claimed in the personalized sample behaviors for a current game segment to yield the avatar behavior definition for the current game segment.
5. The method as claimed in claim 1 wherein the computing operation comprises: combining weighted contributions as claimed in a plurality as claimed in the personalized sample behaviors for a current game segment to yield the avatar behavior definition for the current game segment.
6. The method as claimed in claim 1 wherein the computing operation comprises: randomly selecting a personalized sample behavior from the training set (202) using a randomly selected sample index that designates at least one as claimed in the personalized sample behaviors.
7. The method as claimed in claim 1 further comprising: storing the personalized sample behaviors in a persistent storage medium.
8. The method as claimed in claim 1 further comprising: recording behavior as claimed in a player in competition against the entity during game play in the virtual reality environment; and adding the recorded behavior to the personalized sample behaviors associated with the player during the game play.
9. The method as claimed in claim 1 wherein the computing operation comprises: identifying game segments in the training set that match the current game segment by evaluating game segment descriptors associated with personalized sample behaviors against environmental context information associated with the current game segment.
10. A system for generating an avatar comprising: an avatar behavior definition module (406) computing an avatar behavior definition based on environmental context as claimed in a virtual reality environment and a randomly selected training behavior from a training set as claimed in personalized sample behaviors; and a behavior control system (410) generating at least one control signal to guide behavior as claimed in an entity in the virtual reality environment in accordance with the avatar behavior definition.
11. The system as claimed in claim 10 wherein the avatar behavior definition is associated with a game segment.
12. The system as claimed in 10 further comprising: a training module (204) generating the personalized sample behaviors by recording behavior as claimed in a player in one or more training sessions in the virtual reality environment.
13. The system as claimed in claim 10 wherein the computing operation comprises: a probability density function module (412) combining a plurality as claimed in the personalized sample behaviors for a current game segment to yield the avatar behavior definition for the current segment.
14. The system as claimed in claim 10 wherein the computing operation comprises: a probability density function module (412) combining weighted contributions as claimed in a plurality as claimed in the personalized sample behaviors for a current game segment to yield the avatar behavior definition for the current segment.
15. The system as claimed in 10, wherein the computing operation comprises: a probability density function module (412) randomly selecting a personalized sample behavior from the training set using a randomly selected sample index that designates at least one as claimed in the personalized sample behaviors.
16. The system as claimed in 10 further comprising: a training module storing the personalized sample behaviors in a persistent storage medium.
17. The system as claimed in 10 further comprising: a training module (204) recording behavior as claimed in a player in competition against the entity during game play in the virtual reality environment and adding the recorded behavior to the personalized sample behaviors associated with the player during game play.
18. The system as claimed in 10 wherein the computing operation comprises: a probability density function module (412) identifying game segments in the training set that match the current game segment by evaluating game segment descriptors associated with personalized sample behaviors against environmental context information associated with the current game segment.
|Indian Patent Application Number||5508/DELNP/2005|
|PG Journal Number||03/2012|
|Date of Filing||29-Nov-2005|
|Name of Patentee||MICROSOFT CORPORATION|
|Applicant Address||ONE MICROSOFT WAY, REDMOND, WA 98052, U.S.A.|
|PCT International Classification Number||A63F 13/00|
|PCT International Application Number||PCT/US2004/015529|
|PCT International Filing date||2004-05-18|