WO1998041952A1 - Generateur d'images et support de donnees - Google Patents

Generateur d'images et support de donnees Download PDF

Info

Publication number
WO1998041952A1
WO1998041952A1 PCT/JP1998/001152 JP9801152W WO9841952A1 WO 1998041952 A1 WO1998041952 A1 WO 1998041952A1 JP 9801152 W JP9801152 W JP 9801152W WO 9841952 A1 WO9841952 A1 WO 9841952A1
Authority
WO
WIPO (PCT)
Prior art keywords
actor
information
time
script
actors
Prior art date
Application number
PCT/JP1998/001152
Other languages
English (en)
French (fr)
Inventor
Kotaro Sato
Takashi Masuyama
Original Assignee
Namco Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Namco Ltd. filed Critical Namco Ltd.
Priority to US09/180,891 priority Critical patent/US6388667B1/en
Publication of WO1998041952A1 publication Critical patent/WO1998041952A1/ja

Links

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • A63F13/63Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor by the player, e.g. authoring using a level editor
    • A63F13/10
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/45Controlling the progress of the video game
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/6009Methods for processing data by generating or executing the game program for importing or creating game content, e.g. authoring tools during game development, adapting content to different platforms, use of a scripting language to create content
    • A63F2300/6018Methods for processing data by generating or executing the game program for importing or creating game content, e.g. authoring tools during game development, adapting content to different platforms, use of a scripting language to create content where the game content is authored by the player, e.g. level editor or by game device at runtime, e.g. level is created from music data on CD
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images
    • A63F2300/6607Methods for processing data by generating or executing the game program for rendering three dimensional images for animating game characters, e.g. skeleton kinematics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2213/00Indexing scheme for animation
    • G06T2213/04Animation description language

