WO2012111621A1 - オブジェクト動作装置及び方法、並びにプログラム - Google Patents

オブジェクト動作装置及び方法、並びにプログラム Download PDF

Info

Publication number
WO2012111621A1
WO2012111621A1 PCT/JP2012/053290 JP2012053290W WO2012111621A1 WO 2012111621 A1 WO2012111621 A1 WO 2012111621A1 JP 2012053290 W JP2012053290 W JP 2012053290W WO 2012111621 A1 WO2012111621 A1 WO 2012111621A1
Authority
WO
WIPO (PCT)
Prior art keywords
motion
data
motion data
unit time
scalar
Prior art date
Application number
PCT/JP2012/053290
Other languages
English (en)
French (fr)
Inventor
智彦 向井
Original Assignee
株式会社スクウェア・エニックス
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 株式会社スクウェア・エニックス filed Critical 株式会社スクウェア・エニックス
Priority to EP12747089.6A priority Critical patent/EP2677503A4/en
Priority to CN201280007574.0A priority patent/CN103403766B/zh
Priority to US13/980,113 priority patent/US8970602B2/en
Publication of WO2012111621A1 publication Critical patent/WO2012111621A1/ja

Links

Images

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/55Controlling game characters or game objects based on the game progress
    • A63F13/57Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race 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/55Controlling game characters or game objects based on the game progress
    • A63F13/57Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
    • A63F13/573Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game using trajectories of game objects, e.g. of a golf ball according to the point of impact
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • 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/64Methods for processing data by generating or executing the game program for computing dynamical parameters of game objects, e.g. motion determination or computation of frictional forces for a virtual car
    • A63F2300/646Methods for processing data by generating or executing the game program for computing dynamical parameters of game objects, e.g. motion determination or computation of frictional forces for a virtual car for calculating the trajectory of an object
    • 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

Definitions

  • the present invention relates to an object motion apparatus that blends motion data in order to connect two different motions of objects that are successively executed without a sense of incongruity.
  • the motion data related to those motions are gradually added in the overlapping period of the previous motion and the subsequent motion.
  • the motion synthesis rate (motion blend rate) is obtained from the rotation angle around the X axis and the Y axis, and the motion data of the character is generated by synthesizing the reference motion at the obtained motion synthesis rate.
  • Patent Document 1 There is a technique for moving a character with generated motion data (Patent Document 1).
  • Patent Document 1 There are also spline interpolations that express the transition of two different operations without a sense of incongruity.
  • JP 2010-237882 (paragraph 0118 etc.)
  • Patent Literature 1 performs synthesis characterized by the shape of a model determined by the rotation angle, etc., and features of different movement and rotation speeds in motion data related to the respective operations before and after. , The speed feature will be ignored.
  • the present invention provides an object motion device that generates motion data interposed between two motions so that two different motions of a continuously executed object including a rotation motion are smoothly connected. With the goal.
  • an object motion apparatus causes a second motion that is different from the first motion after causing the object existing in the virtual three-dimensional space to perform the first motion.
  • An object motion device that moves an object and moves the object by including a three-dimensional rotation motion in at least one of the first motion and the second motion, and a plurality of unit times defining the first motion
  • Motion data storage means for storing first motion data consisting of minutes of data and second motion data consisting of data for a plurality of unit times defining the second operation, and a plurality of data constituting the first motion data
  • First motion data setting for setting terminal data for operating the object in accordance with the first motion data in the unit time data
  • a second motion data setting means for setting start data for operating the object in accordance with the second motion data among a plurality of unit time data constituting the second motion data; and
  • Interpolated motion data generating means for generating, as motion data, data for a plurality of unit times interposed between a terminal end operated according to one motion data and
  • the motion data generation means includes a rotation amount of the three-dimensional rotation motion of the object in the case of following the first motion data in each unit time in a plurality of unit times interposed between the end and the start, and the second A rotation amount specifying means for specifying the rotation amount of the three-dimensional rotation operation of the object in accordance with the motion data, and a three-dimensional rotation operation of the object in accordance with the first motion data specified by the rotation amount specification means
  • a rotation amount decomposing means for decomposing a rotation amount in each unit time and a rotation amount in each unit time of the three-dimensional rotation operation of the object in accordance with the second motion data into a scalar rotation amount, and the rotation amount
  • the scan in each unit time when following the first motion data decomposed by the decomposition means A scalar speed in each unit time of the three-dimensional rotation operation of the object in accordance with the first motion data, based on a rotation amount of the error and a scalar rotation amount in each unit time in accordance with the second motion data, and
  • a scalar that specifies the scalar velocity in each unit time Each unit time in a plurality of unit times interposed between the end and the start by performing a predetermined calculation on the scalar speed in each unit time specified by the error speed specifying means and the scalar speed specifying means
  • a scalar rotation amount calculating means for calculating a scalar rotation amount for the three-dimensional rotation operation of the object to be applied in step (b), and based on the scalar rotation amount calculated by the scalar rotation amount calculation means, between the end and the start end.
  • a rotation amount reproducing means for reproducing the rotation amount of the object to be applied in each unit time of a plurality of unit times.
  • the scalar rotation amount calculation means can perform a matrix operation using a predetermined matrix as the predetermined operation.
  • the matrix operation using the predetermined matrix may be an operation based on a Poisson equation.
  • the scalar rotation amount calculation means calculates the scalar rotation amount to be applied in each unit time in a plurality of unit times interposed between the end and the start.
  • the calculation may be performed using only X rows of the predetermined matrix for the Xth element of the scalar velocity.
  • the rotation amount decomposition unit decomposes the rotation amount of the three-dimensional rotation motion of the object into a scalar rotation amount by an exponent map, and the rotation amount reproduction unit uses a logarithmic map.
  • the rotation amount of the object may be reproduced based on the scalar rotation amount.
  • the second motion data is used.
  • the prescribed second operation is performed from the set start data.
  • data for a plurality of unit times generated by the interpolation motion data generation means intervene as motion data.
  • At least one of the first operation and the second operation includes a three-dimensional rotation operation.
  • the data of the three-dimensional rotation operation is non-linear data, and at least one of the first motion data including such non-linear data and the second motion data are smoothly connected without any sense of incongruity. It is not simple to generate motion data until the second operation is started.
  • the rotation amount of the three-dimensional rotation operation is specified for each unit time, and each is decomposed into a scalar rotation amount. Then, a scalar speed is specified from the scalar rotation amount in each decomposed unit time, and the scalar rotation amount is calculated. Then, based on the calculated scalar rotation amount, in the motion data until the transition from the first operation to the second operation, between the end point operated according to the first motion data and the start end operated according to the second motion data It is assumed that the rotation amount of the object to be applied in each unit time in a plurality of unit times interposed in is reproduced.
  • motion data for a plurality of unit times intervening between a terminal end operated according to the first motion data and a start end operated according to the second motion data is generated as calculation with linear data. It is relatively easy to generate motion data from the first operation including the rotation operation to the second operation so that the motion data and the second motion data are smoothly connected without a sense of incompatibility. It will be simple.
  • the operation becomes simple.
  • the processing amount for the operation can be reduced.
  • the decomposition into the scalar rotation amount and the reproduction of the object rotation amount can be made relatively simple. be able to.
  • each of the first motion and the second motion includes a three-dimensional rotation motion
  • the scalar velocity specifying means is configured to calculate the scalar velocity.
  • the scalar speed in each unit time in accordance with the first motion data calculated by the means and the scalar speed in each unit time in accordance with the second motion data are compared for each corresponding unit time, and absolute values are obtained in each unit time.
  • the scalar velocity having the larger value may be specified as the scalar velocity in each unit time of the three-dimensional rotation operation of the object to be applied in a plurality of unit times interposed between the end and the start.
  • data of a unit time after the end of a plurality of unit time data constituting the first motion data and a plurality of pieces constituting the second motion data may be generated on the basis of the time-shifted first motion data and the second motion data by the time shift means.
  • the data for each unit time of a plurality of unit times interposed between the terminal end operated according to the first motion data and the start end operated according to the second motion data includes data of each unit time included in the first motion data.
  • data generated based on the closest approximations of the unit time data included in the second motion data that is, data having the smallest difference between the first motion data and the second motion data is included. . Accordingly, it is possible to generate motion data from the first operation to the second operation in which the first motion data and the second motion data are smoothly connected without a sense of incongruity.
  • an object operation method is a computer apparatus in which a first operation is performed on an object existing in a virtual three-dimensional space, and then the first operation is performed.
  • a first step of storing in advance in the computer device first motion data composed of data for a unit time and second motion data composed of data for a plurality of unit times defining the second operation; Set end data for operating the object in accordance with the first motion data out of data for a plurality of unit times constituting one motion data.
  • the fourth step includes a plurality of units interposed between the terminal end and the starting end.
  • each unit time in time the amount of rotation of the three-dimensional rotation motion of the object in accordance with the first motion data, and the amount of rotation of the three-dimensional rotation motion of the object in accordance with the second motion data, respectively A step of specifying, a rotation amount in each unit time of the three-dimensional rotation operation of the object in accordance with the first motion data, and a rotation in each unit time of the three-dimensional rotation operation of the object in accordance with the second motion data.
  • a program according to a third aspect of the present invention is a computer device that performs a first operation on an object existing in a virtual three-dimensional space, and then performs a first operation different from the first operation.
  • a program for causing the object to operate by causing a motion of the object to include a three-dimensional rotation motion in at least one of the first motion and the second motion, and defining the first motion
  • Motion data storage means for preliminarily storing in the computer device first motion data comprising data for a unit time and second motion data comprising data for a plurality of unit times defining the second operation; Terminal data for operating the object in accordance with the first motion data among the data for a plurality of unit times constituting the motion data.
  • First motion data setting means for setting data, and second motion data setting for setting start data for operating the object in accordance with the second motion data among a plurality of unit time data constituting the second motion data
  • Interpolating motion data generating means for generating, as motion data, data for a plurality of unit time intervening between a terminal for operating the object according to the first motion data and a starting terminal for operating the object according to the second motion data; Using each unit time data until the end of the first motion data, each unit time data generated by the interpolation motion data generating means, and each unit time data from the starting end of the second motion data.
  • the object that operates the object A program for causing the computer device to function as a project operation unit, wherein the interpolation motion data generation unit includes the first motion in each unit time in a plurality of unit times interposed between the end and the start.
  • a rotation amount specifying means for specifying a rotation amount of the three-dimensional rotation motion of the object in accordance with the data and a rotation amount of the three-dimensional rotation motion of the object in accordance with the second motion data; Rotation amount in each unit time of the three-dimensional rotation operation of the object in accordance with the first motion data specified by the means, and rotation amount in each unit time in the three-dimensional rotation operation of the object in accordance with the second motion data
  • a rotation amount decomposition hand that decomposes each into a scalar rotation amount.
  • the scalar rotation amount in each unit time when following the first motion data decomposed by the rotation amount decomposition means, and the scalar rotation amount during each unit time when following the second motion data A scalar velocity for calculating a scalar velocity in each unit time of the three-dimensional rotation operation of the object in accordance with one motion data and a scalar velocity in each unit time of the three-dimensional rotation operation of the object in accordance with the second motion data. Based on the calculation means, the scalar speed in each unit time in accordance with the first motion data calculated by the scalar speed calculation means, and the scalar speed in each unit time in accordance with the second motion data, the termination A plurality of unit times intervening between the starting ends.
  • a scalar speed specifying means for specifying a scalar speed in each unit time of the three-dimensional rotation operation of the object to be applied, and a predetermined calculation is performed on the scalar speed in each unit time specified by the scalar speed specifying means.
  • a scalar rotation amount calculating means for calculating a scalar rotation amount for a three-dimensional rotation operation of the object to be applied in each unit time among a plurality of unit times interposed between the end and the start end, and the scalar rotation amount Rotation amount reproduction means for reproducing the rotation amount of the object to be applied in each unit time in a plurality of unit times interposed between the end and the start based on the scalar rotation amount calculated by the calculation means. It is characterized by that.
  • the program according to the third aspect can be provided by being recorded on a computer-readable recording medium.
  • the computer-readable recording medium may be a recording medium configured to be detachable from the computer device and provided separately from the computer device.
  • the computer-readable recording medium may be a recording medium such as a fixed disk device provided in the computer device and provided together with the computer device.
  • the program according to the third aspect can be distributed from the server device existing on the network to the computer device through the network by superimposing the data signal on a carrier wave.
  • FIG. 1 It is a block diagram which shows the structure of the video game apparatus applied to embodiment of this invention. It is the figure which represented typically the flow of the operation
  • FIG. 1 is a block diagram showing a configuration of a video game apparatus applied to this embodiment.
  • the video game apparatus 100 is built around the apparatus main body 101.
  • the apparatus main body 101 includes a control unit 103, a RAM (Random Access Memory) 105, a hard disk drive (HDD) 107, a sound processing unit 109, a graphic processing unit 111, a DVD / CD-ROM drive connected to the internal bus 119. 113, a communication interface 115, and an interface unit 117.
  • a control unit 103 includes a control unit 103, a RAM (Random Access Memory) 105, a hard disk drive (HDD) 107, a sound processing unit 109, a graphic processing unit 111, a DVD / CD-ROM drive connected to the internal bus 119.
  • 113 includes a communication interface 115, and an interface unit 117.
  • the sound processing unit 109 of the device main body 101 is connected to a sound output device 125 that is a speaker, and the graphic processing unit 111 is connected to a display device 121 having a display screen 122.
  • a recording medium (DVD-ROM or CD-ROM in this embodiment) 131 can be mounted on the DVD / CD-ROM drive 113.
  • the communication interface 115 is connected to the network 151.
  • An input unit (controller) 161 and a memory card 162 are connected to the interface unit 117.
  • the control unit 103 includes a CPU (Central Processing Unit), a ROM (Read Only Memory), and the like, executes a program stored on the HDD 107 and the recording medium 131, and controls the apparatus main body 101.
  • the control unit 103 includes an internal timer.
  • the RAM 105 is a work area of the control unit 103, and information related to the basic action of the player character, which will be described later, is temporarily stored in the RAM 105.
  • the HDD 107 is a storage area for storing data relating to programs, basic actions of player characters, and the like.
  • the graphic processing unit 111 is drawn in the frame memory 112 (in the figure, outside the graphic processing unit 111, but in a RAM included in a chip constituting the graphic processing unit 111 in accordance with a drawing command output from the control unit 103.
  • the image data is developed and a video signal for displaying the image on the display screen 122 of the display device 121 is output.
  • One frame time of an image included in the video signal output from the graphic processing unit 111 is, for example, 1/60 second.
  • Two sets of the frame memory 112 are provided, and data writing and reading are switched for each frame period.
  • the graphic processing unit 111 generates image data of a two-dimensional image obtained by perspective-transforming objects (player characters, non-player characters, and objects other than characters) existing in the virtual three-dimensional space with a virtual camera, and stores them in the frame memory 112. Write.
  • the DVD / CD-ROM drive 113 reads programs and data from the recording medium 131.
  • the communication interface 115 is connected to the network 151 and communicates with other computers.
  • the input unit 161 includes a direction key and a plurality of operation buttons. The position of the player character in the virtual three-dimensional space is moved by an instruction input from the direction key of the input unit 161.
  • the interface unit 117 outputs the input data from the input unit 161 to the RAM 105, and the control unit 103 interprets it and performs arithmetic processing.
  • the interface unit 117 also stores data indicating the progress of the game stored in the RAM 105 in the memory card 162 based on an instruction from the control unit 103, and the interrupted game stored in the memory card 162. Are read out and transferred to the RAM 105.
  • a program and data for playing a game on the video game apparatus 100 are first stored in the recording medium 131, for example.
  • the data stored in the recording medium 131 includes graphic data for configuring an object existing in the game space (virtual three-dimensional space), data relating to the basic motion of the player character, and the like.
  • the program and data stored in the recording medium 131 are read out by the DVD / CD-ROM drive 113 at the time of execution and loaded into the RAM 105.
  • the control unit 103 processes the program and data loaded in the RAM 105, outputs a drawing command to the graphic processing unit 111, and outputs a sound output instruction to the sound processing unit 109. Intermediate data while the control unit 103 is performing processing is stored in the RAM 105.
  • a plurality of three-dimensional objects exist in a virtual three-dimensional space serving as a game space, and an image obtained by perspective-transforming these objects with a virtual camera is displayed on the display screen of the display device 121 as a game image.
  • Objects existing in the virtual three-dimensional space include a player character that is operated by an input from the player input unit 161, a non-player character that is a character other than the player character (operated by the control unit 103), and a terrain other than the character.
  • An object whose position does not move in a virtual three-dimensional space such as a building is included.
  • the player can execute various movements relating to the movement of the player character's arms and legs, such as walking, running, sitting, standing up, throwing, etc. as basic actions of the player character.
  • These basic operations are respectively defined by data relating to the three-dimensional position P (t) and the three-dimensional rotation R (t) that determine the posture for each frame.
  • Data relating to the three-dimensional position P (t) and the three-dimensional rotation R (t) are stored in the recording medium 131 as motion data constituting a part of the game program and transferred to the HDD 107 or the like.
  • a compound action is generated by blending data related to two different basic actions executed at the same time, and a compound action is executed simultaneously, for example, a running action and a throwing action, or a walking action and a throwing action.
  • Data relating to two different basic motions are blended, or data of motions that run at an intermediate speed from motions that run slowly and those that run fast are generated by motion blending. Since this blend is not directly related to the present invention, a detailed description thereof is omitted.
  • the transition operation is a transitional operation during the transition of operations when two different basic operations are executed in succession, and there is no sense of incongruity in the transition from the previous basic operation to the subsequent basic operation. To be generated.
  • the transition operation is performed by, for example, two different basic operations continuously performed in a series of flows in the game progress, such as when the player character is walking, running, running, or walking. Are generated to connect the two different basic operations.
  • motion B a frame having a terminal posture (hereinafter referred to as “motion B”) and a frame (hereinafter referred to as a “starting frame”) corresponding to a subsequent motion (hereinafter referred to as “motion B”).
  • a conventional method may be used for the setting of the end posture of motion A and the start posture of motion B.
  • the starting posture of the program may be determined in advance by the program designer, and the predetermined end posture and the starting posture are automatically set at the same time as the two motions to be executed in succession are determined. Good.
  • the execution timing of motion B is set for motion A so that the frame in the frame before the start end overlaps the timing of the frame in the frame after the end.
  • the motion data related to the transition motion is generated by blending the motions related to the post-end frame and the pre-start end frame. The details of the blending of motion between the end frame of motion A and the start frame of motion B will be described later.
  • the motion data related to the motion A and the transition motion generated by the blending are processed up to the terminal posture set as described above.
  • the motion data related to the motion B and the motion data related to the motion B are used from the starting end posture set as described above, and each frame is operated.
  • the motion blend according to this embodiment, data relating to a three-dimensional position P (t) and a three-dimensional rotation R (t) that define postures in a post-end frame and a pre-start frame that define two motions to be executed in succession.
  • the velocity component is calculated from the motion, and the motion blend is performed based on the calculated velocity component of each motion.
  • the three-dimensional position P (t) and the three-dimensional rotation R (t) that determine the posture of the player character in each frame of the blended motion ). Therefore, first, the three-dimensional position P (t) and the three-dimensional rotation R (t) that define the posture of the player character for each frame of the post-end frame related to motion A and the pre-start frame related to motion B before motion blending. ) Is calculated.
  • the three-dimensional position P (t) has px (t), py (t), and pz (t) as independent linear values.
  • the Poisson equation can be applied to the three-dimensional position P (t) as it is, but the non-linear three-dimensional rotation R (t) does not represent an absolute quantity, and the Poisson equation cannot be applied as it is. Therefore, in order to apply the Poisson equation, an exponent map (Exponential map) is applied to the three-dimensional rotation R (t) that determines the posture of the player character, thereby approximating a linear numerical value.
  • each differential component is applied to calculate each velocity component.
  • each velocity component of the obtained three-dimensional position P (t) and three-dimensional rotation R (t) is extracted from the post-termination frame and the pre-starting frame of the motion data.
  • the motion is determined as interpolation speed v (t) (here, it is not distinguished for each speed component of each element of the three-dimensional position P (t) and the three-dimensional rotation R (t)).
  • the velocity components of the three-dimensional position P (t) and the three-dimensional rotation R (t) applied to the transition motion executed from the terminal end posture of A to the starting end posture of motion B are used.
  • each element px () related to the three-dimensional position P (t) and the three-dimensional rotation R (t) of each frame in the blended motion are applied to the interpolation speed v (t).
  • the element d (i) can be expressed as follows by an iterative solution of simultaneous equations (using the Gauss-Seidel method or the like).
  • Equation 5 an inverse matrix can be calculated analytically (hereinafter, Equation 5). Further, in order to calculate the element d (i), only the i-th row of the inverse matrix is necessary. Then, the matrix applied in Expression 2 can be generalized as follows, and from this, the general expression of the inverse matrix applied in Expression 3 can also be obtained as follows.
  • the element d (i) can be calculated only by four arithmetic operations, or can be calculated independently for each element d.
  • the Poisson equation is applied to blend the motion data related to the transition motion from the end position to the start position from the post-end frame of the motion data related to motion A and the pre-start frame of the motion data related to motion B.
  • FIG. 5 schematically shows the flow until generation.
  • the Poisson equation can be applied as it is because the data related to the three-dimensional position P (t) is a linear numerical value in the respective motion data of motion A and motion B before blending.
  • the Poisson equation cannot be applied as it is. Therefore, by applying an exponent map to the three-dimensional rotation R (t), it is decomposed into rx (t), ry (t) and rz (t) representing independent linear rotation amounts, and based on them. Apply the Poisson equation.
  • the rx (t), ry (t), and rz (t) obtained by applying the Poisson equation are linearly rotated in order to be expressed as a three-dimensional rotation R (t) related to the motion data of the transition motion. By reusing the average rotation Rm used for decomposing the quantity, the three-dimensional rotation is recombined.
  • the player character existing in the virtual three-dimensional space is defined by the motion data related to the motion B after the motion defined by the motion data related to the motion A is moved to the end posture.
  • the movement is to be performed from the set start position.
  • the motion data related to the transition motion generated by blending is operated before the transition from the motion A to the motion B.
  • At least one of the motion A motion and the motion B motion includes an operation related to the three-dimensional rotation R.
  • the motion data related to the three-dimensional rotation R is non-linear data. From the motion A, the motion data related to the motion A including such non-linear data and the motion data related to the motion B are smoothly connected without a sense of incongruity. It is not a simple thing to generate motion data until the transition to motion B.
  • the exponential map is applied to the post-end frame related to motion A and the pre-start frame related to motion B, so that the three-dimensional rotation R (t) is rx (t), ry (t). , Rz (t). Then, the velocity component is calculated from the calculated rx (t), ry (t), and rz (t) for each frame period of the post-termination frame and the pre-starting frame, and the frame after the termination of the motion A and the execution timing are calculated. The maximum absolute value of each velocity component in the frame before the start edge of the set motion B is extracted as the interpolation velocity v (t) during the transition motion period. Then, rx (t), ry (t), rz (t) for each frame of the blended motion data related to the transition motion is obtained by applying the Poisson equation to the extracted interpolation speed v (t). Will be able to.
  • the calculation for obtaining rx (t), ry (t), rz (t) for each frame of the blended motion data related to the transition motion is performed by the calculation based on the Poisson equation, so that the calculation is simple. It will be a thing. Moreover, rx (t), ry (t), rz (t) for each frame of the blended motion data is calculated using only i rows of a predetermined matrix for the i-th velocity component v (t). Therefore, the processing amount for the calculation can be reduced. Furthermore, an exponential map is used for conversion from nonlinear three-dimensional rotation R (t) to linear rx (t), ry (t), rz (t), and a logarithmic map is used for reproduction of three-dimensional rotation R (t). By applying, conversion to rx (t), ry (t), rz (t) and reproduction of three-dimensional rotation R (t) can be made relatively simple.
  • each terminal posture in which each velocity component of the element d (i) having a larger absolute value in each frame is operated in accordance with the motion data related to the motion A and in a starting end posture operated in accordance with the motion data related to the motion B is operated in accordance with the motion data related to the motion A and in a starting end posture operated in accordance with the motion data related to the motion B.
  • the interpolation speed v (i) in each frame of a plurality of frame periods interposed between before and before the motion data related to motion A and the motion data related to motion B can be smoothly connected without a sense of incongruity. It is possible to generate motion data from the motion A to the motion B.
  • data in each frame in a plurality of frame periods interposed between after the end posture operated according to the motion data related to motion A and before the start end posture operated according to the motion data related to motion B includes motion A
  • Data including the smallest difference from the motion data related to motion B is included. Accordingly, it is possible to generate motion data from the motion A to the motion B in which the motion data related to the motion A and the motion data related to the motion B are smoothly connected without a sense of incongruity.
  • the motion A and motion B which are the operations before and after the generation of the transition motion, are the basic operations, but this is the transition of the operations between two different composite operations generated from the basic operations.
  • a transition operation may be generated.
  • the present invention can also be applied to the generation of a transitional motion when transitioning from a motion A + C that combines motion A and motion C to a motion B + D that combines motion B and motion D.
  • transition motion may be generated as a combined operation and the other as a basic operation.
  • a diversified transition motion can be executed, and a sense of incongruity according to the transition of the preceding and following motions even if the motion is not stored in the recording medium 131 or the like in advance. Smooth transition motion can be executed.
  • a transition motion for transition from motion A to motion B and a transition motion for transition from motion C to motion D are generated, and motions that combine motion A and motion C, and each transition motion are combined.
  • the present invention can also be applied to a motion that changes the motion to a motion that combines motion B and motion D.
  • the generation of the transition motion when shifting from the motion A to the motion B and the generation of the transition motion when shifting from the motion C to the motion D are separately performed.
  • the timing of the transition motion when shifting from motion A to motion B is matched with the timing of the transition motion when shifting from motion C to motion D. It is necessary to do so.
  • each of the motion data of motion A and motion data of motion B is assumed to include an operation related to the three-dimensional rotation R (t), and the transition motion is generated.
  • the motion relating to the three-dimensional rotation R (t) may be included in any one of the motions, and any one of the motions may not include such a rotational motion.
  • the maximum absolute value of each velocity component in each frame is extracted from the post-termination frame and the pre-starting frame of motion data related to two different motions, and this is extracted as the interpolation velocity v (t )
  • the velocity component of each element to be applied to the transition motion but it is also possible to use the weighted average or weighted average as the velocity component of each element, or use the maximum value of each as the velocity component of each element. .
  • each element px (t), py related to the three-dimensional position P (t) and the three-dimensional rotation R (t) is obtained.
  • T), pz (t), rx (t), ry (t), rz (t) have been calculated, but other matrix operations can be used as long as the operation can obtain a preferable result such as the Poisson equation.
  • operations other than matrix operations may be used.
  • the calculation based on the Poisson equation is applied as a preferred method of the present invention.
  • the calculation is simplified only by the i-th row of the inverse matrix, but such calculation may not be simplified.
  • the present invention is applied to the movement of the player character in the three-dimensional video game as an example, but it is not operated by the player's operation and is independent of the player's operation.
  • the present invention may be applied to the motion of a non-player character that is moved by executing a predetermined processing routine.
  • the present invention can be applied to the movement of other objects such as machinery and structures as long as the movement includes a three-dimensional rotation movement even if it is not a character.
  • the present invention is applied to the case of playing a video game, and the video game apparatus 100, which is a dedicated game machine, is applied as a terminal device used by each player to advance the game.
  • the present invention can be applied to the case of blending motions of objects other than video games as long as the motion blend is based on three-dimensional computer graphics. If it is not real-time computer graphics, the end posture of motion A and the start posture of motion B can be manually set individually by the user each time.
  • a general-purpose personal computer or the like may be applied to the apparatus that performs the motion blend process by the method according to the present invention as long as it includes the same components as the video game apparatus 100.
  • a semiconductor memory card can be applied instead of a DVD-ROM or CD-ROM.
  • a card slot for inserting the memory card can be provided instead of the DVD / CD-ROM drive 113.
  • the program and data according to the present invention may be stored in advance in the HDD 107 instead of being stored in the recording medium 131 and provided. Any recording medium for storing and providing the program and data according to the present invention can be applied depending on the physical form and distribution form of hardware.
  • the program and data of the video game apparatus 100 are stored in the recording medium 131 and distributed.
  • these programs and data may be stored in a fixed disk device included in a server device existing on the network 151 and distributed to the device main body 101 via the network 151.
  • the program and data received from the server apparatus by the communication interface 115 can be stored in the HDD 107 and loaded into the RAM 105 at the time of execution.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Processing Or Creating Images (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)