Definitions

  • the present invention relates to an image generation device and an information storage medium.
  • the application program must directly control the movement of the displayed objects in the virtual world, which increases the burden on the programmer who creates the application program. It was extremely difficult to build a complex and large virtual world.
  • the application program must control all the 3D coordinates of the display objects placed in the virtual world, so the number of display objects that can be placed in the virtual world, their movement and The complexity of the interaction was limited and the realization of virtual reality was insufficient. '
  • the present invention has been made in view of the above technical problems, and an object of the present invention is to provide an image generation device and an information storage medium that can easily construct a virtual world for image generation. Is to do.
  • the present invention provides at least one of creation, activation, execution per unit time, sleep, interruption, resumption, and termination of a process that is a process that can be executed in parallel and is an instance of a class. And a means for generating an image including a plurality of display objects each represented by an actor.
  • generation, activation, and execution per unit time, etc., of a function having characteristics as a multi-process and characteristics as a class instance are managed by the actor management means. Then, an image including the display object represented by the actor is generated.
  • the execution of each factor unit time (for example, one frame, one field) is managed by the actor management means, so that the actor starts operating only by throwing the actor into the virtual world. Perform the given role.
  • aku-yu has the characteristic of multi-process, it is possible to execute multiple aku-yasu in parallel in the virtual world, and to have each aku-yu do the task of each. This makes it possible to easily construct a virtual world where many objects appear.
  • an arc has a feature as an instance of a class. Therefore, it is possible to easily design an architecture using encapsulation and inheritance. Also, since the actors are highly independent, it is possible to use the actors designed for one application program in another application program. For this reason, it is possible to minimize the increase in the burden on the programmer even when constructing a large-scale virtual world where a large number of functions appear.
  • the present invention provides at least one of an actor for representing a display object, an actor for sound control, an actor for an interface, an actor for communication between actors, and an actor for storage management. Is prepared.
  • an actor for representing a display object an actor for sound control
  • an actor for an interface an actor for communication between actors
  • an actor for storage management an actor for storage management.
  • the present invention is characterized in that the ark for sound control performs sound control based on arrangement information from the Actor for representing a display object. In this way, for example, when the position of the display object is at a specific place, it is possible to generate a sound suitable for the specific place based on the arrangement information of the display object, and Realism can be increased.
  • the present invention provides information for indicating validity / invalidity of an arc, information for indicating validity / invalidity of display of a display object represented by an actor, and validity / invalidity of a time count of an arc.
  • Information information to indicate whether the time counting loop is enabled or disabled, information to identify the own actor, information to identify the parent actor, information to identify the child actor, Information for specifying the method of the display, information for specifying the model of the display object represented by the display, arrangement information of the display represented by the display, time information about the display, To identify the storage area that stores the information that identifies the type of action and the type of action associated with the action of the user, information about communication between actors, and the value of the variable of the action.
  • At least one of the information It is characterized in that fetching information including “” is prepared for each generated actor.
  • fetching information including “” is prepared for each generated actor.
  • the present invention is characterized in that a plurality of types of specific information are provided as information for specifying an arc.
  • a plurality of types of specific information are provided as information for specifying an arc.
  • specific information and temporary specific information are provided as specific information of actors.
  • by providing the specific information of the parent actor in the first hierarchical structure and the specific information of the parent actor in the second hierarchical structure for example, it is possible to simplify control and description of the display object having the joint. It becomes possible.
  • the information for specifying a method of an act may include a plurality of methods for executing information for each unit time and information for specifying a script for describing the method of the actor. It is characterized by including at least one piece of information for specifying from methods. For example, a script to describe the method of actors By preparing them, the design of the actor by the application programmer can be facilitated. In addition, by making it possible to select a method to be executed per unit time from multiple methods, it is possible to increase the variety of methods executed per unit time.
  • the time information relating to the actuating time includes information relating to an elapsed time after the actor time counting is enabled, information indicating a total elapsed time when the time counting loop is enabled, and a time related to the actuating dormancy. It is characterized by including at least one piece of information. For example, by giving the elapsed time information after the time count becomes valid for each evening, it is possible to have a relative time axis for each evening. Also, if time information relating to the dormancy of the total elapsed time information factor when the time count loop is enabled is provided for each actor, when the time count loop is enabled, when the factor is dormant, these time information are included. It is possible to perform various processes based on the above.
  • the present invention is characterized in that the actor information is stored in a given storage area in the form of a structure when the actor is generated, and actor management is performed based on the stored actor information.
  • actor management is performed based on the stored actor information.
  • the present invention is characterized in that the actor and other actors can access the actor information. For example, by rewriting the specific information and arrangement information of the own by another actor, the degree of variety of the virtual world represented can be increased.
  • the present invention also provides a method for real-time arbitrary combination of information for specifying a method of an actor, information for specifying a model of a display object represented by an actor, and arrangement information of a display object represented by an actor. It is characterized by being switchable.
  • the first model is operated by the first method and the first arrangement information in the first period, and is operated by the second method and the second arrangement information in the second period. Can be made.
  • the present invention provides a method for self-reproduction and It is characterized by performing at least one of self-destruction.
  • Performing self-replication of actors makes it possible, for example, to simulate the division of microorganisms.
  • self-destruction of actors for example, actors who have completed their assigned tasks will self-destruct themselves without waiting for an external instruction, reducing the processing load when viewed from the entire processing system. Is done.
  • the present invention provides a method executed when generating an arc, a method executed when starting an arc, a method executed every unit time, a method executed when a actor sleeps, and a method.
  • At least one of the methods is prepared as a predefined method of the function.
  • the present invention provides a first script for describing a method of a motion of a display object represented by an actor and a second script for describing a variable and a method of the actor. It is characterized by.
  • the member variables are represented by members of a structure unique to each actor, and the method is represented by the first script
  • the members are represented by members.
  • a variable is represented by a member of a structure unique to each actor and the second script, and a method is represented by the second script.
  • member variables and methods are unified.
  • the member variables have a structure unique to each actor (prepared for each actor).
  • the member variables are represented by a structure specific to each actor and a second It will be represented by a script.
  • the present invention is characterized in that a methed execution code used in common by a plurality of programs executed in parallel as a process is stored in the same storage area.
  • a methed execution code used in common by a plurality of programs executed in parallel as a process is stored in the same storage area.
  • the execution code of the program of each process is stored in a different storage area.
  • the execution code of the method shared by a plurality of architectures is stored in the same storage area, so that the required storage capacity can be significantly reduced.
  • the present invention is characterized in that a storage area required for execution of an act is secured when the actor is generated, and the reserved storage area is released when the actor ends. In this way, a storage area corresponding to the number of generated actors is secured, so that the required storage capacity can be saved. It also reduces the burden on the programmer and reduces errors related to memory management.
  • the present invention is characterized in that at the time of execution of each unit time, the method of execution of the method is switched from the upper level to the lower level of the hierarchical structure of the option. In this way, it is possible to apply the influence of the parent evening to the child evening within the same unit time, and to optimize the evening management.
  • the present invention is characterized in that the function management means is a library linked to an execution module of the application program. In this way, it is possible to receive various actor management services simply by linking the created application program to the library management means.
  • the present invention is characterized in that the actor management means includes means for executing the same script in which an arc method is described on different hardware resources.
  • the script created for the first device can be used for the second device, and compatibility can be ensured regardless of the development device, tool group, and execution environment. Effective utilization can be achieved.
  • the present invention also provides an operator that interactively controls at least one of generation, activation, execution per unit time, sleep, interruption, restart, termination, and arrangement information of an arc. Is prepared. In this way, the operator can interactively use the arc management service provided by the actor management means, thereby facilitating the development of application programs.
  • FIG. 1 is an example of a functional block diagram of the present embodiment.
  • FIG. 2 is a diagram for explaining the concept of an architecture according to the present embodiment.
  • FIG. 3 is a diagram for explaining examples of various actors.
  • FIG. 4 is a diagram for explaining the operation of the present embodiment.
  • FIG. 5A and FIG. 5B are examples of images generated according to the present embodiment.
  • 6A to 6I are diagrams for explaining the rules given to the character.
  • FIG. 7 is a diagram for explaining an arc structure.
  • FIG. 8A, FIG. 8B, and FIG. 8C are diagrams for explaining the time information of the actors.
  • FIG. 9A is a diagram for explaining an actual ID and a temporary ID of an acknowledgment
  • FIG. 9B is a diagram for explaining selection of a user-defined ever_time.
  • FIGS. 10A and 10B are diagrams for explaining combinations of scripts, models, and arrangements.
  • FIGS. 11A and 11B are diagrams for explaining self-replication and self-extinction.
  • FIGS. 12A and 12B are diagrams for explaining the level 1 script and the level 2 script.
  • FIG. 13 is a diagram for explaining the member variables and methods of the actor.
  • FIG. 14A is a diagram for explaining a storage area of execution code of a method common to a plurality of actors
  • FIG. 14B is an illustration of securing a storage area when creating an actor and releasing a storage area when terminating an actor.
  • FIG. 14C is a diagram for explaining switching of execution during execution of the ever_time.
  • Figure 15 shows how the library's actor management It is a figure for explaining a link.
  • Figure 16 is a diagram for explaining the sharing of scripts between the development environment and the execution environment.
  • FIG. 17A and FIG. 17B are diagrams for explaining the shell.
  • FIGS. 18A, 18B, and 18C are diagrams showing various types of apparatuses to which the present embodiment is applied.
  • FIGS. 19A and 19B are diagrams for explaining examples in which the present embodiment is applied to various image generations.
  • FIG. 1 shows a functional block diagram of the image generating apparatus of the present embodiment.
  • This image generation device is used for game devices, simulators, development tools for generating game images and CG images, and the like.
  • the operation unit 10 is for inputting operation information, and corresponds to a lever, a button, a handle, an accelerator, a keyboard, a mouse, and the like.
  • the processing unit 100 performs various processes such as program execution based on the operation information obtained by the operation unit 10 and a given program. It is composed of hardware.
  • the image generation unit 200 generates an image based on the processing result of the processing unit 100, and is configured by hardware such as CPU, image generation dedicated IC, DSP, and memory. The image generated by the image generation unit 200 is displayed on the display unit 12.
  • the processing unit 100 includes a fax management unit 110.
  • the function management unit 110 manages generation, activation, execution per unit time, sleep, interruption, restart, termination, and the like of the actor, which is a process that can be executed in parallel and is an instance of a class.
  • the image generation unit 200 generates an image including a plurality of display objects each represented by the Actor.
  • information for managing the generation of the actor, information for generating an image including a display object represented by the actor, and the like are stored in the information storage medium 120.
  • the actor management units 110 and the like function based on the stored information.
  • the stored information can include, for example, image information, sound information, shape information of a display object, table data, list data, and the like, in addition to the program code.
  • Examples of the information storage medium 120 include a memory such as a ROM and a RAM, a CD-ROM, a game cassette, and an IC reader! ⁇ , DVD, MO, FD, etc. can be used.
  • the function of this embodiment is a process that can be executed in parallel and is an instance of a class.
  • an instance of a class ie, an object
  • the acknowledgment of the present embodiment is different from a general acknowledgment having no class structure (for example, see pages 154 and 155 of the separate volume interface "All about Object Orientation").
  • aku-yu is an independent and complete subject, and has no relationship like a class and its instances, and no interaction like messages between instances.
  • functions of the present embodiment are related to classes and their instances.
  • objects (instances) in the object-oriented manner are also used. Like a message in between, it can execute immediately and force a response.
  • an object in object orientation runs on one process and has no parallelism. That is, it does not have the property of a process that can be executed in parallel. Therefore, the actor of this embodiment is different from the object in the object orientation in this point.
  • the present embodiment has the same properties as objects in object orientation. It is characterized by the fact that a new concept of factor that has both the characteristics of general actors is introduced, and application software can be constructed using this factor.
  • FIG. 2 schematically shows an image of an act that operates in parallel under the control of the actor management unit 110.
  • a virtual world a plurality of objects move in parallel like a creature at the same time.
  • the user designs the apparent movement of the actor using the CG tool, and describes the meaning and content of the behavior using a special script. Then, just throw the created actors one after another into this virtual world (fir e), and the rest of the actors will start to work.
  • the actor that has started performs inter-actor communication with other actors as necessary. Unnecessary acknowledgment is specified by specifying the acknowledgment ID (specified information) and the value is set to k i 11. Then, the actors themselves perform the necessary post-processing and disappear from the virtual world.
  • the architecture of the present embodiment also has the property of an object in the object orientation, it is possible to design the architecture itself using inheritance, etc., and to model the phenomena of the real world relatively. This can be easily performed.
  • the display actor is a function to represent a stationary or moving object.
  • the sound control actor controls game sounds and the like, and generates a sound to be heard at the position where the car is located, based on position information from a display ark representing a car, for example.
  • Interface The interface actor is the interface between the user and the system, as well as other boards. For example, operation information from a game controller or keyboard is transmitted via a user interface actor. Also, if the data is to be transferred to another board, the contents of the transfer data and the transfer instruction need only be sent to the board interface. Then, the board interface switch transfers the data to another board while controlling the transfer timing, etc. Is returned to the transfer requesting actor.
  • the storage management actor secures and releases an area for storing factor variables (structures allocated for each factor) and variable variables. Garbage collection is also performed as needed.
  • the physics calculation actor is responsible for physics calculations related to the movement of displayed objects and physics calculations related to generated sounds.
  • the search and sort functions are responsible for searching and sorting data, and the deactivator base actor is an actor that serves as a database for display objects in the virtual world.
  • the management and control actor is, for example, an actor that manages and controls the movement of a plurality of display actors, and manages and controls the entire system. Thus, in the present embodiment, each actor divides the work to be performed in the virtual world.
  • the architecture of this embodiment has both the characteristics as an object and the characteristics as a process (general architecture).
  • actor ID By specifying the actor ID, it is possible to perform various operations, for example, to retrieve the information possessed by the actor, or to perform ki 11 on an unnecessary actor.
  • Each aku evening has a parent aku evening (corresponding to the parent process) and a child aku evening (corresponding to the child process), and as a whole, constitutes one giant tree structure.
  • an ark waiting room As shown in FIG. 2, in this embodiment, an ark waiting room, a script waiting room, and a model waiting room are provided.
  • the entity of the actor waiting room is the actor structure described later. That is, in the present embodiment, a data type for storing factor information in each member of the factor structure is prepared in advance.
  • the script waiting room there are multiple types of scripts that describe the meaning and contents of each actor's behavior, such as a script for root actors and a script for control actors.
  • this script can include both low-level Level 1 scripts that describe the motions of keyholes (key frames, interpolation methods, parent-child relationships, etc.) and both variables and methods of keyholes. There are higher level 2 scripts.
  • the model waiting room is a waiting room for the model group used for the actor.
  • the entity is a model group file.
  • This model group file contains, for example, the level 1 script of the polygon object. The correspondence between IDs in the board and IDs in the board is described.
  • the script and model files described above are mainly created by the application programmer.
  • the script and model corresponding to the acknowledgment are referenced from the script waiting room and the model waiting room, respectively, as shown in F of FIG.
  • the members of the actuating structure have a script ID and a model group ID, as described later.
  • the actor management unit 110 sends the actor from the actor waiting room. Write the script ID, model group ID, etc. of the actor to the actor structure. Then, after the actor's craeate, when the actor is: fired, the actor is thrown into the virtual world. Specifically, a complete function was created at cr e ate, but the flag indicating startup and execution was turned off. By performing f i r e, the flag is turned on, and it is treated as a target to be started and executed in the virtual world.
  • the root actor 20 activates the control actor 22, the WDB (World Data Base) 24 and the shell act 26, which are its children.
  • the control character 22 creates and fires its child character characters 28 and 30 and the character characters 28 and 30 walk and actor characters 38 and 40 cre at e and fire.
  • WDB aku 24 cr eat te and fir e with its children, environmental actor 32, stage aku 34, and egg wrap 36. In this way, a plurality of actors 20 to 40 can be executed in parallel, and a virtual world is constructed.
  • the root agent 20 creates and starts the control agent 22, the WDB agent 24, and the shell actor 26, and controls the entire system, and operates according to the description of the route script. However, the model group information is null.
  • the control function 22 controls and supervises the character functions 28 and 30, and operates according to the description of the control script.
  • 08 Akyu 24 is an environmental It controls and supervises Kuta 32, Stage Actor 34, and Egg Maker 36.
  • the shell actor 26 controls a shell on the board or on a workstation connected to the board. This shell allows the user to interactively control the creation, activation, execution of unit time, sleep, suspend, resume, and termination of actors.
  • the model group information of the control actor 22, the WDB actor 24, and the shell act 26 is also null.
  • Character character 28 is in charge of the brain of character 42 on the screen, and character character 30 is in charge of the brain of another character (not shown).
  • the brain scripts used by the characters 28 and 30 describe, for example, the actions to be taken if the character hits a wall or finds an egg.
  • the walking functions 38 and 40 are for describing the walking motion (animation) of the character.
  • the motion script (Level 1) used by Walkers 38 and 40 describes the movements of the character's torso and feet.
  • the environment actor 32 controls the color of the background other than the stage 44, the brightness of the light source, and the like.
  • the stage work 34 and the egg work 36 are for displaying the stage 44 and the egg 46, which are still objects, respectively.
  • model group information of the character actors 28 and 30 is null, and the environment act 32, the stage act 34, the egg act 36, and the walking act 38, 40 each have corresponding model group information. I have.
  • the script of the script 20 includes parts such as creat e_on 1 y, fire-on 1 y, every one time, sle ep-on 1 y, kill-on 1 y, and die-on 1 y. These are the parts that are executed at the time of creation, startup, execution at unit time (for example, one frame), sleep, and termination (kill, die), respectively. Therefore, when the root actor 20 is fired, the method described in the fire—only script of the root actor 20 is executed.
  • the parts of fireon 1 y For example, crefir eAc tor (control actor, null) and crefir eAc tor (WDB actor, null) are described as generating and starting control actor 22, WDB actor, etc.
  • the actor management unit 110 which is a library of function groups such as crefir eActor (generation and startup), receives the instruction to create and start an actor by the root agent 20 and executes it by the actor management unit 110. Will do.
  • the ID (specific information) of the actor is returned as a return value.
  • ID 1, ID 2, and ID 3 are returned for each of the control actor 22, the WDB act 24, and the shell act 26. Therefore, thereafter, it is possible to specify each function using these ID1 to ID3. For example, if the control actor 22 wants k i 11, it can be described as k i l lAc t or (I D 1).
  • the walking scripts 38 and 40 use the same walking script, the motion (movement of the torso, limbs) is the same. In other words, an arc of a different model group but having the same motion (however, the playback speed and the phase in the repetitive motion can be individually set) is started.
  • the fi According to the description of the re-on 1 y part, the environmental actor 32, the stage actor 34, and the egg actor 36 are generated and started.
  • environmental factor 32, stage factor 34, and egg factor 36 use model group 3, model group 4, and model group 5, respectively, according to the description of the model group information specification part of crefire actor of WDB factor 24. Will be represented.
  • the every_t i m e part of each script is executed for each frame.
  • the part of the e-veri-time of 28 and 30 characters describes how a character behaves when it hits a wall or finds an egg.
  • various processes to monitor the position and the age of each character and to perform according to the monitoring result are described.
  • the part of s1eep_on1y is executed instead of the part of eVery-time.
  • the model of the character actors 28 and 30 s 1 ee p_on 1 y is described to change the model during sleep, it is possible to change the expression of the character to a sleeping expression during sleep. Become.
  • the management of the actor 110 such as the creation, activation, execution per unit time, sleep, interruption, resumption, and termination of the actor as described above, is performed.
  • the actor management unit 110 since the actor management unit 110 performs such management, it becomes possible to execute in parallel a process having a class structure as a process.
  • each method executes the method described in the eVery-time part independently according to the surrounding circumstances, for example, it does not increase the programmer's burden so much, and is similar to the real world. It is possible to construct a large-scale virtual world.
  • the programmer only has to design for each actor and put it into the virtual world at the end (or in order according to the design), and because the independence of each actor is high, the This embodiment also has a feature that the division of labor and integration can be performed smoothly.
  • each character includes the first rule shown in FIGS. 6A to 6C, the second rule shown in FIGS. 6D to 6F, and the third rule shown in FIGS. 6G to 6I. Rules are given. These rules are described in the brain script of each character 28, 30 in FIG.
  • the first rule is as follows. That is, when the character 42 reaches the end of the stage 44 as shown in FIG. 6A, it rotates on the spot and bounces off at the reflection angle specified by the incident angle, as shown in FIG. 6B. Advance again as shown in Figure 6C.
  • the second rule is as follows. That is, if the character 42 finds the egg 46 with no egg placed on the head as shown in FIG.6D, the character 46 is placed on the head as shown in FIG.6E and shown in FIG.6F. And keep walking with eggs 4 6 on your head.
  • the third rule is as follows. That is, as shown in FIG.6G, when the character 42 finds another egg 46b with the egg 46a placed thereon, as shown in FIG.6H, the character 462 has its own egg 46a. Place and continue walking as shown in Figure 6I. For a while after picking up and placing eggs, it will ignore the eggs for a while.
  • the eggs gather in several places on the stage 44 as shown in FIG. 5B.
  • all the characters 42 a to 42 e are moving using the same brain script (first to third rules: 28, 30 in FIG. 2).
  • the same walking script is used for walking characters (38, 40 in Fig. 2) that determine the movement of the torso and legs of each character. Therefore, the characters 42a to 42e have the same brain, and the torso and feet move in the same motion pattern.
  • different models were used for the characters 42a-42c, 42d, and 42e, and the appearances were different. The arrangement positions of the game characters 42 a to 42 e in the initial state are also different.
  • the programmer only needs to create one brain script, one walking script, etc. of the character, and as shown in FIGS. 5A and 5B, a complicated program in which many characters of the same type appear. Can build a large virtual world. In other words, it is possible to construct a virtual world full of realism without significantly increasing the burden on programmers.
  • the brain scripts of the characters may not be all the same, and for example, only the brain script of the character 42a may be slightly different from the others. In this case, the programmer only needs to create the difference program.
  • two brain scripts with completely different functions are run on two different factories, and inter-actor communication is performed between them (or with a higher-level party managing them). , By combining those functions, It is also possible to make a new brainstorming script.
  • the member variable of the base class is always the member variable of the derived class plus the difference member variable of the base class. Smart inheritance can be realized.
  • the actor structure is a structure allocated to each actor, and is a core structure of the present embodiment.
  • FIG. 7 shows an example of members of the actor structure of the present embodiment.
  • the flag is a flag indicating whether the flag is valid or invalid.
  • the actor flag is turned on, and when the actor ends (kil l, die), the actor flag is turned off.
  • the display flag is a flag indicating whether display of the display object represented by the actor is valid or invalid. When the display flag is turned on, the display object represented by the arc will appear on the screen.
  • the time count flag is a flag indicating whether the time count of the actor is valid or invalid.
  • each factory has its own time axis, and the way the time progresses can be changed.
  • the time count flag turns on, the time of that actor advances, and when it turns off, the time progress stops.
  • the time count flag of actor 1 proceeds with t 1 as a starting point.
  • time to be added for each frame is stored as a floating-point variable. For example, “0” means no counting up, “1” means 1 It is also conceivable to use a method of "time advances by one frame per frame” or "if" 2.5 ", time advances by 2.5 frames per frame”.
  • the following effects can be obtained by controlling the time lapse speed independently for each function. That is, in real-time image generation, the processing load becomes heavy and frame dropping may occur. In such a case, for example, if the time lapse speed is increased only for the foot portion of the character, it is possible to generate an image that does not cause inconsistency even when a frame is dropped.
  • the loop flag is a flag indicating whether the time counting loop is enabled or disabled. For example, it is assumed that the life of an aku evening is 100 frames. Then, when the loop flag is off, the actor disappears in the 100 frames whose life is as shown in FIG. 8B. On the other hand, when the loop flag is turned on, the actor time is reset every 100 frames as shown in FIG. 8C, and the life of the actor can be made virtually infinite. For example, even if only 100 frames of motion are described in the level 1 script, turning on the loop flag allows the object represented by that actor to operate for an infinite period of time ( This is effective for repeated animation such as walking a human.) Thereby, the description of the script can be simplified.
  • the actual ID of the actor is information for identifying the actor.
  • the actual ID of the factory is determined when the factory is created, and is written by the factory management unit 110 into the factory structure, and cannot be changed basically.
  • the temporary ID of the actor is the default Is the same as the real ID, but can be changed. By making the temporary ID different from the real ID, it is possible for AXY to perform various actions under the name of another AXY. As shown in Fig. 9A, if actor 1 acts on actor 2 with a temporary ID different from the real ID, actor 2 takes action on itself with the actor specified by the temporary ID. Will be recognized.
  • Actor 1 creates Actor 3 as his own child
  • his temporary ID is the same as Actor 4's ID
  • Actor 3 will be a child of Actor 4 instead of Actor 1. Will be generated.
  • the processing agent performs the processes one after another while sequentially changing its temporary ID to the ID of these multiple actors.
  • the processing agent performs the processes one after another while sequentially changing its temporary ID to the ID of these multiple actors.
  • you want to use a privilege that is only granted to root actors you only need to change your temporary ID to the root actor's ID when you want to use that privilege.
  • the actual ID of the parent actor is information for identifying the parent actor of this actor.
  • the actual ID of the parent in geometric operation is information for specifying the parent in geometric operation.
  • the actor that created the child actor becomes the parent of the child actor.
  • a hierarchical structure based on a geometric operation different from such a parent-child structure For example, assume that there is a display object configured to connect the first and second polygon objects with joints. In this case, it is preferable that the origin of the coordinates of the second polygon object be set based on the coordinates of the first polygon object. In such a case, the parent of the geometric calculation of the second polygon object is set as the first polygon object.
  • various effects can be obtained by preparing a plurality of types of specific information (real ID, temporary ID, geometric ID) as information for specifying an arc. Can be.
  • the script ID and the model group ID identify the currently used script and model. Information for As described above, in the present embodiment, the script ID and the model group ID currently used can be freely changed in real time for each session, so that the variety of images obtained can be significantly increased.
  • the pointer of eve r_func is information for specifying the user-defined function eve ry—func to be executed next in the part of eve ry_time. That is, in the present embodiment, as shown in FIG. 9B, it is possible to select which one of every-funcl to every_funcN to be replaced with the immediate definition method every-time is executed. This frees the constraint that all behaviors must be described in the eVery_timer part, reduces the burden on the programmer, and allows the self-actor to execute every frame even from external factories. Since the operation of switching the processing content to be performed can be easily realized, the range of expression is expanded. In addition, complex methods can be realized by directly calling multiple e-func-func as needed and combining them in various ways.
  • the lifetime indicates the lifetime of the device, and the elapsed time and total elapsed time both indicate the elapsed time since the time count flag was turned on. Regarding the total elapsed time, even if the loop flag is on, the count is not reset, and the total elapsed time is shown.
  • the time until waking represents the time remaining before waking up during sleep. In this way, by preparing the time information about the event as a member of the event structure, it is possible to have a unique time axis for each event or to enable repeated operation. It becomes possible.
  • the location information of the factor represents the location information (position vector) and direction information (rotation matrix) of this actor in the world coordinate system.
  • the walkers 38 and 40 shown in FIG. 2 perform various motions described in the level 1 script with this arrangement information as the origin. For example, it is possible to construct a virtual world that looks large and complex by preparing multiple akuyu with the same brain script and the same walking script, and changing only the placement information of these Actors.
  • the information on child elements is information for specifying the start position, end position, total number, and the like of child elements in the storage area.
  • the temporary ID and type of the actor who caused the action is information for identifying, for example, the last actor who caused the action and the type of the action. This information is effective, for example, when debugging a program. It is also effective when you are attacked from an unknown actor, for example, and try to revenge the actor.
  • the actor communication information is for knowing the message and the like sent to itself, and is represented by a structure. By referring to this information, you can know how many messages have been sent to yourself, for example.
  • the factor variable storage area information is information for specifying the storage area of the actor variable declared in the level 2 script, and is represented by a structure in the present embodiment.
  • the storage area of the factory variables declared in the level 2 script will be secured when the actor is created and released when the actor terminates.
  • factor information various types of information as shown in FIG. 7 (hereinafter, this is referred to as “factory information”) are stored as members of the factor structure.
  • member variables and methods are unified.
  • the member variables correspond to the actor variables and the akuno structure declared in the level 2 script.
  • Actor information The actor variables are defined by the programmer of the application program, whereas the actor information stored in the actor structure is predetermined by the system as a highly versatile variable. is there.
  • the actor information is stored in the actor structure, for example, by the actor management unit 110 when the actor is generated. Then, the actor management unit 110 performs the actor management based on this actor information.
  • the user can access his / her own or other aku evening information.
  • various effects can be obtained by reading and rewriting the temporary ID, life, and placement information of the actor by other actors.
  • the combination of the information for specifying the method of the actor, the information for specifying the model of the display object represented by the actor, and the arrangement information of the display object represented by the actor is arbitrary in real time.
  • Another feature is that it can be switched to another.
  • script 1 is combined with model 1 and placement 1.
  • script 2 with model 1 and placement 2.
  • an akuno structure shown in Fig. 7 is prepared for each akuno, and the script ID, model group ID, and arrangement information (position / direction information) of the akuno structure are provided in real time for each Actor. Because it can be changed.
  • FIG. 7 shows that it can be changed.
  • various display objects 58, 60, and 62 can be expressed by combining the motion 50 described by the script with the models 52, 54, and 56. Conversely, multiple motions and one model may be combined. For example, a character walking on a flat ground may change the motion of the foot portion of the evening to a motion for the stairs when the character walks on the stairs. Furthermore, by combining this with arrangement information, the degree of variety can be increased. As described above, according to this embodiment, a variety of image expressions can be realized with a small amount of motion information, model group information, and arrangement information.
  • self-replication, self-destruction, and the like of the akuya can be performed using information for specifying the akuya.
  • a child (1) grows to a parent (1), and a child (2) divides from the parent (1).
  • the child (3) splits further from the parent (1), and the child (4) splits from the parent (2) where the child (2) grows.
  • Such a simulation may be described in a parameter of the actor's scribble ever_time, for example, so that cr e at eActo $$ my se 1 f is executed under a certain condition.
  • necessary information such as position information and rotation information can be copied to the duplicating actor.
  • the proprietary actor 80 is being attacked by enemy actors 82, 84, and 86.
  • own machine actor 80 has its own durability as an actor variable, and this durability decreases with each attack from enemy actors 82, 84, and 86.
  • the own-actor 80 monitors the endurance amount, for example, in the part of “every_time”. Then, when the condition that the durability is 0 or less is satisfied, execute kil lActor $ mys elf and self-destruct (for example, after executing the explosion pattern display part described in ki 11—on 1 y). I do. By doing so, the independence of the axle is increased, and self-destruction can be achieved without externally executing a ki 11 instruction. Therefore, programming can be simplified.
  • level 1 scripts and level 2 scripts shown in FIGS. 12A and 12B are prepared as scripts dedicated to describing the actors.
  • One level 1 script and one level 2 script each correspond to one fax.
  • writing a script is equivalent to designing an architecture.
  • the level 1 script is for describing the method of the motion of the display object, and specifically includes key frame information, interpolation method information, and hierarchical structure information between models.
  • Fig. 12A for each of the body position information tx, ty, tz, and rotation information rx, ry, and rz of the displayed object, the frame number and the interpolation method (Hermitian interpolation, linear interpolation, Fixed) etc. are described.
  • the level 2 script is for describing the variables (member variables) and methods of the axle, and specifically, declares the axle variables as shown in Figure 12 12. Includes parts such as cre at e-on ly, fire-on ly, eve ry one time, sleep-on ly, kill-on ly, die-on ly, etc.
  • the variable part is a part that declares a variable that is valid only in that element. This actor variable is equivalent to a member variable of an object in object orientation. cre at e—onl y, fire—only, every—time, sle ep—on 1 y, kill—on 1 y, and die—on ly parts are created, started, and per unit time, respectively. Is a part that describes what the akudo does when performing, sleeping, killing, or sensually dying, and these parts correspond to object-oriented methods of objects.
  • One feature of this embodiment is that creat e_o ⁇ 1 y,
  • various things such as fire-only, ever_time, etc. are prepared.
  • the actor management unit 110 prepares predefined methods and manages the creation, activation, and execution per unit time of the actors, so that actors with a class structure can operate as multi-processes.
  • a user-defined method is provided in addition to such a predefined method.
  • the user-defined method is represented, for example, as actor_func.
  • User-defined methods are equivalent to object-oriented member functions, and are methods that can be freely defined by the user.
  • C language auto variables can be used. Also, if you declare a static variable, the static variable becomes a shared variable between the factories sharing the script.
  • predefined variables and predefined functions are also prepared.
  • Predefined variables are represented, for example, by “$ + alphanumeric characters” and represent commonly used system-related variables.
  • Predefined variables are reserved words and cannot be used as actor variables.
  • the predefined variable consists of two parts with ".” Between them. The former indicates the owner of the actor structure, and the latter indicates the member of the actor structure. For example, $ MY. RID and $ P A. VID represent your own real ID and parent's temporary ID, respectively.
  • the script description can be simplified.
  • functions for actor operations, communication between messages (messages, etc.), and board control (drawing, sound, etc.) are provided. Actor management department
  • the entity of 110 is a library of these functions.
  • cre at eAc tor creates an actor
  • fire A ctor starts an actor
  • crefir eAc tor creates and starts an actor
  • lo opAc tor acts Set the evening to loop execution mode
  • paus eAc tor stop aku evening time
  • f gAc tor display actor
  • sto A ctor stop aku evening activity
  • cont There are Actor restart the activity of Akaku
  • change e Ap arent change the parent actor of the designated activity).
  • set Avid (set a temporary ID of the actor), set Amd 1 g (set the model group of actor), setAt tlf rm (set the age of actor), setAtx , SetAty, setAtz (sets the coordinates of akuya), setArx, setAry, setArz (sets the rotation of akuya).
  • object-oriented member variables are represented by members of the ark structure, and in the object-oriented method, the level 1 level is used. Expressed in script.
  • the member variables are represented by the members of the element structure and the element variable description part of the level 2 script, and the method is represented by the level 2 script.
  • the members of the actor structure can be represented by factory variables, by providing the minimum variables required for all factory in the form of a structure, the factory management module 110 Evening management can be more efficient.
  • the execution codes of the methods commonly used by a plurality of programs executed in parallel as processes are stored in the same storage area.
  • the characters 64, 66, and 68 are executed in parallel as processes under the control of the control agent 63.
  • Characters 64, 66, and 68 have a common brain and use a common brain script (method) 70.
  • the execution code of the brain script commonly used is stored in the same storage area 76.
  • the execution codes are stored in the storage area by the number of programs. For example, if four processes are started, four storage areas will be allocated for each of them.
  • the execution code of the method common to the actors started as a multi-process is stored in the same storage area, so that the required storage capacity can be saved.
  • a storage area required for executing the actor is secured when the actor is generated, and the secured storage area is released when the actor ends (kill, die).
  • the storage area required for the actor's activities is automatically secured and released, so there is no need for the user to perform dynamic storage management.
  • the storage area that is now in use is reused by future actors.
  • the required storage capacity can be remarkably reduced, in combination with the method described in FIG. 14A for storing the execution code of the common method in a plurality of modules in the same storage area.
  • the execution of the method of the actor is switched in the order from the upper level to the lower level of the hierarchical structure of the actor. That is, as shown in FIG. 14C, when executing the ever y_time, for example, in the order of (1), (2), (3), (4), (5), (6), (7), (8) Switching the execution of the actor's method. Specifically, a recursive call is made in a function that "executes the actor when focusing on a particular actor and then sequentially executes the actor's children.” If the first “actor” is changed to “root aku” (corresponding to (1) in Fig.
  • message communication (hereinafter simply referred to as message)
  • the communication content can be immediately sent from the source actor to the destination actor.
  • the message is an asynchronous communication.
  • This method is mainly used to send a request for immediate processing on the spot, such as executing a method call for the destination immediately after transmission.
  • the order of processing of each function within one frame (or one field) is basically recursive from the parent to the child. Since the message follows a hierarchical structure, the message can also be used to transmit information from a parent to a child in the same frame.
  • the body of the message is a structure that can be freely defined by the user. However, one acknowledgment cannot receive more than one message at a time.
  • E-mail communication (hereinafter simply referred to as e-mail)
  • Email In e-mail, the communication content is always delivered from the source actor to the destination actor with a delay of one frame (or one field).
  • Email is synchronous communication. It is mainly used when requesting processing or transmitting information at the same time during the evening.
  • the body of the mail is also a structure that the user can freely define. However, one actor can receive multiple mails at the same time. Since the header is added at the beginning of the mail as information for synchronous communication and other purposes, the size is larger than that of the message.
  • the function manager is equivalent to a basic program for managing the actors, and the substance of the functions is, for example, a function group (library) linked to an execution module of an application program.
  • a function group library
  • the level 1 script is created by the given CG file
  • the level 2 script and model files are created by the programmer by the given text editor.
  • a dedicated script generation application utilizing a GUI may be used.
  • These level 1 scripts, level 2 scripts, and model files are compiled by the script compiler and converted to runtime scripts. This runtime script is linked with the library, the Actor Manager, and other source files to become the final executable.
  • the workspace management unit is linked to the application program both in the development environment on the workstation and personal computer and in the execution environment on the game device. This allows the operation in the development environment to be accurately reproduced in the execution environment, facilitating development.
  • the feature of the factor management unit of the present embodiment is that the same script in which the method of the factor is described can be executed on different hardware resources.
  • the same script is used for the hardware resources (WS, PS) in the development environment and the hardware resources (game device) in the execution environment by using the AX module management unit of this embodiment.
  • WS, PS hardware resources
  • game device hardware resources
  • the script developed for the first game device can be easily used for the second game device. This makes it easy to port the application program to another device.
  • the aku evening management section operates as an in evening pri-even for level 1 scripts. That is, the key frame information is read and the motion information is obtained by successively interpolating the key frame information. Furthermore, the level 2 script may be operated as an interpreter to interpret and execute the sequential instructions. However, in this embodiment, the script is temporarily executed by a C language compiler (that is, executed as a compiler language). ).
  • the tasks performed by the AXY management department are mainly as follows.
  • an operator 90 interactively controls the generation, activation, execution per unit time, dormancy, interruption, resumption, termination, etc. of the actor as shown in FIG. 17A.
  • Shell (actor) 94 is provided.
  • This shell 94 is a command interpreter mainly used in the development environment.
  • the shell 94 moves the hierarchical structure of the aku evening, checks the status of each actor, kills a particular aku evening, and performs other aku evening management relations provided by the aku evening management department. This is a special feature used when the operator 90 uses the service interactively. That is, in this embodiment, the shell 94 is also an actor written by the level 2 script.
  • mis [n] is a prompt
  • the number n in Katsuko is the total number of frames (total elapsed time) of the shell actor.
  • pwd is a command to display the current position (current work).
  • 1 s is a command to display all characters of the actor.
  • Exe 5 is a command to execute only 5 frames from now, and run is an instruction to continue execution unless there is a stop request.
  • 18A, 18B, and 18C show examples in which the present embodiment is applied to various devices.
  • FIG. 18A shows an example in which the present embodiment is applied to an arcade game device.
  • the player enjoys the game by operating the lever 1102, the button 1104, etc., while watching the game image projected on the display 1100.
  • a board 1106 incorporated in the device has a CPU, an image generation IC, a sound generation IC, and the like mounted thereon.
  • Information and the like for generating an image including a plurality of display objects each represented by the evening are stored in a memory 1108 which is an information storage medium on the substrate 1106.
  • stored information include at least one of program codes, image information, sound information, display object shape information, table data, list data, player information, and the like for performing the various processes described above. .
  • FIG. 18B shows an example in which the present embodiment is applied to a home-use game device.
  • the player operates the game controllers 1202 and 1204 while watching the game image projected on the display 1200, and enjoys the game.
  • the storage information is stored in a CD-ROM 1206, an IC card 1208, 1209, or the like, which is an information storage medium detachable from the main unit.
  • Figure 18C shows the host device 1300 and the host device 1300 and communication line 13
  • the stored information is, for example, a host device
  • the information 1300 is stored in an information storage medium 1306 such as a magnetic disk device, a magnetic tape device, or a memory that can be controlled.
  • Terminal 1304-1 ⁇ : L 304 has a CPU, image generation IC, and sound generation IC, and can generate game images and sound independently If it is possible, a game program for generating game images and game sounds is delivered from the host device 130 to the terminals 1304-1 to 1304-n. On the other hand, if it cannot be generated stand-alone, the host device 1300 generates a game image and game sound, transmits these to the terminals 1304_1 to 1304-n, and outputs them at the terminal. Will be.
  • the actor management unit is described as a function group (library) described in C language, but the implementation form of the actor management unit is not limited to this.
  • an actor structure is prepared and actor management is performed, and a script is used to describe the contents of the actor.
  • the present invention is not limited to this.
  • FIG. 19A shows an example in which the present invention is applied to image generation of a racing game.
  • operation information from an input device 90 such as a handle or an accelerator is monitored by an input monitoring actor 91.
  • the input monitoring actor 91 sends information such as the amount of rotation of the steering wheel and the amount of depression of the accelerator to the own vehicle actor 92, and the own vehicle actor 92 receives the position of the own vehicle based on the transmitted information.
  • Find direction information The position and direction information is sent to the background control actor 94, and the background control actor 94 is in charge of the background display at each location on the map based on the information. Controls 1-95-8 and obtains background image information at the position of the vehicle.
  • the position and direction information is also sent to the sound control actor 93, and the sound control actor 93 performs sound control using the information. For example, if the vehicle is located in a tunnel 96 on a map, sound control is performed so that the sound can be heard in the tunnel.
  • FIG. 19B shows an example in which the present invention is applied to generation of an image of a bird moving in a group.
  • the swarm intelligence calculation agent 97 calculates the coordinates of the bird's center of gravity and the rotation angle when the bird flies while flapping. In this case, for example, (1) keep the minimum distance between other objects in the environment, (2) match the speed vector of other birds in the vicinity, and (3) move in the direction that seems to be the center of gravity of other birds in the vicinity.
  • Swarm intelligence calculation agent 97 performs calculations based on rules such as moving. Also a bird ec 9 8 -1 ⁇ 9 8 -4 works with a level 1 script that represents the flapping of a bird. Further, the present invention can be applied to generation of an image of a fighting game, and the like. In this case, for example, by preparing a fighting game character actor, a skill actor, and a weapon actor, the degree of variety of the combination of the fighting game character, the skill, and the weapon can be significantly increased.
  • the present invention also provides a computer graphics image creation device, a development tool, a business game device, a home game device, a simulator for operation training, a large attraction device in which a number of players participate, a personal computer, It can be applied to various devices such as multimedia terminals.
  • the present invention is particularly effective for a three-dimensional image generation device, but can also be applied to a two-dimensional game device.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Processing Or Creating Images (AREA)