Abstract

 回転動作を含む連続して実行されるオブジェクトの2つの異なる動作が滑らかに接続されるように、該2つの動作間に介在させるモーションデータを生成する。 前のモーションの終端より後と、後のモーションの始端より前の各フレームから、移行モーションの動作を定めるのに要する各要素dを算出する。各フレーム毎の姿勢を定める3次元回転R(t)については、3次元回転R(t)に近似する値として、指数マップを用いて独立した線形な値であるrx(t)、ry(t)、rz(t)を算出する。各要素dについてはそれぞれ速度成分を求め、終端後フレーム、始端前フレームにおけるそれぞれの速度成分の絶対値の最大値を補間用速度v(t)として抽出する。そして、ブレンドした移行モーションのフレーム毎の各要素d(t)は、抽出した補間用速度v(t)とにおいてポアソン方程式を適用することで求めることができる。

Description

オブジェクト動作装置及び方法、並びにプログラム
 本発明は、連続して実行されるオブジェクトの2つの異なる動作を違和感なく接続するためにモーションデータをブレンドするオブジェクト動作装置に関する。
 従来より、仮想3次元空間に存在するキャラクタなどのオブジェクトを動作させ、これらのオブジェクトが動作する様子を仮想カメラにより透視変換して生成する手法が、3次元ビデオゲームにおいて広く適用されている。ここで、オブジェクトの動作を忠実に再現するため、2つの異なる動作が連続して実行される場合には、その前の動作と後の動作の移行期間について、それらの異なる動作のモーションデータのブレンドを行い、そのブレンドしたモーションデータに基づいてオブジェクトを動作させることによって、その動作の移行を違和感なく表現しているものがある。
 このようなモーションデータのブレンドによく使われる技法としては、連続する前後の動作に係るモーションデータにおいて、その前の動作と後の動作の重複する期間において、徐々にそれらの動作に係るモーションデータの混合率を変えながらブレンドするものがる。詳細には、X軸回り、Y軸回りでの回転角度によりモーション合成率(モーションブレンド率)を求め、求められたモーション合成率で基準動作を合成することで、キャラクタのモーションデータを生成し、生成されたモーションデータでキャラクタを動作させるものがある(特許文献1)。また、スプライン補間によって、2つの異なる動作の移行を違和感なく表現するものもある。
特開2010-237882号公報(段落0118等)
 しかしながら、特許文献1に開示された技術は、その回転角度等によって定められるモデルの形状を特徴とした合成を行うものであり、前後それぞれの動作に係るモーションデータにおいて異なる移動や回転の速度の特徴を有する場合には、その速度の特徴を無視することになってしまう。また、前後それぞれのモーションデータのブレンドを行う重複する複数フレーム期間において、徐々に変化するモーションデータの混合率を算出する方法を設定する必要もあり、また、このようなモーションデータのブレンドは、モーションデータの重複する複数フレーム期間が短いと適用が困難となる。
 一方、スプライン補間によって、2つの異なる動作の移行を表現する場合には、上記した混合率を徐々に変えて移行させる場合に要する、モーションデータにおける複数フレーム期間の重複について、その重複が短い場合や、重複が無い場合でも適用が可能となる。しかしながら、前後の動作に係る位置や角度のデータに対してスプライン曲線の当てはめを行うに際し、その曲線の種類の選択や、曲線パラメータの最適化は手間を要することになる。また、スプライン補間においても、前後それぞれの異なる動作における移動や回転の速度の特徴を無視するものであり、いずれの場合もモーションの境目を平滑化して隠すことによって動作の移行を実行するものとなっている。
 本発明は、回転動作を含む連続して実行されるオブジェクトの2つの異なる動作が滑らかに接続されるように、該2つの動作間に介在させるモーションデータを生成するオブジェクト動作装置等を提供することを目的とする。
 上記目的を達成するため、本発明の第1の観点にかかるオブジェクト動作装置は、仮想3次元空間に存在するオブジェクトに第1の動作をさせた後に、該第1の動作とは異なる第2の動作をさせ、該第1の動作と該第2の動作の少なくとも一方に3次元回転動作を含ませて前記オブジェクトを動作させるオブジェクト動作装置であって、前記第1の動作を規定する複数単位時間分のデータからなる第1モーションデータと、前記第2の動作を規定する複数単位時間分のデータからなる第2モーションデータとを記憶するモーションデータ記憶手段と、前記第1モーションデータを構成する複数単位時間分のデータのうちの前記オブジェクトを前記第1モーションデータに従って動作させる終端のデータを設定する第1モーションデータ設定手段と、前記第2モーションデータを構成する複数単位時間分のデータのうちの前記オブジェクトを前記第2モーションデータに従って動作させる始端のデータを設定する第2モーションデータ設定手段と、前記オブジェクトを前記第1モーションデータに従って動作させる終端と前記第2モーションデータに従って動作させる始端との間に介在させる複数単位時間分のデータをモーションデータとして生成する補間モーションデータ生成手段と、前記第1モーションデータの前記終端までの各単位時間のデータ、前記補間モーションデータ生成手段により生成された各単位時間のデータ、前記第2モーションデータの前記始端からの各単位時間のデータを用いて、前記オブジェクトを動作させるオブジェクト動作手段とを備え、前記補間モーションデータ生成手段は、前記終端と前記始端との間に介在させる複数単位時間での各単位時間において、前記第1モーションデータに従う場合における前記オブジェクトの3次元回転動作の回転量と、前記第2モーションデータに従う場合における前記オブジェクトの3次元回転動作の回転量とを、それぞれ特定する回転量特定手段と、前記回転量特定手段が特定した前記第1モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間における回転量と、前記第2モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間における回転量とを、それぞれスカラー回転量に分解する回転量分解手段と、前記回転量分解手段が分解した前記第1モーションデータに従う場合の各単位時間におけるスカラー回転量と、前記第2モーションデータに従う場合の各単位時間におけるスカラー回転量とに基づいて、前記第1モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間におけるスカラー速度と、前記第2モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間におけるスカラー速度とを算出するスカラー速度算出手段と、前記スカラー速度算出手段が算出した前記第1モーションデータに従う場合の各単位時間におけるスカラー速度と、前記第2モーションデータに従う場合の各単位時間におけるスカラー速度とに基づいて、前記終端と前記始端との間に介在させる複数単位時間において適用させるべき前記オブジェクトの3次元回転動作の各単位時間におけるスカラー速度を特定するスカラー速度特定手段と、前記スカラー速度特定手段が特定した各単位時間におけるスカラー速度に対して、所定の演算を行って、前記終端と前記始端との間に介在させる複数単位時間での各単位時間で適用させるべき前記オブジェクトの3次元回転動作についてのスカラー回転量を算出するスカラー回転量算出手段と、前記スカラー回転量算出手段が算出したスカラー回転量に基づいて、前記終端と前記始端との間に介在させる複数単位時間での各単位時間で適用させるべき前記オブジェクトの回転量を再生する回転量再生手段とを含むことを特徴とする。
 上記第1の観点にかかるオブジェクト動作装置において、前記スカラー回転量算出手段は、前記所定の演算として、所定の行列を用いた行列演算を行うこととすることができる。ここで、前記所定の行列を用いた行列演算は、ポアソン方程式による演算であってもよい。
 上記第1の観点にかかるオブジェクト動作装置において、前記スカラー回転量算出手段は、前記終端と前記始端との間に介在させる複数単位時間での各単位時間で適用させるべきスカラー回転量を算出する際に、前記スカラー速度のX番目の要素に対して前記所定の行列のX行のみを用いて演算を行うこととしてもよい。
 上記第1の観点にかかるオブジェクト動作装置において、前記回転量分解手段は、指数マップにより前記オブジェクトの3次元回転動作の回転量をスカラー回転量に分解し、前記回転量再生手段は、対数マップにより前記スカラー回転量に基づいて前記オブジェクトの回転量を再生することとしてもよい。
 上記オブジェクト動作装置では、仮想3次元空間に存在するオブジェクトに対して、第1モーションデータにより規定される第1の動作を設定された終端のデータとなるまでさせた後に、第2のモーションデータにより規定される第2の動作を設定された始端のデータからさせるものとなっている。ここで、第1の動作から第2の動作に移行されるまでには、補間モーションデータ生成手段によって生成される複数単位時間分のデータがモーションデータとして介在することとなる。
 ところで、第1の動作と第2の動作の少なくとも一方には、3次元回転動作が含まれている。3次元回転動作のデータは非線形なデータであり、少なくとも一方がこのような非線形なデータを含む第1のモーションデータと第2のモーションデータが違和感なく滑らかに接続されるように第1の動作から第2の動作に移行されるまでのモーションデータを生成するのは、単純なことではない。
 もっとも、上記オブジェクト動作装置では、3次元回転動作の回転量を単位時間毎に特定し、それぞれスカラー回転量に分解している。そして、分解した各単位時間におけるスカラー回転量からスカラー速度を特定し、さらにスカラー回転量を算出するものとしている。そして、算出したスカラー回転量に基づいて、第1の動作から第2の動作に移行されるまでのモーションデータにおいて、第1モーションデータに従って動作させる終端と第2モーションデータに従って動作させる始端との間に介在させる複数単位時間での各単位時間で適用させるべきオブジェクトの回転量を再生させるものとしている。
 このような手法により線形なデータでの計算として第1モーションデータに従って動作させる終端と第2モーションデータに従って動作させる始端との間に介在させる複数単位時間分のモーションデータが生成されるので、第1モーションデータと第2モーションデータが違和感なく滑らかに接続されるように少なくとも一方に回転動作が含まれる第1の動作から第2の動作に移行されるまでのモーションデータを生成することが、比較的単純なものとなる。
 また、スカラー回転量の算出のための所定の演算を、所定の行列を用いた行列演算、例えば、ポアソン方程式による演算で行うものとすることで、演算が単純なものとなる。しかも、スカラー速度のX番目の要素に対して所定の行列のX行のみを用いてスカラー回転量を算出するための演算を行うものとすることで、その演算のための処理量を軽減することができる。さらに、スカラー回転量への分解に指数マップを、オブジェクトの回転量の再生に対数マップを適用することで、スカラー回転量への分解やオブジェクトの回転量の再生を、比較的単純なものとすることができる。
 上記第1の観点にかかるオブジェクト動作装置において、前記第1の動作と前記第2の動作とは、何れも3次元回転動作が含まれるものであり、前記スカラー速度特定手段は、前記スカラー速度算出手段が算出した前記第1モーションデータに従う場合の各単位時間におけるスカラー速度と、前記第2モーションデータに従う場合の各単位時間におけるスカラー速度とを対応する単位時間毎に比較し、各単位時間において絶対値の大きい方のスカラー速度を、前記終端と前記始端との間に介在させる複数単位時間において適用させるべき前記オブジェクトの3次元回転動作の各単位時間におけるスカラー速度として特定することとしてもよい。
 このように、各単位時間において絶対値の大きい方のスカラー速度を、第1モーションデータに従って動作させる終端と第2モーションデータに従って動作させる始端との間に介在させる複数単位時間の各単位時間におけるスカラー速度として特定することで、第1モーションデータと第2モーションデータが違和感なく滑らかに接続されるような第1の動作から第2の動作に移行されるまでのモーションデータを生成することが可能となる。
 上記第1の観点にかかるオブジェクト動作装置において、前記第1モーションデータを構成する複数単位時間分のデータのうちの前記終端よりも後の単位時間のデータと、前記第2モーションデータを構成する複数単位時間分のデータのうちの前記始端よりも前の単位時間のデータとをそれぞれ比較し、各々について互いに最も近似する単位時間のデータを特定する近似データ特定手段と、前記第1モーションデータと前記第2モーションデータとを、前記近似データ特定手段が特定した単位時間のデータを一致させるようにタイムシフトするタイムシフト手段とを備え、前記補間モーションデータ生成手段は、前記オブジェクトを前記第1モーションデータに従って動作させる終端と前記第2モーションデータに従って動作させる始端との間に介在させる複数単位時間分のデータを、前記タイムシフト手段によりタイムシフトされた前記第1モーションデータと前記第2モーションデータとに基づいて生成することとしてもよい。
 この場合、第1モーションデータに従って動作させる終端と第2モーションデータに従って動作させる始端との間に介在させる複数単位時間の各単位時間におけるデータには、第1モーションデータに含まれる各単位時間のデータと第2モーションデータに含まれる各単位時間のデータとのうちで最も近似したもの同士に基づいて生成されたデータ、つまり、第1モーションデータと第2モーションデータとも差が最も少ないデータが含まれる。これにより、第1モーションデータと第2モーションデータが違和感なく滑らかに接続されるような第1の動作から第2の動作に移行されるまでのモーションデータを生成することが可能となる。
 上記目的を達成するため、本発明の第2の観点にかかるオブジェクト動作方法は、コンピュータ装置において、仮想3次元空間に存在するオブジェクトに第1の動作をさせた後に、該第1の動作とは異なる第2の動作をさせ、該第1の動作と該第2の動作の少なくとも一方に3次元回転動作を含ませて前記オブジェクトを動作させる方法であって、前記第1の動作を規定する複数単位時間分のデータからなる第1モーションデータと、前記第2の動作を規定する複数単位時間分のデータからなる第2モーションデータとを前記コンピュータ装置に予め記憶させる第1のステップと、前記第1モーションデータを構成する複数単位時間分のデータのうちの前記オブジェクトを前記第1モーションデータに従って動作させる終端のデータを設定する第2のステップと、前記第2モーションデータを構成する複数単位時間分のデータのうちの前記オブジェクトを前記第2モーションデータに従って動作させる始端のデータを設定する第3のステップと、前記オブジェクトを前記第1モーションデータに従って動作させる終端と前記第2モーションデータに従って動作させる始端との間に介在させる複数単位時間分のデータをモーションデータとして生成する第4のステップと、前記第1モーションデータの前記終端までの各単位時間のデータ、前記生成された各単位時間のデータ、前記第2モーションデータの前記始端からの各単位時間のデータを用いて、前記オブジェクトを動作させる第5のステップとを含み、前記第4のステップは、前記終端と前記始端との間に介在させる複数単位時間での各単位時間において、前記第1モーションデータに従う場合における前記オブジェクトの3次元回転動作の回転量と、前記第2モーションデータに従う場合における前記オブジェクトの3次元回転動作の回転量とを、それぞれ特定するステップと、前記第1モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間における回転量と、前記第2モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間における回転量とを、それぞれスカラー回転量に分解するステップと、前記第1モーションデータに従う場合の各単位時間におけるスカラー回転量と、前記第2モーションデータに従う場合の各単位時間におけるスカラー回転量とに基づいて、前記第1モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間におけるスカラー速度と、前記第2モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間におけるスカラー速度とを算出するステップと、前記第1モーションデータに従う場合の各単位時間におけるスカラー速度と、前記第2モーションデータに従う場合の各単位時間におけるスカラー速度とに基づいて、前記終端と前記始端との間に介在させる複数単位時間において適用させるべき前記オブジェクトの3次元回転動作の各単位時間におけるスカラー速度を特定するステップと、前記各単位時間におけるスカラー速度に対して、所定の演算を行って、前記終端と前記始端との間に介在させる複数単位時間での各単位時間で適用させるべき前記オブジェクトの3次元回転動作についてのスカラー回転量を算出するステップと、前記スカラー回転量に基づいて、前記終端と前記始端との間に介在させる複数単位時間での各単位時間で適用させるべき前記オブジェクトの回転量を再生するステップとを含むことを特徴とする。
 上記目的を達成するため、本発明の第3の観点にかかるプログラムは、コンピュータ装置において、仮想3次元空間に存在するオブジェクトに第1の動作をさせた後に、該第1の動作とは異なる第2の動作をさせ、該第1の動作と該第2の動作の少なくとも一方に3次元回転動作を含ませて前記オブジェクトを動作させるためのプログラムであって、前記第1の動作を規定する複数単位時間分のデータからなる第1モーションデータと、前記第2の動作を規定する複数単位時間分のデータからなる第2モーションデータとを前記コンピュータ装置に予め記憶させるモーションデータ記憶手段、前記第1モーションデータを構成する複数単位時間分のデータのうちの前記オブジェクトを前記第1モーションデータに従って動作させる終端のデータを設定する第1モーションデータ設定手段、前記第2モーションデータを構成する複数単位時間分のデータのうちの前記オブジェクトを前記第2モーションデータに従って動作させる始端のデータを設定する第2モーションデータ設定手段、前記オブジェクトを前記第1モーションデータに従って動作させる終端と前記第2モーションデータに従って動作させる始端との間に介在させる複数単位時間分のデータをモーションデータとして生成する補間モーションデータ生成手段、及び、前記第1モーションデータの前記終端までの各単位時間のデータ、前記補間モーションデータ生成手段により生成された各単位時間のデータ、前記第2モーションデータの前記始端からの各単位時間のデータを用いて、前記オブジェクトを動作させるオブジェクト動作手段として前記コンピュータ装置を機能させるためのプログラムであって、前記補間モーションデータ生成手段は、前記終端と前記始端との間に介在させる複数単位時間での各単位時間において、前記第1モーションデータに従う場合における前記オブジェクトの3次元回転動作の回転量と、前記第2モーションデータに従う場合における前記オブジェクトの3次元回転動作の回転量とを、それぞれ特定する回転量特定手段と、前記回転量特定手段が特定した前記第1モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間における回転量と、前記第2モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間における回転量とを、それぞれスカラー回転量に分解する回転量分解手段と、前記回転量分解手段が分解した前記第1モーションデータに従う場合の各単位時間におけるスカラー回転量と、前記第2モーションデータに従う場合の各単位時間におけるスカラー回転量とに基づいて、前記第1モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間におけるスカラー速度と、前記第2モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間におけるスカラー速度とを算出するスカラー速度算出手段と、前記スカラー速度算出手段が算出した前記第1モーションデータに従う場合の各単位時間におけるスカラー速度と、前記第2モーションデータに従う場合の各単位時間におけるスカラー速度とに基づいて、前記終端と前記始端との間に介在させる複数単位時間において適用させるべき前記オブジェクトの3次元回転動作の各単位時間におけるスカラー速度を特定するスカラー速度特定手段と、前記スカラー速度特定手段が特定した各単位時間におけるスカラー速度に対して、所定の演算を行って、前記終端と前記始端との間に介在させる複数単位時間での各単位時間で適用させるべき前記オブジェクトの3次元回転動作についてのスカラー回転量を算出するスカラー回転量算出手段と、前記スカラー回転量算出手段が算出したスカラー回転量に基づいて、前記終端と前記始端との間に介在させる複数単位時間での各単位時間で適用させるべき前記オブジェクトの回転量を再生する回転量再生手段とを含むことを特徴とする。
 上記第3の観点にかかるプログラムは、コンピュータ読み取り可能な記録媒体に記録して提供することができる。このコンピュータ読み取り可能な記録媒体は、上記コンピュータ装置に着脱可能に構成され、上記コンピュータ装置とは別個に提供される記録媒体としてもよい。このコンピュータ読み取り可能な記録媒体は、上記コンピュータ装置内に設けられ、上記コンピュータ装置と共に提供される固定ディスク装置などの記録媒体としてもよい。上記第3の観点にかかるプログラムは、ネットワーク上に存在するサーバ装置から、そのデータ信号を搬送波に重畳して、ネットワークを通じて上記コンピュータ装置に配信することもできる。
 また、上記第3の観点にかかるプログラムに含まれる各手段の実行する処理を各ステップの処理として実行する方法も、本発明の範囲に含まれる。