Description

明 細 書 画像生成装置及び情報記憶媒体
[技術分野]
本発明は、 画像生成装置及び情報記憶媒体に関する。 [背景技術] '
ゲーム装置やコンピュータグラフィックス等においては、 複数の表示物等によ り構成される仮想的な世界を構築し、 この仮想世界での視界画像を生成すること で、 仮想現実感溢れる画像生成の実現を図っている。
しかしこれまでの画像生成技術では、 仮想世界の表示物の動き等を、 アプリケ ーシヨンプログラムが直接制御しなければならず、 アプリケーションプログラム を作成するプログラマの負担も大きくなるため、 現実世界のように複雑で大規模 な仮想世界を構築することが極めて困難であった。
3次元ゲーム装置を例にとれば、 アプリケーションプログラムは、 仮想世界に 配置される表示物の 3次元座標等を全て制御しなければならないため、 仮想世界 に配置できる表示物の個数やそれらの動き及び相互作用の複雑さ等が制限され、 仮想現実の実現が不十分なものとなっていた。 '
このためハードウェアに密着した低レベルのプログラム (O S ) やグラフイツ クス用ライブラリと、 アプリケーションプログラムとの間に入る、 仮想世界を構 築 ·操作するためのソフ トゥヱァの登場が待たれていた。 この場合、 前記ソフ ト ウェアは、 アプリケーションプログラム毎に用意すべきものではなく、 汎用性の 高いものであることが望まれる。 即ち、 前記ソフトウェア上に構築された世界や その構築要素は、 異なるアプリケーションプログラム間でも、 互換性を保つこと が望まれる。 また、 前記ソフトウェアは、 異なるプラットホーム (システム基板) 上に移植されても、 ハードウエアの差異を吸収できるものであることが望まれる。 [発明の開示]
本発明は、 以上のような技術的課題に鑑みてなされたものであって、 その目的 とするところは、 画像生成のための仮想世界の構築を容易化できる画像生成装置 及び情報記憶媒体を提供することにある。
上記課題を解決するために本発明は、 並列実行可能なプロセスであり且つクラ スのインスタンスであるァク夕の生成、 起動、 単位時間毎の実行、 休眠、 中断、 再開及び終了の少なくとも 1つを管理するためのァク夕管理手段と、 ァクタによ り各々が表される複数の表示物を含む画像を生成する手段とを含むことを特徴と する。
本発明によれば、 マルチプロセスとしての特徴とクラスのィンスタンスとして の特徴を持つァク夕の生成、 起動、 単位時間毎の実行等が、 ァクタ管理手段によ り管理される。 そしてこのァクタにより表される表示物を含む画像が生成される。 本発明によればァク夕の単位時間 (例えば 1フレーム、 1フィールド) 毎の実行 等はァクタ管理手段により管理されるため、 ァクタを仮想世界に放り込むだけで、 そのァク夕は動作を開始し、 与えられた役割を遂行する。 そしてァク夕はマルチ プロセスとしての特徴を持っため、 仮想世界の中で複数のァク夕を並列実行させ、 各ァク夕に各々が担当する仕事を行わせることが可能となる。 これにより多くの 表示物が登場する仮想世界を容易に構築することが可能となる。 更に本発明では、 ァク夕はクラスのインスタンスとしての特徴を持つ。 従って、 カプセル化や継承 を利用して、 容易にァク夕の設計を行うことができる。 また、 ァクタの独立性が 高いため、 1つのアプリケ一シヨンプログラムのために設計したァクタを他のァ プリケ一シヨンプログラムで使用することも可能となる。 このため、 多数のァク 夕が登場する大規模な仮想世界の構築の際にも、 プログラマの負担の増加を最低 限に抑えることが可能となる。
また本発明は、 表示物を表すためのァクタ、 音制御のためのァク夕、 インター フェースのためのァクタ、 ァクタ間通信のためのァク夕及び記憶管理のためのァ クタの少なくとも 1つを用意することを特徴とする。 このように本発明のァク夕 には、 表示物を表す仕事のみならず、 種々の仕事を担当させることができる。 また本発明は、 音制御のための前記ァク夕が、 表示物を表すための前記ァクタ からの配置情報に基づいて音制御を行うことを特徴とする。 このようにすれば、 例えば表示物の位置が特定の場所にある場合に、 表示物の配置情報に基づいてそ の特定の場所に適した音を生成することが可能となり、 生成される音のリアル感 を増すことができる。
また本発明は、 ァク夕の有効、 無効を表すための情報、 ァクタにより表される 表示物の表示の有効、 無効を表すための情報、 ァク夕の時間カウントの有効、 無 効を表すための情報、 時間カウントのループの有効、 無効を表すための情報、 自 身のァクタを特定するための情報、 親ァクタを特定するための情報、 子ァク夕を 特定するための情報、 ァク夕のメソッドを特定するための情報、 ァク夕により表 される表示物のモデルを特定するための情報、 ァク夕により表される表示物の配 置情報、 ァク夕に関する時間情報、 自身のァク夕に対してアクションを起こした ァク夕及び該アクションの種類を特定するための情報、 ァクタ間の通信に関する 情報、 ァク夕の変数の値を格納した記憶領域を特定するための情報の少なくとも 1つを含むァク夕情報を、 生成された各ァクタ毎に用意することを特徴とする。 このように種々のァク夕情報を、 各ァク夕毎に用意することで、 ァク夕単位の独 立性 ·操作性を増し、 ァクタ管理の容易化や、 ァクタにより表現される仮想世界 のリアル感、 バラエティ度を高めることができる。
また本発明は、 ァク夕を特定するための情報として、 複数種類の特定情報を用 意することを特徴とする。 例えばァクタの特定情報として、 実特定情報と仮特定 情報を用意することで、 自身のァク夕が行った行為を他のァク夕が行ったものに すること等が可能となる。 また第 1の階層構造での親ァクタの特定情報と第 2の 階層構造での親ァクタの特定情報とを用意することで、 例えば関節を持つ表示物 の制御や記述を簡易化すること等が可能となる。
また本発明は、 ァク夕のメソッドを特定するための前記倩報が、 ァクタのメソ ッドを記述するためのスクリプトを特定するための情報及び単位時間毎に実行す るメソッ ドを複数のメソッ ドの中から特定するための情報の少なくとも 1つを含 むことを特徴とする。 例えばァクタのメッツ ド等を記述するためのスクリプトを 用意することで、 アプリケーションプログラマによるァクタの設計を容易化でき る。 また単位時間毎に実行するメソッドを複数のメソッドから選択できるように することで、 単位時間毎に実行するメソッ ドのバラエティ度を増すことが可能と なる。
また本発明は、 ァク夕に関する前記時間情報が、 ァクタの時間カウントが有効 になってからの経過時間情報、 時間カウントのループが有効な場合の総経過時間 情報、 ァク夕の休眠に関する時間情報の少なくとも 1つを含むことを特徴とする。 例えば時間カウン卜が有効になってからの経過時間情報をァク夕毎に持たせるこ とで、 ァク夕毎に相対的な時間軸を持たせることが可能となる。 また時間カウン 卜のループが有効な場合の総経過時間情報ゃァクタの休眠に関する時間情報をァ クタ毎に持たせれば、 時間カウントループが有効な時ゃァクタの休眠時に、 これ らの時間情報に基づいた種々の処理を行うことが可能となる。
また本発明は、 前記ァクタ情報を、 ァクタ生成時に構造体の形式で所与の記憶 領域に格納し、 格納された該ァク夕情報に基づいてァクタ管理を行うことを特徴 とする。 このように構造体形式で格納されるァク夕情報を用いてァクタ管理を行 うことで、 ァク夕管理の容易化と高速化を図れる。
また本発明は、 前記ァク夕情報に対して自身及び他のァクタがアクセス可能で あることを特徴とする。 例えば自身の特定情報や配置情報等を他のァクタが書き 換えることで、 表現される仮想世界のバラエティ度を増すことができる。
また本発明は、 ァクタのメソッ ドを特定するための情報、 ァクタにより表され る表示物のモデルを特定するための情報及びァク夕により表される表示物の配置 情報の組み合わせがリアルタイムに任意に切り替え可能であることを特徴とする。 このようにすれば、 例えば第 1のモデルを、 第 1の期間では第 1のメソッ ド、 第 1の配置情報で動作させ、 第 2の期間では第 2のメソッド、 第 2の配置情報で動 作させること等が可能となる。 これにより、 少ない種類のモデル、 メソッド等で あっても、 その組合せを動的に変更することにより、 バラエティ度溢れる仮想世 界を表現することが可能となる。
また本発明は、 ァク夕を特定するための情報を用いてァク夕の自己複製及び自 己消滅の少なくとも 1つを行うことを特徴とする。 ァクタの自己複製を行うこと で例えば微生物の分裂シミュレーション等が可能となる。 またァクタの自己消滅 を行うことで、 例えば自分に与えられた仕事が終了したァクタは外部からの指示 を待たずとも自らの判断で自滅し、 処理系全体から見た場合の処理の負担が軽減 される。
また本発明は、 ァク夕の生成時に実行されるメソッ ド、 ァク夕の起動時に実行 されるメソッ ド、 単位時間毎に実行されるメソッ ド、 ァクタの休眠時に実行され るメソッ ド、 ァク夕の中断時に実行されるメソッ ド、 ァク夕の再開時に実行され るメソッ ド、 ァク夕の強制終了時に実行されるメソッ ド及びァク夕の寿命による 自然終了時に実行されるメソッ ドの少なくとも 1つを、 ァク夕の既定義のメソッ ドとして用意することを特徴とする。 このように単位時間毎に実行されるメソッ ド等を既定義メソッドとして用意することで、 生成されたァクタは、 例えば親ァ クタが制御しなくても、 ァク夕管理手段の管理下にある限り自身で動作すること になり、 クラス構造を持ったァクタをマルチプロセスとして動作させることが可 能となる。
また本発明は、 ァクタにより表される表示物のモーションのメソッドを記述す るための第 1のスクリプトと、 ァク夕の変数及びメソヅ ドを記述するための第 2 のスクリプトとを用意することを特徴とする。 このようにレベルの異なる第 1、 第 2のスクリプトを用意することで、 アプリケ一シヨンプログラム内において、 モーション表示単位やその他の処理単位での制御を容易化できる。
また本発明は、 第 1のァク夕についてはメンバ変数を各々のァクタに固有の構 造体のメンバで表すと共にメソヅ ドを前記第 1のスクリブトで表し、 第 2のァク 夕についてはメンバ変数を各々のァクタに固有の構造体のメンバ及び前記第 2の スクリブトで表すと共にメソッ ドを前記第 2のスクリプトで表すことを特徴とす る。 オブジェクト指向においてはメンバ変数とメッツ ドが一体化されるが、 本発 明では、 第 1のァクタについては、 そのメンバ変数は、 各々のァクタに固有の (各々のァクタ毎に用意される) 構造体のメンバで表されるのに対して、 第 2の ァクタについては、 そのメンバ変数は、 各々のァクタに固有の構造体及び第 2の スクリプトにより表されることになる。
また本発明は、 プロセスとして並列実行されている複数のァク夕が共通に使用 するメッツドの実行コードを同一の記憶領域に格納することを特徴とする。 通常 のマルチプロセスでは、 並列実行される複数のプロセスが同一のプログラムに基 づくものであっても、 各々のプロセスのプログラムの実行コ一ドは異なる記憶領 域に格納される。 これに対して本発明では、 複数のァク夕が共用するメソッ ドの 実行コードが同一の記憶領域に格納されるため、 必要とされる記憶容量を格段に 節約できる。
また本発明は、 ァク夕の実行に必要な記憶領域をァクタの生成時に確保し、 確 保された記憶領域をァクタの終了時に解放することを特徴とする。 このようにす れば、 生成されたァクタの数に応じた記憶領域が確保されることになるため、 必 要とされる記憶容量の節約を図ることができる。 またプログラマの負担を軽減し、 メモリ管理に関わるミスも減らすことが可能になる。
また本発明は、 ァク夕の単位時間毎の実行時に、 ァク夕の階層構造の上位から 下位の順でァク夕のメソッ ドの実行の切り替えを行うことを特徴とする。 このよ うにすると、 同一の単位時間内で親ァク夕の影響を子ァク夕に及ぼすこと等が可 能となり、 ァク夕管理の適正化を図れる。
また本発明は、 前記ァク夕管理手段が、 アプリケーションプログラムの実行モ ジュールにリンクされるライブラリであることを特徴とする。 このようにすれば、 作成したアプリケーションプログラムをライブラリであるァク夕管理手段にリン クするだけで、 種々のァクタ管理サービスを受けることが可能となる。
また本発明は、 前記ァクタ管理手段が、 ァク夕のメソッ ドが記述される同一の スクリブトを異なるハ一ドウエア資源上で実行するための手段を含むことを特徴 とする。 このようにすれば、 第 1の装置用に作成したスクリプトを第 2の装置に 使用することが可能となり、 開発用機器、 ツール群、 実行環境を問わない互換性 を確保でき、 過去の資産の有効活用を図れる。
また本発明は、 ァク夕の生成、 起動、 単位時間毎の実行、 休眠、 中断、 再開、 終了及び配置情報の少なくとも 1つを操作者がィンタラクティブに制御するため のァクタを用意することを特徴とする。 このようにすればァクタ管理手段が提供 するァク夕管理サービスを操作者もインタラクティブに利用することが可能とな り、 アプリケーションプログラムの開発の容易化を図れる。
[図面の簡単な説明]
図 1は、 本実施例の機能ブロック図の例である。
図 2は、 本実施例のァク夕の概念について説明するための図である。
図 3は、 種々のァクタの例を説明するための図である。
図 4は、 本実施例の動作を説明するための図である。
図 5A、 図 5 Bは、 本実施例により生成される画像の例である。
図 6A〜図 6 Iは、 キャラクタに与えられるルールについて説明するための図 である。
図 7は、 ァク夕構造体について説明するための図である。
図 8A、 図 8 B、 図 8 Cは、 ァクタの時間情報について説明するための図であ る。
図 9Aは、 ァク夕の実 I D、 仮 I Dについて説明するための図であり、 図 9 B は、 ユーザ定義 e ve r y_t i m eの選択について説明するための図である。 図 10A、 図 10 Bは、 スクリプトとモデルと配置の組み合わせについて説明 するための図である。
図 1 1 A、 図 1 I Bは自己複製、 自己消滅について説明するための図である。 図 12A、 図 12 Bはレベル 1スクリプト、 レベル 2スクリプトについて説明 するための図である。
図 13は、 ァクタのメンバ変数、 メソッドについて説明するための図である。 図 14 Aは複数のァクタに共通なメソッドの実行コードの記憶領域について説 明するための図であり、 図 14Bは、 ァクタの生成時の記憶領域確保、 ァクタの 終了時の記憶領域解放について説明するための図であり、 図 14 Cは、 eve r y_t i me実行時での実行の切り替えについて説明するための図である。 図 15は、 ライブラリであるァクタ管理部のアプリケーションプログラムへの リンクについて説明するための図である。
図 1 6は、 開発環境と実行環境でのスクリプトの共用について説明するための 図である。
図 1 7 A、 図 1 7 Bは、 シェルについて説明するための図である。
図 1 8 A、 図 1 8 B、 図 1 8 Cは、 本実施例が適用される種々の形態の装置を 示す図である。
図 1 9 A、 図 1 9 Bは、 本実施例を種々の画像生成に適用した場合の例につい て説明するための図である。
[発明を実施するための最良の形態]
以下、 本発明の実施形態について図面に基づき詳細に説明する。
図 1に本実施例の画像生成装置の機能プロック図を示す。 この画像生成装置は、 ゲーム装置、 シミュレータ、 ゲーム画像や C G画像を生成するための開発ツール 等に使用されるものである。
操作部 1 0は、 操作情報を入力するものであり、 レバー、 ボタン、 ハンドル、 アクセル、 キーボード、 マウス等がこれに相当する。 処理部 1 0 0は、 操作部 1 0により得られた操作情報と、 所与のプログラム等に基づいて、 プログラムの実 行等の種々の処理を行うものであり、 例えば C P Uとメモリなどのハードウェア により構成される。 画像生成部 2 0 0は、 処理部 1 0 0での処理結果に基づいて 画像を生成するものであり、 例えば C P U、 画像生成専用の I C、 D S P , メモ リなどのハードウエアにより構成される。 画像生成部 2 0 0で生成された画像は 表示部 1 2において表示される。
処理部 1 0 0はァク夕管理部 1 1 0を含む。 そしてァク夕管理部 1 1 0は、 並 列実行可能なプロセスであり且つクラスのィンスタンスであるァクタの生成、 起 動、 単位時間毎の実行、 休眠、 中断、 再開及び終了等を管理する。 そして画像生 成部 2 0 0は、 このァクタにより各々が表される複数の表示物を含む画像を生成 する。 この時、 ァクタの生成等を管理するための情報、 ァクタにより表される表 示物を含む画像を生成するための情報等は、 情報記憶媒体 1 2 0に格納される。 ァクタ管理部 1 1 0等はこの格納情報に基づいて機能するものである。 そして、 この格納情報としては、 プログラムコード以外にも、 例えば画像情報、 音情報、 表示物の形状情報、 テーブルデ一夕、 リストデ一夕等を含めることができる。 ま た情報記憶媒体 1 2 0としては、 例えば R O M、 R A M等のメモリ、 C D— R O M、 ゲームカセッ ト、 I C力一!^、 D V D、 M O、 F D等の種々のものを用いる ことができる。
次に本実施例のァク夕の概念について説明する。
1 . ァク夕の概念
本実施例のァク夕は、 並列実行可能なプロセスであり且つクラスのィンスタン スである。 別の言い方をすれば、 クラスのインスタンス (即ちオブジェク ト) が プロセス化したものである。 この意味において、 本実施例のァク夕は、 クラス構 造を持たない一般的なァク夕 (例えば別冊インターフェース 「オブジェクト指向 の全て」 の 1 5 4、 1 5 5頁参照) とは異なる。
また一般的なァク夕では、 他のァクタにメッセージを送り処理を要求した場合 に、 要求先のァク夕に結果の返答を強制することはなく、 メッセージのやりとり は単方向的である。 この点において、 一般的なァクタは、 結果の返答を強制しメ ッセージのやりとりが双方向的なオブジェクト指向におけるオブジェク トとは異 なる。 即ち一般的なァク夕は、 独立した完全な主体であり、 クラスとそのインス 夕ンスのような関係、 さらには、 インスタンス間のメッセージによる相互作用の ような関係を持たない。 これに対して本実施例のァク夕は、 クラスとそのインス 夕ンスという関係を持ち、 一般的なァク夕間でやりとりされるメッセージの特徴 に加えて、 オブジェク ト指向におけるオブジェク ト (インスタンス) 間のメッセ ージのように、 即時に実行し、 結果の返答を強制することも可能である。
一方、 オブジェクト指向におけるオブジェクトは、 1つのプロセス上で動くも のであり、 並列性を持たない。 即ち並列実行可能なプロセスという性質を持たな い。 従って本実施例のァクタは、 この点においてオブジェクト指向におけるォブ ジェクトとも異なる。
本実施例は、 以上のようにオブジェク ト指向におけるオブジェク 卜の性質と一 般的なァクタの性質の両方を兼ね備えた新たなァク夕の概念を導入し、 このァク 夕を用いてアプリケーション · ソフ トウエアを構築できる点に特徴がある。
図 2に、 ァクタ管理部 1 1 0の管理下で並列に動作するァク夕のイメージが模 式的に示される。 図 2に示すように、 本実施例では、 仮想世界の中で、 同時に複 数のァク夕が生き物のように並列に動く。 ユーザは、 ァクタの外見上の動きを C Gツールを使って設計したり、 その振る舞いの意味 ·内容について専用のスクリ ブトを使って記述する。 そして、 作成したァクタを次々と、 この仮想世界の中へ 放り込み (f i r e ) さえすれば、 あとは勝手にァク夕達が動き出す。 動き出し たァク夕は必要に応じて、 他のァクタとの間でァクタ間通信を行う。 不必要にな つたァク夕は、 ァク夕の I D (特定情報) を指定して k i 1 1する。 すると、 ァ クタ自身で必要な後処理を行い、 その仮想世界から消える。 また本実施例では、 こうしたァク夕に対する様々な操作 (ァクタを、 仮想世界の中へ放り込んだり、 k i l lしたりすること) を、 別のァク夕を使って自動的に行わせることも可能 なので、 因果律に基づいた仮想世界の構築を、 現実世界のように行うことも可能 となる。
また本実施例のァク夕はォブジェクト指向におけるオブジェクトの性質も有す るため、 継承等を用いてァク夕自身の設計を行うことが可能であり、 現実世界の 現象のモデル化を比較的容易に行うことが可能となる。
本実施例のァク夕としては図 3に示すように種々のものを考えることができる。 表示ァクタは、 静止物、 移動物などを表すためのァク夕である。 音制御ァクタは、 ゲーム音などの制御を行うァク夕であり、 例えば車を表す表示ァク夕からの位置 情報に基づいて、 その車がいる位置において聞こえるべき音を生成する。 イン夕 —フェースァクタは、 ユーザとシステムとのインターフェースや、 他の基板との インタ一フェースを行うためのァク夕である。 例えばゲームコントローラや、 キ —ボードからの操作情報は、 ユーザインターフェースァクタを介して伝達される。 またァク夕が他の基板にデータ転送したい場合には、 転送データの内容と転送指 示を基板ィン夕ーフェースァク夕に送るだけでよい。 すると基板ィンターフェ一 スァク夕が、 転送タイミングなどを制御しながらデータを他の基板に転送し、 そ の報告を、 転送要求元のァクタに返す。 記憶管理ァクタは、 ァク夕構造体 (ァク 夕毎に割り当てられる構造体) ゃァクタ変数などを記憶する領域を確保したり解 放したりするためのものである。 また必要に応じて、 ガベジコレクションも行う。 物理計算ァクタは、 表示物の動き等に関する物理計算や生成音に関する物理計算 を担当する。 サーチ、 ソートァク夕はデータのサーチやソートを担当し、 デ一夕 ベースァクタは、 仮想世界の表示物などのデータベースとなるァクタである。 ま た管理、 統括ァク夕は、 例えば複数の表示ァクタの動きを管理、 統括したり、 シ ステム全体を管理、 統括するァクタである。 このように本実施例では、 仮想世界 で行うべき仕事を、 それぞれのァクタが分業する。 そして必要に応じてァクタ間 で勝手に通信を行ったり、 また必要に応じて新しいァク夕を勝手に作り出したり して、 全体の仕事、 即ちゲームであればゲームプログラムの仕事を進めていく。 もちろん、 同じ仕事を担当するァク夕が複数個あっても構わない。 つまり、 ァク 夕とは、 それぞれの得意分野の仕事をこなす専門家たちと考えることができる。 自分の手に負えない仕事が回ってきた場合や、 自分より他に適任者がいる場合 には、 その分野を専門とするァク夕へ仕事を委譲 (デレゲーション) する。 一般 的なォブジヱクト指向における継承を広義の委譲の一種と考えることもできるが、 本実施例においては、 狭義の委譲も継承も共にサポートしているのため、 目的に 応じて使い分けることができる。 例えば図 2において、 画面上のキャラクタ 4 2 の頭脳を担当するキャラクタァクタ 2 8が、 仮想世界の環境制御に関するメッセ ージを親の制御ァクタ 2 2に送ったとする。 するとキャラクタの全体的な制御を 担当する制御ァク夕 2 2は、 このメッセージの仕事内容は自分の専門ではないた め、 WD B (ワールドデータべ一ス) ァクタ 2 4にその仕事を委譲し、 WD Bァ クタ 2 4は、 環境制御を担当する環境ァクタ 3 2にその仕事を委譲することにな る o
さて本実施例のァク夕は、 下記するように、 オブジェクトとしての特徴とプロ セス (一般的なァク夕) としての特徴の両方を兼ね備えている。
( 1 ) オブジェク トとしての特徴
(a)メンバ変数 (データ) とメソッ ド (プロシージャ一) が一体化 (カプセル化) されている。
(b)メソッドコールが可能である。
(c)高い情報隠べい性を持つ。
(d)継承が可能である。 なお多重継承 (複数のクラスを基底クラスとする新たなク ラスを作る) を行いたい場合は、 複数のァク夕を組み合わせればよい。
( 2 ) プロセスとしての特徴
(a)各ァクタは高い独立性を持ち、 並列処理が可能である。
(b)ァクタ I Dを指定して、 様々な操作、 例えば、 そのァク夕の持つ情報を取り出 したり、 不要になったァク夕を k i 1 1したりすること等が可能である。
( c )各ァク夕は、 親ァク夕 (親プロセスに相当) と子ァク夕 (子プロセスに相当) を持ち、 全体でひとつの巨大なッリー構造を構成している。
(d)ァク夕は、 必要に応じて、 他のァク夕の起動、 中断、 再開、 終了、 休眠等の操 作を行うことができる。 また自分自身の消滅 (自殺) や自己の再帰的複製も可能 である。 但し、 実際は、 ァク夕が他のァクタの起動、 中断等の操作を行うと、 ァ クタ管理部 1 1 0がその操作を受け付け実行することになる。
2 . 本実施例の動作
次に本実施例の動作について説明する。
図 2に示すように本実施例では、 ァク夕控え室、 スクリプト控え室、 モデル控 え室が用意されている。 ァクタ控え室の実体は、 後述するァク夕構造体である。 即ち本実施例では、 ァクタ構造体の各メンバにァク夕情報を記憶するためのデ一 夕型が予め用意されている。 スクリプト控え室には、 ルートァク夕のためのスク リブト、 制御ァクタのためのスクリプトなど、 各ァクタの振る舞いの意味や内容 について記述された複数種類のスクリブトが用意されている。 このスクリブトに は後述するように、 ァク夕のモーション (キーフレーム、 補間方法、 親子関係等) を記述する低位のレベル 1スクリプトと、 ァク夕の変数及びメソッ ドの両方が記 述可能な高位のレベル 2スクリプトがある。 モデル控え室は、 ァクタに使用する モデル群の控え室であり、 本実施例ではその実体はモデル群ファイルである。 こ のモデル群ファイルには、 例えばポリゴンオブジェク 卜のレベル 1スクリプト内 での I Dと基板内での I Dとの対応関係が記述されている。 アプリケーションプ ログラムのプログラマが作成するのは、 主に上記のスクリプトとモデル群フアイ ルである。
ァク夕が c r e a t eされると、 図 2の Fに示すように、 そのァク夕に対応す るスクリプト、 モデルが、 各々、 スクリプト控え室、 モデル控え室から参照され る。 具体的には、 ァク夕構造体のメンバには後述するようにスクリプト I D、 モ デル群 I Dがあり、 ァク夕が c r e at eされると、 ァクタ管理部 1 10が、 ァ クタ控え室からのァクタ構造体にそのァクタのスクリプト I D、 モデル群 I D等 を書き込む。 そしてァクタの c r e a t e後にそのァクタが: f i r e (起動) さ れると、 そのァク夕は仮想世界の中に放り込まれる。 具体的には、 c r e a t e 時に完全なァク夕が作られているのだが、 起動 ·実行を表すフラグがオフになつ ている。 f i r eすることにより、 そのフラグがオンになり、 仮想世界の中で起 動 ·実行対象として扱われる。
通常、 図 2において、 ルートァクタ 20が、 その子である制御ァクタ 22、 W DB (ワールドデ一夕ベース) ァク夕 24及びシェルァク夕 26を c r e a t e、 f i r e (起動) する。 より正確には、 ルートァク夕 20が子ァク夕の c r e a t e、 f i r eを指示すると、 ァク夕管理部 1 10がこれを受け付け、 実行する。 次に制御ァク夕 22は、 その子であるキャラクタァク夕 28、 30を c r e at e、 f i reし、 これらのキャラクタァク夕 28、 30が歩きァクタ 38、 40 を c r e at e、 f i r eする。 また WDBァク夕 24は、 その子である環境ァ クタ 32、 ステージァク夕 34、 卵ァク夕 36を c r e a t e、 f i r eする。 このようにして、 複数のァクタ 20〜40が並列実行可能な状態になり、 仮想世 界が構築される。
ルートァク夕 20は、 制御ァク夕 22、 WDBァクタ 24、 シェルァクタ 26 の生成、 起動、 並びにシステム全体の制御を行うものであり、 ルート用のスクリ ブトの記述に従って動作する。 但しモデル群情報はヌル (nu l l) になってい る。 制御ァク夕 22は、 キャラクタァク夕 28、 30を制御、 統括するものであ り、 制御用のスクリプトの記述に従って動作する。 08ァク夕 24は、 環境ァ クタ 32、 ステージァクタ 34、 卵ァク夕 36を制御、 統括するものである。 ま たシェルァクタ 26は、 基板上もしくは基板に接続されたワークステーション上 のシェルの制御を行うものである。 このシェルにより、 ユーザは、 ァクタの生成、 起動、 単位時間毎の実行、 休眠、 中断、 再開、 終了をインタラクティブに制御す ることが可能となる。 なお制御ァクタ 22、 WDBァクタ 24、 シェルァク夕 2 6のモデル群情報もやはりヌルになっている。
キャラクタァク夕 28は、 画面上のキャラクタ 42の頭脳を担当するものであ り、 キャラクタァク夕 30は、 図示しない他のキャラクタの頭脳を担当するもの である。 キャラクタァク夕 28、 30が使用する頭脳のスクリプトには、 例えば キャラクタが壁にぶっかったり卵を見つけた場合にとるべき行動について記述さ れている。 一方、 歩きァク夕 38、 40は、 キャラクタの歩きモーション (ァニ メ一シヨン) を記述するためのものである。 歩きァク夕 38、 40が使用するモ ーシヨンのスクリプト (レベル 1) には、 キャラクタの胴体や足の動きについて 記述されている。
璟境ァクタ 32は、 ステージ 44以外の部分の背景の色や光源の明るさ等を制 御するものである。 またステージァク夕 34、 卵ァク夕 36は、 各々、 静止物で あるステージ 44、 卵 46を表示するためのものである。
なおキャラクタァクタ 28、 30のモデル群情報はヌルであり、 環境ァク夕 3 2、 ステージァク夕 34、 卵ァクタ 36、 歩きァク夕 38、 40は、 各々、 対応 するモデル群情報を持っている。
次に本実施例の動作について図 4を用いて更に詳しく説明する。
ル一トァク夕 20のスクリプトは、 例えば c r e a t e_o n 1 y、 f i r e ― o n 1 y、 eve ry一 t ime、 s l e ep― o n 1 y、 k i l l― o n 1 y、 d i e— o n 1 yなどのパートを持ち、 これらは、 各々、 生成時、 起動時、 単位時間 (例えば 1フレーム) 毎の実行時、 休眠時、 終了 (k i l l、 d i e) 時に実行するパートである。 従って、 ルートァクタ 20が起動 (f i r e) され ると、 ルートァクタ 20のスクリプトの f i r e— o n l yに記載されたメソヅ ドが実行されることになる。 図 4では、 f i r e o n 1 yのパートには、 例え ば c r e f i r eAc t o r (制御ァク夕、 ヌル) 、 c r e f i r eAc t o r (WDBァクタ、 ヌル) といように、 制御ァク夕 22、 WDBァクタ等をヌルの モデル群情報で生成、 起動することが記述されているため、 ヌルのモデル群情報 を持つこれらのァク夕が生成、 起動されることになる。 実際には、 ルートァク夕 20によるァクタの生成、 起動の指示は、 c r e f i r eAc t o r (生成及び 起動) などの関数群のライブラリであるァクタ管理部 1 10が受け付け、 ァク夕 管理部 1 10が実行することになる。
なお本実施例では c r e f i r eAc t o rが実行されると、 そのァクタの I D (特定情報) が返値として返される。 図 4では、 制御ァクタ 22、 WDBァク 夕 24、 シェルァク夕 26の各々について I D 1、 I D 2、 I D 3が返値となる。 従って、 以降は、 これらの I D 1〜 I D 3を使用して各ァク夕の指定が可能とな る。 例えば制御ァクタ 22を k i 11したければ、 k i l lAc t o r ( I D 1 ) というように記述すればよい。
制御ァク夕 22が起動されると、 今度は制御ァクタ 22の f i r e_o n 1 のパートが実行される。 ここには 2つの c r e f i r e Ac t o r (キャラクタ ァク夕、 ヌル) が記述されているため、 2つのキャラクタァクタ 28、 30が生 成、 起動される。 これらのキャラクタァクタ 28、 30は異なる I Dを持つが、 同一のスクリプトを使用することになる。 即ち同一の頭脳を持つことになる。 そ してキャラクタァク夕 28、 30が起動されると、 今度は、 これらのキャラクタ ァク夕 28、 30のスクリプトの f i r e— on l yのパートの記述にしたがい、 歩きァクタ 38、 40が生成、 起動される。 ここで歩きァクタ 38、 40は、 各 々、 キャラクタァクタ 28、 30の c r e f i r e A c t 0 rのモデル群情報指 定の記載にしたがい、 各々、 モデル 1、 モデル 2を用いて表されることになる。 一方、 歩きァク夕 38、 40は同一の歩きスクリプトを用いるため、 モーション (胴体、 手足の動き) は同一になる。 即ちモデル群は異なるがモーションが同一 (但し、 再生スピ一ドゃ繰り返しモーションにおける位相等は個別に設定可能) のァク夕が起動されることになる。
また WDBァクタ 24が起動されると、 WDBァク夕 24のスクリプトの f i r e— o n 1 yのパートの記述にしたがい、 環境ァクタ 32、 ステージァク夕 3 4、 卵ァクタ 36が生成、 起動される。 ここで環境ァク夕 32、 ステージァクタ 34、 卵ァクタ 36は、 WD Bァクタ 24の c r e f i r e A c t o rのモデル 群情報指定部分の記載にしたがい、 各々、 モデル群 3、 モデル群 4、 モデル群 5 を用いて表されることになる。
このようにして f i r e— on l yのパ一卜が実行された後、 フレーム毎に各 スクリブトの eve r y_t i m eのパートが実行されることになる。 例えばキ ャラク夕ァク夕 28、 30の e ve r y— t imeのパートには、 キャラクタが 壁にぶっかった場合や卵を見つけた場合にどのように行動するかについて記述さ れている。 また制御ァク夕 22の e ve r y_t imeのパートには、 各キャラ クタの位置や年齢などを監視し、 監視結果に応じて行う種々の処理が記述されて いる。
一方、 ァク夕が休眠中である場合には、 e V e r y— t i meのパートに代え て s 1 e e p_o n 1 yのパートが実行される。 例えばキャラクタァクタ 28、 30の s 1 e e p_o n 1 yのパートに、 休眠時にモデルを変更するように記述 しておけば、 休眠時にキャラクタの表情を眠っている表情に変えること等が可能 となる。
k i 11— o n 1 yのパートには、 k i l l (他のァク夕又は自己ァク夕によ る強制終了) 時に実行するメソッ ドを記述する。
また d i e— 0 n 1 yのパートには、 d i e (ァクタの寿命による自然終了) 時に実行するメソッ ドを記述する。
これらの k i l l— on l y、 d i e— o nl yのパートにより各ァクタは、 必要な後処理を自分で行った後に、 消えることになる。
なお本実施例では、 親ァクタが終了 (k i 11又は d i e) した場合には、 そ の親ァクタの下位にある全てのァクタ (子ァク夕、 孫ァク夕、 ひ孫ァクタ · · · • · ) も k i 11してから終了するようになっている。 具体的にはァクタの終了 時に、 「あるァク夕に着目した時に、 そのァク夕が終了したら、 そのァク夕の子 供のァクタを全て k i 11する」 という関数 k i l l chi l d r enを実行 する。 これにより、 着目するァク夕の子供のァク夕は k i 1 1され終了し、 その 終了した子供のァク夕も終了時に上記関数 k i 1 l _ c h i 1 d r e nを実行す る。 すると、 着目するァク夕の孫のァクタも k i 1 1され終了することになる。 このように再帰的に木構造を潜って行き、 着目するァク夕の下位にある全てのァ クタが k i 1 1され終了することになる。
本実施例では、 以上説明したようなァクタの生成、 起動、 単位時間毎の実行、 休眠、 中断、 再開及び終了等の管理をァク夕管理部 1 1 0に行わせている。 本実 施例では、 ァクタ管理部 1 1 0がこのような管理を行うため、 クラス構造を持つ たァク夕をプロセスとして並列実行することが可能となる。 また各ァク夕は、 例 えば e V e r y— t i m eのパートに記述されたメソヅ ドを各々の周囲の状況に したがい独立に実行するため、 プログラマの負担をそれほど増すことなく、 現実 世界に近い複雑で大規模な仮想世界を構築することが可能となる。
つまり、 プログラマはァクタ単位で設計し最後にまとめて (又は、 設計に従つ て順番に) それらを仮想世界の中に放り込むだけで良く、 またァクタ単位の独立 性が高いため、 複数のプログラマによる分業 ·統合もスムーズに行えるという特 徴も本実施例は持つ。
3 . 生成される画像の例
次に本実施例により生成される画像の例について説明する。
図 5 Aの生成画像に示すように、 スタート時においては、 卵4 6 &〜4 6 (1等 はステージ 4 4上にランダムに配置されており、 キャラクタ 4 2 a〜4 2 eは、 これらの卵を見つけて運ぶという動作を行う。
この時、 各キャラクタの動作には、 図 6 A〜図 6 Cに示す第 1のルール、 図 6 D〜図 6 Fに示す第 2のルール、 図 6 G〜図 6 Iに示す第 3のルールが与えられ ている。 これらのルールは、 図 2において各キャラクタァク夕 2 8、 3 0の頭脳 スクリプトに記載されるものである。
第 1のルールは次のようになる。 即ち図 6 Aに示すようにキャラクタ 4 2がス テ一ジ 4 4の端まで来ると、 図 6 Bに示すようにその場で回転し入射角で特定さ れる反射角で跳ねかえり、 その後、 図 6 Cに示すように再び前進する。 第 2のルールは次のようになる。 即ち図 6 Dに示すようにキャラクタ 4 2が卵 を頭に載せていない状態で卵 4 6を見つけると、 図 6 Eに示すようにその卵 4 6 を頭に載せて、 図 6 Fに示すように卵 4 6を頭に載せたまま歩き続ける。
第 3のルールは次のようになる。 即ち図 6 Gに示すようにキャラクタ 4 2が卵 4 6 aを載せた状態で他の卵 4 6 bを見つけると、 図 6 Hに示すように自分が持 つていた卵 4 6 aをその場所に置き、 図 6 Iに示すようにそのまま歩き続ける。 なお卵を拾ったり置いたりする動作をしてからしばらくの間は、 卵を見つけても 無視するようになっている。
このようなルールにしたがってキャラクタが動作し所与の時間が経過すると、 図 5 Bに示すように、 卵がステージ 4 4上の幾つかの場所に集まってゆく。
本実施例では、 全てのキャラクタ 4 2 a〜4 2 eは、 同一の頭脳スクリプト (第 1〜第 3のルール:図 2の 2 8、 3 0 ) を使用して動いている。 また各キヤ ラク夕 4 2 a〜4 2 eの胴体、 足の動きを決める歩きァク夕 (図 2の 3 8、 4 0 ) は、 同一の歩きスクリプトを使用する。 従って、 キャラクタ 4 2 a〜4 2 eは、 同一の頭脳を持ち、 胴体、 足は同一の動作パターンで動くことになる。 一方、 キ ャラク夕 4 2 a〜4 2 cと、 4 2 d、 4 2 eとは異なるモデルを用いており、 見 た目は異なったものとなっている。 またゲームキャラクタ 4 2 a〜4 2 eの初期 状態での配置位置も異なったものとなっている。
本実施例では、 プログラマは、 キャラクタの 1つの頭脳スクリプト、 1つの歩 きスクリプト等を作成するだけで、 図 5 A、 図 5 Bに示すように、 多数の同じ種 類のキャラクタが登場する複雑で大規模な仮想世界を構築できる。 即ちプログラ マの負担をそれほど増すことなく リアル感溢れる仮想世界を構築できることにな る。 なおキャラクタの頭脳スクリプトを全て同一にはせず、 例えばキャラクタ 4 2 aの頭脳スクリブトのみを他のものと少し異なったものとすることも可能であ る。 この場合には、 プログラマは、 差分のプログラムのみを作成すればよいこと になる。 更に、 全く別の機能を持つ 2つの頭脳スクリプトを異なる 2つのァク夕 上で動かし、 これらの間で (もしくは、 これらを管理する上位のァク夕との間で) ァクタ間通信等を行い、 それらの機能を組み合わせることで、 見かけ上、 多重継 承を行い、 新たな頭脳スクリプトを作成することも可能である。
実際には、 あるレベル 2スクリプトの特定のパート (e ve r y— t ime等) のみを実行するためのライブラリ関数 (p a r t— o f _Ac t o r) を利用す る。 すなわち、 p ar t _ o f― Ac t o r (基底クラス, eve ry― t i m e) を自身 (派生クラス) の eve r y_t ime内に記述し、 その前後に基底 クラスからの差分を記述すれば良い。 ァク夕単位では単純継承しか認めていない ため、 メンバ変数についても、 常に、 「基底クラスのメンバ変数」 に 「差分のメ ンバ変数」 をプラスしたものが 「派生クラスのメンバ変数」 となり、 矛盾なくス マートな継承を実現できる。
4. ァクタ構造体
次に本実施例のァク夕構造体のメンバについて説明する。 ァクタ構造体は、 ァ クタ毎に割り当てられる構造体であり、 本実施例の核となる構造体である。
図 7に本実施例のァクタ構造体のメンバの例を示す。
ァク夕フラグは、 ァク夕の有効、 無効を示すフラグである。 ァク夕が生成され るとァク夕フラグはオンになり、 ァクタが終了 (k i l l、 d i e) するとァク 夕フラグはオフになる。
表示フラグは、 ァクタにより表される表示物の表示の有効、 無効を示すフラグ である。 表示フラグがオンになると、 そのァク夕により表される表示物が画面上 に現れることになる。
時間カウントフラグは、 ァクタの時間カウントの有効、 無効を示すフラグであ る。 本実施例では、 各ァク夕が独自の時間軸を持ち、 時間の進み方も変えられる ようになつている。 時間カウンフラグがオンになるとそのァクタの時間が進行し、 オフになると時間進行がストップする。 例えば図 8 Aにおいて、 仮想世界の時間 t 1でァクタ 1の時間カウントフラグがオンになると、 ァク夕 1の時間は t 1を 開始点として進行する。 即ちァク夕 1の時間の開始点を仮想世界の時間開始点と 異なるものにできる。 そしてァクタ 1の寿命が 100フレームである場合には、 t 4 = t 1 + 100フレームの時にァクタ 1は消滅する。 同様に t 2でァクタ 2、 3の時間カウントフラグがオンになると、 ァクタ 2、 3の時間は t 2を開始点と して進行する。 そしてァク夕 2は t 5 = t 2 + 1 0 0フレームで消滅する。 一方、 ァクタ 3は、 ァクタ 1、 2の 2倍の時間経過速度を持つ。 これは例えばァク夕 3 のスクリプトの e v e r y_t i m eのパートに、 時間経過速度が 2倍になるよ うな記述を含ませることで実現できる。 ァク夕 3は、 時間経過速度が 2倍になる ため、 設定された寿命が 1 0 0フレームであっても t 3 = t 2 + 5 0フレームで 消滅してしまうことになる。
以上の手法とは別の実現手法として、 単なる 「フラグ」 ではなく、 毎フレーム 加算すべき時間を浮動小数点変数として保持し、 例えば 「" 0 " ならカウントァ ップしない」 、 「" 1 " なら 1フレームあたり 1フレームずつ時間が進む」 、 「" 2 . 5 " なら 1フレームあたり 2 . 5フレームずつ時間が進む」 とする手法 も考えられる。
時間経過速度をァク夕毎に独立に制御することで次のような効果を得ることが できる。 即ちリアルタイムな画像生成においては、 処理負担が重くなりコマ落ち 等が生じる場合がある。 このような場合に例えばキャラクタの足の部分だけ時間 経過速度を速くすれば、 コマ落ちが生じた場合にも矛盾が生じない画像を生成す ることが可能となる。
ループフラグは、 時間カウントのループの有効、 無効を示すフラグである。 例 えばァク夕の寿命が 1 0 0フレームであったとする。 するとループフラグがオフ の場合には図 8 Bに示すように寿命である 1 0 0フレームでァクタは消滅する。 一方、 ループフラグをオンにすると、 図 8 Cに示すようにァクタの時間は 1 0 0 フレーム毎にリセッ 卜され、 ァク夕の寿命を事実上無限大にすることができる。 例えばレベル 1スクリプトに 1 0 0フレーム分のモーションしか記述していなか つた場合でも、 ループフラグをオンにすることで、 そのァクタにより表される表 示物を無限期間動作させることが可能となる (ヒ卜の歩き等の繰り返しアニメ一 シヨンに有効である) 。 これによりスクリプトの記述を簡易化できる。
ァクタの実 I Dは、 ァク夕を特定するための情報である。 このァク夕の実 I D は、 ァクタの生成時に決められ、 ァクタ管理部 1 1 0がァク夕構造体に書き込む ものであり、 基本的には変更不可である。 一方、 ァクタの仮 I Dは、 デフォルト では実 I Dと同じになるが、 変更可能となっている。 仮 I Dを実 I Dと異ならせ ることで、 ァク夕が、 他のァク夕の名義で様々な行為を行うことが可能となる。 図 9 Aに示すように、 ァクタ 1が、 実 I Dと異なる仮 I Dでァク夕 2にァクショ ンを行えば、 ァクタ 2は、 仮 I Dで指定されるァクタが自分に対してアクション を行ったものと認識することになる。 またァク夕 1が自分の子であるァクタ 3を 生成する前に、 自分の仮 I Dをァクタ 4の I Dと同じものにすれば、 ァクタ 3は、 ァクタ 1の子ではなくァクタ 4の子として生成されることになる。 また仮 I Dを 用いることで、 複数のァクタが行う処理を代行するァクタを実現することも可能 となる。 例えば複数のァクタに共通の処理があった場合に、 処理代行ァク夕は、 自分の仮 I Dをこれらの複数のァクタの I Dに順次変更しながら次々に処理を行 う。 これにより、 あたかもこれらの複数のァク夕自身がその処理を行ったかのよ うに見せることが可能となり、 スクリブトの記述のコンパクト化を図ることがで きる。 またルートァク夕にしか認められないような特権を利用したい場合には、 その特権を利用したいときだけ自分の仮 I Dをルートァクタの I Dに変更すれば よい。
親ァクタの実 I Dは、 このァク夕の親のァク夕を特定するための情報である。 一方、 幾何演算上の親ァク夕の実 I Dは、 幾何演算上の親ァク夕を特定するため の情報である。 通常、 本実施例では、 子ァクタを生成したァクタがその子ァクタ の親となる。 しかしながらこのような親子構造とは異なる幾何演算上の階層構造 を利用したい場合もある。 例えば第 1、 第 2のポリゴンオブジェクトを関節にて 接続する構成の表示物があつたとする。 この場合には、 第 2のポリゴンオブジェ ク卜の座標の原点は、 第 1のポリゴンオブジェク トが持つ座標を基準に設定した 方が望ましい。 このような場合には、 第 2のポリゴンオブジェクトの幾何演算上 の親を、 第 1のポリゴンオブジェク トにする。
このように本実施例では、 ァク夕を特定するための情報として、 複数種類の特 定情報 (実 I D、 仮 I D、 幾何演算上の I D ) を用意することで、 種々の効果を 得ることができる。
スクリプト I D、 モデル群 I Dは、 現在使用中のスクリブト、 モデルを特定す るための情報である。 このように本実施例では現在使用中のスクリプト I D、 モ デル群 I Dをァク夕毎にリアルタイムに自由に変えることが可能なので、 得られ る画像のバラエティを格段に増すことができる。
eve r _f u n cのポィン夕は、 eve r y_t i meのパ一トで次に実 行すべきユーザ定義関数 e v e r y— f un cを特定するための情報である。 即 ち本実施例では、 図 9 Bに示すように、 即定義メソッ ド e ve ry— t imeに 置き換えるべき eve r y― f u n c l〜eve r y_f u n c Nのいずれを実 行するかを選択できる。 これにより e V e r y_t i meのパ一ト内で全ての振 舞い記述しなければならないという制約から解放され、 プログラマの負担も減り、 且つ外部のァク夕からも、 自己ァクタが毎フレーム実行すべき処理内容の切り換 え操作を容易に実現できるので、 表現の幅が広がる。 なお、 必要に応じて複数の e ve r y— f uncを直接呼び出し、 様々に組み合わせることで、 複雑なメソ ッ ドを実現することも可能である。
寿命は、 そのァク夕の寿命を表すものであり、 経過時間 ·総経過時間は共に、 時間カウントフラグがオンして- らの経過時間を表すものである。 なお、 総経過 時間については、 ループフラグがオンの場合でもカウン夕がリセッ トされず、 経 過時間の総計を表す。 また目覚めまでの時間は、 休眠時に目覚めるまでの残りの 時間を表すものである。 このようにァク夕構造体のメンバとしてァク夕に関する 時間情報を用意することで、 ァク夕毎に独自の時間軸を持たせだり、 繰り返しァ 二メ一シヨンを可能にしたりすることが可能となる。
ァク夕の配置情報は、 このァクタのワールド座標系での位置情報 (位置べクト ル) 、 方向情報 (回転マトリクス) を表すものである。 図 2に示す歩きァクタ 3 8、 40は、 この配置情報を原点にしてレベル 1スクリプトに記述された種々の モーションを行うことになる。 例えば同一の頭脳スクリプト、 同一の歩きスクリ ブトを持つァク夕を複数用意し、 これらのァクタの配置情報のみを変えることで、 大規模で複雑に見える仮想世界を構築することが可能となる。
子ァク夕に関する情報は、 記憶領域上での子ァクタの先頭位置、 末尾位置、 総 数などを特定するための情報である。 アクションを起こしたァクタの仮 I D、 種類は、 このァク夕に例えば最後にァ クシヨンを起こしたァク夕及びそのアクションの種類を特定するための情報であ る。 この情報は例えばプログラムのデバッグ時に有効である。 また知らないァク 夕から例えば攻撃を受け、 そのァクタに仕返しを試みる場合等にも有効である。 ァクタ通信情報は、 自分に送られてきたメッセージ等を知るためのものであり、 構造体により表される。 この情報を参照することで、 例えば自分宛にメッセージ が幾つ来ているか等を知ることができる。
ァク夕変数記憶領域情報は、 レベル 2スクリプトで宣言されたァクタ変数の記 憶領域を特定するための情報であり、 本実施例では構造体により表されている。 レベル 2スクリブトで宣言されたァク夕変数の記憶領域は、 ァクタの生成時に確 保され、 ァクタの終了時に解放されることになる。
このように本実施例では、 ァク夕構造体のメンバとして図 7に示すような種々 の情報 (以下、 これをァク夕情報と呼ぶ) が格納される。 オブジェクト指向にお いてはメンバ変数とメッツ ドが一体化されるが、 本実施例においてこのメンバ変 数に相当するのが、 レベル 2スクリブトで宣言されるァクタ変数及びァク夕構造 体に格納されるァクタ情報である。 ァクタ変数は、 アプリケーションプログラム のプログラマが定義するものであるのに対して、 ァク夕構造体に格納されるァク 夕情報は、 システム側で汎用性の高い変数として予め決められているものである。 ァクタ情報のァク夕構造体への格納は、 例えばァクタ生成時にァク夕管理部 1 1 0が行う。 そしてァクタ管理部 1 1 0は、 このァクタ情報に基づいてァクタ管理 を行うことになる。
また本実施例では、 ァク夕情報を、 自身のァク夕或いは他のァク夕がアクセス 可能となっている。 例えばァクタの仮 I D、 寿命、 配置情報等を他のァク夕が読 み出し、 書き換えることで種々の効果を得ることができる。
更に本実施例は、 ァクタのメソッ ドを特定するための情報、 ァクタにより表さ れる表示物のモデルを特定するための情報及びァクタにより表される表示物の配 置情報の組み合わせがリアルタイムに任意に切り替え可能である点にも特徴があ る。 例えば図 1 O Aに示すように、 スクリプト 1とモデル 1と配置 1を組み合わ せたり、 スクリプト 2とモデル 1と配置 2とを組み合わせたりすること等が可能 となる。 本実施例では各ァク夕毎に図 7に示すァク夕構造体が用意され、 ァク夕 構造体のスクリプト I D、 モデル群 I D、 配置情報 (位置 ·方向情報) をァクタ 毎にリアルタイムに変更できるからである。 例えば図 10 Bにおいて、 スクリブ トにより記述されるモーション 50と、 モデル 52、 54、 56を組み合わせる ことで、 種々の表示物 58、 60、 62を表現することが可能となる。 逆に複数 のモーションと 1つのモデルを組み合わせてもよい。 例えば平地を歩くキャラク 夕の足の部分のモーシヨンを、 キャラクタが階段を歩く場合には階段用のモーシ ヨンに切り替えてもよい。 更にこれに配置情報を組み合わせて、 バラエティ度を 増すこともできる。 このように本実施例によれば、 少ないモーション情報、 モデ ル群情報、 配置情報で、 バラエティ溢れる画像表現が可能となる。
また本実施例では、 ァク夕を特定するための情報を用いてァク夕の自己複製、 自己消滅等が可能になっている。
例えば図 1 1 Aの微生物の分裂シミュレーションでは、 子(1)が親(1)に成長し、 この親(1)から子(2)が分裂する。 また親(1)からは子(3)が更に分裂すると共に、 子(2)が成長した親(2)から子(4)が分裂する。 このようなシミュレーションは、 ァ クタのスクリブトの eve r y_t i meのパ一トに、 例えばある条件の下で c r e at eAc t o r $ my s e 1 f が実行されるように記述すればよい。 こ の複製の際に、 位置情報や回転情報などの必要な情報を、 複製先のァクタにコピ —することも可能である。
また図 1 1 Bでは、 自機ァクタ 80は敵ァク夕 82、 84、 86により攻撃さ れている。 ここで自機ァクタ 80は、 自機の耐久量をァクタ変数として持ってお り、 敵ァク夕 82、 84、 86から攻撃される毎にこの耐久量は減少してゆく。 そして自機ァクタ 80は、 この耐久量を例えば eve r y_t i meのパートで 監視する。 そして耐久量が 0以下という条件が満たされると、 k i l lAc t o r $mys e l f を実行し、 (例えば、 k i 11— o n 1 y内に記述された爆 発パタン表示の部分を実行した後に) 自己消滅する。 このようにすることでァク 夕の独立性が高まり、 外部から k i 11する命令を行わなくても自己消滅するた め、 プログラミングの簡易化を図ることができる。
5. スクリプト
本実施例では、 ァクタを記述するための専用のスクリプトとして、 図 12A、 図 1 2 Bに示すレベル 1スクリプトとレベル 2スクリプトとを用意している。 1 つのレベル 1スクリプト、 1つのレベル 2スクリプトは、 各々、 1つのァク夕に 対応する。 即ちスクリプトを記述することは、 ァク夕を設計することに相当する。 レベル 1スクリプトは、 表示物のモーションのメソヅ ドを記述するためのもの であり、 具体的には、 キーフレーム情報、 補間方法情報、 モデル間の階層構造情 報を含む。 例えば図 12 Aでは、 表示物の胴体の位置情報 tx、 t y、 t z、 回 転情報 rx、 r y、 r zの各々に対して、 フレーム番号、 補間方法 (エルミート 補間、 直線補間、 所与の値に固定) 等が記述される。 同様に、 足 1、 足 2等につ いては、 親オブジェクト名、 各位置情報及び各回転情報についてのフレーム番号、 補間方法等が記述される。 本実施例では、 表示物のキーフレームのモーション情 報から、 設定された補間方法でリアルタイムにキーフレーム間のモーション情報 が生成されるため、 必要とされる記憶容量の節約を図っている。
一方、 レベル 2スクリプトは、 ァク夕の変数 (メンバ変数) 及びメソッ ドを記 述するためのものであり、 具体的には、 図 12 Βに示すように、 ァク夕変数を宣 言するパート、 c r e at e— on l y、 f i r e— on l y、 eve ry一 t ime、 s l e e p― on l y、 k i l l— on l y、 d i e― on l yなどの パートを含む。 ァク夕変数のパートは、 そのァク夕の中でのみ有効な変数を宣言 するパートである。 このァクタ変数は、 オブジェクト指向におけるオブジェクト のメンバ変数に相当する。 c r e at e— onl y、 f i r e— onl y、 ev e r y― t ime、 s l e ep― o n 1 y、 k i l l― o n 1 y、 d i e― on l yのパートは、 各々、 生成時、 起動時、 単位時間毎の実行時、 休眠時、 殺され た時、 老衰死した時に、 そのァク夕が何を行うかについて記述するパートであり、 これらのパートは、 オブジェク ト指向におけるオブジェクトのメソッドに相当す る
本実施例の 1つの特徴は、 既定義のメソッドとして、 c r e a t e_o η 1 y、 f i r e— onl y、 eve r _t i me等の種々のものを用意した点にある。 例えば eve r y_t imeの既定義メソッ ドがあるため、 生成されたァク夕は 親ァクタが管理しなくても、 ァクタ管理部 1 10の管理下にある限り勝手に動作 することになる。 即ちァクタを生成し仮想世界に放り込みさえすれば、 既定義メ ソッ ドに記述された動作を勝手に実行し、 例えば k i 11等されれば自分で後始 末をして仮想世界から消えることになる。 このように既定義メソッ ドを用意し、 ァクタの生成、 起動、 単位時間毎の実行等をァクタ管理部 1 10が管理すること で、 クラス構造を持ったァクタをマルチプロセスとして動作させることが可能と なる。
また本実施例では、 このような既定義メソッ ドの他にユーザ定義メッツドも用 意している。 ユーザ定義メソヅ ドは、 例えば a c t o r_f un cと表される。 ユーザ定義メソッ ドは、 オブジェクト指向におけるメンバ関数に相当し、 ユーザ が自由に定義できるメソッ ドである。
なお各メソッ ド内で、 C言語におけるオート変数を使用することもできる。 ま た、 スタティ ック変数を宣言すると、 そのスタティック変数は、 そのスクリプト を共用しているァク夕間の共有変数になる。
またスクリプトには、 c r e a t e— 0 n 1 y、 f i r* e— o n 1 y等の全て のパートを記述する必要はなく、 ユーザが所望するパートのみを記述すればよい。 省略されたパートは、 基本的に 「何もしない」 という意味になる。
また本実施例では、 既定義変数、 既定義関数なども用意している。 既定義変数 は、 例えば 「$+英数文字」 と表記され、 よく使われるシステム関係の変数を表 すものである。 既定義変数は予約語でありァクタ変数として使用することはでき ない。 既定義変数は 「. 」 を挟んで 2つの部分からなっており、 前者はァクタ構 造体の所有者を、 後者はァク夕構造体のメンバを表す。 例えば $MY. R I D、 $P A. VI Dは、 各々、 自分の実 ID、 親の仮 IDを表す。 このような既定義 変数を用意することで、 スクリプトの記述を簡易なものとすることができる。 既定義関数としては、 ァクタ操作、 ァク夕間通信 (メッセージ等) 、 基板コン トロール (描画、 サウンド等) のための関数等が用意されている。 ァクタ管理部 1 10の実体は、 これらの関数が集まったライブラリである。 ァク夕操作の関数 としては、 c r e at eAc t o r (ァク夕を生成する) 、 f i r e A c t o r (ァクタを起動する) 、 c r e f i r eAc t o r (ァクタを生成し起動する) 、 l o opAc t o r (ァク夕をループ実行モードにする) 、 p aus eAc t o r (ァク夕の時間を止める) 、 f gAc t o r (ァクタの表示を行う) 、 s t o A c t o r (ァク夕の活動を停止する) 、 c ont Ac t o r (ァク夕の活動 を再開する) 、 c hang e Ap a r e n t (指定したァク夕の親ァクタを変更 する) などがある。 またこの他に、 s e t Avi d (ァク夕の仮 I Dを設定する) 、 s e t Amd 1 g (ァクタのモデル群を設定する) 、 s e tAt t l f rm (ァ クタの年齢を設定する) 、 s e tAtx、 s e tAt y、 s e t A t z (ァク夕 の座標値を設定する) 、 s e t Arx、 s e tAry、 s e t Ar z (ァク夕の 回転値を設定する) などもある。
なお本実施例では、 図 13に示すように、 レベル 1のァク夕では、 オブジェク ト指向におけるメンバ変数は、 ァク夕構造体のメンバにより表され、 オブジェク ト指向におけるメソッ ドは、 レベル 1スクリプトで表される。 一方、 レベル 2の ァク夕では、 メンバ変数は、 ァク夕構造体のメンバ及びレベル 2スクリプトのァ クタ変数記述部で表され、 メソッ ドは、 レベル 2スクリプトで表される。 ァクタ 構造体のメンバはァク夕変数により表すこともできるが、 全てのァク夕に必須の 最低限の変数を構造体の形式で用意することで、 ァク夕管理部 1 10によるァク 夕管理の効率化を図れる。
また本実施例では、 プロセスとして並列実行されている複数のァク夕が共通に 使用するメソッ ドの実行コ一ドを同一の記憶領域に格納している。 例えば図 14 Aにおいて、 キャラクタァク夕 64、 66、 68は制御ァク夕 63の制御下でプ ロセスとして並列実行されている。 そしてキャラクタァクタ 64、 66、 68は、 共通の頭脳を有し共通の頭脳スクリプト (メソッ ド) 70を用いている。 このよ うな場合、 本実施例では、 共通に使用する頭脳スクリプトの実行コードについて は、 同一の記憶領域 76に格納している。 即ち UN I X等のマルチプロセスでは、 同じプログラムに基づくプロセスを複数個立ち上げた場合に、 立ち上げたプロセ スの数だけ実行コードが記憶領域上に格納される。 例えば 4つのプロセスを立ち 上げた場合には、 その各々に対して 4つの記憶領域が確保されることになる。 こ れに対して本実施例では、 マルチプロセスとして立ち上がったァクタに共通のメ ソッ ドの実行コードは、 同一の記憶領域に格納されるため、 必要とされる記憶容 量を節約できる。
また本実施例では、 図 1 4 Bに示すように、 ァクタの実行に必要な記憶領域を ァクタの生成時に確保し、 確保された記憶領域をァクタの終了 (k i l l、 d i e ) 時に解放する。 即ちァクタの活動に必要な記憶領域は、 自動的に確保、 解放 されるため、 ユーザが動的な記憶管理を行う必要がない。 一旦、 使用されたが現 在用済みとなった記憶領域を、 未来のァクタが再利用する。 即ち、 一般にァク夕 の数が多い場合には多くの記憶領域が使用され、 少ない場合には少ない記憶領域 が使用される。 従って、 図 1 4 Aで説明した複数のァク夕に共通のメッツ ドの実 行コードを同一の記憶領域に格納する手法と相まって、 必要とされる記憶容量を 格段に節約できる。
更に本実施例では、 ァクタの単位時間 (フレーム) 毎の実行時に、 ァク夕の階 層構造の上位から下位の順でァクタのメソッ ドの実行の切り替えを行っている。 即ち図 1 4 Cに示すように、 e v e r y_t i m eの実行時に例えば(1 ) , (2 ) , (3) , (4) , (5 ),(6 ),(7) , (8)の順に、 ァクタのメソッ ドの実行を切り替えている。 具体的 には、 「あるァク夕に着目した時にそのァクタを実行した後にそのァク夕の子供 のァク夕を順次、 実行する」 という関数内で、 再帰呼び出しを行っている。 一番 初めの 「あるァクタ」 を 「ルートァク夕」 (図 1 4 Cでは(1 )に相当) にすれば、 順に子 ·孫 ·ひ孫…と処理が移り、 最終的にはこの木構造を構成している全ての ァク夕の実行が終了している (これが 1フレーム内の処理) ことになる。 このよ うにすることで、 ァクタの単位時間毎の実行時でのァクタ管理を簡易化できる。 また親ァクタの影響を子ァクタに及ぼすことが可能となる。
6 . ァクタ間通信
本実施例では、 ァクタ間通信として、 メッセージ通信とメール通信の 2種類を 用意してい o。 ( 1 ) メッセ一ジ通信 (以下、 単にメッセージと呼ぶ)
メッセージでは、 送信元のァクタから受信先のァクタへ、 通信内容がすぐに届 けられる。 メッセージは非同期通信である。 送信直後に、 そのァク夕に対しメソ ッドコールを実行する等、 主に、 その場ですぐに処理してほしい依頼を送信する 場合に使用する。 なお図 1 4 Cにて既に説明したように、 通常、 1フレーム (又 は 1フィールド) 内における各ァク夕の処理の順番は、 基本的に親ァクタから子 ァク夕へと再帰的に階層構造をたどってゆくことになるので、 メヅセージは、 親 ァク夕から子ァク夕への同一フレーム内での情報伝達にも使用できる。
メッセージの本体は、 ユーザが自由に定義できる構造体である。 但し、 1つの ァク夕が、 同時に複数のメッセージを受け取ることはできない。
( 2 ) メール通信 (以下、 単にメールと呼ぶ)
メールでは、 送信元のァクタから受信先のァぇクタへ、 通信内容が必ず 1フレ ーム (又は 1フィールド) の遅れで届けられる。 メールは同期通信である。 主に、 ァク夕間でタイミングを合わせて、 処理を依頼したり情報を伝達する場合に用い る。 メールの本体も、 ユーザが自由に定義できる構造体である。 但し、 1つのァ クタが、 同時に複数のメールを受け取ることが可能である。 同期通信や、 その他 のための情報として、 メールの先頭にヘッダが付くので、 メッセージよりもサイ ズは大きくなる。
なお、 メッセージ、 メールは共に、 その実体はァクタであるため、 行き先に応 じて自分自身の内容を書き換えたり (自動翻訳機能付き) 、 文書を届ける以外の 役目 (画面に現れたり、 音を出したり、 他のァクタをたち上げる) を持ったもの など、 種々のインテリジェントなメッセ一ジ、 メールを実現することができる。 7 . ァク夕管理部 (インタプリタ)
ァク夕管理部は、 ァクタを管理するための基本プログラムに相当するものであ り、 その実体は、 例えばアプリケーションプログラムの実行モジュールにリンク される関数群 (ライブラリ) であり、 例えば C言語で記述されている。 図 1 5に 示すようにレベル 1スクリプトは所与の C Gヅ一ルにより、 レベル 2スクリプト 及びモデル群ファイルは所与のテキストエディ夕によりプログラマが作成する。 但し、 レベル 2スクリプトについては、 G U Iを活用した専用のスクリプト生成 用アプリケーションを用いても良い。 そしてこれらのレベル 1スクリプト、 レべ ル 2スクリプト、 モデル群ファイルはスクリプトコンパイラによりコンパイルさ れ、 ランタイムスクリプトに変換される。 そしてこのランタイムスクリプトは、 ライブラリであるァクタ管理部、 その他のソースファイルとリンクされ、 最終的 な実行モジュールになる。
ァク夕管理部は、 図 1 6に示すように、 ワークステーション、 パーソナルコン ビュー夕上での開発環境時においても、 ゲーム装置上での実行環境時においても アプリケーションブログラムにリンクされる。 これにより開発環境時の動作を、 実行環境時にも正確に再現できることになり、 開発の容易化を図れる。
本実施例のァク夕管理部の特徴は、 ァクタのメソヅ ドが記述される同一のスク リプトを、 異なるハードウェア資源上で実行可能にする点にある。 例えば本実施 例のァク夕管理部を用いることで、 開発環境時のハードウェア資源 (W S、 P S ) と、 実行環境時のハードウェア資源 (ゲーム装置) とで、 同一のスクリプトを用 いることが可能となる。 ハードウェア資源の差異を、 ァクタ管理部が吸収するた めである。 また第 1のゲーム装置用に開発したスクリプトを、 第 2のゲーム装置 用に容易に用いることが可能になる。 これによりアプリケーションプログラムの 他の装置への移植の容易化を図ることが可能となる。
なおァク夕管理部は、 レベル 1スクリプトに対してはィン夕プリ夕として動作 する。 即ちキーフレーム情報を読み、 逐次これを補間してモーション情報を求め ている。 更にレベル 2スクリプ に対してもインタプリ夕として動作させ、 逐次 命令を解釈させ実行させてもよいが、 本実施例では、 一旦、 C言語のコンパイラ に掛けている (つまりコンパイラ言語として実行している) 。
ァク夕管理部の行う仕事は主に以下の通りである。
(a)ァクタ管理
ァク夕に対する生成、 起動、 単位時間毎の実行、 休眠、 中断、 再開、 終了等の 要求を受け付け、 実行する。 またァク夕の階層構造の管理や、 ァクタ構造体に格 納する各種情報の設定などを行う。 (b)記憶管理
ァクタが使用する記憶領域の動的な確保、 解放を行う。 これにより、 煩わしい 記憶管理からユーザが解放されるので、 プログラミング作業の効率が向上する。
(c)ァク夕間通信
メッセージやメールの配送サービスを行う。
(d)リアルタイム補間
レベル 1スクリブトのキーフレーム情報等から、 指定されたフレームにおける 各種の情報の補間値を出力するサービスを行う。
(e)システム関連
ハードウェアのイニシャライズや画面更新など、 低レベルのシステムコントロ ールを行う。
8. シェル
本実施例では、 図 17Aに示すように、 ァクタの生成、 起動、 単位時間毎の実 行、 休眠、 中断、 再開、 終了等を操作者 90がワークステーション 92等を使用 してインタラクティブに制御するためのシェル (ァクタ) 94を用意している。 このシェル 94は、 主に開発環境において使われるコマンドインタプリタである。 そしてシェル 94は、 ァク夕の階層構造を移動したり、 各ァクタのステイタスを 見たり、 特定のァク夕を殺したり、 その他、 ァク夕管理部が提供しているァク夕 管理関係のサービスを操作者 90がインタラクティブに利用する際に用いる特殊 なァク夕である。 即ちシェル 94も、 本実施例では、 レベル 2スクリプトで書か れたァクタとなっている。
図 17Aにおいて mi s h [n] はプロムプトであり、 カツコ内の数字 nはシ エルァクタのトータルフレーム数 (総経過時間) である。 pwdは現在いる位置 (カレントァク夕) を表示させるコマンドである。 また 1 sはァクタの子ァク夕 を全て表示させるコマンドである。 また exe 5は現時点から 5フレームだけ実 行させるコマンドであり、 runは停止要求が無い限り実行を続ける命令である。 このようなシェルをァク夕により実現することで、 アプリケーションプログラ ムの開発を格段に効率化することが可能となる。 なお図 17 Bに示すように、 ワークステーションを使用せずに、 シェルを基板 上に搭載し、 表示物の画像が映し出される画面上にシェルを表示するようにして もよい。
図 18A、 図 18B、 図 18 Cに本実施例を種々の装置に適用した場合の例を 示す。
図 18Aは、 本実施例を業務用ゲーム装置に適用した場合の例である。 プレー ャは、 ディスプレイ 1 100上に映し出されたゲーム画像を見ながら、 レバー 1 102、 ボタン 1 104等を操作してゲームを楽しむ。 装置に内蔵される基板 1 106には、 CPU、 画像生成 I C、 音生成 I C等が実装されている。 そして、 並列実行可能なプロセスであり且つクラスのィンスタンスであるァク夕の生成、 起動、 単位時間毎の実行、 休眠、 中断、 再開及び終了の少なくとも 1つを管理す るための情報、 ァク夕により各々が表される複数の表示物を含む画像を生成する ための情報等は、 基板 1 106上の情報記憶媒体であるメモリ 1 108に格納さ れる。 以下、 これらの情報を格納情報と呼ぶ。 これらの格納情報は、 上記の種々 の処理を行うためのプログラムコード、 画像情報、 音情報、 表示物の形状情報、 テーブルデ一夕、 リストデータ、 プレーヤ情報等の少なくとも 1つを含むもので ある。
図 18 Bに、 本実施例を家庭用のゲーム装置に適用した場合の例を示す。 プレ —ャはディスプレイ 1200に映し出されたゲーム画像を見ながら、 ゲームコン トロ一ラ 1202、 1204を操作してゲームを楽しむ。 この場合、 上記格納情 報は、 本体装置に着脱自在な情報記憶媒体である CD— ROM 1206、 I C力 ード 1208、 1209等に格納されている。
図 18 Cに、 ホスト装置 1300と、 このホスト装置 1300と通信回線 13
02を介して接続される端末 1304 - 1〜 1304 -nとを含むゲーム装置に本実 施例を適用した場合の例を示す。 この場合、 上記格納情報は、 例えばホスト装置
1300が制御可能な磁気ディスク装置、 磁気テープ装置、 メモリ等の情報記憶 媒体 1306に格納されている。 端末 1304-1〜: L 304 が、 CPU、 画像 生成 I C、 音生成 I Cを有し、 スタンドアロンでゲーム画像、 ゲーム音を生成で きるものである場合には、 ホスト装置 1 3 0 0からは、 ゲーム画像、 ゲーム音を 生成するためのゲームプログラム等が端末 1 3 0 4 -1〜 1 3 0 4 -nに配送される。 一方、 スタンドアロンで生成できない場合には、 ホスト装置 1 3 0 0がゲーム画 像、 ゲーム音を生成し、 これを端末 1 3 0 4 _1〜 1 3 0 4 -nに伝送し端末におい て出力することになる。
なお本発明は、 上記実施例で説明したものに限らず、 種々の変形実施が可能で ある。
例えば本実施例ではァクタ管理部が C言語で記述された関数群 (ライブラリ) であると説明したが、 ァクタ管理部の実現形態はこれに限られるものではない。 また本実施例ではァク夕構造体を用意してァクタ管理を行い、 ァク夕の内容の 記述にスクリプトを用いているが、 本発明はこれに限られるものではない。
また本発明は、 種々の画像の生成に適用できる。 例えば図 1 9 Aにレーシング ゲームの画像生成に本発明を適用した例を示す。 図 1 9 Aでは、 ハンドル、 ァク セル等の入力デバイス 9 0からの操作情報が入力監視ァクタ 9 1により監視され る。 そして入力監視ァクタ 9 1からハンドル回転量、 アクセル踏み込み量等の情 報が自車ァクタ 9 2に送られ、 自車ァクタ 9 2は送られたきたこれらの情報に基 づいて自車の位置、 方向情報を求める。 そしてこれらの位置、 方向情報は背景制 御ァクタ 9 4に送られ、 背景制御ァクタ 9 4はこれらの情報に基づいて、 マップ 上の各場所での背景表示を担当する背景ァク夕 9 5 -1〜9 5 -8を制御したり、 自 車がいる位置での背景画像情報を得る。 位置、 方向情報は、 音制御ァクタ 9 3に も送られ、 音制御ァク夕 9 3はこれらの情報を用いて音制御を行う。 例えばマツ プ上のトンネル 9 6の場所に自車が位置する場合には、 トンネルの中で聞こえる ような音になるように音制御を行う。 また図 1 9 Bに、 群をなして移動する鳥の 画像の生成に本発明を適用した例を示す。 群知能計算代行ァクタ 9 7は、 鳥が羽 ばたきながら飛んで行く時の鳥の重心の座標と回転角の計算を行う。 この場合、 例えば(1 )環境における自分以外の対象間と最小距離を保つ(2)近傍の他の鳥の速 度べクトルとマッチする(3)近傍の他の鳥の重心と思われる方向に移動する等の規 則に基づいて群知能計算代行ァク夕 9 7は計算を行う。 また鳥ァク夕 9 8 -1〜9 8 -4は、 鳥の羽ばたきを表すレベル 1スクリプトにより動作する。 また本発明は 格闘ゲームの画像の生成等にも適用できる。 この場合、 例えば格闘ゲームキャラ クタのァク夕、 技のァクタ、 武器のァク夕などを用意すれば、 格闘ゲームキャラ クタと技と武器の組み合わせのバラエティ度を格段に増すことができる。
また本発明は、 コンピュータグラフィックス画像の作成装置、 開発ツール、 業 務用ゲーム装置、 家庭用ゲーム装置、 操縦訓練のためのシミュレータ、 多数のプ レ一ャが参加する大型アトラクション装置、 パーソナルコンピュータ、 マルチメ ディア端末等、 種々のものに適用できる。
また本発明は 3次元画像生成装置に特に有効だが、 2次元ゲーム装置にも適用 可能である。

Claims

請 求 の 範 囲
( 1 ) 並列実行可能なプロセスであり且つクラスのィンスタンスであるァク夕の 生成、 起動、 単位時間毎の実行、 休眠、 中断、 再開及び終了の少なくとも 1つを 管理するためのァク夕管理手段と、
ァクタにより各々が表される複数の表示物を含む画像を生成する手段とを含む ことを特徴とする画像生成装置。
( 2 ) 請求項 1において、
表示物を表すためのァク夕、 音制御のためのァク夕、 インタ一フェースのため のァク夕、 ァク夕間通信のためのァク夕及び記憶管理のためのァク夕の少なくと も 1つを用意することを特徴とする画像生成装置。
( 3 ) 請求項 2において、
音制御のための前記ァク夕が、 表示物を表すための前記ァクタからの配置情報 に基づいて音制御を行うことを特徴とする画像生成装置。
( 4 ) 請求項 1において、
ァクタの有効、 無効を表すための情報、 ァク夕により表される表示物の表示の 有効、 無効を表すための情報、 フク夕の時間カウントの有効、 無効を表すための 情報、 時間カウントのループの有効、 無効を表すための情報、 自身のァク夕を特 定するための情報、 親ァク夕を特定するための情報、 子ァク夕を特定するための 情報、 ァクタのメソッ ドを特定するための情報、 ァク夕により表される表示物の モデルを特定するための情報、 ァクタにより表される表示物の配置情報、 ァクタ に関する時間情報、 自身のァク夕に対してアクションを起こしたァクタ及び該ァ クシヨンの種類を特定するための情報、 ァクタ間の通信に関する情報、 ァクタの 変数の値を格納した記憶領域を特定するための情報の少なくとも 1つを含むァク 夕情報を、 生成された各ァク夕毎に用意することを特徴とする画像生成装置。
( 5 ) 請求項 4において、
ァクタを特定するための情報として、 複数種類の特定情報を用意することを特 徴とする画像生成装置。
( 6 ) 請求項 4において、
ァク夕のメソッ ドを特定するための前記情報が、
ァク夕のメソッ ドを記述するためのスクリプトを特定するための情報及び単位 時間毎に実行するメソッ ドを複数のメソッ ドの中から特定するための情報の少な くとも 1つを含むことを特徴とする画像生成装置。
( 7 ) 請求項 4において、
ァクタに関する前記時間情報が、
ァクタの時間カウントが有効になってからの経過時間情報、 時間カウントのル ープが有効な場合の総経過時間情報、 ァク夕の休眠に関する時間情報の少なくと も 1つを含むことを特徴とする画像生成装置。
( 8 ) 請求項 4において、
前記ァクタ情報を、 ァクタ生成時に構造体の形式で所与の記憶領域に格納し、 格納された該ァクタ情報に基づいてァクタ管理を行うことを特徴とする画像生成 装置。
( 9 ) 請求項 4において、
前記ァク夕情報に対して自身及び他のァクタがアクセス可能であることを特徴 とする画像生成装置。
( 1 0 ) 請求項 4において、
ァク夕のメソッ ドを特定するための情報、 ァクタにより表される表示物のモデ ルを特定するための情報及びァク夕により表される表示物の配置情報の組み合わ せがリアルタイムに任意に切り替え可能であることを特!! (とする画像生成装置。
( 1 1 ) 請求項 4において、
ァクタを特定するための情報を用いてァクタの自己複製及び自己消滅の少なく とも 1つを行うことを特徴とする画像生成装置。
( 1 2 ) 請求項 1又は 4において、
ァクタの生成時に実行されるメソッ ド、 ァク夕の起動時に実行されるメソッド、 単位時間毎に実行されるメソッ ド、 ァクタの休眠時に実行されるメソッ ド、 ァク 夕の中断時に実行されるメソッ ド、 ァクタの再開時に実行されるメソッ ド、 ァク 夕の強制終了時に実行されるメソッ ド及びァク夕の寿命による自然終了時に実行 されるメソッ ドの少なくとも 1つを、 ァクタの既定義のメソッ ドとして用意する ことを特徴とする画像生成装置。
(13) 請求項 1又は 4において、
ァク夕により表される表示物のモーションのメソッ ドを記述するための第 1の スクリプトと、 ァク夕の変数及びメソッ ドを記述するための第 2のスクリブトと を用意することを特徴とする画像生成装置。
(14) 請求項 13において、
第 1のァクタについてはメンバ変数を各々のァクタに固有の構造体のメンバで 表すと共にメソッ ドを前記第 1のスクリプトで表し、
第 2のァク夕についてはメンバ変数を各々のァクタに固有の構造体のメンバ及 び前記第 2のスクリプトで表すと共にメソッ ドを前記第 2のスクリプトで表すこ とを特徴とする画像生成装置。
(15) 請求項 1又は 4において、
プロセスとして並列実行されている複数のァク夕が共通に使用するメソヅ ドの 実行コードを同一の記憶領域に格納することを特徴とする画像生成装置。
(16) 請求項 1又は 4において、
ァク夕の実行に必要な記憶領域をァクタの生成時に確保し、 確保された記憶領 域をァクタの終了時に解放することを特徴とする画像生成装置。
(17) 請求項 1又は 4において、
ァク夕の単位時間毎の実行時に、 ァク夕の階層構造の上位から下位の順でァク 夕のメソッドの実行の切り替えを行うことを特徴とする画像生成装置。
(18) 請求項 1又は 4において、
前記ァクタ管理手段が、
アプリケ一ションプログラムの実行モジュールにリンクされるライブラリであ ることを特徴とする画像生成装置。
(19) 請求項 1又は 4において、
前記ァク夕管理手段が、 ァクタのメソッ ドが記述される同一のスクリプトを異なるハードウェア資源上 で実行するための手段を含むことを特徴とする画像生成装置。
( 2 0 ) 請求項 1又は 4において、
ァクタの生成、 起動、 単位時間毎の実行、 休眠、 中断、 再開、 終了及び配置情 報の少なくとも 1つを操作者がィンタラクティブに制御するためのァク夕を用意 することを特徴とする画像生成装置。
( 2 1 ) 画像生成を行うための情報記憶媒体であって、
並列実行可能なプロセスであり且つクラスのィンスタンスであるァクタの生成、 起動、 単位時間毎の実行、 休眠、 中断、 再開及び終了の少なくとも 1つを管理す るための情報と、
ァクタにより各々が表される複数の表示物を含む画像を生成するための情報と を含むことを特徴とする情報記憶媒体。
( 2 2 ) 請求項 2 1において、
ァク夕の有効、 無効を表すための情報、 ァク夕により表される表示物の表示の 有効、 無効を表すための情報、 ァク夕の時間カウントの有効、 無効を表すための 情報、 時間カウントのループの有効、 無効を表すための情報、 自身のァクタを特 定するための情報、 親ァクタを特定するための情報、 子ァク夕を特定するための 情報、 ァク夕のメソッ ドを特定するための情報、 ァクタにより表される表示物の モデルを特定するための情報、 ァクタにより表される表示物の配置情報、 ァク夕 に関する時間情報、 自身のァク夕に対してアクションを起こしたァク夕及び該ァ クシヨンの種類を特定するための情報、 ァクタ間の通信に関する情報、 ァク夕の 変数の値を格納した記憶領域を特定するための情報の少なくとも 1つを含むァク 夕情報を、 生成された各ァクタ毎に用意することを特徴とする情報記憶媒体。
PCT/JP1998/001152 1997-03-18 1998-03-18 Generateur d'images et support de donnees WO1998041952A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US09/180,891 US6388667B1 (en) 1997-03-18 1998-03-18 Image generation device and information storage medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP9/84385 1997-03-18
JP8438597 1997-03-18

Publications (1)

Publication Number Publication Date
WO1998041952A1 true WO1998041952A1 (fr) 1998-09-24

Family

ID=13829104

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP1998/001152 WO1998041952A1 (fr) 1997-03-18 1998-03-18 Generateur d'images et support de donnees

Country Status (2)

Country Link
US (1) US6388667B1 (ja)
WO (1) WO1998041952A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1329852A1 (en) * 2000-10-20 2003-07-23 Matsushita Electric Industrial Co., Ltd. Video information producing device
JP2003263653A (ja) * 2002-12-26 2003-09-19 Sanyo Product Co Ltd 遊技機
JP2004506262A (ja) * 2000-08-04 2004-02-26 イントリンジック グラフィックス, インコーポレイテッド グラフィックハードウェアおよびソフトウェアの開発
JP2015530125A (ja) * 2012-07-04 2015-10-15 テンセント テクノロジー (シェンジェン) カンパニー リミテッド 複雑なプロットを見せるようプロット命令を実行する方法及び装置

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7409647B2 (en) * 2000-09-19 2008-08-05 Technion Research & Development Foundation Ltd. Control of interactions within virtual environments
JP3939189B2 (ja) * 2002-04-17 2007-07-04 パナソニック コミュニケーションズ株式会社 情報処理装置、製品の組立工程表示用プログラム、及び製品の組立工程表示方法
US7126607B2 (en) 2002-08-20 2006-10-24 Namco Bandai Games, Inc. Electronic game and method for effecting game features
WO2004034701A1 (en) * 2002-10-10 2004-04-22 Thomson Licensing S.A. Method for the uninterrupted display of television programs with suppressed program segments
CA2418582A1 (en) * 2003-02-07 2004-08-07 Dupont Canada Inc. A method for simulating and modeling the presence and growth of microbes, including pathogens and spoilage organisms through a food supply chain
US7084894B2 (en) * 2003-09-12 2006-08-01 Hewlett-Packard Development Company, L.P. Optical disc drive focusing apparatus
US20080055316A1 (en) * 2006-08-30 2008-03-06 Microsoft Corporation Programmatically representing sentence meaning with animation
US20090265667A1 (en) * 2008-04-22 2009-10-22 Josef Reisinger Techniques for Providing Three-Dimensional Virtual-World Presentations
TW201044185A (en) * 2009-06-09 2010-12-16 Zillians Inc Virtual world simulation systems and methods utilizing parallel coprocessors, and computer program products thereof
JP2013162221A (ja) * 2012-02-02 2013-08-19 Sony Corp 情報処理装置、情報処理方法、情報処理プログラム
US9891799B2 (en) * 2014-10-28 2018-02-13 Gree, Inc. Game program, computer control method, and information processing apparatus

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0840279A3 (en) * 1996-11-05 1998-07-22 Compaq Computer Corporation Method and apparatus for presenting video on a display monitor associated with a computer

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
DOELLNER J. et al., "Object-Oriented 3D Moldelling, Animation and Interaction", THE JOURNAL OF VISUALIZATION AND COMPUTER ANIMATION, 1997, Vol. 8, pages 33-64. *
LELER W.M., "Actor-Based Simulation + Linda = Virtual Environments (Managing Complexity in a Virtual World)", NORTHCON CONFERENCE RECORD, 1991, Vol. 10, pages 427-432. *
MA H. AND LIU S., "Intelligent Aniation System", NEW ADVANCES IN COMPUTER AIDED DESSIGN & COMPUTER GRAPHICS, 1993, Vol. 1, pages 121-124. *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004506262A (ja) * 2000-08-04 2004-02-26 イントリンジック グラフィックス, インコーポレイテッド グラフィックハードウェアおよびソフトウェアの開発
EP1329852A1 (en) * 2000-10-20 2003-07-23 Matsushita Electric Industrial Co., Ltd. Video information producing device
EP1329852A4 (en) * 2000-10-20 2007-05-30 Matsushita Electric Ind Co Ltd VIDEO INFORMATION PRODUCTION FACILITY
JP2003263653A (ja) * 2002-12-26 2003-09-19 Sanyo Product Co Ltd 遊技機
JP2015530125A (ja) * 2012-07-04 2015-10-15 テンセント テクノロジー (シェンジェン) カンパニー リミテッド 複雑なプロットを見せるようプロット命令を実行する方法及び装置
US9370719B2 (en) 2012-07-04 2016-06-21 Tencent Technology (Shenzhen) Company Limited Method and apparatus for executing plot instructions to show complex plots

Also Published As

Publication number Publication date
US6388667B1 (en) 2002-05-14

Similar Documents

Publication Publication Date Title
WO1998041952A1 (fr) Generateur d'images et support de donnees
Young An overview of the mimesis architecture: Integrating intelligent narrative control into an existing gaming environment
US6141019A (en) Creature animation and simulation technique
EP0937286B1 (en) Process control
US9724610B2 (en) Creation and prioritization of multiple virtual universe teleports in response to an event
CN112669194B (zh) 虚拟场景中的动画处理方法、装置、设备及存储介质
CN112755534B (zh) 一种数据处理方法、装置和存储介质
Kienzle et al. Mammoth: a massively multiplayer game research framework
Johnson-Bey et al. Neighborly: A sandbox for simulation-based emergent narrative
Horswill Lightweight procedural animation with believable physical interactions
Lees et al. Agents, games and HLA
Davison Pro Java 6 3D Game Development: Java 3D, JOGL, JInput and JOAL APIs
Götz et al. A role-based language for collaborative robot applications
Pape et al. XP: An authoring system for immersive art exhibitions
CN113144617B (zh) 虚拟对象的控制方法、装置、设备及计算机可读存储介质
Leite et al. Evolving characters in role playing games
WO2024179194A1 (zh) 虚拟对象的生成方法、装置、设备及存储介质
Chandra et al. Emerson: Scripting for federated virtual worlds
Li Using neural parallel language in distributed game world composing
Brown et al. Quake ii as a robotic and multi-agent platform
CN115957510B (zh) 一种角色行为控制的方法及系统
e Abreu IViHumans Platform The Graphical Processing Layer
McQuillan A survey of behaviour trees and their applications for game AI
Mifek Procedurální generování vesnic ve hře Minecraft pomocí algoritmu Wave Function Collapse
Chamberlain A 3D virtual environment development platform for ASD therapy tools

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): JP US

WWE Wipo information: entry into national phase

Ref document number: 09180891

Country of ref document: US