本発明の実施の形態に適用されるビデオゲーム装置の構成を示すブロック図である。 移行動作がブレンドされる場合の、実行される動作の流れを模式的に表した図である。 終端後フレームと始端前フレームのタイミングの設定を模式的に表した図である。 補間速度の抽出を模式的に表した図である。 移行モーションに適用される補間速度カーブを模式的に表した図である。 ポアソン方程式を適用した移行モーションに係るモーションデータの生成を模式的に表した図である。
 図1は、この実施の形態に適用されるビデオゲーム装置の構成を示すブロック図である。図示するように、ビデオゲーム装置100は、装置本体101を中心として構築される。この装置本体101は、その内部バス119に接続された制御部103、RAM(Random Access Memory)105、ハードディスク・ドライブ(HDD)107、サウンド処理部109、グラフィック処理部111、DVD/CD-ROMドライブ113、通信インターフェイス115、及びインターフェイス部117を含む。
 この装置本体101のサウンド処理部109は、スピーカーであるサウンド出力装置125に、グラフィック処理部111は、表示画面122を有する表示装置121に接続されている。DVD/CD-ROMドライブ113には、記録媒体(本実施の形態では、DVD-ROMまたはCD-ROM)131を装着し得る。通信インターフェイス115は、ネットワーク151に接続される。インターフェイス部117には、入力部(コントローラ)161とメモリーカード162とが接続されている。
 制御部103は、CPU(Central Processing Unit)やROM(Read Only Memory)などを含み、HDD107や記録媒体131上に格納されたプログラムを実行し、装置本体101の制御を行う。制御部103は、内部タイマを備えている。RAM105は、制御部103のワークエリアであり、後述する、プレイヤキャラクタの基本動作などに関する情報は、RAM105に一時記憶される。HDD107は、プログラムやプレイヤキャラクタの基本動作などに関するデータを保存するための記憶領域である。サウンド処理部109は、制御部103により実行されているプログラムがサウンド出力を行うよう指示している場合に、その指示を解釈して、サウンド出力装置125にサウンド信号を出力する。
 グラフィック処理部111は、制御部103から出力される描画命令に従って、フレームメモリ112(図では、グラフィック処理部111の外側に描かれているが、グラフィック処理部111を構成するチップに含まれるRAM内に設けられる)に画像データを展開し、表示装置121の表示画面122上に画像を表示するビデオ信号を出力する。グラフィック処理部111から出力されるビデオ信号に含まれる画像の1フレーム時間は、例えば60分の1秒である。フレームメモリ112は、2セット設けられており、データの書き込み用と読み出し用とがフレーム期間毎に切り替えられる。
 グラフィック処理部111は、仮想3次元空間に存在するオブジェクト(プレイヤキャラクタ、ノンプレイヤキャラクタ、及びキャラクタ以外のオブジェクト)を仮想カメラにより透視変換した2次元画像の画像データを生成して、フレームメモリ112に書き込む。
 DVD/CD-ROMドライブ113は、記録媒体131に対しプログラム及びデータの読み出しを行う。通信インターフェイス115は、ネットワーク151に接続され、他のコンピュータとの通信を行う。入力部161は、方向キー及び複数の操作ボタンを備えている。仮想3次元空間におけるプレイヤキャラクタの位置は、入力部161の方向キーから入力される指示によって移動させられる。
 インターフェイス部117は、入力部161からの入力データをRAM105に出力し、制御部103がそれを解釈して演算処理を実施する。インターフェイス部117は、また、制御部103からの指示に基づいて、RAM105に記憶されているゲームの進行状況を示すデータをメモリーカード162に保存させ、メモリーカード162に保存されている中断時のゲームのデータを読み出して、RAM105に転送する。
 ビデオゲーム装置100でゲームを行うためのプログラム及びデータは、最初例えば記録媒体131に記憶されている。記録媒体131に記憶されているデータとしては、ゲーム空間(仮想3次元空間)に存在するオブジェクトを構成するためのグラフィックデータ、プレイヤキャラクタの基本動作などに関するデータを含んでいる。記録媒体131に記憶されたプログラム及びデータは、実行時にDVD/CD-ROMドライブ113により読み出されて、RAM105にロードされる。制御部103は、RAM105にロードされたプログラム及びデータを処理し、描画命令をグラフィック処理部111に出力し、サウンド出力の指示をサウンド処理部109に出力する。制御部103が処理を行っている間の中間的なデータは、RAM105に記憶される。
この実施の形態にかかるビデオゲームでは、ゲーム空間となる仮想3次元空間に複数の3次元オブジェクトが存在し、これらのオブジェクトを仮想カメラにより透視変換した画像がゲームの画像として表示装置121の表示画面122に表示される。仮想3次元空間に存在するオブジェクトとしては、プレイヤの入力部161からの入力により動作させられるプレイヤキャラクタ、プレイヤキャラクタ以外のキャラクタであるノンプレイヤキャラクタ(制御部103により動作させられる)、キャラクタ以外の地形、建物などの仮想3次元空間内における位置の移動しないオブジェクトが含まれている。
 プレイヤは、このプレイヤキャラクタの基本動作として歩く、走る、座る、立ち上がる、投げる等、そのプレイヤキャラクタの腕の動きや脚の動きなどに関して異なる様々な動作を実行させることができるものとなっている。そして、これらの基本動作は、各フレーム毎の姿勢を定める3次元位置P(t)および3次元回転R(t)に係るデータによってそれぞれ定義されている。これらの3次元位置P(t)および3次元回転R(t)に係るデータがゲームのプログラムの一部を構成するモーションデータとして、記録媒体131に記憶され、HDD107等に転送されている。
 そして、この基本動作だけでは表現できないような動作については、次に説明する複合動作、移行動作としてこれらの基本動作をブレンドして生成することになる。複合動作は、同時に実行される2つの異なる基本動作に係るデータをブレンドして生成するものであり、また、複合動作は、例えば、走る動作と投げる動作、或いは歩く動作と投げる動作といった、同時に実行される異なる2つの基本動作に係るデータをブレンドする、或いはゆっくり走る動作と速く走る動作から中間の速度で走る動作のデータをモーションブレンドにより生成するものである。このブレンドについては、本発明と直接の関わりがないため、詳細な説明は省略する。
 一方、移行動作は、2つの異なる基本動作が連続して実行される場合において、動作が移行される間のつなぎの動作であって、先の基本動作から後の基本動作への移行が違和感なくされるように生成するものである。また、移行動作は、例えば、プレイヤキャラクタが歩いている状態から、走ったり、走っている状態から、歩いたりという具合に、ゲーム進行において、2つの異なる基本動作が一連の流れで連続して行われる場合に、その2つの異なる基本動作を接続するために生成されるものである。
 このように、一連の流れで連続して実行される、2つの異なる動作を接続するための前の動作に続けて実行される移行動作については、図2に示すように、後の動作への遷移における不自然さを無くすため、急な動作の変更とはならないように、その前後の動作(モーション)のブレンド(モーションブレンド)をして生成した移行モーションを、前の動作に続けて実行し、次の動作へ遷移させるようにする。以下、この実施の形態に用いられる移行動作のモーションブレンドについて説明をする。
 まず、図3において図示するように、HDD107等に記憶される2つの異なる基本動作(以下、単にモーションとする)は、連続して実行される2つのモーションについて、前のモーション(以下、モーションAとする)に対して、終端姿勢となるフレーム(以下、終端フレームという)と、後のモーション(以下、モーションBとする)に対して、始端姿勢となるフレーム(以下、始端フレームという)とをそれぞれ設定する。
 なお、モーションAの終端姿勢、およびモーションBの始端姿勢の設定については、従来の手法を用いればよく、例えば、連続して実行されるモーションの組み合わせ毎に前のモーションの終端姿勢と後のモーションの始端姿勢とをプログラム設計者が予め決めておき、この予め決められた終端姿勢と始端姿勢とが、連続して実行される2つのモーションが定まるのと同時に自動的に設定されるものとしてもよい。
 そして、モーションブレンドの際、まずは、このモーションAに係るモーションデータのうちの終端姿勢となるフレームよりも後の各フレーム(以下、終端後フレームという)のデータと、このモーションBに係るモーションデータのうちの始端姿勢となるフレームよりも前の各フレーム(以下、始端前フレームという)のデータとからそれぞれで互いに一番似ているフレームを総当たりで検索する。なお、フレームの総当たりの検索についてはパターンマッチングなどの従来の手法を用いればよいので、詳細な説明は省略する。
 終端後フレーム及び始端前フレームにおいて一番似ているフレーム(図3におけるモーションAの終端後フレームの網掛け部分とモーションBの始端前フレームの網掛け部分)を検索できれば、図3において図示するように、始端前フレーム中における当該フレームが、終端後フレーム中の当該フレームのタイミングと重なるように、モーションAに対して、モーションBの実行タイミングを設定する。このように設定されたモーションA、モーションBの終端姿勢から始端姿勢のフレーム期間において、終端後フレームと始端前フレームとに係るモーションをブレンドし移行モーションに係るモーションデータを生成することになる。なお、モーションAの終端フレームからモーションBの始端フレームの間に介在するモーションのブレンドについて詳細は後述する。
 このように、プレイヤキャラクタはモーションAの動作をさせた後に、モーションBの動作をさせる場合には、上記のように設定した終端姿勢まではモーションAに係るモーションデータ、ブレンドにより生成した移行モーションに係るモーションデータ、上記のように設定した始端姿勢からはモーションBに係るモーションデータを用いて、その間の各フレームにおいて動作させる。
 この実施の形態に係るモーションブレンドでは、連続して実行される2つのモーションを定める終端後フレームと始端前フレームにおける姿勢を定める3次元位置P(t)および3次元回転R(t)に係るデータから速度成分を算出し、算出した各モーションの速度成分を基にモーションブレンドを行うものである。
 そして、そのブレンドされたモーションの速度成分に対してポアソン方程式を適用することで、そのブレンドされたモーションの各フレームにおけるプレイヤキャラクタの姿勢を定める3次元位置P(t)および3次元回転R(t)に係るデータを求める。そこで、まず、モーションブレンド前の、モーションAに係る終端後フレーム、およびモーションBに係る始端前フレームの各フレーム毎のプレイヤキャラクタの姿勢を定める3次元位置P(t)および3次元回転R(t)の速度成分を算出する。
 ここで、3次元位置P(t)は仮想3次元空間上の位置を表すために、それぞれが独立して線形な値として、px(t)、py(t)、pz(t)を有する。この3次元位置P(t)に対しては、そのままポアソン方程式を適用可能であるが、非線形である3次元回転R(t)は絶対量を表せず、そのままポアソン方程式を適用できない。そこで、ポアソン方程式を適用させるために、プレイヤキャラクタの姿勢を定める3次元回転R(t)に指数マップ(Exponential maps)を適用することで、線形な数値へと近似する。
 ここで、指数マップの3次元回転R(t)への適用を説明する。3次元回転R(t)では絶対量を表せないため、指数マップを適用して、基準回転からの相対回転を求める。ここで、3次元回転R(t)の相対量px(t)、py(t)、pz(t)を表すため、基準回転として、前後のモーションにおけるブレンドの対象となるそれぞれのフレーム期間において、平均回転Rmを算出する。例えば、2つのフレームにおける3次元回転R1、R2において、平均回転Rm、およびpx(t)、py(t)、pz(t)は以下のように表現される。
Figure JPOXMLDOC01-appb-M000001
 
 また、この平均回転Rmに関しては、対数マップ(Logarithmic maps)を適用してブレンドしたモーションに係るpx(t)、py(t)、pz(t)を再度3次元回転R(t)に変換するために用いるものとなる。なお、平均回転Rmの算出、並びに指数マップ、および対数マップを用いた詳細な算出方法については、この発明において直接的には関係しないので説明を省略する。
 そして、このように指数マップ表現において求められた3次元回転R(t)に係るrx(t)、ry(t)、rz(t)と、3次元位置P(t)に係るpx(t)、py(t)、pz(t)とから、それぞれ微分方程式を適用することで、それぞれの速度成分を算出する。このようにして、求めた3次元位置P(t)および3次元回転R(t)の各速度成分について、図4に示すように先に実行のタイミングを設定した、ブレンドする2つの異なるモーションに係るモーションデータの終端後フレームと始端前フレームとから、各フレームにおける各速度成分の絶対値の最大値を抽出する。
 これを、補間用速度v(t)(ここでは、3次元位置P(t)および3次元回転R(t)の各要素の速度成分毎に区別しない)として、図5に示すように、モーションAの終端姿勢から、モーションBの始端姿勢までに実行される移行モーションに適用する3次元位置P(t)および3次元回転R(t)の各要素の速度成分とする。そして、補間用速度v(t)に対して、ポアソン方程式を適用することで、ブレンドされたモーションにおける各フレームの3次元位置P(t)および3次元回転R(t)に係る各要素px(t)、py(t)、pz(t)、rx(t)、ry(t)、rz(t)(以下、まとめて要素d(t)とする)を求める。なお、3次元回転R(t)に関してはポアソン方程式によって求めた、rx(t)、ry(t)、rz(t)に対して上記した対数マップを適用する必要がある。
 そして、ポアソン方程式を適用した要素d(i)とこの補間用速度v(i)との関係は以下のように表すことができる。
Figure JPOXMLDOC01-appb-M000002
 そして、この式から連立方程式の反復解法(Gauss-Seidel法などを用いる)により、要素d(i)について以下のように表せる。
Figure JPOXMLDOC01-appb-M000003
 このように表されることによって、行列の各要素dが規則正しく決定され、解析的に逆行列を算出することができるようになる(以下、数式5)。また、要素d(i)を計算するためには、逆行列のi行目だけが必要となる。そして、数式2で適用した行列は以下のように一般化することができ、そこから、数式3で適用する逆行列の一般式も以下のように求めることができる。
Figure JPOXMLDOC01-appb-M000004
Figure JPOXMLDOC01-appb-M000005
 このように、求められた一般式(数式5)から、要素d(i)は四則演算のみで計算することができ、また、各要素d毎に独立して計算することもできる。
 このように、ポアソン方程式を適用してモーションAに係るモーションデータの終端後フレームとモーションBに係るモーションデータの始端前フレームとから、終端姿勢から始端姿勢までの移行モーションに係るモーションデータをブレンドして生成するまでの流れを模式的に表したものを図5に示す。図示するように、ブレンド前のモーションAとモーションBのそれぞれのモーションデータにおいて、3次元位置P(t)に係るデータは線形な数値であるため、そのままポアソン方程式を適用することができる。
 一方、3次元回転R(t)は非線形な数値であるため、そのままポアソン方程式を適用できない。そこで、指数マップをその3次元回転R(t)に適用することで、独立した線形な回転量を表すrx(t)、ry(t)、rz(t)にそれぞれ分解し、それらを基にポアソン方程式を適用する。ポアソン方程式を適用することで得られたrx(t)、ry(t)、rz(t)については、移行モーションのモーションデータに係る3次元回転R(t)として表現するために、線形な回転量に分解するために用いた平均回転Rmを再度用いることで、3次元回転の再合成をする。
 以上説明したように、仮想3次元空間に存在するプレイヤキャラクタに対して、モーションAに係るモーションデータにより定義される動作を、終端姿勢となるまでさせた後に、モーションBに係るモーションデータにより定義される動作を設定された始端姿勢からさせるものとなっている。ここで、モーションAからモーションBに移行されるまでには、ブレンドにより生成した移行モーションに係るモーションデータにより動作させる。
 ところで、モーションAの動作とモーションBの動作の少なくとも一方には、3次元回転Rに係る動作が含まれている。3次元回転Rに係る動作のデータは非線形なデータであり、このような非線形なデータを含むモーションAに係るモーションデータとモーションBに係るモーションデータが違和感なく滑らかに接続されるようにモーションAからモーションBに移行されるまでのモーションデータを生成するのは、単純なことではない。
 もっとも、この実施の形態では、モーションAに係る終端後フレームとモーションBに係る始端前フレームにおいて、指数マップを適用することで、3次元回転R(t)をrx(t)、ry(t)、rz(t)と算出している。そして、算出した終端後フレームと始端前フレームのそれぞれのフレーム期間毎におけるrx(t)、ry(t)、rz(t)から速度成分を算出し、モーションAの終端後フレーム、実行のタイミングが設定されたモーションBの始端前フレームにおけるそれぞれの速度成分の絶対値の最大値を、移行モーションの期間における補間用速度v(t)として抽出する。そして、移行モーションに係る、ブレンドしたモーションデータのフレーム毎のrx(t)、ry(t)、rz(t)は、抽出した補間用速度v(t)とにおいてポアソン方程式を適用することで求めることができるようになる。
 このような手法により線形なデータでの計算としてモーションAに係るモーションデータに従って動作させる終端姿勢の後と、モーションBに係るモーションデータに従って動作させる始端姿勢の前との間に介在させる複数フレーム期間のモーションデータが生成されるので、モーションAのモーションデータとモーションBのモーションデータが違和感なく滑らかに接続されるように、3次元回転動作が含まれるモーションAからモーションBに移行されるまでのモーションデータを生成することが、比較的単純なものとなる。
 また、移行モーションに係る、ブレンドしたモーションデータのフレーム毎のrx(t)、ry(t)、rz(t)を求める演算を、ポアソン方程式による演算で行うものとすることで、演算が単純なものとなる。しかも、i番目の速度成分v(t)に対して所定の行列のi行のみを用いて、ブレンドしたモーションデータのフレーム毎のrx(t)、ry(t)、rz(t)を算出するための演算を行うものとすることで、その演算のための処理量を軽減することができる。さらに、非線形な3次元回転R(t)から、線形なrx(t)、ry(t)、rz(t)への変換に指数マップを、3次元回転R(t)の再生に対数マップを適用することで、rx(t)、ry(t)、rz(t)への変換や3次元回転R(t)の再生を、比較的単純なものとすることができる。
 また、各フレームにおいて絶対値の大きい方の要素d(i)のそれぞれの速度成分を、モーションAに係るモーションデータに従って動作させる終端姿勢の後と、モーションBに係るモーションデータに従って動作させる始端姿勢の前との間に介在させる複数フレーム期間の各フレームにおける補間用速度v(i)として特定することで、モーションAに係るモーションデータとモーションBに係るモーションデータが違和感なく滑らかに接続されるようなモーションAからモーションBに移行されるまでのモーションデータを生成することが可能となる。
 また、モーションAに係るモーションデータに従って動作させる終端姿勢の後と、モーションBに係るモーションデータに従って動作させる始端姿勢の前との間に介在させる複数フレーム期間の各フレームにおけるデータには、モーションAに係るモーションデータに含まれる各フレームのデータとモーションBに係るモーションデータに含まれる各フレームのデータとのうちで最も近似したもの同士に基づいて生成されたデータ、つまり、モーションAに係るモーションデータとモーションBに係るモーションデータとも差が最も少ないデータが含まれる。これにより、モーションAに係るモーションデータとモーションBに係るモーションデータが違和感なく滑らかに接続されるようなモーションAからモーションBに移行されるまでのモーションデータを生成することが可能となる。
 本発明は、上記の実施の形態に限られず、種々の変形、応用が可能である。以下、本発明に適用可能な上記の実施の形態の変形態様について説明する。
 上記の実施の形態において、移行モーションを生成する前後の動作であるモーションA、モーションBについては基本動作であったが、これを、基本動作から生成された異なる2つの複合動作間の動作の移行に対して、移行動作を生成するものであってもよい。例えば、モーションAとモーションCとを複合したモーションA+Cから、モーションBとモーションDとを複合したモーションB+Dに移行する場合の移行モーションの生成に、本発明を適用することもできる。
 また、移行モーションを生成する前後の動作のうち、一方が複合動作、他方が基本動作として移行動作を生成するものであってもよい。これによって、移行モーションは基本動作からのみ生成されるものではなくなるので、多様化した移行モーションが実行できるとともに、予め記録媒体131等に記憶した動作でなくても前後の動作の遷移に応じた違和感なく滑らかな移行モーションが実行できるようになる。
 さらには、モーションAからモーションBに移行させる際の移行モーションと、モーションCからモーションDに移行させる際の移行モーションとを生成し、モーションAとモーションCを複合したモーション、各々の移行モーションを複合したモーション、モーションBとモーションDを複合したモーションへと、モーションを変化させるものにも本発明は適用できる。
 もっとも、この場合は、モーションAからモーションBに移行させる際の移行モーションの生成と、モーションCからモーションDに移行させる際の移行モーションの生成とのそれぞれで別個に、上記の実施の形態における似ているフレームのタイミングを一致させることをそのまま適用するのではなく、モーションAからモーションBに移行させる際の移行モーションと、モーションCからモーションDに移行させる際の移行モーションとのタイミングが一致されるようにする必要がある。
 上記の実施の形態では、モーションAのモーションデータ、モーションBのモーションデータのそれぞれにおいて、3次元回転R(t)に係る動作が含まれるものとして、移行モーションを生成するものとしていたが、このような3次元回転R(t)にかかる動作は何れか一方のモーションに含まれていればよく、何れか一方において、そのような回転動作が含まれていないものであってもよい。
 上記の実施の形態では、2つの異なるモーションに係るモーションデータの終端後フレームと始端前フレームとから、各フレームにおける各速度成分の絶対値の最大値を抽出し、これを補間用速度v(t)として移行モーションに適用する各要素の速度成分としていたが、加重平均や重み付け平均を用いて各要素の速度成分としたり、それぞれの最大値を用いて各要素の速度成分とするものとしてもよい。
 上記の実施の形態では、補間用速度v(t)に対してポアソン方程式を適用することで、3次元位置P(t)および3次元回転R(t)に係る各要素px(t)、py(t)、pz(t)、rx(t)、ry(t)、rz(t)の計算を行っていたが、ポアソン方程式のような好ましい結果が得られる演算であれば、他の行列演算でもよく、行列演算以外の演算であってもよい。もっとも、ポアソン方程式による演算が本発明に好ましい手法として適用されるものであることは、いうまでもない。また、要素d(i)を計算するためには逆行列のi行目だけで演算を簡素化させていたが、このような演算の簡素化がされないものであってもよい。
 上記の実施の形態では、指数マップをその3次元回転R(t)に適用することで、独立した線形な回転量を表すrx(t)、ry(t)、rz(t)にそれぞれ分解し、ポアソン方程式を適用することで得られたrx(t)、ry(t)、rz(t)に対して対数マップを適用することで3次元回転の再合成をしていたが、線形な値としてポアソン方程式による演算を行い得るものとするのであれば、これ以外の手法を適用してもよい。もっとも、指数マップや対数マップの適用が本発明に好ましい手法であることは、いうまでもない。
 上記の実施の形態では、3次元ビデオゲームにおけるプレイヤキャラクタの動作に対して本発明を適用した場合を例として説明したが、プレイヤの操作によって動作されるのではなく、プレイヤの操作とは無関係に所定の処理ルーチンの実行により動作させられるノンプレイヤキャラクタの動作に対して本発明を適用するものとしてもよい。また、キャラクタでなくても、3次元回転動作を含む動作をするものであれば機械類や構造物などの他のオブジェクトの動作に対しても本発明を適用することができる。
 上記の実施の形態では、本発明をビデオゲームでする場合に適用し、各プレイヤがゲームを進めるために用いる端末装置としてゲーム専用機であるビデオゲーム装置100を適用していた。これに対して、本発明は、3次元コンピュータグラフィックスによるモーションブレンドであれば、ビデオゲーム以外でオブジェクトの動作のブレンドをする場合にも適用することができる。リアルタイムコンピュータグラフィックスでなければ、モーションAの終端姿勢とモーションBの始端姿勢とは、ユーザがその都度個別に手動で設定することも可能である。
 また、本発明にかかる手法でモーションブレンドの処理を行う装置は、ビデオゲーム装置100と同様の構成要素を備えるものであれば、汎用のパーソナルコンピュータなどを適用してもよい。3次元コンピュータグラフィックスを処理できる能力があれば、表示装置121及びサウンド出力装置125を装置本体101と同一の筐体内に納めた構成を有する携帯ゲーム機(アプリケーションの実行機能を有する携帯電話機を含む)を適用するものとしてもよい。
 記録媒体131としては、DVD-ROMやCD-ROMの代わりに半導体メモリーカードを適用することができる。このメモリーカードを挿入するためのカードスロットをDVD/CD-ROMドライブ113の代わりに設けることができる。汎用のパーソナルコンピュータの場合には、本発明に係るプログラム及びデータを記録媒体131に格納して提供するのではなく、HDD107に予め格納して提供してもよい。本発明にかかるプログラム及びデータを格納して提供するための記録媒体は、ハードウェアの物理的形態及び流通形態に応じて任意のものを適用することができる。
 上記の実施の形態では、ビデオゲーム装置100のプログラム及びデータは、記録媒体131に格納されて配布されるものとしていた。これに対して、これらのプログラム及びデータをネットワーク151上に存在するサーバ装置が有する固定ディスク装置に格納しておき、装置本体101にネットワーク151を介して配信するものとしてもよい。ビデオゲーム装置100において、通信インターフェイス115がサーバ装置から受信したプログラム及びデータは、HDD107に保存し、実行時にRAM105にロードすることができる。
 100 ビデオゲーム装置
 101 ビデオゲーム装置本体
 103 制御部
 105 RAM
 107 HDD
 109 サウンド処理部
 111 グラフィック処理部
 112 フレームメモリ
 113 DVD/CD-ROMドライブ
 115 通信インターフェイス
 117 インターフェイス部
 119 内部バス
 121 表示装置
 122 表示画面
 125 サウンド出力装置
 131 記録媒体
 151 ネットワーク
 161 入力部
 162 メモリーカード

Claims (9)

  1. 仮想3次元空間に存在するオブジェクトに第1の動作をさせた後に、該第1の動作とは異なる第2の動作をさせ、該第1の動作と該第2の動作の少なくとも一方に3次元回転動作を含ませて前記オブジェクトを動作させるオブジェクト動作装置であって、
    前記第1の動作を規定する複数単位時間分のデータからなる第1モーションデータと、前記第2の動作を規定する複数単位時間分のデータからなる第2モーションデータとを記憶するモーションデータ記憶手段と、
    前記第1モーションデータを構成する複数単位時間分のデータのうちの前記オブジェクトを前記第1モーションデータに従って動作させる終端のデータを設定する第1モーションデータ設定手段と、
    前記第2モーションデータを構成する複数単位時間分のデータのうちの前記オブジェクトを前記第2モーションデータに従って動作させる始端のデータを設定する第2モーションデータ設定手段と、
    前記オブジェクトを前記第1モーションデータに従って動作させる終端と前記第2モーションデータに従って動作させる始端との間に介在させる複数単位時間分のデータをモーションデータとして生成する補間モーションデータ生成手段と、
    前記第1モーションデータの前記終端までの各単位時間のデータ、前記補間モーションデータ生成手段により生成された各単位時間のデータ、前記第2モーションデータの前記始端からの各単位時間のデータを用いて、前記オブジェクトを動作させるオブジェクト動作手段とを備え、
    前記補間モーションデータ生成手段は、
    前記終端と前記始端との間に介在させる複数単位時間での各単位時間において、前記第1モーションデータに従う場合における前記オブジェクトの3次元回転動作の回転量と、前記第2モーションデータに従う場合における前記オブジェクトの3次元回転動作の回転量とを、それぞれ特定する回転量特定手段と、
    前記回転量特定手段が特定した前記第1モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間における回転量と、前記第2モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間における回転量とを、それぞれスカラー回転量に分解する回転量分解手段と、
    前記回転量分解手段が分解した前記第1モーションデータに従う場合の各単位時間におけるスカラー回転量と、前記第2モーションデータに従う場合の各単位時間におけるスカラー回転量とに基づいて、前記第1モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間におけるスカラー速度と、前記第2モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間におけるスカラー速度とを算出するスカラー速度算出手段と、
    前記スカラー速度算出手段が算出した前記第1モーションデータに従う場合の各単位時間におけるスカラー速度と、前記第2モーションデータに従う場合の各単位時間におけるスカラー速度とに基づいて、前記終端と前記始端との間に介在させる複数単位時間において適用させるべき前記オブジェクトの3次元回転動作の各単位時間におけるスカラー速度を特定するスカラー速度特定手段と、
    前記スカラー速度特定手段が特定した各単位時間におけるスカラー速度に対して、所定の演算を行って、前記終端と前記始端との間に介在させる複数単位時間での各単位時間で適用させるべき前記オブジェクトの3次元回転動作についてのスカラー回転量を算出するスカラー回転量算出手段と、
    前記スカラー回転量算出手段が算出したスカラー回転量に基づいて、前記終端と前記始端との間に介在させる複数単位時間での各単位時間で適用させるべき前記オブジェクトの回転量を再生する回転量再生手段とを含む
    ことを特徴とするオブジェクト動作装置。
  2. 前記スカラー回転量算出手段は、前記所定の演算として、所定の行列を用いた行列演算
    を行う
    ことを特徴とする請求項1に記載のオブジェクト動作装置。
  3. 前記所定の行列を用いた行列演算は、ポアソン方程式による演算である
    ことを特徴とする請求項2に記載のオブジェクト動作装置。
  4. 前記スカラー回転量算出手段は、前記終端と前記始端との間に介在させる複数単位時間での各単位時間で適用させるべきスカラー回転量を算出する際に、前記スカラー速度のX番目の要素に対して前記所定の行列のX行のみを用いて演算を行う
    ことを特徴とする請求項3に記載のオブジェクト動作装置。
  5. 前記回転量分解手段は、指数マップにより前記オブジェクトの3次元回転動作の回転量をスカラー回転量に分解し、
    前記回転量再生手段は、対数マップにより前記スカラー回転量に基づいて前記オブジェクトの回転量を再生する
    ことを特徴とする請求項1乃至4のいずれか1項に記載のオブジェクト動作装置。
  6. 前記第1の動作と前記第2の動作とは、何れも3次元回転動作が含まれるものであり、
    前記スカラー速度特定手段は、前記スカラー速度算出手段が算出した前記第1モーションデータに従う場合の各単位時間におけるスカラー速度と、前記第2モーションデータに従う場合の各単位時間におけるスカラー速度とを対応する単位時間毎に比較し、各単位時間において絶対値の大きい方のスカラー速度を、前記終端と前記始端との間に介在させる複数単位時間において適用させるべき前記オブジェクトの3次元回転動作の各単位時間におけるスカラー速度として特定する
    ことを特徴とする請求項1乃至5のいずれか1項に記載のオブジェクト動作装置
  7. 前記第1モーションデータを構成する複数単位時間分のデータのうちの前記終端よりも後の単位時間のデータと、前記第2モーションデータを構成する複数単位時間分のデータのうちの前記始端よりも前の単位時間のデータとをそれぞれ比較し、各々について互いに最も近似する単位時間のデータを特定する近似データ特定手段と、
    前記第1モーションデータと前記第2モーションデータとを、前記近似データ特定手段が特定した単位時間のデータを一致させるようにタイムシフトするタイムシフト手段とを備え、
    前記補間モーションデータ生成手段は、前記オブジェクトを前記第1モーションデータに従って動作させる終端と前記第2モーションデータに従って動作させる始端との間に介在させる複数単位時間分のデータを、前記タイムシフト手段によりタイムシフトされた前記第1モーションデータと前記第2モーションデータとに基づいて生成する
    ことを特徴とする請求項1乃至6のいずれか1項に記載のオブジェクト動作装置。
  8. コンピュータ装置において、仮想3次元空間に存在するオブジェクトに第1の動作をさせた後に、該第1の動作とは異なる第2の動作をさせ、該第1の動作と該第2の動作の少なくとも一方に3次元回転動作を含ませて前記オブジェクトを動作させる方法であって、
    前記第1の動作を規定する複数単位時間分のデータからなる第1モーションデータと、前記第2の動作を規定する複数単位時間分のデータからなる第2モーションデータとを前記コンピュータ装置に予め記憶させる第1のステップと、
    前記第1モーションデータを構成する複数単位時間分のデータのうちの前記オブジェクトを前記第1モーションデータに従って動作させる終端のデータを設定する第2のステップと、
    前記第2モーションデータを構成する複数単位時間分のデータのうちの前記オブジェクトを前記第2モーションデータに従って動作させる始端のデータを設定する第3のステップと、
    前記オブジェクトを前記第1モーションデータに従って動作させる終端と前記第2モーションデータに従って動作させる始端との間に介在させる複数単位時間分のデータをモーションデータとして生成する第4のステップと、
    前記第1モーションデータの前記終端までの各単位時間のデータ、前記生成された各単位時間のデータ、前記第2モーションデータの前記始端からの各単位時間のデータを用いて、前記オブジェクトを動作させる第5のステップとを含み、
    前記第4のステップは、
    前記終端と前記始端との間に介在させる複数単位時間での各単位時間において、前記第1モーションデータに従う場合における前記オブジェクトの3次元回転動作の回転量と、前記第2モーションデータに従う場合における前記オブジェクトの3次元回転動作の回転量とを、それぞれ特定するステップと、
    前記第1モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間における回転量と、前記第2モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間における回転量とを、それぞれスカラー回転量に分解するステップと、
    前記第1モーションデータに従う場合の各単位時間におけるスカラー回転量と、前記第2モーションデータに従う場合の各単位時間におけるスカラー回転量とに基づいて、前記第1モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間におけるスカラー速度と、前記第2モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間におけるスカラー速度とを算出するステップと、
    前記第1モーションデータに従う場合の各単位時間におけるスカラー速度と、前記第2モーションデータに従う場合の各単位時間におけるスカラー速度とに基づいて、前記終端と前記始端との間に介在させる複数単位時間において適用させるべき前記オブジェクトの3次元回転動作の各単位時間におけるスカラー速度を特定するステップと、
    前記各単位時間におけるスカラー速度に対して、所定の演算を行って、前記終端と前記始端との間に介在させる複数単位時間での各単位時間で適用させるべき前記オブジェクトの3次元回転動作についてのスカラー回転量を算出するステップと、
    前記スカラー回転量に基づいて、前記終端と前記始端との間に介在させる複数単位時間での各単位時間で適用させるべき前記オブジェクトの回転量を再生するステップとを含む  ことを特徴とするオブジェクト動作方法。
  9. コンピュータ装置において、仮想3次元空間に存在するオブジェクトに第1の動作をさせた後に、該第1の動作とは異なる第2の動作をさせ、該第1の動作と該第2の動作の少なくとも一方に3次元回転動作を含ませて前記オブジェクトを動作させるためのプログラムであって、
    前記第1の動作を規定する複数単位時間分のデータからなる第1モーションデータと、前記第2の動作を規定する複数単位時間分のデータからなる第2モーションデータとを前記コンピュータ装置に予め記憶させるモーションデータ記憶手段、
    前記第1モーションデータを構成する複数単位時間分のデータのうちの前記オブジェクトを前記第1モーションデータに従って動作させる終端のデータを設定する第1モーションデータ設定手段、
    前記第2モーションデータを構成する複数単位時間分のデータのうちの前記オブジェクトを前記第2モーションデータに従って動作させる始端のデータを設定する第2モーションデータ設定手段、
    前記オブジェクトを前記第1モーションデータに従って動作させる終端と前記第2モーションデータに従って動作させる始端との間に介在させる複数単位時間分のデータをモーションデータとして生成する補間モーションデータ生成手段、及び、
    前記第1モーションデータの前記終端までの各単位時間のデータ、前記補間モーションデータ生成手段により生成された各単位時間のデータ、前記第2モーションデータの前記始端からの各単位時間のデータを用いて、前記オブジェクトを動作させるオブジェクト動作手段として前記コンピュータ装置を機能させるためのプログラムであって、
    前記補間モーションデータ生成手段は、
    前記終端と前記始端との間に介在させる複数単位時間での各単位時間において、前記第1モーションデータに従う場合における前記オブジェクトの3次元回転動作の回転量と、前記第2モーションデータに従う場合における前記オブジェクトの3次元回転動作の回転量とを、それぞれ特定する回転量特定手段と、
    前記回転量特定手段が特定した前記第1モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間における回転量と、前記第2モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間における回転量とを、それぞれスカラー回転量に分解する回転量分解手段と、
    前記回転量分解手段が分解した前記第1モーションデータに従う場合の各単位時間におけるスカラー回転量と、前記第2モーションデータに従う場合の各単位時間におけるスカラー回転量とに基づいて、前記第1モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間におけるスカラー速度と、前記第2モーションデータに従う場合の前記オブジェクトの3次元回転動作の各単位時間におけるスカラー速度とを算出するスカラー速度算出手段と、
    前記スカラー速度算出手段が算出した前記第1モーションデータに従う場合の各単位時間におけるスカラー速度と、前記第2モーションデータに従う場合の各単位時間におけるスカラー速度とに基づいて、前記終端と前記始端との間に介在させる複数単位時間において適用させるべき前記オブジェクトの3次元回転動作の各単位時間におけるスカラー速度を特定するスカラー速度特定手段と、
    前記スカラー速度特定手段が特定した各単位時間におけるスカラー速度に対して、所定の演算を行って、前記終端と前記始端との間に介在させる複数単位時間での各単位時間で適用させるべき前記オブジェクトの3次元回転動作についてのスカラー回転量を算出するスカラー回転量算出手段と、
    前記スカラー回転量算出手段が算出したスカラー回転量に基づいて、前記終端と前記始端との間に介在させる複数単位時間での各単位時間で適用させるべき前記オブジェクトの回転量を再生する回転量再生手段とを含む
    ことを特徴とするプログラム。
PCT/JP2012/053290 2011-02-16 2012-02-13 オブジェクト動作装置及び方法、並びにプログラム WO2012111621A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP12747089.6A EP2677503A4 (en) 2011-02-16 2012-02-13 Object movement device, method, and program
CN201280007574.0A CN103403766B (zh) 2011-02-16 2012-02-13 对象动作装置及方法
US13/980,113 US8970602B2 (en) 2011-02-16 2012-02-13 Object operating device and method, and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011-031340 2011-02-16
JP2011031340A JP5190524B2 (ja) 2011-02-16 2011-02-16 オブジェクト動作装置及び方法、並びにプログラム

Publications (1)

Publication Number Publication Date
WO2012111621A1 true WO2012111621A1 (ja) 2012-08-23

Family

ID=46672540

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/053290 WO2012111621A1 (ja) 2011-02-16 2012-02-13 オブジェクト動作装置及び方法、並びにプログラム

Country Status (5)

Country Link
US (1) US8970602B2 (ja)
EP (1) EP2677503A4 (ja)
JP (1) JP5190524B2 (ja)
CN (1) CN103403766B (ja)
WO (1) WO2012111621A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017099098A1 (ja) * 2015-12-09 2017-06-15 株式会社カプコン ゲームプログラムを記録した記録媒体、効果制御方法およびゲーム装置
CN109529337A (zh) * 2018-09-21 2019-03-29 苏州蜗牛数字科技股份有限公司 一种对象位置朝向自适应方法
CN110180190B (zh) * 2019-06-04 2023-01-24 网易(杭州)网络有限公司 虚拟角色的动作的处理方法、装置、存储介质和电子装置
CN110246209B (zh) * 2019-06-19 2021-07-09 腾讯科技(深圳)有限公司 图像处理方法及装置
US11615222B2 (en) * 2019-09-19 2023-03-28 Microsoft Technology Licensing, Llc Inertia scaling based on neighboring bodies
US11648480B2 (en) 2020-04-06 2023-05-16 Electronic Arts Inc. Enhanced pose generation based on generative modeling
JP7233399B2 (ja) * 2020-06-23 2023-03-06 任天堂株式会社 ゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法
US11816772B2 (en) * 2021-12-13 2023-11-14 Electronic Arts Inc. System for customizing in-game character animations by players

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004030502A (ja) * 2002-06-28 2004-01-29 Sangaku Renkei Kiko Kyushu:Kk シミュレーション方法、シミュレーション装置およびシミュレーションプログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3649469B2 (ja) * 1995-05-12 2005-05-18 株式会社ソニー・コンピュータエンタテインメント アニメーションデータの作成方法および作成装置
US5982389A (en) * 1996-06-17 1999-11-09 Microsoft Corporation Generating optimized motion transitions for computer animated objects
JP3926307B2 (ja) 2003-08-06 2007-06-06 株式会社スクウェア・エニックス 3次元画像描画装置及び方法、プログラム、並びに記録媒体
JP4382117B2 (ja) 2007-07-25 2009-12-09 株式会社スクウェア・エニックス 画像生成装置及び方法、並びにプログラム及び記録媒体
JP4387429B2 (ja) 2007-07-25 2009-12-16 株式会社スクウェア・エニックス 画像生成装置及び方法、並びにプログラム及び記録媒体
CN101477703B (zh) * 2008-10-11 2011-09-14 大连大学 基于语义模型的运动捕捉数据直接驱动的人体动画方法
US8941642B2 (en) 2008-10-17 2015-01-27 Kabushiki Kaisha Square Enix System for the creation and editing of three dimensional models
JP2010237882A (ja) 2009-03-30 2010-10-21 Namco Bandai Games Inc プログラム、情報記憶媒体及び画像生成システム
CN102934145B (zh) 2010-05-10 2015-08-05 史克威尔·艾尼克斯有限公司 图像处理装置及图像处理方法
JP5227389B2 (ja) 2010-12-07 2013-07-03 株式会社スクウェア・エニックス ネットワークゲームシステム、ゲーム装置、及びプログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004030502A (ja) * 2002-06-28 2004-01-29 Sangaku Renkei Kiko Kyushu:Kk シミュレーション方法、シミュレーション装置およびシミュレーションプログラム

Also Published As

Publication number Publication date
US20130293538A1 (en) 2013-11-07
US8970602B2 (en) 2015-03-03
EP2677503A1 (en) 2013-12-25
JP5190524B2 (ja) 2013-04-24
CN103403766B (zh) 2017-02-15
CN103403766A (zh) 2013-11-20
JP2012165968A (ja) 2012-09-06
EP2677503A4 (en) 2017-09-06

Similar Documents

Publication Publication Date Title
JP5190524B2 (ja) オブジェクト動作装置及び方法、並びにプログラム
US6203425B1 (en) Image generating device, method thereof, game device and storage medium
US20240307779A1 (en) Animation data processing method, non-transitory storage medium and electronic device
CN102221975A (zh) 使用运动捕捉数据的项目导航
Müller et al. Spatialproto: Exploring real-world motion captures for rapid prototyping of interactive mixed reality
KR102374307B1 (ko) 애니메이팅된 캐릭터의 수정
JP4380042B2 (ja) アニメーション生成方法および装置
JP2010092402A (ja) 簡易アニメーション作成装置
US9934607B2 (en) Real-time goal space steering for data-driven character animation
WO2001027880A1 (en) Method and apparatus for inserting external transformations into computer animations
CN110019866A (zh) 动态图片播放方法、装置及存储介质
US20240257429A1 (en) Neural animation layering for synthesizing movement
US20090179901A1 (en) Behavioral motion space blending for goal-directed character animation
US9652879B2 (en) Animation of a virtual object
JP7232621B2 (ja) ゲームプログラム、記録媒体、ゲーム処理方法
KR20230130748A (ko) 이미지 처리 방법 및 장치, 디바이스 및 매체
CN112843683A (zh) 虚拟角色的控制方法、装置、电子设备及存储介质
JP4447000B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP2009037572A (ja) 動作合成システム及びその方法
US6924823B2 (en) Recording medium, program, image processing method, and image processing device
CN107820622A (zh) 一种虚拟3d场景制作方法及相关设备
JP2004159922A (ja) 画像生成システム、プログラム及び情報記憶媒体
US20220172431A1 (en) Simulated face generation for rendering 3-d models of people that do not exist
KR20070025384A (ko) 춤추는 아바타를 생성하는 방법 및 서버와 춤추는 아바타를이용한 응용 서비스 제공 방법
Laszlo et al. Predictive feedback for interactive control of physics-based characters

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12747089

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 13980113

Country of ref document: US

Ref document number: 2012747089

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE