WO2021045082A1 - 仮想的なキャラクターの動作を画面上に表現する方法 - Google Patents
仮想的なキャラクターの動作を画面上に表現する方法 Download PDFInfo
- Publication number
- WO2021045082A1 WO2021045082A1 PCT/JP2020/033221 JP2020033221W WO2021045082A1 WO 2021045082 A1 WO2021045082 A1 WO 2021045082A1 JP 2020033221 W JP2020033221 W JP 2020033221W WO 2021045082 A1 WO2021045082 A1 WO 2021045082A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- target position
- character
- computer
- rotation
- body part
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
- G06T13/40—3D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
Definitions
- the present invention relates to a method of expressing the movement of a virtual character on a screen.
- Paragraph [0002] of Patent Document 1 discloses that a character's motion is generated by continuously reproducing motion data created in advance.
- Paragraph [0004] discloses that given motion data is used as a target motion, the joint angular acceleration of the character is controlled so as to follow the target motion, and the actual motion is calculated by dynamic simulation.
- Paragraph [0007] discloses the following approach. That is, in order to generate continuous movements of the character, a lot of short movement data is prepared in advance. A series of operations are realized by playing back appropriate operation data in order according to the situation. Each operation data is basically created in advance so that the preceding and following operations can be well connected to each other.
- Patent Document 1 discloses the following simulation method. That is, in the motion synthesis step, "one continuous motion data" is created by smoothly connecting data representing the state of the character's reference part and all joints at the start of motion and multiple motion data, so-called joint angle animation. Generate. In the motion control step, the translation, rotational acceleration, and rotational acceleration of each joint, which is the reference part of the character, are calculated. In the motion determination step, it is determined whether or not a natural motion can be realized by the motion control step with "one continuous motion data" as the "target motion". When a natural motion cannot be realized, the reaction motion generation step generates motion data of an appropriate reaction motion in place of this motion data.
- the motion calculation step based on the data representing the current state of the reference part of the character and all the joints, and the translation, rotational acceleration, and rotational acceleration of each joint as the reference part of the character calculated in the motion control step. Calculate the data representing the operating state of the reference part and all joints of the character.
- the operation data of this reaction operation is referred to as "target operation” instead of "one continuous operation data”.
- Patent Document 2 discloses the following. Acquire standard skeleton movements based on motion capture data that captures human movements. Furthermore, for the standard skeleton movement, an "index related to movement” is set, and an “axis parameter” is set for this index.
- the “indicator related to motion” is set based on the motion of a plurality of skeletons, or based on the parameters of the motion measured together with the acquisition of motion capture data.
- the "axis parameter” is a value indicating the degree of movement set based on the distribution of index values in a plurality of skeleton movements. When the user inputs a change in the index value for motion, the standard skeleton behavior is changed according to the "axis parameter".
- the changed skeleton operation is displayed by identifying the changed part from the standard skeleton operation.
- the skeleton animation obtained by measuring the movement that is, the joint angle animation is changed to the desired movement.
- Changes in standard skeleton movements are based on human movements, allowing for more appropriate changes in movement.
- Patent Document 1 a plurality of operation data are smoothly connected to create "one continuous operation data".
- the artist creates a plurality of operation data in advance.
- joint angle animation the position and rotation of each body part of the character are determined only when the artist defines the change in the joint angle of the whole body of the character. Therefore, Patent Document 1 depends on the number of patterns of motion data provided by the artist.
- Patent Document 2 the animation of the skeleton obtained by measuring the human movement is changed to the desired movement. Therefore, the artist does not need to define the change in the joint angle of the character's whole body. However, in order to obtain an animation having a desired movement, it depends on the creation of motion data by the artist.
- the present invention provides a state transition machine that plays a virtual character.
- This state transition machine plays an interactive character while avoiding the awkwardness of movement that is typical of joint angle animations. It is desired that this state transition machine is less dependent on the creation of motion data by the artist.
- a method of expressing the movement of a virtual character on the screen, and the computer A state transition machine in which the target position of the character's body part is specified in chronological order is called from the memory; Interpolate the intermediate state of the position of the body part from one target position to the next target position, and here, the time change of the position of the body part in the intermediate state is used as a mathematical model to reduce the jerk. Calculated based on; The movement of joints that connect directly or indirectly to the body part is calculated by inverse kinematics (IK) based on the intermediate state; A character animation is generated by rendering based on the movement of the joint, The screen displays the character animation, Method.
- IK inverse kinematics
- the target rotation of the body part is designated in chronological order in combination with this, and hereinafter, this set is referred to as the target position rotation.
- the target position rotation In interpolating the intermediate state of the position of the body part, the intermediate state of the set of the position of the body part and the rotation of the body part during the period from the rotation of a certain target position to the subsequent rotation of the target position is interpolated.
- the movement of the joint based on the intermediate state of the set, The method according to ⁇ 1>.
- PD Proportional-Differential
- a character animation is generated by the rendering based on the movement of the joint that has been modified.
- ⁇ 4> The body part is located at the tip of the forearm of the character or beyond.
- the mathematical model is the minimum jerk orbit,
- ⁇ 5> The state transition machine has two or more target position rotations following one target position rotation, and the computer selects one of the two or more target position rotations. After that, the intermediate state between the one target position rotation and the selected target position rotation is further interpolated.
- ⁇ 6> The state transition machine has a first target position rotation, a second target position rotation following the first target position rotation, and a third target position rotation following the second target position rotation.
- the computer interpolates an intermediate state between the first target position rotation and the second target position rotation, and further performs an arbitrary position and rotation of the body part in the intermediate state and the third target position rotation. Interpolate the intermediate state between the target position rotation,
- the method according to ⁇ 2>. ⁇ 7> At the same time as the state transition, the elemental movement that guides the body part to the target position rotation of the transition destination state starts. Since the next state transition is possible without waiting for the completion of the element operation, the intermediate state is derived by the sum of the unfinished element operations.
- the method according to ⁇ 6>. ⁇ 8> The computer further uses a preset guide point in interpolating the intermediate state so that the body part makes a large turn so as to move away from the guide point after approaching the guide point.
- the computer receives the target position rotation specified in the time order in advance, generates the state transition machine, and records the state transition machine in the memory, or records the already generated state transition machine in the memory. To do, The method according to ⁇ 2>. ⁇ 10> The computer further performs the subsequent target position rotation in the called state transition machine based on the pair of the coordinates in the virtual space of the character and the coordinates in the virtual space of the virtual target in the virtual space. After making the adjustment, the intermediate state is interpolated. The method according to ⁇ 2>.
- the computer further determines the subsequent target position in the called state transition machine based on a set of coordinates in the virtual space of the character and coordinates in the virtual space of an existing target with which the character should interact. After adjusting the rotation, the intermediate state is interpolated.
- ⁇ 12> The computer further calls the node graph that defines the type of coordinate transformation and the order of application from the memory. Further, the computer automatically adjusts the target position rotation of the body part of the character based on the position and rotation of the existing target by calculating the coordinate transformation according to the node graph. Interpolating the intermediate state based on the adjusted target position rotation.
- the method according to ⁇ 11>. ⁇ 13> The screen is a head-mounted display for virtual reality.
- the coordinates of the target are the coordinates of the viewpoint of the wearer of the head-mounted display, which should be set in the virtual space.
- the method according to ⁇ 11>. ⁇ 14> The screen is signage, The coordinates of the target are the coordinates of the person in the virtual space reflecting the positional relationship between the existing person around the signage and the signage. The position of the person is detected by a sensor installed around the signage. The method according to ⁇ 9>. ⁇ 15>.
- the computer further receives a signal of the position of the person from the sensor and calculates the coordinates of the target from the signal.
- the method according to ⁇ 14>. ⁇ 16> The sensor includes a camera, and the signal includes an image of the person.
- the computer calculates the height of the person from the image of the person and reflects this in the adjustment result of the target position rotation.
- the method according to ⁇ 15>. ⁇ 17> A computer program for expressing the movement of a virtual character on the screen.
- a state transition machine in which the target position of the character's body part is specified in chronological order is called from the memory; Interpolate the intermediate state of the position of the body part from one target position to the next target position, and here, the time change of the position of the body part in the intermediate state is used as a mathematical model to reduce the jerk. Calculated based on;
- the movement of the joint that connects directly or indirectly to the body part is calculated by inverse kinematics (IK) based on the intermediate state.
- IK inverse kinematics
- a character animation is generated by rendering based on the movement of the joint.
- Computer program ⁇ 18> A system including a screen expressing a virtual character's movement and a computer for calculating the movement, and the computer is a computer.
- a state transition machine in which the target position of the character's body part is specified in chronological order is called from the memory; Interpolate the intermediate state of the position of the body part from one target position to the next target position, and here, the time change of the position of the body part in the intermediate state is used as a mathematical model to reduce the jerk.
- the movement of joints that connect directly or indirectly to the body part is calculated by inverse kinematics (IK) based on the intermediate state;
- a character animation is generated by rendering based on the movement of the joint,
- the screen displays the character animation.
- IK inverse kinematics
- a method of expressing the movement of a virtual character on the screen, and the computer A state transition machine in which the target rotation of the character's body part is specified in chronological order is called from the memory; Interpolate the intermediate state of rotation of the body part from a certain target position to the next target rotation, and here, the temporal change of the rotation of the body part in the intermediate state is used as a mathematical model to reduce the jerk.
- the movement of joints that connect directly or indirectly to the body part is calculated by inverse kinematics (IK) based on the intermediate state;
- a character animation is generated by rendering based on the movement of the joint, The screen displays the character animation, Method.
- this state transition machine plays an interactive character while avoiding the awkwardness of movement that is typical of joint angle animations. This state transition machine is less dependent on the artist to create motion data.
- FIG. 1 is a block diagram of the screen 21 and the computer 22.
- the operation of the virtual character 20 is expressed on the screen 21.
- the computer 22 generates a character animation using a state transition machine, inverse kinematics calculation, and motion control.
- This state transition machine is a kind of computer program.
- the computer 22 generates a character animation.
- FIG. 2 shows the skeleton 24 of the character 20.
- the skeletons of the right and left arms are shown in the figure.
- the right arm skeleton has an upper arm 28R, a forearm 29R and an elbow joint 23R.
- the left arm skeleton also has upper arm, forearm and elbow joints.
- the skeleton 24 also has a torso, legs, and head, but these are omitted in the drawings.
- FIG. 2 further represents the right-hand handle 25R and the left-hand handle 25L of the character 20. These handles are virtual interfaces for identifying the target-position-and-rotation of the body part of the character 20.
- the "body part” is any part that constitutes the body of the character 20, for example, the right hand, the left hand, or the head.
- the "target position rotation” of the body part represents a set of the target position of the body part and the target rotation of the body part.
- the rotation of the body part may be interpreted as the posture or orientation of the body part.
- the target rotation of the body part may be interpreted as the target posture of the body part.
- the handle 25R specifies the position 26R of the right hand and the rotation 27R of the right hand.
- the handle 25R is located at the tip of the forearm 29R.
- the handle 25R may be located beyond it.
- the handle 25L identifies the left hand position 26L and the left hand rotation 27L.
- the handle 25L is located at or beyond the tip of the forearm of the left arm.
- FIG. 3 shows the state transition machine 30.
- the target-position-and-rotation of the body part of the character 20 is designated in chronological order.
- the handle 25R specifies the rotation of the target position of the character 20's right hand.
- the state transition machine 30 has information on the transition of the target position rotation of the right hand of the character 20 specified by the handle 25R.
- the state transition machine 30 does not have to use the target rotation.
- the state transition machine 30 may specify only the position 26R of the right hand and may leave the rotation 27R of the right hand free or fixed.
- the state transition machine 30 may specify only the rotation of the head, and the position of the head may be left free or fixed.
- only the rotation of the head may be specified and the position of the head may be left free or fixed. ..
- which body part to specify the target position rotation may differ depending on the state.
- one state may include designation of target position rotation of a plurality of body parts.
- the pose P31 is in the starting state.
- pose P31 the character 20 is lowering his right hand downward.
- pose P32 the character 20 points his right hand slightly to the right.
- the state changes from the pose P32 to the pose P33.
- pose P33 character 20 raises his right hand upwards.
- the state changes from the pose P33 to the pose P34.
- pose P34 the character 20 points his right hand to the right.
- pose P35 character 20 brings his right hand closer to his head and torso.
- pose P35 to pose P34 or pose P36 the character 20 is lowering his right hand downward as in pose P31.
- Pose P36 is in the finished state.
- the state transition machine has two or more target position rotations following one target position rotation. That is, the pose P32 may follow the pose P31, and the pose P33 may follow.
- the computer selects one of these two or more target position rotations. That is, one of the pose P32 and the pose P33 is selected.
- the computer further interpolates the intermediate state from one target position rotation to the selected target position rotation. That is, either the intermediate state between the pose P32 and the pose P34 or the intermediate state between the pose P33 and the pose P34 is interpolated.
- the state transition machine does not have to have a branch.
- the character may or may not pause in each pose. That is, the pause may immediately start the next operation as a mere passing point.
- the intermediate state is such that the character has another next pose.
- the intermediate state between the pose and the pose may be interpolated.
- the state transition machine 30 does not substantially have the information of the animation of the whole body joint angle of the skeleton.
- the head, torso, and limbs of the character 20, which are represented by thin lines in the figure, are for convenience of explanation only. "Substantially having no information” here means that the stock of animation of the whole body joint angle is not indispensable for generating the data of the movement of the joint to be rendered later.
- the state transition machine 30 does not substantially have information on the intermediate state of the position of the body part including the right hand and the rotation set of the body part.
- the intermediate state here means a state from the rotation of the target position corresponding to the pose to the rotation of the target position corresponding to the next pose.
- substantially having no information here means that the stock of animation of the whole body joint angle is not essential when the computer generates the data of the movement of the joint to be rendered later. ..
- the computer interpolates the intermediate state in a process described later.
- FIG. 4 shows the process of generating a character animation.
- the computer first calls the above-mentioned state transition machine from the memory in step S41.
- the memory stores one type or two or more types of state transition machines in advance.
- the memory may be a volatile memory or a non-volatile memory.
- the non-volatile memory may be a flash memory or a magnetic disk.
- the memory may be connected to the computer via a network or may be built into the computer.
- the computer after the computer calls the state transition machine from the memory in step S41, the computer continuously executes the state transition machine until the state transition machine ends. That is, the steps S42 to S48 are repeatedly executed, and the state transition is performed in S47.
- the computer may further execute the character AI (character artificial intelligence), or may determine the state transition according to the instruction of the character AI. The details of the character AI will be described later.
- step S42 shown in FIG. 4 the intermediate state of the position of the body part and the rotation set of the body part is interpolated.
- the intermediate state here means a state in the state transition machine from a certain target position rotation to the next target position rotation.
- step S43 shown in FIG. 4 the movement of the whole body or the joint of the right arm of the skeleton 24 shown in FIG. 2 is calculated using inverse kinematics (IK).
- the joint referred to here is a joint that directly or indirectly connects to the body part for which the intermediate state has been calculated.
- the movement of the joint is calculated from the time change of the position of the body part in the intermediate state or the time change of the position and rotation.
- one body part connected to the joint eg, the "torso” does not change in position and rotation over time.
- the other body part on the opposite side of the joint for example, the "hand”, undergoes a time change in its position and rotation.
- both one and the other body parts that connect to each other via joints experience temporal changes in their position and rotation.
- the movement is not defined for these joints within the time of the intermediate state. That is, the joint movement is not specified before applying IK, and the joint movement is specified after applying IK.
- a series of joint angle animations can be generated by combining the joint angle animations in each intermediate state with the above-mentioned state transition machine. Further, in step S44, the movement of the joint may be modified by PD (Proportional-Differential) control. Step S44 may be omitted.
- PD Proportional-Differential
- step S45 shown in FIG. 4 a character animation is generated by rendering based on the modified joint movement, that is, the animation of the whole body joint angle of the skeleton.
- step S46 the character animation is displayed on the screen by outputting the video signal.
- step S47 it is determined whether or not to perform the state transition of the state transition machine, and if the transition destination is branched into a plurality of states, which state is to be transitioned to.
- step S48 it is determined whether or not the state transition machine has reached the end state, and if it is not in the end state, the process returns to step S42 and the process is repeated. When the end state is reached, the process ends in step S49.
- FIG. 5 graphically represents the intermediate state of the position.
- the vertical axis x is the amount of displacement.
- the horizontal axis t is time.
- the curve 50 shown by the alternate long and short dash line represents the constant velocity motion, which is the time change of the position of the simplest body part.
- the positions of the body parts change at a constant velocity from a certain target position rotation to the next target position rotation.
- the fact that the position changes at a constant velocity without bias from the start to the stop is not seen in the actual movement of human body parts. Therefore, we will devise as follows.
- the time change of the position of the body part in the intermediate state is calculated based on the mathematical model that reduces the jerk.
- An example of such a mathematical model is the minimum jerk orbit.
- the minimum jerk orbit that reaches the three-dimensional position (Px, Py, Pz) with the elapsed time T is expressed as follows.
- the position change to which the minimum jerk trajectory can be applied is not limited to the straight path.
- the position change may be a curved path.
- FIG. 6 shows the use of switching the target position. The right hand moves on the straight path 56b from position 55a to position 55b. The right hand stopped at position 55b then moves on the straight path 56b towards position 55c.
- the target position rotation in the state transition machine is switched at an arbitrary time during the operation regardless of the elapsed time of the operation. That is, when the right hand is in the intermediate state represented by the linear path 56a, the right hand heads for the next target position rotation represented by the position 55c and the predetermined target rotation. In other words, while the motion of traveling on the straight path 56a is continued, the motion of traveling on the curved path 57 starts. For a while after this switch, the right hand behaves in a mixed manner.
- the movement of the right hand is smooth even in the above-mentioned "mixed movement". That is, the curved path 57 passing through the right hand is very smooth, and the movement of the right hand traveling along the curved path 57 is also smooth. That is, the right hand operates smoothly even if the target position rotation is switched at an arbitrary timing in the intermediate state. Such smooth switching at an arbitrary timing is difficult to realize with a state transition machine in which the operation itself is connected, as shown in FIG. 9, for example.
- the target position is changed from the position 55b to the position 55c before the right hand reaches the position 55b. Since the speed of the right hand has already increased, the course of the right hand changes little by little.
- the right hand moves from position 55a to position 55c via the curved path 57. That is, the set of the straight path 56a and the straight path 56b is changed to the curved path 57.
- FIG. 7 is a graph showing the time change of the velocity dx / dt on the curved path shown in FIG. The broken lines are superimposed with reference to the time change on the straight path.
- positions 55a and 55c overlap the curved path 57.
- the position 55b does not overlap the curved path 57.
- the position 55b acts as an induction point in interpolating the intermediate states of the positions 55a and 55c.
- the time change of the rotation of the body part in the intermediate state is also calculated in the same manner.
- the time change of the target rotation of the body part in the intermediate state is calculated by applying the minimum jerk trajectory to the rotation of the body part, that is, the rotation angle of the body part.
- the angle of rotation is expressed by, for example, a quaternion.
- the rotation angle between the rotation angle A and the rotation angle B can be calculated by, for example, the spherical linear interpolation method.
- the interpolation ratio can be set from 0 to 1. When the interpolation ratio is 0, the output of spherical linear interpolation matches the rotation angle A.
- the output of spherical linear interpolation matches the rotation angle B. If spherical linear interpolation is used as it is for calculating the intermediate rotation angle, the angular velocity becomes constant. Such rotational movement of the body part at a constant angular velocity is not seen in a real human being, like the constant velocity movement of the body part regarding the position of the body part. Therefore, in the present embodiment, the interpolation ratio in spherical linear interpolation is changed according to, for example, the equation of the minimum jerk trajectory.
- the spherical linear interpolation of the interpolation ratio r from the quaternion q1 to the quaternion q2 is expressed as SLERP (q1, q2, r).
- q (t) that changes from q1 to q2 with the elapsed time T is expressed as follows.
- the rotation of the target position of the induction point is made to correspond to the state of the state transition machine created by the artist. This point is not disclosed in Non-Patent Document 1.
- FIG. 8 is a schematic diagram of PD control, in which the upper arm 28R of the right arm and the forearm 29R are connected by a virtual spring k and a damper c.
- the spring k and the damper c imitate the biceps brachii, but their installation positions are not necessarily limited.
- Appropriate spring k and damper c can be set for each type of skeleton.
- the values of the spring k and the damper c may be made to correspond to the state of the state transition machine so that the values of the spring and the damper change according to the state transition.
- the movement will be weakened, and if the value of the spring and damper is large, the movement will be corrected with force. Will be done.
- the amount of force applied is not always constant, and the amount of force applied is changed according to the state of the movement.
- the end of the upper arm 28R and the end of the forearm 29R are connected by the elbow joint 23R.
- the forearm 29R rotates about the joint 23R.
- the spring k abstracts P (Proportional) control.
- the damper c abstracts D (Differential) control. It should be noted that I (Integral) control may be further added to the PD control.
- PD control of the elbow joint 23R was described. PD control may be performed on the joints of the whole body of the skeleton 24.
- FIG. 9 shows the use of a state transition machine 90 consisting of a set of character skeleton movements as a reference example.
- the state transition machine 90 has an operation M91 to an operation M95.
- the computer creates one continuous operation data.
- each operation from the operation M91 to the operation M95 is created in advance by the artist.
- the amount of work the artist does increases with the number of individual movements required.
- an artist is a person who creates a set of character skeleton movements at the request of some people.
- the state transition machine 90 shown in FIG. 9 includes a branch.
- the next operation of the operation M91 can be the operation M92 or the operation M93.
- the next operation of the operation M92 can be the operation M94 or the operation M95.
- the operation of the character cannot be switched while the operation continues.
- the character's movements can be switched when the duration of one movement ends and the next movement begins.
- the computer switches according to what the director or other person or thing has entered into the computer.
- the director is a person who uses the movement created by the artist.
- the director and the artist may be the same person.
- a director or a computer other than the artist selects the route to the operation M94 via the operation M92.
- the computer stores the operation M93 and the operation M95, but the computer does not use them. Further, the duration of each of the operation M91, the operation M92, and the operation M94 is fixed.
- FIG. 10 shows an interface 59 for designating a set of a body part of the character 20 and its target position rotation in chronological order.
- the artist creates a state transition machine 60 using the interface 59. What is represented in the figure can be said to be an editor having an interface 59.
- the interface 59 may be a graphical user interface (GUI).
- GUI graphical user interface
- the state transition machine 60 has only information on the position and rotation of the body part to which the handle 25R is attached, that is, the right hand.
- the artist selects the state of the state transition machine, that is, the pose 28 in the interface 59, and moves the handle 25R to set the target position rotation of the right hand for each pose. Also, the transition 29 between poses is set.
- the pose contains time order information.
- a computer moves the character 20 in the virtual space based on the state transition machine 60 created by the artist. That is, the computer automatically generates the operations M61 to M68 to interpolate these intermediate states.
- the computer that accepts the input of the state transition machine 60 at the interface 59 and the computer that interpolates the intermediate state of the state transition machine 60 may be separate. In this case, the state transition machine 60 is sent from the former computer to the latter computer. Further, one computer may accept the input of the state transition machine 60 at the interface 59 and further interpolate the intermediate state of the state transition machine 60. In this case, the computer saves the state transition machine 60 in its own memory.
- the role required of the artist is to create the state transition machine 60 itself for moving the skeleton in addition to creating the skeleton of the character 20 and the data for rendering. It is to be.
- the artist must further specify a target position rotation assigned to each state in the state transition machine 60 and an arrival target time assigned to each target position rotation.
- the artist must create a character AI and node graph as needed.
- the artist creates all of the character's skeleton, the data for rendering the character, and the state transition machine of the character, and further obtains the target position rotation and the target time to reach.
- another entity other than the artist for example, the director, additionally specifies the target position rotation and the arrival target time for the state transition machine by using the state transition machine created by the artist.
- the artist can substitute the operation data in the method shown in FIG.
- the state transition machine 60 shown in FIG. 10 includes a branch.
- the next action can be action M61 or action M63. That is, the operation M62 and the operation M63 can be switched.
- the next motion can be motion M64 or motion M68.
- the operation M65 can be the operation M67 in the next operation.
- the transition to the next operation can be performed before the previous operation is completed. That is, the operation switching time is arbitrary.
- switching between operation M64 and operation M68 may be executed before the end of the operation M63, may be executed at the same time as the end of the operation M63, or time has elapsed since the end of the operation M63. You may execute it later.
- the method of interpolating the operation at this time will be described in detail later with reference to FIGS. 18 to 20.
- the computer is switched according to the content entered into the computer by the artist or director.
- the computer may perform this switching by executing the character AI.
- the artist selects the route to the operation M67 via the operation M64.
- Computers generate actions on these paths by interpolating intermediate states.
- the computer does not use the route via the operation M61, the operation M62 and the operation M68.
- the computer does not produce these behaviors by interpolating intermediate states.
- FIG. 11 is a usage diagram of the interface 59.
- a table in front of the character 20 and a coffee cup 70 placed on the table exist.
- the handle of the coffee cup 70 faces farther from the character 20.
- the artist creates an action in which the character 20 reaches out to the handle of the coffee cup 70.
- the artist directly specifies the target position rotation of the character 20's right hand with the handle 25R.
- the artist sets the final target position rotation on the target point 71 on the handle of the coffee cup 70.
- the state transition machine has only a target position rotation of the start point and the target point 71.
- an animation occurs in which the character 20 extends his right hand straight toward the coffee cup 70.
- the right hand of the character 20 hits the body of the coffee cup 70.
- Such an action of the character 20 lacks a sense of reality.
- the artist additionally sets the target position rotation on the waypoint 72.
- the state transition machine further has a target position rotation on the waypoint 72.
- an animation occurs in which the character 20 bypasses the body of the coffee cup 70 and extends his right hand.
- the right hand of the character 20 does not hit the body of the coffee cup 70.
- Such an action of the character 20 has a sense of reality.
- the interface 59 makes it easy to grasp the overall picture of the movement of the character 20.
- Artists are easy to do production work. The artist can create the movement of the character 20 according to the position of the target, that is, the handle of the coffee cup 70, by creating the minimum necessary key frame, that is, the target position rotation of the body part.
- the artist creates a state transition machine by directly designating the target position rotation of the right hand with the handle 25R.
- the computer running the created state transition machine interpolates the intermediate states of the body part between one target position rotation and the next target position rotation.
- the computer does not change the target position rotation specified by the artist.
- the computer automatically adjusts the target position rotation based on other inputs.
- the other inputs are not pre-entered by some on the computer.
- Other inputs include those entered into the computer while the computer is running the state transition machine.
- the computer interpolates the intermediate state based on the adjusted target position rotation.
- the computer that adjusts the target position rotation and the computer that interpolates the intermediate state may be separate. The same computer may be responsible for these processes.
- FIG. 12 is a usage diagram of the screen 21 and the computer 22.
- the computer 22 connects to the sensor 75.
- the sensor 75 is installed around the screen 21.
- the screen 21 is used as signage.
- the sensor 75 detects the position of the distant child 79 on the right side in the front direction of the screen 21.
- the right side is the right side when viewed from the character 20.
- Child 79 is an existential target.
- the computer 22 receives a signal from the sensor 75 at the position of the child 79.
- the computer 22 selects a distant child 79 on the right side as a target for which the character 20 should seek contact, that is, a target for interaction.
- a target for interaction a target for interaction
- the computer 22 records the orientation and distance of the child 79 based on the information provided by the sensor 75.
- the computer 22 stores a motion graph 80 composed of a set of skeleton movements of the character 20.
- the movements of the skeleton are roughly divided into three types: "look around”, “waving” and "bowing".
- the motion graph 80 is also a kind of state transition machine and is also a computer program.
- the computer 22 sends an animation of the character 20 to the screen 21 according to the motion graph 80.
- the screen 21 displays the character 20 as a signage-type interactive robot.
- the computer 22 adjusts the "waving" motion in the motion graph 80 to change this to a "waving” motion for "a distant child on the right side".
- FIG. 13 shows a method of automatically adjusting the "waving" motion based on the joint angle animation as a reference example.
- the artist needs to create a large group of "waving" movements in advance in preparation for the wide variety of patterns of interactive movements.
- the computer stores these joint angle animations in advance.
- the computer determines the behavior of the character according to the motion graph 80. To switch the character's movement from “looking around” to "waving", the computer first selects between “waving” and “bowing”. The computer calls the joint angle animation according to the selection.
- the computer selects "a distant child on the right side” as the target as described above. Therefore, the "right, far, low” operation is selected from a plurality of operations.
- This movement is the movement of a skeleton waving to the right, and the movement of a skeleton waving toward a short person in the distance. This movement is represented by a joint angle animation created in advance by the artist.
- the computer performs motion blending.
- the computer determines that the distance between the screen and the target assumed in the "right, far, low” operation is too far from the distance between the screen detected by the sensor and the child.
- the computer then chooses a "right, near, low” action.
- the computer blends "right, far, low” movements with “right, far, low” movements.
- the computer identifies the blend ratio based on the detected distance.
- the blend creates a new joint angle animation.
- the computer corrects the motion of the joint angle animation by IK.
- the computer renders the joint angle animation to create the character animation and outputs the character image to the screen.
- the output animation may include undesired movements.
- some body parts of the character are not oriented in the direction they should be facing, and the repetition of the movements of the body parts of the character is unnaturally attenuated or amplified. This includes the fact that some of the character's body parts that should not move move.
- Specific examples of "undesirable movements" in the movement of the character waving are that the palm of the character does not face the opponent with whom the character should interact, and the width of the movement of the character's hand becomes smaller or larger.
- the computer 22 acquires the coordinates of the child 79 through the sensor 75.
- the computer 22 further adjusts the "waving" motion in the motion graph based on the coordinate information of the child 79.
- the computer 22 further interpolates the intermediate state during the target position rotation. In this embodiment, the movement is adjusted by adjusting the rotation of the target position in the state transition machine consisting of pauses.
- FIG. 14 shows a method of automatically adjusting the "waving" motion based on the state transition machine consisting of poses.
- the motion graph 81 is a state transition machine having the same function as the motion graph 80 shown in FIG.
- the motion graph 81 differs from the motion graph 80 in the following points.
- the motion graph 81 calls the state transition machine consisting of poses shown in FIG. 15 in order to generate a "waving" motion.
- FIG. 15 shows the state transition machine 39.
- the state transition machine 39 is a simpler state transition machine than the state transition machine 30 shown in FIG. 3, and has some of the above-mentioned poses.
- the first pose P31 is a start state and a standby state. P31 is also used as the end state.
- the character 20 is lifting his right hand.
- the third pose P34 the character 20 points his right hand to the right.
- the fourth pose P35 the character 20 brings his right hand closer to his head and torso.
- the character 20 is viewed from the front, the right hand is moving to the right.
- the motion graph 81 may call a state transition machine composed of poses in order to generate a "look around” motion and a "waving" motion.
- the computer may store joint angle animations of "look around” and "waving” movements.
- the motion graph 81 may select a motion from these groups and call the joint angle animation of the required motion.
- the computer uses the node graph 38 to adjust the "waving" motion.
- the node graph 38 is a computer program. As the computer executes the node graph 38, the character selects a "waving" target. In this embodiment, the target is the distant child 79 on the right side shown in FIG.
- the adjustment performed by the computer in FIG. 14 is that the computer automatically specifies a new target position rotation within the range of the target position rotation specified by the artist in one aspect. In another aspect, the computer automatically specifies a new target position rotation with reference to the artist-specified target position rotation reference.
- the node graph 38 seen from the state transition machine 39 is the existence of a meta that defines the target position rotation from the outside of the state transition machine 39. These may be replaced with a group of programs in which the state transition machine 39 is the main routine and the node graph 38 is the subroutine.
- FIG. 16 represents a virtual space.
- the character 20 and the child 79 described with reference to FIG. 12 are viewed in a plane.
- the character 20 is virtually located behind the screen 21.
- the child 79 is located on the right side of the character 20.
- the computer 22 receives a signal from the sensor 75 at the position of the child 79.
- the computer 22 calculates the coordinates of the target child 79 in the virtual space from the received signal.
- the computer 22 records the calculated coordinates.
- the computer 22 executes the node graph 38. Based on the coordinates of the child 79 and the coordinates of the character 20, the relative coordinates 83 of the character 20 rotate toward the child 79. The target coordinate position of the body part is adjusted based on the rotated relative coordinates 83.
- the sensor 75 may include a camera.
- the signal sent by the sensor 75 to the computer 22 includes an image of the child 79.
- the computer 22 calculates the height of the child 79 from the image of the child 79.
- the computer 22 reflects the height information of the child 79 in the adjustment result in the execution of the node graph 38.
- the computer 22 adjusts the target position rotation of the body part based on other inputs, here the inputs from the sensor 75.
- FIG. 17 shows the adjustment of the target position rotation of the right hand.
- the figure shows the right hand symbolized by the handle 25R.
- the first target position rotation of the right hand represented by the handle 25R remains the basic target position rotation of the state transition machine called by the computer.
- This target position rotation corresponds to the state before waving.
- This target position rotation expresses the posture of the character with the right hand next to the waist.
- the computer receives input of a reference coordinate system with the position of the character itself as the origin, the front direction of the character as the z-axis, the right direction as the x-axis, and the upward direction as the y-axis.
- the computer converts the reference coordinate system input to the computer by the relative coordinate node and outputs it.
- the relative coordinate node is a node graph for outputting a coordinate system having a predetermined relative position and relative rotation with respect to the reference coordinate system input to the computer.
- the second target position rotation includes the target position when the character is lifting his right hand to wave his hand. At this target position, the character's hand passes in front of the character's chest.
- the first target position rotation does not depend on the position of the opponent with which the character should interact.
- the third and fourth target position rotations include the target position in the actual waving motion, and therefore strongly depend on the direction in which the partner to be interacted with by waving is present.
- an artist or the like defines the type of coordinate transformation and the order of application in the form of a node graph.
- the computer records the node graph in memory.
- the computer calls the node graph from memory.
- the computer automatically adjusts the rotation of the target position in the state transition machine based on the position of the target and the rotation of the target by calculating the coordinate transformation according to the node graph.
- the second target position rotation is the target position rotation in the middle of the process. Therefore, the second target position rotation has half the dependence on the direction in which the partner to be interacted with exists.
- the computer receives input of a reference coordinate system with the character's own position as the origin.
- the computer outputs a new coordinate system having the position of the character itself as the origin, that is, a rotating coordinate system, by converting the reference coordinate system input to the computer by the rotation node.
- the rotation node is a node graph that rotates the reference coordinate system input to the computer at a predetermined rate according to the direction of the partner with which it should interact.
- the predetermined ratio that is, the rotation ratio is 50%.
- the orientation of the axis indicating the front of the coordinate system is changed from the reference coordinate system.
- the Z-axis is oriented so that the angle is divided by 50:50 between the front direction of the character and the direction of the opponent to be interacted with.
- the computer further transforms the rotating coordinate system by the relative coordinate nodes described above.
- the computer can describe the target position with respect to the rotating coordinate system by inputting the rotating coordinate system into the relative coordinate node. This target position is suitable for moving the character's right hand approximately to the character's chest height.
- the rotating coordinate system that the computer inputs to the relative coordinate node is a rotation of the reference coordinate system that depends on the direction of the other party with which it should interact.
- the computer automatically generates a different target position for the right hand with respect to the person.
- the second target position rotation includes this target position. As described above, the computer creates the second target position rotation by transforming the reference coordinate system twice.
- the third target position rotation and the fourth target position rotation of the right hand represented by the handle 25R are adjusted as follows.
- the computer uses these target position rotations in combination to represent the movement of the character waving from side to side.
- the computer generates these target position rotations as well as the second target position rotation.
- the second target position rotation represents the character's attempt to lift his right hand.
- the combination of the third target position rotation and the fourth target position rotation represents an action in which the character actually waves his / her hand toward the position of the opponent with which he / she should interact.
- the computer needs to rotate the target position. This rotation must be completely dependent on the direction in which the other party to interact with is present.
- the rotation ratio in the rotation node is set to 100%.
- the computer uses the relative coordinate node and the rotation node is an example of the adjustment method of the target position rotation.
- the computer receives the input of the position of the character itself or the opponent to be interacted with, and outputs the target position rotation.
- the technician defines many other factors for transforming the position rotation in this process.
- the artist selects and combines the transformation elements that are already defined to suit the purpose.
- the highly versatile conversion elements are shared independently of the characters and state transition machines, and are used by multiple artists.
- the computer interpolates the intermediate state between the target position rotations with the minimum jerk trajectory based on the adjusted target position rotations, in this case Nos. 2 to 4.
- the computer renders the joint angle animation and outputs the character animation to the screen.
- the computer 22 displays an interactive character animation on the screen 21. For example, if the child 79 or another person is far from the screen 21, the character 20 raises his hand and waves. If the child 79 or another person is close to the screen 21, the character 20 will wave a small hand near his body.
- the character animation displayed on the screen 21 in FIG. 12 is various. However, as described with reference to FIGS. 14 to 17, there may be at least one type of "waving" state transition machine 39. On the other hand, in the method based on the joint angle animation shown in FIG. 13, it is necessary to prepare a large number of skeleton movements in advance.
- the interactive character 20 By displaying the interactive character 20 on the signage having the screen 21 as shown in FIG. 12, this can be used in the physical social space.
- the movement of the character 20 changes according to the positional relationship between the character 20 and the child 79.
- the computer 22 changes the movement of the character according to the position of the child 79 as seen from the character.
- the movement of the character 20 is characterized by the positional relationship between the body part of the character 20 and the child 79.
- the position of the child 79 is not limited in any way. The position of the child 79 changes depending on the scene. For example, when the child 79 is approaching the screen, the character 20 may bring his / her hand closer to the child 79.
- the child 79 may be replaced with an adult.
- Child 79 may be replaced with an animal.
- the child 79 may be replaced with another object.
- the character 20 may perform an action on an object placed by a person. Characters and people interact with each other through the object. In order to realize such various interaction patterns, a method based on a state transition machine consisting of poses as described above is suitable.
- the computer completes the state transition from one pose to the next, and then starts the operation to reach the next pose. That is, the computer further starts the movement of the character's body part in order to give the character the next new pose.
- the next state transition occurs during the state transition of the skeleton of the character.
- the state of the character is a state in which the target position rotation Pa is assigned to the right hand here, a state a, and a state in which the target position rotation Pb is assigned, and a state b here. Transition to. In this state transition, the computer moves the right hand from the target position rotation Pa to the target position rotation Pb. Therefore, the computer starts the element operation PatoPb.
- the state of the character starts from the state a and reaches the state b.
- the computer can execute the transition from the state b to the state c of the character without waiting for the completion of the element operation PatoPb.
- the computer newly starts the element operation Pb to Pc.
- What the computer actually outputs as the target position rotation of the right hand is the sum of the element motion Pato Pb and the element motion Pb to Pc.
- the computer makes the rotation of the target position of the right hand the sum of all the elemental movements that have started and have not yet ended.
- the computer cannot switch the state during the execution of each operation (unswitchable).
- a computer can switch states only when an action is completed and the next action is selected.
- FIGS. 18 to 20 below in the present embodiment, the computer can switch the state at an arbitrary timing even while the previous operation is being executed (switchable).
- FIG. 18 is a usage diagram of the state transition machine.
- Period A is the period during which the character has Pose 0.
- the computer switches the pose given to the character at the end of period A from Pose 0 to Pose 1.
- the period B is a period in which the character has an operation M63 from Pose 0 to Pose 1.
- the computer switches the pose given to the character from Pose 1 to Pose 2 in the middle of period B, that is, before the character acquires Pose 1.
- the artist specifies the start time of motion M64, regardless of the length of duration of motion M63.
- the computer switches the state of the state transition machine at any time during the duration of operation M63.
- the character starts the next pose of Pose 1, that is, the operation M64 toward Pose 2, at an arbitrary time during the continuation of the operation M63.
- the position and rotation of the character's body part may not reach the target position rotation of Pose1.
- the target position rotation of Pose 1 is, so to speak, an induction point.
- next operation M64 starts while the operation M63 is sustained.
- operation M63 and operation M64 are mixed.
- the character performs an action that is a mixture of these actions.
- the operation is smoothly connected at the joint between the period B and the period C, and further at the joint between the period C and the period D. Even if the operation M63 is switched to the operation M64 at an arbitrary timing in the period B, the character operates smoothly.
- FIG. 19 is a usage diagram of the state transition machine.
- the length of the overlapping time between the operation M63 and the operation M64 is shown in various ways. In the example on the left side, the overlap between the operation M63 and the operation M64 is large. In the example in the middle, the overlap between the operation M63 and the operation M64 is small. In these examples, the position and rotation of the body part does not reach the target position rotation of Pose 1. The target position rotation of Pose 1 is, so to speak, an induction point.
- the character has Pose 1 in period C.
- the position and rotation of the character's body part reaches the target position rotation of Pose 1.
- all parts of the intermediate state of position and rotation of the body part that is, all parts of motion M63 and motion M64 are used.
- the computer changes the trajectory of the target position rotation in the period C by adjusting the timing of switching from the operation M63 to the operation M64 by the artist.
- Such an orbit represents an operation connecting the operation in the period B and the operation in the period D.
- FIG. 20 is a usage diagram of the state transition machine.
- the computer does not necessarily mix the movements only between two consecutive movements, here the movement M63 and the movement M64.
- the artist specifies a start time for each action so that the computer mixes three or more actions.
- the position and rotation of the body part may not reach the target position rotation of Pose 1 and Pose 2.
- the target position rotation of Pose 1 and Pose 2 is, so to speak, an induction point.
- the artist assigns a target position rotation to each state in the state transition machine.
- the computer can cause a state transition at any time specified by the artist who is continuing the previous state transition.
- the computer may execute this state transition by executing the character AI instead of specifying the artist.
- FIG. 21 shows a form of using the character AI.
- Character AI is a program involved in determining the character animation to be generated based on information provided from outside the computer.
- the format of the program does not matter in this embodiment.
- An example of information coming from outside a computer is the situation around the screen acquired by a sensor connected to the computer.
- the computer executes the character AI outside the state transition machine.
- the character AI receives information from the sensor.
- the character AI selects and calls a state transition machine from the state transition machine group recorded in the memory based on the information provided by the sensor.
- the character AI executes the state transition machine based on the information provided by the sensor.
- the character AI interrupts the state transition machine based on the information provided by the sensor.
- the computer executes the character AI to determine whether or not to execute the state transition in the state transition machine.
- the computer further executes the character AI to determine which state in the state transition machine to transition to.
- the computer makes these determinations frame by frame, that is, every transition to target position rotation. In one aspect, the computer makes these decisions before reaching the target position rotation.
- the computer can automatically and in real time specify the target position rotation and the arrival target time assigned to each state of the state transition machine by using the sensor and the character AI.
- the situation around the screen connected to the computer changes after the computer starts running the state transition machine.
- the computer can change the target position rotation and the arrival target time in the state transition machine in real time according to the change.
- FIG. 22 shows an example of using an interactive character in a virtual reality space.
- the experiencer 89a wears a hand tracker 88a and VR (virtual reality) goggles 87a.
- the hand tracker 88a may be either an optical type or a gyro type.
- the hand tracker 88a may be replaced with a device capable of inputting the whole body pose of the experiencer 89a into the computer 87a, for example Kinect TM.
- the sensor 85a is connected to the computer 87a.
- the sensor 85a detects the position and rotation of the VR goggles 86a and the hand tracker 88a.
- the VR goggles 86a project the character.
- the sensor 85a gives the position of the experiencer 89a to the computer 87a.
- the computer 87a executes the character AI based on the position of the experiencer 89a.
- the computer 87a executes a state transition machine, a node graph, an IK, and other programs based on the position of the experiencer 89a.
- the computer 87a executes a state transition machine, a node graph, an IK, and other programs based on the judgment of the character AI.
- the computer 87a outputs the video to the VR goggles 86a.
- a plurality of experiencers may interact with the character via the network 77.
- the experience person 89a and the experience person 89b are shown.
- the network 77 may be a LAN (local area network) or the Internet.
- the computer 87a and the computer 87b may perform a series of calculation processes on a server connected by a network 77.
- the computer 87b may change the coordinates of the virtual target in the virtual space in the virtual space.
- the experiencer 89b inputs to the computer 87b through the hand tracker 88b.
- the computer 87b moves the coffee cup 70 in the virtual space based on the input.
- the computer 87b further adjusts the target position rotation in the state transition machine.
- the computer 87b performs this process based on the set of the coordinates of the character in the virtual space and the changed coordinates of the coffee cup 70 in the virtual space.
- the computer 87b then interpolates the intermediate state described above.
- the computer 87b may allow a server connected by the network 77 to perform a series of calculation processes.
- the computer 87b may further generate an intermediate state including a roundabout waypoint by inputting the position of the coffee cup 70 into the node graph as shown in FIG.
- the character interacts with the existential target, the experiencer 89b, through the coffee cup 70.
- the series of processes can also be performed by a stand-alone computer 87a as shown in FIG.
- the operation of a computer that executes a program is executed by a plurality of devices connected by a network.
- a non-transitory computer readable medium stores the program and supplies the program to the computer. In one aspect, the non-transitory computer-readable medium supplies the program over the network. In one aspect, non-transitory computer-readable media include various types of tangible storage media. Non-temporary computer-readable media include hard disk drives and flash memory and other non-volatile storage media as well as RAM (Random Access Memory) and other volatile storage media.
- a temporary computer readable medium supplies the program to the computer. In one aspect, the temporary computer-readable medium includes electrical, optical, and electromagnetic waves. In one aspect, the temporary computer-readable medium supplies the program to the computer through a wired or wireless communication path such as an electric wire and an optical fiber.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Processing Or Creating Images (AREA)
Abstract
コンピューターが、キャラクターの身体部位の目標位置が時間順に指定された状態遷移機械をメモリーから呼び出す。コンピューターが、ある目標位置から次に続く目標位置に至る間の身体部位の位置の中間状態を補間する。ここでコンピューターが、中間状態における身体部位の位置の時間変化を、その躍度を低減する数理モデルに基づいて算出する。身体部位に対して直接又は間接に接続する関節の運動を、コンピューターが中間状態を元に逆運動学(IK)によって算出する。関節の運動を元にコンピューターがキャラクターアニメーションをレンダリングで生成する。画面がキャラクターアニメーションを表示する。
Description
本発明は仮想的なキャラクターの動作を画面上に表現する方法に関する。
特許文献1の段落[0002]は、キャラクターの動作を、あらかじめ作成しておいた動作データを連続的に再生することによって生成することを開示している。段落[0004]は、与えられた動作データを目標動作として、目標動作に追従するようにキャラクターの関節角加速度を制御し、動力学シミュレーションによって実際の動作を計算することを開示している。段落[0007]は以下のアプローチを開示している。すなわちキャラクターの連続的な動作を生成するため、あらかじめ多くの短い動作データを用意しておく。状況に応じて適切な動作データを順番に再生することによって一連の動作を実現する。それぞれの動作データは、基本的には前後の動作同士の間がうまく繋がるように予め作成されている。
特許文献1の段落[0009]及び[0010]は以下のシミュレーション方法を開示している。すなわち動作合成ステップでは、動作開始時のキャラクターの基準となる部分及び全関節の状態を表すデータと複数の動作データ、いわゆる関節角アニメーションとを滑らかに接続して「連続した一つの動作データ」を生成する。動作制御ステップでは、キャラクターの基準となる部分の並進、回転加速度及び各関節の回転加速度を算出する。動作判定ステップでは、「連続した一つの動作データ」を「目標動作」として動作制御ステップにより自然な動作を実現できるか否かを判定する。自然な動作を実現できない場合に、リアクション動作生成ステップでは、この動作データに代わる適切なリアクション動作の動作データを生成する。動作演算ステップでは、キャラクターの基準となる部分及び全関節の現在状態を表すデータと動作制御ステップにおいて算出されたキャラクターの基準となる部分の並進、回転加速度及び各関節の回転加速度とに基づいて、キャラクターの基準となる部分及び全関節の動作状態を表すデータを算出する。このリアクション動作の動作データを「連続した一つの動作データ」に代えて「目標動作」とする。
特許文献2の段落[0009]は以下を開示している。人間の動作を取り込んだモーションキャプチャデータに基づき、標準とするスケルトン動作を取得する。さらに標準とするスケルトン動作に対して、「運動に関する指標」を設定し、この指標について「軸パラメータ」を設定する。「運動に関する指標」は複数のスケルトンの動きに基づき、あるいは、モーションキャプチャデータを取得する際に併せて測定された動作のパラメータに基づき設定される。「軸パラメータ」は、複数のスケルトン動作における指標値の分布に基づき設定される動きの度合いを示す値である。ユーザが運動に関する指標値の変更を入力すると、「軸パラメータ」に従って、標準のスケルトン動作が変更される。変更後のスケルトン動作は、標準のスケルトン動作からの変更部分が識別して表示される。これにより、動作を測定して得られたスケルトンのアニメーション、すなわち関節角アニメーションを所望の動きに変更する。標準のスケルトンの動きの変化が、人間の動きに基づくものとなり、より適切な動きの変化を実現できる。
清水ありさ,三武裕玄,長谷川晶一,"インタラクティブキャラクタにおける手先の追いかけ動作の再現",[online],2015年9月18日,情報処理学会,エンタテインメントコンピューティングシンポジウム2015論文集,インターネット<URL:http://id.nii.ac.jp/1001/00145300/>
特許文献1では、複数の動作データを滑らかに接続して「連続した一つの動作データ」を作成する。複数の動作データはアーティストが予め作成する。いわゆる関節角アニメーションでは、アーティストがキャラクターの全身の関節角の変化を定義することではじめてキャラクターの各身体部位の位置及び回転が決まる。したがって特許文献1はアーティストの提供する動作データのパターン数に依存している。
特許文献2では、人間の動作を測定して得られたスケルトンのアニメーションを所望の動きに変更する。したがってアーティストはキャラクターの全身の関節角の変化を定義する必要はない。しかしながら所望の動きを有するアニメーションを得る際には、アーティストによる動作データ作成に依存している。
本発明は、仮想的なキャラクターを演じる状態遷移機械を提供する。この状態遷移機械は、インタラクティブなキャラクターを演じつつ、関節角アニメーションにありがちな動作のぎこちなさを回避する。この状態遷移機械は、アーティストによる動作データ作成への依存が少ないものであることが望まれる。
<1> 仮想的なキャラクターの動作を画面上に表現する方法であって、コンピューターが:
前記キャラクターの身体部位の目標位置が時間順に指定された状態遷移機械をメモリーから呼び出し;
ある目標位置から次に続く目標位置に至る間の前記身体部位の位置の中間状態を補間し、ここで前記中間状態における前記身体部位の位置の時間変化を、その躍度を低減する数理モデルに基づいて算出し;
前記身体部位に対して直接又は間接に接続する関節の運動を、前記中間状態を元に逆運動学(IK)によって算出し;
前記関節の前記運動を元にキャラクターアニメーションをレンダリングで生成し、
前記画面が前記キャラクターアニメーションを表示する、
方法。
<2> 前記状態遷移機械では、前記キャラクターの身体部位の目標位置に加えて、前記身体部位の目標回転がこれと組になって時間順に指定されており、以下、この組を目標位置回転という、
前記身体部位の位置の前記中間状態を補間するにあたり、ある目標位置回転から次に続く目標位置回転に至る間の前記身体部位の位置及び前記身体部位の回転の組の中間状態を補間し、
前記関節の前記運動を算出するにあたり、前記組の前記中間状態を元にする、
<1>に記載の方法。
<3> 前記逆運動学(IK)によって算出した前記関節の前記運動に対してPD(Proportional-Differential)制御による修正をさらに施し、
前記修正が施された前記関節の前記運動を元にキャラクターアニメーションを前記レンダリングで生成する、
<2>に記載の方法。
<4> 前記身体部位は前記キャラクターの前腕の先端又はその先に位置し、
前記数理モデルは躍度最小軌道である、
<2>に記載の方法。
<5> 前記状態遷移機械はある1つの目標位置回転から次に続く2つ以上の目標位置回転を有しており、前記コンピューターは、前記2つ以上の目標位置回転のうちの一つを選択した後に、さらに前記ある1つの目標位置回転から選択された目標位置回転に至る間の前記中間状態を補間する。
<2>に記載の方法。
<6> 前記状態遷移機械は第1の目標位置回転と、これに続く第2の目標位置回転と、その次に続く第3の目標位置回転とを有しており、
前記コンピューターは、前記第1の目標位置回転と、前記第2の目標位置回転との間の中間状態を補間し、さらに前記中間状態中の前記身体部位の任意の位置及び回転と前記第3の目標位置回転との間の中間状態を補間する、
<2>に記載の方法。
<7> 状態遷移と同時に遷移先の状態が持つ目標位置回転へ身体部位を誘導する要素動作が開始し、
要素動作の完了を待たずに次の状態遷移が可能であることから、未完了の要素動作の和によって中間状態が導かれる、
<6>に記載の方法。
<8> 前記コンピューターは、前記中間状態を補間するにあたり予め設定された誘導点をさらに使用することで、前記身体部位が前記誘導点に接近した後に前記誘導点から遠ざかるような大回りをするよう、前記身体部位の位置の時間変化を算出する、
<2>に記載の方法。
<9> 前記コンピューターが事前に、前記時間順に指定された目標位置回転を受け取り、前記状態遷移機械を生成して、前記メモリーに記録する、又はすでに生成された前記状態遷移機械を前記メモリーに記録する、
<2>に記載の方法。
<10> 前記コンピューターはさらに、前記キャラクターの仮想空間における座標と仮想空間内の仮想のターゲットの仮想空間における座標との組に基づき、前記呼び出した状態遷移機械中の前記次に続く目標位置回転に調整を施した後、前記中間状態を補間する、
<2>に記載の方法。
<11> 前記コンピューターはさらに、前記キャラクターの仮想空間における座標と前記キャラクターがインタラクションすべき実存のターゲットの仮想空間における座標との組に基づき、前記呼び出した状態遷移機械中の前記次に続く目標位置回転に調整を施した後、前記中間状態を補間する、
<2>に記載の方法。
<12> 前記コンピューターは、座標変換の種類と適用順序を定義したノードグラフをさらにメモリーから呼び出し、
さらにコンピューターは、前記ノードグラフに従って座標変換の計算を行うことで、前記実存のターゲットの位置及び回転に基づき、前記キャラクターの前記身体部位の前記目標位置回転の調整を自動で施し、
前記調整された前記目標位置回転に基づき前記中間状態を補間する、
<11>に記載の方法。
<13> 前記画面はヴァーチャルリアリティ用のヘッドマウントディスプレイであり、
前記ターゲットの前記座標は、前記仮想空間中に設定されるべき、前記ヘッドマウントディスプレイの装着者の視点の座標である、
<11>に記載の方法。
<14> 前記画面はサイネージであり、
前記ターゲットの前記座標は、前記サイネージの周囲の実存の人物と前記サイネージとの位置関係を反映した前記仮想空間中の前記人物の座標であり、
前記人物の位置は前記サイネージの周囲に設置されたセンサーが検知したものである、
<9>に記載の方法。
<15> 前記コンピューターはさらに、前記センサーから前記人物の位置の信号を受け取り、前記信号から前記ターゲットの前記座標を算出する、
<14>に記載の方法。
<16> 前記センサーはカメラを含み、前記信号は前記人物の画像を含み、
前記コンピューターは、前記人物の画像から前記人物の身長を算出するとともに、前記目標位置回転の調整結果にこれを反映させる。
<15>に記載の方法。
<17> 仮想的なキャラクターの動作を画面上に表現するためのコンピュータープログラムであって、
前記キャラクターの身体部位の目標位置が時間順に指定された状態遷移機械をメモリーから呼び出し;
ある目標位置から次に続く目標位置に至る間の前記身体部位の位置の中間状態を補間し、ここで前記中間状態における前記身体部位の位置の時間変化を、その躍度を低減する数理モデルに基づいて算出し;
前記身体部位に対して直接又は間接に接続する関節の運動を、前記中間状態を元に逆運動学(IK)によって算出し、
前記関節の前記運動を元にキャラクターアニメーションをレンダリングで生成する、
コンピュータープログラム。
<18> 仮想的なキャラクターの動作を表現する画面と、前記動作を演算するコンピューターとを備えるシステムであって、前記コンピューターは、
前記キャラクターの身体部位の目標位置が時間順に指定された状態遷移機械をメモリーから呼び出し;
ある目標位置から次に続く目標位置に至る間の前記身体部位の位置の中間状態を補間し、ここで前記中間状態における前記身体部位の位置の時間変化を、その躍度を低減する数理モデルに基づいて算出し;
前記身体部位に対して直接又は間接に接続する関節の運動を、前記中間状態を元に逆運動学(IK)によって算出し;
前記関節の前記運動を元にキャラクターアニメーションをレンダリングで生成し、
前記画面は前記キャラクターアニメーションを表示する、
システム。
<19> 仮想的なキャラクターの動作を画面上に表現する方法であって、コンピューターが:
前記キャラクターの身体部位の目標回転が時間順に指定された状態遷移機械をメモリーから呼び出し;
ある目標位置から次に続く目標回転に至る間の前記身体部位の回転の中間状態を補間し、ここで前記中間状態における前記身体部位の回転の時間変化を、その躍度を低減する数理モデルに基づいて算出し;
前記身体部位に対して直接又は間接に接続する関節の運動を、前記中間状態を元に逆運動学(IK)によって算出し;
前記関節の前記運動を元にキャラクターアニメーションをレンダリングで生成し、
前記画面が前記キャラクターアニメーションを表示する、
方法。
前記キャラクターの身体部位の目標位置が時間順に指定された状態遷移機械をメモリーから呼び出し;
ある目標位置から次に続く目標位置に至る間の前記身体部位の位置の中間状態を補間し、ここで前記中間状態における前記身体部位の位置の時間変化を、その躍度を低減する数理モデルに基づいて算出し;
前記身体部位に対して直接又は間接に接続する関節の運動を、前記中間状態を元に逆運動学(IK)によって算出し;
前記関節の前記運動を元にキャラクターアニメーションをレンダリングで生成し、
前記画面が前記キャラクターアニメーションを表示する、
方法。
<2> 前記状態遷移機械では、前記キャラクターの身体部位の目標位置に加えて、前記身体部位の目標回転がこれと組になって時間順に指定されており、以下、この組を目標位置回転という、
前記身体部位の位置の前記中間状態を補間するにあたり、ある目標位置回転から次に続く目標位置回転に至る間の前記身体部位の位置及び前記身体部位の回転の組の中間状態を補間し、
前記関節の前記運動を算出するにあたり、前記組の前記中間状態を元にする、
<1>に記載の方法。
<3> 前記逆運動学(IK)によって算出した前記関節の前記運動に対してPD(Proportional-Differential)制御による修正をさらに施し、
前記修正が施された前記関節の前記運動を元にキャラクターアニメーションを前記レンダリングで生成する、
<2>に記載の方法。
<4> 前記身体部位は前記キャラクターの前腕の先端又はその先に位置し、
前記数理モデルは躍度最小軌道である、
<2>に記載の方法。
<5> 前記状態遷移機械はある1つの目標位置回転から次に続く2つ以上の目標位置回転を有しており、前記コンピューターは、前記2つ以上の目標位置回転のうちの一つを選択した後に、さらに前記ある1つの目標位置回転から選択された目標位置回転に至る間の前記中間状態を補間する。
<2>に記載の方法。
<6> 前記状態遷移機械は第1の目標位置回転と、これに続く第2の目標位置回転と、その次に続く第3の目標位置回転とを有しており、
前記コンピューターは、前記第1の目標位置回転と、前記第2の目標位置回転との間の中間状態を補間し、さらに前記中間状態中の前記身体部位の任意の位置及び回転と前記第3の目標位置回転との間の中間状態を補間する、
<2>に記載の方法。
<7> 状態遷移と同時に遷移先の状態が持つ目標位置回転へ身体部位を誘導する要素動作が開始し、
要素動作の完了を待たずに次の状態遷移が可能であることから、未完了の要素動作の和によって中間状態が導かれる、
<6>に記載の方法。
<8> 前記コンピューターは、前記中間状態を補間するにあたり予め設定された誘導点をさらに使用することで、前記身体部位が前記誘導点に接近した後に前記誘導点から遠ざかるような大回りをするよう、前記身体部位の位置の時間変化を算出する、
<2>に記載の方法。
<9> 前記コンピューターが事前に、前記時間順に指定された目標位置回転を受け取り、前記状態遷移機械を生成して、前記メモリーに記録する、又はすでに生成された前記状態遷移機械を前記メモリーに記録する、
<2>に記載の方法。
<10> 前記コンピューターはさらに、前記キャラクターの仮想空間における座標と仮想空間内の仮想のターゲットの仮想空間における座標との組に基づき、前記呼び出した状態遷移機械中の前記次に続く目標位置回転に調整を施した後、前記中間状態を補間する、
<2>に記載の方法。
<11> 前記コンピューターはさらに、前記キャラクターの仮想空間における座標と前記キャラクターがインタラクションすべき実存のターゲットの仮想空間における座標との組に基づき、前記呼び出した状態遷移機械中の前記次に続く目標位置回転に調整を施した後、前記中間状態を補間する、
<2>に記載の方法。
<12> 前記コンピューターは、座標変換の種類と適用順序を定義したノードグラフをさらにメモリーから呼び出し、
さらにコンピューターは、前記ノードグラフに従って座標変換の計算を行うことで、前記実存のターゲットの位置及び回転に基づき、前記キャラクターの前記身体部位の前記目標位置回転の調整を自動で施し、
前記調整された前記目標位置回転に基づき前記中間状態を補間する、
<11>に記載の方法。
<13> 前記画面はヴァーチャルリアリティ用のヘッドマウントディスプレイであり、
前記ターゲットの前記座標は、前記仮想空間中に設定されるべき、前記ヘッドマウントディスプレイの装着者の視点の座標である、
<11>に記載の方法。
<14> 前記画面はサイネージであり、
前記ターゲットの前記座標は、前記サイネージの周囲の実存の人物と前記サイネージとの位置関係を反映した前記仮想空間中の前記人物の座標であり、
前記人物の位置は前記サイネージの周囲に設置されたセンサーが検知したものである、
<9>に記載の方法。
<15> 前記コンピューターはさらに、前記センサーから前記人物の位置の信号を受け取り、前記信号から前記ターゲットの前記座標を算出する、
<14>に記載の方法。
<16> 前記センサーはカメラを含み、前記信号は前記人物の画像を含み、
前記コンピューターは、前記人物の画像から前記人物の身長を算出するとともに、前記目標位置回転の調整結果にこれを反映させる。
<15>に記載の方法。
<17> 仮想的なキャラクターの動作を画面上に表現するためのコンピュータープログラムであって、
前記キャラクターの身体部位の目標位置が時間順に指定された状態遷移機械をメモリーから呼び出し;
ある目標位置から次に続く目標位置に至る間の前記身体部位の位置の中間状態を補間し、ここで前記中間状態における前記身体部位の位置の時間変化を、その躍度を低減する数理モデルに基づいて算出し;
前記身体部位に対して直接又は間接に接続する関節の運動を、前記中間状態を元に逆運動学(IK)によって算出し、
前記関節の前記運動を元にキャラクターアニメーションをレンダリングで生成する、
コンピュータープログラム。
<18> 仮想的なキャラクターの動作を表現する画面と、前記動作を演算するコンピューターとを備えるシステムであって、前記コンピューターは、
前記キャラクターの身体部位の目標位置が時間順に指定された状態遷移機械をメモリーから呼び出し;
ある目標位置から次に続く目標位置に至る間の前記身体部位の位置の中間状態を補間し、ここで前記中間状態における前記身体部位の位置の時間変化を、その躍度を低減する数理モデルに基づいて算出し;
前記身体部位に対して直接又は間接に接続する関節の運動を、前記中間状態を元に逆運動学(IK)によって算出し;
前記関節の前記運動を元にキャラクターアニメーションをレンダリングで生成し、
前記画面は前記キャラクターアニメーションを表示する、
システム。
<19> 仮想的なキャラクターの動作を画面上に表現する方法であって、コンピューターが:
前記キャラクターの身体部位の目標回転が時間順に指定された状態遷移機械をメモリーから呼び出し;
ある目標位置から次に続く目標回転に至る間の前記身体部位の回転の中間状態を補間し、ここで前記中間状態における前記身体部位の回転の時間変化を、その躍度を低減する数理モデルに基づいて算出し;
前記身体部位に対して直接又は間接に接続する関節の運動を、前記中間状態を元に逆運動学(IK)によって算出し;
前記関節の前記運動を元にキャラクターアニメーションをレンダリングで生成し、
前記画面が前記キャラクターアニメーションを表示する、
方法。
本発明によりは、仮想的なキャラクターを演じる状態遷移機械を提供できる。この状態遷移機械は、インタラクティブなキャラクターを演じつつ、関節角アニメーションにありがちな動作のぎこちなさを回避する。この状態遷移機械は、アーティストによる動作データ作成への依存が少ない。
<1.キャラクターと状態遷移機械>
図1は画面21とコンピューター22のブロック図である。本実施形態では画面21上に仮想的なキャラクター20の動作を表現する。コンピューター22が状態遷移機械と、逆運動学計算と、運動制御を用いてキャラクターアニメーションを生成する。この状態遷移機械はコンピュータープログラムの一種である。コンピューター22はキャラクターアニメーションを生成する。
図2はキャラクター20のスケルトン24を表す。図中には右腕と左腕のスケルトンが表されている。右腕のスケルトンは上腕28R、前腕29R及び肘の関節23Rを有する。左腕のスケルトンも同様に上腕、前腕及び肘の関節を有する。スケルトン24は胴や両足や頭も有するが、これらは図中での表現が省略されている。
図2はさらにキャラクター20の右手のハンドル25R及び左手のハンドル25Lを表す。これらのハンドルはキャラクター20の身体部位の目標位置回転(target-position-and-rotation)を特定するための仮想的なインターフェースである。本実施形態において「身体部位」とはキャラクター20の身体を構成するいずれかのパーツ、例えば右手や左手や頭である。本実施形態において身体部位の「目標位置回転」は、身体部位の目標位置と身体部位の目標回転との組を表す。身体部位の回転は身体部位の姿勢又は向きと解釈してもよい。身体部位の目標回転は身体部位の目標姿勢と解釈してもよい。
図2においてハンドル25Rは右手の位置26Rと右手の回転27Rを特定する。ハンドル25Rは前腕29Rの先端に位置する。ハンドル25Rはその先に位置していてもよい。同様にハンドル25Lは左手の位置26Lと左手の回転27Lを特定する。ハンドル25Lは左腕の前腕の先端又はその先に位置する。
図3は状態遷移機械30を表す。状態遷移機械30中ではキャラクター20の身体部位の目標位置回転(target-position-and-rotation)が時間順に指定されている。図中ではハンドル25Rがキャラクター20の右手の目標位置回転を特定している。状態遷移機械30はハンドル25Rで特定されるキャラクター20の右手の目標位置回転の遷移の情報を有する。
図3において状態遷移機械30は目標回転を用いなくともよい。状態遷移機械30は右手の位置26Rだけを指定して、右手の回転27Rは指定せず自由なままとしてもよく、固定したままとしてもよい。状態遷移機械30は頭の回転だけ指定して、頭の位置は自由なままとしてもよく、固定したままとしてもよい。図3に示す態様とは異なる態様において、頭の目標位置回転の指定を有する状態遷移機械において、頭の回転だけ指定して、頭の位置は自由なままとしてもよく、固定したままとしてもよい。
また、どの身体部位の目標位置回転を指定するかは状態ごとに異なっていてよい。さらに、一つの状態が複数の身体部位の目標位置回転の指定を含んでいてもよい。
図3において、ポーズP31は開始の状態である。ポーズP31ではキャラクター20が右手を下に向けて下ろしている。ポーズP31からポーズP32又はポーズP33に状態が遷移する。ポーズP32ではキャラクター20が右手をやや右方向に向けている。ポーズP32からポーズP33に状態が遷移する。ポーズP33ではキャラクター20が右手を上に向けて上げている。ポーズP33からポーズP34に状態が遷移する。ポーズP34ではキャラクター20が右手を右方向に向けている。ポーズP34からポーズP35又はポーズP36に状態が遷移する。ポーズP35ではキャラクター20が右手を頭や胴に近づけている。ポーズP35からポーズP34又はポーズP36に状態が遷移する。ポーズP36ではポーズP31と同様にキャラクター20が右手を下に向けて下ろしている。ポーズP36は終了の状態である。
図3において状態遷移機械はある1つの目標位置回転から次に続く2つ以上の目標位置回転を有している。すなわちポーズP31に対してポーズP32が続くこともあるし、ポーズP33が続くこともある。コンピューターはこれらの2つ以上の目標位置回転のうちの一つを選択する。すなわちポーズP32とポーズP33とのうちのいずれかを選択する。コンピューターはさらに、ある1つの目標位置回転から、選択された目標位置回転に至る間の中間状態を補間する。すなわちポーズP32とポーズP34との中間状態か、ポーズP33とポーズP34との中間状態かいずれか補間する。状態遷移機械は分岐を持たなくてもよい。キャラクターは各ポーズにおいて一時停止してもよくしなくてもよい。すなわちポーズは単なる通過点としてすぐに次の動作を開始してもよい。後に図18から図20を用いて説明するようにキャラクターがあるポーズから次のポーズに移る間の中間状態を有しているときに、さらにキャラクターが他の次のポーズを有するように中間状態とそのポーズと間の中間状態を補間してもよい。
なお図3において状態遷移機械30はスケルトンの全身関節角のアニメーションの情報を実質的に有していないことに留意する。図中に細い線で表されているキャラクター20の頭、胴、及び四肢は、説明の便宜に過ぎない。ここでいう「情報を実質的に有していない」とは、後にレンダリングを受ける関節の運動のデータの生成に、全身関節角のアニメーションのストックを必須としていないことをいう。
また図3において状態遷移機械30は右手を含む身体部位の位置及び身体部位の回転の組の中間状態の情報を実質的に有していない。ここでいう中間状態とは、ポーズに対応する目標位置回転から次に続くポーズに対応する目標位置回転に至る間の状態をいう。また、ここでいう「情報を実質的に有していない」とは、後にレンダリングを受ける関節の運動のデータをコンピューターが生成する際に、全身関節角のアニメーションのストックを必須としないことをいう。コンピューターは後に述べるプロセスで中間状態を補間する。
<2.状態遷移機械からのアニメーションの生成>
図4はキャラクターアニメーションを生成する工程を示す。ステップS40にて工程を開始すると、まずステップS41にてコンピューターが上述の状態遷移機械をメモリーから呼び出す。メモリーは予め1種又は2種以上の状態遷移機械を記憶している。メモリーは揮発性メモリーでもよく、非揮発性メモリーでもよい。非揮発性メモリーはフラッシュメモリーでもよく磁気ディスクでもよい。メモリーはネットワークを介してコンピューターと接続されていてもよく、コンピューター内に組み込まれていてもよい。
図4において、ステップS41にてコンピューターがメモリーから状態遷移機械を呼び出した後、状態遷移機械が終了するまで、コンピューターは状態遷移機械を継続的に実行する。すなわち、S42からS48の工程を繰り返し実行し、S47において状態の遷移を行う。ここでコンピューターはキャラクターAI(character artificial intelligence)をさらに実行してもよく、キャラクターAIの指示によって状態遷移の判断を行ってもよい。キャラクターAIの詳細は後述する。
図4に示すステップS42にて身体部位の位置及び身体部位の回転の組の中間状態を補間する。ここでいう中間状態とは状態遷移機械中のある目標位置回転から次に続く目標位置回転に至る間の状態をいう。
図4に示すステップS43では図2に示すスケルトン24の全身又は右腕の関節の運動を逆運動学(IK, inverse kinematics)を用いて算出する。ここでいう関節は、中間状態を算出した身体部位に対して直接又は間接に接続する関節である。関節の運動は中間状態における身体部位の位置の時間変化、又は位置及び回転の時間変化から算出する。一態様において、関節に接続する一方の身体部位、例えば「胴体」にはその位置及び回転の時間変化が生じない。これに対して関節を挟んで反対側にある他方の身体部位、例えば「手」にはその位置及び回転の時間変化が生じる。他の態様において互いに関節を介して接続する一方及び他方の身体部位のいずれにも、その位置及び回転の時間変化が生じる。一態様において、中間状態の時間内において、これらの関節に対してはその運動が定義されていない。すなわちIKを適用する前において関節の運動は特定されておらず、IKを適用した後に関節の運動が特定される。
以上により一種の関節角アニメーションが生成される。各中間状態における関節角アニメーションと上述の状態遷移機械を組み合わせれば一連の関節角アニメーションが生成される。さらにステップS44では関節の運動に対してPD(Proportional-Differential)制御による修正を施してもよい。ステップS44は省略してもよい。
図4に示すステップS45では、修正が施された関節の運動、すなわちスケルトンの全身関節角のアニメーションを元にキャラクターアニメーションをレンダリングで生成する。ステップS46では映像信号を出力することで、画面にキャラクターアニメーションを表示する。
ステップS47では状態遷移機械の状態遷移を行うかどうか、および遷移先が複数に分岐する場合はどの状態に遷移するかを判断する。ステップS48で状態遷移機械が終了状態に達したかどうかを判断し、終了状態でなければステップS42に戻って処理を繰り返す。終了状態に到達すると、ステップS49で工程を終了する。
<3.中間状態の補間>
図5は位置の中間状態をグラフで表す。縦軸xは変位量である。横軸tは時間である。一点鎖線に示す曲線50は最も簡単な身体部位の位置の時間変化である等速運動を表す。曲線50では、ある目標位置回転から次に続く目標位置回転まで身体部位の位置がそれぞれ等速で変化する。動き出しから停止まで偏りなく等速で位置が変化することは、現実の人間の身体部位の運動には見られない。そこでさらに次のように工夫する。
図5の曲線51に示すように中間状態における身体部位の位置の時間変化を、その躍度を低減する数理モデルに基づいて算出する。かかる数理モデルの例は躍度最小軌道である。三次元位置(Px,Py,Pz)に対して経過時間Tで到達するような躍度最小軌道を数式に表すと例えば以下の通り表される。
躍度最小軌道を適用可能な位置変化は直線経路に限定されない。位置変化は曲線経路でもよい。図6は目標位置の切り替わりの利用を表す。右手が位置55aから位置55bに向かって直線経路56b上を移動する。位置55bで停止した右手は次に位置55cに向かって直線経路56b上を移動する。
図6に示す手法では、動作の経過時間とは関係なく、動作中の任意の時刻で状態遷移機械中の目標位置回転を切り替える。すなわち右手が直線経路56aで表される中間状態にあるときに、右手は、位置55cと所定の目標回転で表される次の目標位置回転に向かう。言い換えれば直線経路56aを進行する動作の持続中に、曲線経路57を進行する動作が開始する。この切り替わり後、しばらくの間、右手は両者の混ざった動作をする。
図6に示す躍度最小軌道の利用法では、上記のような「混ざった動作」においても右手の動作は滑らかである。すなわち右手の経由する曲線経路57はとても滑らかであり、これを進行する右手の動作も滑らかである。すなわち中間状態において任意のタイミングで、目標位置回転を切り替えても右手が滑らかに動作する。このような任意のタイミングでの滑らかな切り変わりは例えば図9に表されるような、動作自体を連結した状態遷移機械では実現しにくい。
図6に示すように右手が位置55bに到達する前に、目標位置を位置55bから位置55cに変更する。すでに右手の速度は上昇しているので、右手の進路は少しずつ変化する。右手は曲線経路57を経由して位置55aから位置55cに移動する。すなわち直線経路56a及び直線経路56bの組は曲線経路57に変更される。
図7は図6に示す曲線経路上での速度dx/dtの時間変化を表すグラフである。破線は直線経路上での時間変化を参考として重ね合わせたものである。
図6において、位置55a及び55cは曲線経路57に重なる。位置55bは曲線経路57と重ならない。見方を変えれば位置55bは、位置55a及び55cの中間状態を補間するにあたり誘導点として働く。このような誘導点を設定することで、身体部位すなわち右手が誘導点に接近したのち、誘導点から遠ざかるように大回りする。
中間状態における身体部位の位置の時間変化とは別に、中間状態における身体部位の回転の時間変化も同様に算出する。中間状態における身体部位の目標回転の時間変化は躍度最小軌道を身体部位の回転すなわち身体部位の回転角に適用したものによって算出する。回転角を例えばクォータニオンで表現する。この時、回転角Aと回転角Bとの中間の回転角は例えば球面線形補間法によって算出できる。球面線形補間では補間比率を0~1まで設定できる。補間比率が0のとき球面線形補間の出力は回転角Aに一致する。補間比率が1のとき球面線形補間の出力は回転角Bに一致する。中間の回転角の算出のために、球面線形補間をそのまま用いると角速度が一定となる。このように身体部位が角速度一定で回転運動することは、身体部位の位置に関する、身体部位の等速の運動と同じく現実の人間には見られない。そこで本実施形態では、球面線形補間における補間比率を、例えば躍度最小軌道の式に従って変化させる。ここでクォータニオンq1からクォータニオンq2への補間比率rの球面線形補間をSLERP(q1, q2, r)と表す。この時、経過時間Tでq1からq2へ変化するようなq(t)は以下の通り表される。
本実施形態では、誘導点の目標位置回転をアーティストにより作成された状態遷移機械の状態と対応させる。この点は非特許文献1に開示されていない。
<4.PD制御による関節の運動の修正>
図8はPD制御の模式図である、右腕の上腕28Rと前腕29Rとがヴァーチャルなバネkとダンパーcで接続されている。バネkとダンパーcは上腕二頭筋を模しているが、必ずしもその設置位置は限定されない。スケルトンの種類ごとに適切なバネkとダンパーcを設定できる。
バネkとダンパーcの値を状態遷移機械の状態と対応させ、状態遷移に伴ってバネとダンパーの値が変化するようにしてもよい。PD制御によって運動の修正を行う場合、目標位置回転が同じであっても、バネとダンパーの値が小さいと脱力したような動作に、バネとダンパーの値が大きいと力を込めた動作に修正される。人間が一連の動作を行う際に力の込め具合が常に一定ということはなく、動作の状態に応じて力の込め具合を変化させている。アーティストは、状態遷移機械の状態ごとにバネとダンパーの値を対応付けることにより、力の込め具合が状態ごとに変化するような動作を作成できる。
図8に示すように、上腕28Rの末端と前腕29Rの末端とが肘の関節23Rで接続されている。前腕29Rは関節23Rを軸にして回転する。バネkはP(Proportional)制御を抽象化している。ダンパーcはD(Differential)制御を抽象化している。なおPD制御にさらにI(Integral)制御を付加してもよい。図中では、肘の関節23RのPD制御を説明した。PD制御はスケルトン24の全身の関節に対して実施してもよい。
<5.状態遷移機械の対比>
図9は参考例としてキャラクターのスケルトンの動作の集合からなる状態遷移機械90の使用を示す。状態遷移機械90は動作M91から動作M95を有する。これらの動作を滑らかに接続することで連続した一つの動作データをコンピューターが作成する。ただし、動作M91から動作M95の各動作はアーティストが予め作成する。アーティストの仕事の量は必要な個別の動作の数に応じて増える。ここでアーティストとは、何人かの求めに応じてキャラクターのスケルトンの動作の集合を作成する人物である。
図9に示す状態遷移機械90は分岐を含む。例えば動作M91の次の動作は動作M92か動作M93とすることができる。動作M92の次の動作は動作M94か動作M95とすることができる。動作M91から動作M95において、動作が継続している間は、キャラクターの動作を切り替えることができない。ある動作の持続時間が終わり、次の動作を開始する時にキャラクターの動作を切り替えることができる。コンピューターはディレクター又はその他の人若しくは物がコンピューターに入力した内容に応じて切り替えを行う。ここでディレクターとは、アーティストの作成した動作を利用する人物である。ディレクターとアーティストが同一人物であってもよい。
図9ではアーティスト以外のディレクター又はコンピューターが動作M92を経由して動作M94に至る経路を選択している。コンピューターは動作M93や動作M95を記憶しているが、コンピューターはこれらを使用しない。また動作M91、動作M92及び動作M94のいずれも継続時間は固定である。
図10はキャラクター20の身体部位とその目標位置回転の組を時間順に指定するためのインターフェース59を表している。アーティストがインターフェース59を使用して状態遷移機械60を作る。図の表すものはインターフェース59を備えるエディターとも言える。インターフェース59はグラフィカルユーザーインターフェース(GUI)でもよい。状態遷移機械60は、図3に示した状態遷移機械30と同様にハンドル25Rの付された身体部位すなわち右手の位置及び回転の情報しか有していない。
図10においてアーティストはインターフェース59において状態遷移機械の状態すなわちポーズ28を選択し、ハンドル25Rを動かして身体部位ここでは右手の目標位置回転をポーズごとに設定する。また、ポーズ間の遷移29を設定する。ポーズは時間順序の情報を含む。アーティストの作成した状態遷移機械60に基づきコンピューターが仮想空間上でキャラクター20を動かす。すなわちコンピューターが動作M61からM68までを自動生成することでこれらの中間状態を補間する。
図10においてインターフェース59で状態遷移機械60の入力を受け付けるコンピューターと状態遷移機械60の中間状態を補間するコンピューターとは別個のものでもよい。この場合前者のコンピューターから後者のコンピューターに状態遷移機械60を送る。また一つのコンピューターがインターフェース59で状態遷移機械60の入力を受け付け、さらに状態遷移機械60の中間状態を補間してもよい。この場合、コンピューターが状態遷移機械60を自身のメモリーに保存する。
図10に示す状態遷移機械60を用いる際、アーティストに求められる役割は、キャラクター20のスケルトンとレンダリング用のデータとを作成することに加えて、スケルトンを動かすための状態遷移機械60それ自体を作成することである。アーティストはさらに、状態遷移機械60中の各状態に割り当てられる目標位置回転と、各目標位置回転に割り当てられる到達目標時刻とを指定しなければならない。さらにアーティストは必要に応じてキャラクターAI及びノードグラフを作成しなければならない。
図10に示す方法では、実質的な意味においてアーティストは、キャラクターのスケルトンと、キャラクターのレンダリング用のデータと、キャラクターの状態遷移機械との全てを作成し、さらに目標位置回転と到達目標時間とを指定しなければならない。アーティストの作成した状態遷移機械を利用して、アーティストではない別の主体、例えばディレクターが、状態遷移機械に対して目標位置回転と到達目標時刻とを追加的に指定する方法は実施できない。ただし上記作業に関わるアーティストは複数人いてもよい。アーティストが上記の全て提供することによって、図9に示す方法における動作データを代替できる。
図9に示す従来のキーフレームでは全身の各関節の角度を指定していたところ、図10に示す方法では手先や頭など動作を直接指定したい身体部位の目標位置回転のみを指定すればよい点で優れる。また対象の位置に依存して変化する動作を定義する際、図9に示す方法では異なる対象の位置を想定した多数の動作を作成してブレンドする必要があったところ、図10に示す方法では一種類のノードグラフと状態遷移機械を作成するだけで対象の位置に追従した異なる動作が生成される点で優れる。
図10に示す状態遷移機械60は分岐を含む。例えば最初のポーズにおいて次の動作は動作M61か動作M63とすることができる。すなわち動作M62と動作M63とは切り替え可能である。動作M63の後のポーズにおいて次の動作は動作M64か動作M68とすることができる。動作M64の後のポーズにおいて次の動作は動作M65が動作M67とすることができる。また、先に図6及び図7を用いて説明したように、本実施例では前の動作が完了する前に次の動作に遷移できる。すなわち、動作の切り替え時刻は任意である。例えば、動作M64か動作M68かの切り替えは、動作M63が終了する前に実行してもよいし、動作M63の終了と同時に実行してもよいし、動作M63が終了してから時間が経過したのちに実行してもよい。この時の動作の補間の方法は後に図18~図20を用いて詳述する。
コンピューターはアーティストやディレクターがコンピューターに入力した内容に応じて切り替えを行う。コンピューターはキャラクターAIを実行することでこの切り替えを行ってもよい。
図10ではアーティストが動作M64を経由して動作M67に至る経路を選択している。コンピューターはこれらの経路上の動作を中間状態の補間によって生成する。コンピューターは動作M61、動作M62及び動作M68を経由する経路を使用しない。コンピューターが、中間状態の補間によってこれらの動作を生成することはない。
<6.インターフェースの使用>
図11はインターフェース59の使用図である。インターフェース59の表す仮想空間内には、キャラクター20に加えて、キャラクター20の前方にあるテーブルと、テーブルに置かれたコーヒーカップ70とが存在する。コーヒーカップ70の取っ手はキャラクター20よりも遠い側を向いている。
図11において、アーティストはキャラクター20がコーヒーカップ70の取っ手に手を差し伸べる動作を作成する。アーティストはキャラクター20の右手の目標位置回転をハンドル25Rで直接に指定する。
図11においてアーティストはコーヒーカップ70の取っ手にある目標点71上に最終の目標位置回転を設定する。状態遷移機械が開始点及び目標点71の目標位置回転しか有しない。この場合は、キャラクター20がコーヒーカップ70に向かって真っすぐ右手を差し出すアニメーションが生じる。キャラクター20の右手はコーヒーカップ70の胴部に当たる。このようなキャラクター20の動作は現実感に乏しい。
そこで図11において、アーティストはさらに経由点72上の目標位置回転を追加的に設定する。状態遷移機械が経由点72上の目標位置回転をさらに有する。この場合は、キャラクター20がコーヒーカップ70の胴体を迂回して右手を差し出すアニメーションが生じる。キャラクター20の右手はコーヒーカップ70の胴部に当たらない。このようなキャラクター20の動作は現実感がある。
先に述べた通り、本実施形態ではアーティストによる動作データ作成への依存が軽減されている。
図11においてインターフェース59は、キャラクター20の動作の全体像を把握しやすくする。アーティストは制作作業を行いやすい。アーティストは必要最小限のキーフレームすなわち身体部位の目標位置回転を作成するだけで、対象すなわちコーヒーカップ70の取っ手の位置に応じた、キャラクター20の動作を作成できる。
<7.他の入力に基づく目標位置回転の自動的な修正>
先に述べた通り、図11では、アーティストが右手の目標位置回転をハンドル25Rで直接指定することで状態遷移機械を作成する。作成された状態遷移機械を実行するコンピューターは、ある目標位置回転から次の目標位置回転の間の身体部位の中間状態を補間する。コンピューターはアーティストが指定した目標位置回転は変化させない。
図12及び他の図面を用いて本実施例を説明する。本実施例ではコンピューターが目標位置回転を他の入力に基づき自動的に調整する。他の入力は、何人かがコンピューターに対して事前に入力したものではない。他の入力は、コンピューターが状態遷移機械を実行している最中にコンピューターに入力されるものを含む。本実施例ではコンピューターは調整された目標位置回転に基づき中間状態を補間する。目標位置回転を調整するコンピューターと中間状態を補間するコンピューターとは別個のものでもよい。同じコンピューターがこれらの処理を担ってもよい。
本実施例は図14以降の図面を用いて説明する。まずは図12及び図13を参照しながら、スケルトンの動作すなわち関節角アニメーションの集合からなる状態遷移機械を例に用いて、本実施例でどのような調整結果を得たいのかを説明する。
図12は画面21とコンピューター22の使用図である。コンピューター22はセンサー75と接続する。センサー75は画面21の周囲に設置される。画面21はサイネージとして用いられる。
図12において、センサー75は画面21の正面方向の右側の遠くにいる子供79の位置を検知する。ここで右側とはキャラクター20から見て右側である。以下同様とする。子供79は実存のターゲットである。コンピューター22はセンサー75から子供79の位置の信号を受け取る。
図12においてコンピューター22は、キャラクター20が触れ合いをもとめるべきターゲット、すなわちインタラクションすべきターゲットとして右側の遠くにいる子供79を選択する。以下このようなターゲットを「相手」という場合がある。コンピューター22はセンサー75のもたらす情報に基づき子供79の方位と距離を記録する。
図12においてコンピューター22はキャラクター20のスケルトンの動作の集合からなるモーショングラフ80を記憶している。スケルトンの動作は大きく分けて「見回す」、「手を振る」及び「おじぎをする」の3種が含まれる。モーショングラフ80もまた一種の状態遷移機械であり、またコンピュータープログラムである。コンピューター22はモーショングラフ80にしたがいキャラクター20のアニメーションを画面21に送る。画面21はサイネージ型のインタラクティブロボットとしてキャラクター20を表示する。
図12においてコンピューター22は、モーショングラフ80中の「手を振る」動作を調整することで、これを「右側の遠くにいる子供に」対して「手を振る」動作に変更する。
(A)関節角アニメーションをベースとした方法
図13は参考例として関節角アニメーションを土台に「手を振る」動作を自動的に調整する方法を示している。インタラクティブな動作のパターンが多種多様であることに備えて、アーティストが予め数多くの「手を振る」動作の群を作成する必要がある。コンピューターが予めこれらの関節角アニメーションを記憶する。
図13においてコンピューターはモーショングラフ80にしたがいキャラクターの行動を決定する。キャラクターの動作を「見回す」動作から「手を振る」動作に切り替えるには、まずコンピューターが「手を振る」動作及び「おじぎをする」動作からいずれかを選択する。コンピューターは選択にしたがい関節角アニメーションを呼び出す。
図13においてコンピューターは先に述べた通りターゲットとして「右側の遠くにいる子供」を選択する。このため複数の動作の中から「右、遠く、低」の動作を選択する。この動作は、右方向に向けて手を振るスケルトンの動作であり、また遠くにいる背の低い人物に向かって手を振るスケルトンの動作である。この動作はアーティストが予め作成した関節角アニメーションで表されている。
図13においてコンピューターはモーションブレンドを行う。ここではコンピューターは「右、遠く、低」の動作において想定されている画面とターゲットとの距離は、センサーで検知した画面と子供との距離より遠すぎると判断している。そこでコンピューターはさらに「右、近く、低」の動作を選択する。コンピューターは「右、遠く、低」の動作に「右、遠く、低」の動作をブレンドする。コンピューターは検知した距離に基づきブレンドの割合を特定する。ブレンドにより新しい関節角アニメーションが生じる。
図13においてコンピューターはIKによって関節角アニメーションに対して動作の補正を行う。コンピューターは関節角アニメーションをレンダリングしてキャラクターのアニメーションを作成するとともに、キャラクターの映像を画面に出力する。
図13においてコンピューターが上述の通りモーションブレンドを行うと、出力されたアニメーションが望まない動作を含むことがある。ここでいう「望まない動作」の中にはキャラクターの一部の身体部位が本来向くべき方向を向いていない、キャラクターの身体部位の動作の反復が不自然に減衰したり、逆に増幅したりしてしまう、キャラクターの身体部位のうち動くべきでない身体部位が動いてしまう、が含まれる。キャラクターが手を振る動作における「望まない動作」の具体例は、キャラクターの手のひらがインタラクションすべき相手の方を向いていない、キャラクターの手の振れ幅が小さくなったり大きくなったりする、である。
図13において「望まない動作」の発生を避けるためには、インタラクションすべきターゲットの距離や方位が少しずつ異なる動作をアーティストがさらに数多く用意する必要がある。
(B)ポーズからなる状態遷移機械をベースとした方法
図12に示した通り、コンピューター22はセンサー75を通じて子供79の座標を取得する。コンピューター22はさらに、子供79の座標の情報に基づき、モーショングラフの中の「手を振る」動作の調整を行う。コンピューター22はさらに、目標位置回転の間の中間状態を補間する。本実施例では動作の調整を、ポーズからなる状態遷移機械の中の目標位置回転の調整によって行う。
図14はポーズからなる状態遷移機械を土台に「手を振る」動作を自動的に調整する方法を示している。モーショングラフ81は、図13に示したモーショングラフ80と同じ機能を有する状態遷移機械である。モーショングラフ81はモーショングラフ80と以下の点で異なる。モーショングラフ81は「手を振る」動作を生成するために、図15に示す、ポーズからなる状態遷移機械を呼び出す。
図15は状態遷移機械39を示す。状態遷移機械39は図3に示す状態遷移機械30より簡単な状態遷移機械であって、上述したポーズのいくつかを有する。1番目のポーズP31は開始の状態であるとともに待機の状態である。P31は終了の状態としても用いる。2番目のポーズP33ではキャラクター20が右手を持ち上げている。3番目のポーズP34ではキャラクター20が右手を右方向に向けている。キャラクター20を正面視した場合右手は左側へ移動している。4番目のポーズP35ではキャラクター20が右手を頭や胴に近づけている。キャラクター20を正面視した場合右手は右側へ移動している。
図14においてモーショングラフ81は「見回す」動作及び「手を振る」動作を生成するためにポーズからなる状態遷移機械を呼び出してもよい。他の態様においてコンピューターは「見回す」動作及び「手を振る」動作の関節角アニメーション群を記憶していてもよい。モーショングラフ81はこれらの群から動作を選択して、必要な動作の関節角アニメーションを呼び出してもよい。
図14においてコンピューターは「手を振る」動作の調整を行うために、ノードグラフ38を利用する。ノードグラフ38はコンピュータープログラムである。コンピューターはノードグラフ38を実行するにあたり、キャラクターが「手を振る」ターゲットを選択する。本実施例においてターゲットは図12に示す右側の遠くにいる子供79である。
図14においてコンピューターが行う調整とは、一態様においてアーティストが指定した目標位置回転の範囲内でコンピューターが自動的に新たな目標位置回転を指定することである。他の一態様において、アーティストが指定した目標位置回転の基準を参照して、コンピューターが自動的に新たな目標位置回転を指定することである。
図14において、状態遷移機械39から見たノードグラフ38は、目標位置回転を状態遷移機械39の外部から規定するメタの存在である。これらは、状態遷移機械39をメインルーチン、ノードグラフ38をサブルーチンとする、ひとまとまりのプログラムに置き換えてもよい。
図16は仮想空間を表す。図16では、図12を用いて説明したキャラクター20や子供79を平面視している。キャラクター20は画面21の背後に仮想的に位置する。キャラクター20から見て右側に子供79が位置する。コンピューター22はセンサー75から子供79の位置の信号を受け取る。コンピューター22は受け取った信号から、仮想空間におけるターゲットとなる子供79の座標を算出する。コンピューター22は算出した座標を記録する。
図16においてコンピューター22はノードグラフ38を実行する。子供79の座標及びキャラクター20の座標に基づき、キャラクター20が子供79に向かって相対座標83が回転する。回転した相対座標83に基づき身体部位の目標座標位置の調整を行う。
図16においてセンサー75はカメラを備えてもよい。一態様においてセンサー75がコンピューター22に送る信号は子供79の画像を含む。コンピューター22は、子供79の画像から子供79の身長を算出する。コンピューター22は、ノードグラフ38の実行において子供79の身長の情報を調整結果に反映させる。
図14に戻る。呼び出した「手を振る」状態遷移機械中の、いわゆる次に続く身体部位の目標位置回転に調整を施す。図16に示すようにコンピューター22は身体部位の目標位置回転を、他の入力ここではセンサー75からの入力に基づき調整する。
図17は右手の目標位置回転の調整の様子を表す。図は右手をハンドル25Rでシンボル化して表している。
図17において、ハンドル25Rで表される右手の1番目の目標位置回転は、コンピューターの呼び出した状態遷移機械の基本の目標位置回転のままである。この目標位置回転は手を振る前の状態に相当する。この目標位置回転は右手が腰の横にある、キャラクターの姿勢を表現している。コンピューターはキャラクター自身の位置を原点とし、キャラクターの正面方向をz軸、右方向をx軸、上方向をy軸とするような基準座標系の入力を受ける。コンピューターはコンピューターに入力された基準座標系を相対座標ノードによって変換して出力する。相対座標ノードは、コンピューターに入力された基準座標系に対して所定の相対位置及び相対回転を持つ座標系を出力するためのノードグラフである。以上の処理によりコンピューターは、キャラクターを移動させたり回転させたりする場合でも、キャラクターの腰の横に右手の目標位置を生成できる。
図17において、ハンドル25Rで表される右手の2番目の目標位置回転の調整は次のように行われる。2番目の目標位置回転はキャラクターが手を振るためにキャラクターが右手を持ち上げつつあるときの目標位置を含む。この目標位置ではキャラクターの手がキャラクターの胸の前あたりを通過する。
図17において、1番目の目標位置回転はキャラクターがインタラクションすべき相手の位置に依存しない。これに対して、3番目や4番目の目標位置回転は、実際に手を振る動作における目標位置を含んでいるので、手を振ってインタラクションすべき相手の存在する方向に強く依存する。本実施例ではアーティスト等が座標変換の種類と適用順序をノードグラフの形で定義する。コンピューターはノードグラフをメモリーに記録する。コンピューターはノードグラフをメモリーから呼び出す。コンピューターはノードグラフに従って座標変換の計算を行うことで、ターゲットの位置及びターゲットの回転に基づき、状態遷移機械中の目標位置回転の調整を自動的に施す。
一方、図17において、2番目の目標位置回転はその途中の過程における目標位置回転である。したがって、2番目の目標位置回転はインタラクションすべき相手の存在する方向への依存を半分有している。2番目の目標位置回転では、コンピューターはキャラクター自身の位置を原点とする基準座標系の入力を受ける。
図17において、コンピューターはコンピューターに入力された基準座標系を回転ノードによって変換することでキャラクター自身の位置を原点とする新たな座標系、すなわち回転座標系を出力する。回転ノードは、コンピューターに入力された基準座標系をインタラクションすべき相手の方向に応じて所定の割合で回転させるノードグラフである。本実施例において所定の割合、すなわち回転割合は50%である。この回転座標系では、座標系の前方を示す軸の向きが基準座標系から変更されている。本実施例の回転座標系では、Z軸が、キャラクターの前方方向とインタラクションすべき相手の方向との間で角度が50:50で分割される方向を向いている。
図17において、コンピューターは回転座標系をさらに上述の相対座標ノードによって変換する。コンピューターは、回転座標系を相対座標ノードに入力することで、回転座標系を基準とした目標位置を記述できる。この目標位置は、概ねキャラクターの胸の高さに、キャラクターの右手を移動するのに適する。コンピューターが相対座標ノードに入力する回転座標系は、インタラクションすべき相手の方向に依拠して、基準座標系を回転させたものである。コンピューターは、インタラクションすべき相手が異なる位置に立つとき、その相手に対して自動的に異なる右手の目標位置を生成する。2番目の目標位置回転はこの目標位置を含む。以上の通り、コンピューターは基準座標系を2回にわたって変換することで2番目の目標位置回転を作成する。
図17において、ハンドル25Rで表される右手の3番目の目標位置回転と4番目の目標位置回転の調整は次のように行われる。コンピューターは、キャラクターが手を左右に振る動作を表現するためにこれらの目標位置回転を組み合わせて使用する。コンピューターは、これらの目標位置回転を、2番目の目標位置回転と同様に生成する。2番目の目標位置回転は、キャラクターが右手を持ち上げようとする途中を表現している。これに対して3番目の目標位置回転と4番目の目標位置回転との組は、キャラクターが実際に、インタラクションすべき相手の位置に向かって手を振る動作を表す。コンピューターは目標位置を回転する必要がある。この回転はインタラクションすべき相手の存在する方向に完全に依存したものでなければならない。右手の3番目の目標位置回転と4番目の目標位置回転の調整では、回転ノード中の回転割合を100%としている。
コンピューターが相対座標ノードや回転ノードを利用するのは、目標位置回転の調整方法の一例である。コンピューターはキャラクター自身や、インタラクションすべき相手の位置の入力を受けて、目標位置回転を出力する。技術者が、この過程における位置回転を変換するための要素を、この他にも多数定義する。アーティストは、すでに定義されている変換要素の中から目的に適うものを選択し組み合わせて利用する。汎用性の高い変換要素についてはキャラクターや状態遷移機械とは独立して共有され、複数のアーティストによって利用される。
図14に戻る。その後、コンピューターは調整された目標位置回転、ここでは2番から4番に基づき、目標位置回転同士の間の中間状態を躍度最小軌道で補間する。コンピューターはさらにIK及びPD制御を用いた後、関節角アニメーションをレンダリングして画面にキャラクターアニメーションを出力する。
図12に戻る。コンピューター22はインタラクティブなキャラクターアニメーションを画面21に表示する。例えば子供79やその他の人が画面21に対して遠くにいればキャラクター20が手を高く上げて振る。子供79やその他の人が画面21に対して近くにいればキャラクター20が自身の体のそばで小さく手を振る。
図12において画面21の表示するキャラクターアニメーションは多様である。しかしながら、図14から図17を用いて説明したように「手を振る」状態遷移機械39は少なくとも1種類あればよい。これに対して図13に示した関節角アニメーションをベースとした方法では多数のスケルトン動作を予め用意する必要がある。
図12に示すようにインタラクティブなキャラクター20を、画面21を有するサイネージに表示することで、これを物理的な社会空間で利用できる。キャラクター20の動作は、キャラクター20と子供79との位置関係に応じて変化する。コンピューター22は、キャラクターの動作を、キャラクターから見た子供79の位置に応じて変化させる。
本実施例では図16に示すように、キャラクター20の動作をキャラクター20の身体部位とキャラクター20が子供79との位置関係によって特徴付ける。子供79の位置は何ら限定されない。子供79の位置は場面によって変化する。例えば子供79が画面に近づいているときは、キャラクター20が自らの手を子供79に近づけてもよい。
図16において子供79は大人に置き換えてもよい。子供79は動物に置き換えてもよい。子供79はその他の物体に置き換えてもよい。例えば人の置いた物体に対してキャラクター20が動作をおこなってもよい。その物体を媒介としてキャラクターと人とが互いにインタラクションする。このように多様なインタラクションのパターンを実現するには上述したようにポーズからなる状態遷移機械をベースとした方法が適する。
<8.状態遷移中に次の状態遷移を起こすこと>
図10では、コンピューターは、あるポーズから次のポーズに至るまでの状態遷移を完了してから、さらに次のポーズに至る動作を開始する。すなわちコンピューターは、さらにキャラクターに次の新たなポーズを与えるために、キャラクターの身体部位の動作を開始する。これに対して以下においては、キャラクターのスケルトンの状態遷移中に次の状態遷移を起こす実施例を説明する。
図6に示すように、キャラクターの状態は、身体部位ここでは右手に目標位置回転Paの割り当てられた状態、ここでは状態aという、から目標位置回転Pbの割り当てられた状態、ここでは状態bという、に遷移する。コンピューターはこの状態遷移の中で、右手を、目標位置回転Paから目標位置回転Pbに向けて動かす。このためコンピューターは要素動作Pa to Pbを開始する。
図6において、キャラクターの状態は、状態aから開始して状態bに至る。ここでコンピューターは例えばキャラクターの状態bから状態cへの遷移を、要素動作Pa to Pbの完了を待たずに実行できる。この時、コンピューターは新たに要素動作Pb to Pcを開始する。コンピューターが実際に右手の目標位置回転として出力するのは、要素動作Pa to Pbと要素動作Pb to Pcの和である。このことを一般化すれば、コンピューターは右手の目標位置回転を、開始してからまだ終了していない要素動作全ての和とする。
図9で示すように、動作データからなる状態遷移機械を用いる手法では、コンピューターは個々の動作の実行中に、状態の切り替えをできない(unswitchable)。コンピューターはある動作の実行が完了して次の動作を選択するタイミングでのみ、状態の切り替えを実行できる(switchable)。一方、以下図18から図20に示すように本実施例では、コンピューターは、前の動作を実行中であっても、任意のタイミングで状態の切り替えを実行できる(switchable)。
図18は状態遷移機械の使用図である。期間AはキャラクターがPose 0を有している期間である。コンピューターは期間Aの終了時にキャラクターに与えられるポーズをPose 0からPose 1に切り替える。期間BはキャラクターがPose 0からPose 1に向かう動作M63を有している期間である。コンピューターは期間Bの途中で、すなわちキャラクターがPose 1を獲得する前に、キャラクターに与えられるポーズをPose 1からPose 2に切り替える。アーティストは、動作M63の継続時間の長さとは無関係に、動作M64の開始時刻を指定する。期間Bにおいてコンピューターは動作M63の継続中の任意の時刻で状態遷移機械の状態を切り替える(switchable)。期間Bにおいてキャラクターは動作M63の継続中の任意の時刻でPose 1の次のポーズすなわちPose 2に向かう動作M64を開始する。キャラクターの身体部位の位置及び回転はPose 1の目標位置回転に到達しない場合がある。Pose 1の目標位置回転はいわば誘導点である。
図18において動作M63の持続中に次の動作M64が開始する。期間Cの間、動作M63と動作M64とが混ざる。キャラクターはこれらの動作の混じりあってなる動作をする。躍度最小軌道法を用いることで、このような動作の混合が起きても、キャラクターは滑らかに動作する。また期間Bと期間Cのつなぎ目においても、さらには期間Cと期間Dのつなぎ目においても動作は滑らかに接続する。期間Bにおける任意のタイミングで動作M63を動作M64に切り替えてもキャラクターは滑らかに動作する。
図19は状態遷移機械の使用図である。本図は、動作M63と動作M64との重なりの時間の長さを様々に表している。左側の例では、動作M63と動作M64との重なりが大きい。真ん中の例では動作M63と動作M64との重なりが小さくなっている。これらの例では、身体部位の位置及び回転はPose 1の目標位置回転に到達しない。Pose 1の目標位置回転はいわば誘導点である。
図19の右側の例では、動作M63と動作M64との重なりがない。キャラクターは期間CにおいてPose 1を有する。この例ではキャラクターの身体部位の位置及び回転はPose 1の目標位置回転に到達する。この例では身体部位の位置及び回転の中間状態の全ての部分、すなわち動作M63と動作M64の全ての部分が用いられる。
図19ではアーティストが動作M63から動作M64への切り替えのタイミングを調整することで、コンピューターは期間Cにおける目標位置回転の軌道を変化させる。かかる軌道は、期間Bにおける動作と期間Dにおける動作とを接続する動作を表す。
図20は状態遷移機械の使用図である。本図が示すように、コンピューターは動作の混合を、連続する2つの動作、ここでは動作M63及び動作M64の間でのみで行うとは限らない。コンピューターが3つ以上の動作を混合するように、アーティストは、各動作の開始時刻を指定する。身体部位の位置及び回転はPose 1及びPose 2の目標位置回転に到達しない場合がある。Pose 1及びPose 2の目標位置回転はいわば誘導点である。
図18から図20を用いて説明したように、アーティストは状態遷移機械中の各状態に目標位置回転を割り当てる。コンピューターは状態遷移を、その前の状態遷移の継続中のアーティストの指定した任意の時刻に起こすことができる。コンピューターはアーティストの指定に代えて、キャラクターAIを実行することでこの状態遷移を実行してもよい。
<9.キャラクターAI>
図21はキャラクターAIの利用の一形態を表す。キャラクターAIは、コンピューター外からもたらされる情報を元に、生成すべきキャラクターアニメーションの決定に関わるプログラムである。本実施形態においてプログラムの様式は問わない。コンピューター外からもたらされる情報の例は、コンピューターと接続するセンサーが取得した、画面の周囲の状況である。
図21においてコンピューターはキャラクターAIを状態遷移機械の外部で実行する。一態様においてキャラクターAIはセンサーから情報を受け取る。キャラクターAIはセンサーのもたらす情報をもとに、メモリーに記録された状態遷移機械群から状態遷移機械を選択して呼び出す。キャラクターAIはセンサーのもたらす情報をもとに、状態遷移機械を実行する。キャラクターAIはセンサーのもたらす情報をもとに、状態遷移機械を中断する。
図21においてコンピューターはキャラクターAIを実行することで、状態遷移機械中の状態遷移を実行する否かを判断する。コンピューターはさらにキャラクターAIを実行することで、状態遷移機械中のどの状態に遷移するかを判断する。コンピューターは一態様において、これらの判断をフレームごとに、すなわち目標位置回転に遷移するごとに行う。コンピューターは一態様において、これらの判断を目標位置回転に到達前に行う。
図21において、コンピューターはセンサーとキャラクターAIとを利用することで、状態遷移機械の各状態に割り当てられる目標位置回転及び到達目標時刻を自動的にかつリアルタイムで指定できる。一態様において、コンピューターが状態遷移機械の実行を開始した後に、コンピューターに接続された画面の周囲の状況が変化する。この場合、コンピューターはその変化に応じて状態遷移機械中の目標位置回転及び到達目標時刻をリアルタイムで変化させることができる。
<10.仮想現実における応用>
図22はインタラクティブなキャラクターを仮想現実空間で利用する一例を表す。体験者89aはハンドトラッカー88aとVR(virtual reality)ゴーグル87aとを装着する。ハンドトラッカー88aは光学式及びジャイロ式のいずれかでもよい。ハンドトラッカー88aは体験者89aの全身のポーズをコンピューター87aに入力できるデバイス、例えばKinect(商標)に置き換えてもよい。
図22においてセンサー85aはコンピューター87aと接続する。センサー85aはVRゴーグル86aとハンドトラッカー88aとの位置及び回転を検出する。VRゴーグル86aはキャラクターを映し出す。センサー85aは体験者89aの位置をコンピューター87aに与える。コンピューター87aは体験者89aの位置に基づきキャラクターAIを実行する。コンピューター87aは体験者89aの位置に基づき状態遷移機械、ノードグラフ、IK及びその他のプログラムを実行する。コンピューター87aはキャラクターAIの判断に基づき状態遷移機械、ノードグラフ、IK及びその他のプログラムを実行する。コンピューター87aは映像をVRゴーグル86aに出力する。
図23に示すように、ネットワーク77を経由することで複数の体験者がキャラクターとインタラクションしてもよい。図中には体験者89a及び体験者89bが表されている。ネットワーク77はLAN(local area network)でもよく、インターネットでもよい。コンピューター87a及びコンピューター87bは一連の計算処理をネットワーク77でつながったサーバーにさせてもよい。
図23において、コンピューター87bは仮想空間中の仮想のターゲットの仮想空間における座標を変化させてもよい。体験者89bはハンドトラッカー88bを通じてコンピューター87bに対して入力を行う。コンピューター87bは、入力に基づきコーヒーカップ70を仮想空間中で移動させる。
図23においてコンピューター87bはさらに状態遷移機械中の目標位置回転に調整を施す。コンピューター87bは、キャラクターの仮想空間における座標と、コーヒーカップ70の仮想空間における変化した座標との組に基づき、この処理を行う。コンピューター87bはその後、上述の中間状態を補間する。コンピューター87bは一連の計算処理をネットワーク77でつながったサーバーにさせてもよい。
図23において、コーヒーカップ70の仮想空間における変化した座標はコンピューター87bの有するプログラム内に事前に入力はされていない。したがってコンピューター87bは、図11に示すようにコーヒーカップ70の位置をノードグラフに入力することで大回りの経由点を含む中間状態をさらに生成してもよい。キャラクターはコーヒーカップ70を通じて実存のターゲットである体験者89bとインタラクションする。一連の処理は図22に示すようなスタンドアローンのコンピューター87aでも実施できる。
本発明の具体的な構成は上記実施形態に限られない。上記実施形態の要旨を逸脱しない範囲内における様々な設計変更が本発明に含まれる。一態様においてプログラムを実行するコンピューターの動作を、ネットワークで接続された複数の装置で実行する。
一態様においてプログラムを実行するコンピューターの一部又は全部の処理を、CPU(Central Processing Unit)が実行する。その一態様においてプログラムを実行するコンピューターの一部の処理を、GPU(graphics processing unit)及びその他のプロセッサが実行する。他の一態様においてプログラムを実行するコンピューターの一部の処理を、FPGA(Field-programmable Gate Array)及びその他のPLD(Programmable Logic Device)並びにASIC(Application Specific Integrated Circuit)の少なくともいずれかが代替的に実行する。
一態様において非一時的なコンピューター可読媒体(non-transitory computer readable medium)がプログラムを格納するとともに、コンピューターに対してプログラムを供給する。一態様において非一時的なコンピューター可読媒体はネットワークを介してプログラムを供給する。一態様において非一時的なコンピューター可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピューター可読媒体は、ハードディスクドライブ及びフラッシュメモリー並びにその他の非揮発性記憶媒体並びにRAM(Random Access Memory)及びその他の揮発性記憶媒体を含む。他の一態様において一時的なコンピューター可読媒体(transitory computer readable medium)がコンピューターにプログラムを供給する。一態様において、一時的なコンピューター可読媒体は、電気信号、光信号、及び電磁波を含む。一態様において一時的なコンピューター可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を通って、プログラムをコンピューターに供給する。
この出願は、2019年9月5日に出願された日本出願特願2019-161990を基礎とする優先権を主張し、その開示の全てをここに取り込む。
20 キャラクター、 21 画面、 22 コンピューター、 23 肘の関節、 24 スケルトン、 25L ハンドル、 25R ハンドル、 26L 左手の位置、 26R 右手の位置、 27L 左手の回転、 27R 右手の回転、 28R 右腕の上腕、 29R 右腕の前腕、 30 状態遷移機械、 P31-36 ポーズ、 38 ノードグラフ、 39 状態遷移機械、 S40 ステップ、 S41 ステップ、 S42 示すステップ、 S43 ステップ、 S44 示すステップ、 S45 ステップ、 S49 ステップ、 50 曲線、 51 曲線、 55a-c 位置、 56a-b 直線経路、 57 曲線経路、 59 インターフェース、 60 状態遷移機械、 M61-68 動作、 70 コーヒーカップ、 71 目標点、 72 経由点、 75 センサー、 79 子供、 80 モーショングラフ、 81 モーショングラフ、 83 相対座標、 90 状態遷移機械、 M91-96 動作、 c ダンパー、 k バネ、 t 横軸、 x 縦軸
Claims (20)
- 仮想的なキャラクターの動作を画面上に表現する方法であって、コンピューターが:
前記キャラクターの身体部位の目標位置が時間順に指定された状態遷移機械をメモリーから呼び出し;
ある目標位置から次に続く目標位置に至る間の前記身体部位の位置の中間状態を補間し、ここで前記中間状態における前記身体部位の位置の時間変化を、その躍度を低減する数理モデルに基づいて算出し;
前記身体部位に対して直接又は間接に接続する関節の運動を、前記中間状態を元に逆運動学(IK)によって算出し;
前記関節の前記運動を元にキャラクターアニメーションをレンダリングで生成し、
前記画面が前記キャラクターアニメーションを表示する、
方法。 - 前記状態遷移機械では、前記キャラクターの身体部位の目標位置に加えて、前記身体部位の目標回転がこれと組になって時間順に指定されており、以下、この組を目標位置回転という、
前記身体部位の位置の前記中間状態を補間するにあたり、ある目標位置回転から次に続く目標位置回転に至る間の前記身体部位の位置及び前記身体部位の回転の組の中間状態を補間し、
前記関節の前記運動を算出するにあたり、前記組の前記中間状態を元にする、
請求項1に記載の方法。 - 前記逆運動学(IK)によって算出した前記関節の前記運動に対してPD(Proportional-Differential)制御による修正をさらに施し、
前記修正が施された前記関節の前記運動を元にキャラクターアニメーションを前記レンダリングで生成する、
請求項2に記載の方法。 - 前記身体部位は前記キャラクターの前腕の先端又はその先に位置し、
前記数理モデルは躍度最小軌道である、
請求項2に記載の方法。 - 前記状態遷移機械はある1つの目標位置回転から次に続く2つ以上の目標位置回転を有しており、前記コンピューターは、前記2つ以上の目標位置回転のうちの一つを選択した後に、さらに前記ある1つの目標位置回転から選択された目標位置回転に至る間の前記中間状態を補間する、
請求項2に記載の方法。 - 前記状態遷移機械は第1の目標位置回転と、これに続く第2の目標位置回転と、その次に続く第3の目標位置回転とを有しており、
前記コンピューターは、前記第1の目標位置回転と、前記第2の目標位置回転との間の中間状態を補間し、さらに前記中間状態中の前記身体部位の任意の位置及び回転と前記第3の目標位置回転との間の中間状態を補間する、
請求項2に記載の方法。 - 前記コンピューターは、前記第3の目標位置回転に向かう前記中間状態中の前記身体部位の任意の位置及び回転と、第4の目標位置回転との間の中間状態をさらに補間する、
請求項6に記載の方法。 - 前記コンピューターは、前記中間状態を補間するにあたり予め設定された一又は二以上の誘導点をさらに使用することで、前記身体部位が前記誘導点に接近した後に前記誘導点から遠ざかるような大回りをするよう、前記身体部位の位置の時間変化を算出する、
請求項2に記載の方法。 - 前記コンピューターが事前に、前記時間順に指定された目標位置回転を受け取り、前記状態遷移機械を生成して、前記メモリーに記録する、又はすでに生成された前記状態遷移機械を前記メモリーに記録する、
請求項2に記載の方法。 - 前記コンピューターはさらに、前記キャラクターの仮想空間における座標と仮想空間内の仮想のターゲットの仮想空間における座標との組に基づき、前記呼び出した状態遷移機械中の前記次に続く目標位置回転に調整を施した後、前記中間状態を補間する、
請求項2に記載の方法。 - 前記コンピューターはさらに、前記キャラクターの仮想空間における座標と前記キャラクターがインタラクションすべき実存のターゲットの仮想空間における座標との組に基づき、前記呼び出した状態遷移機械中の前記次に続く目標位置回転に調整を施した後、前記中間状態を補間する、
請求項2に記載の方法。 - 前記コンピューターは、座標変換の種類と適用順序を定義したノードグラフをさらにメモリーから呼び出し、
さらにコンピューターは、前記ノードグラフに従って座標変換の計算を行うことで、前記実存のターゲットの位置及び回転に基づき、前記キャラクターの前記身体部位の前記目標位置回転の調整を自動で施し、
前記調整された前記目標位置回転に基づき前記中間状態を補間する、
請求項11に記載の方法。 - 前記画面はヴァーチャルリアリティ用のヘッドマウントディスプレイであり、
前記ターゲットの前記座標は、前記仮想空間中に設定されるべき、前記ヘッドマウントディスプレイの装着者の視点の座標である、
請求項11に記載の方法。 - 前記コンピューターは、前記装着者の入力に基づき、前記仮想空間中の仮想のターゲットの前記仮想空間における座標を変化させ、
前記コンピューターはさらに、前記キャラクターの前記仮想空間における座標と前記仮想のターゲットの前記仮想空間における前記変化した座標との組に基づき、前記呼び出した状態遷移機械中の前記次に続く目標位置回転に調整を施した後、前記中間状態を補間する、
請求項13に記載の方法。 - 前記画面はサイネージであり、
前記ターゲットの前記座標は、前記サイネージの周囲の実存の人物と前記サイネージとの位置関係を反映した前記仮想空間中の前記人物の座標であり、
前記人物の位置は前記サイネージの周囲に設置されたセンサーが検知したものである、
請求項11に記載の方法。 - 前記コンピューターはさらに、前記センサーから前記人物の位置の信号を受け取り、前記信号から前記ターゲットの前記座標を算出する、
請求項15に記載の方法。 - 前記センサーはカメラを含み、前記信号は前記人物の画像を含み、
前記コンピューターは、前記人物の画像から前記人物の身長を算出するとともに、前記目標位置回転の調整結果にこれを反映させる。
請求項16に記載の方法。 - 仮想的なキャラクターの動作を画面上に表現するためのコンピュータープログラムを記録している非一時的なコンピューター可読媒体であって、前記コンピュータープログラムは、
前記キャラクターの身体部位の目標位置が時間順に指定された状態遷移機械をメモリーから呼び出し;
ある目標位置から次に続く目標位置に至る間の前記身体部位の位置の中間状態を補間し、ここで前記中間状態における前記身体部位の位置の時間変化を、その躍度を低減する数理モデルに基づいて算出し;
前記身体部位に対して直接又は間接に接続する関節の運動を、前記中間状態を元に逆運動学(IK)によって算出し、
前記関節の前記運動を元にキャラクターアニメーションをレンダリングで生成する、
非一時的なコンピューター可読媒体。 - 仮想的なキャラクターの動作を表現する画面と、前記動作を演算するコンピューターとを備えるシステムであって、前記コンピューターは、
前記キャラクターの身体部位の目標位置が時間順に指定された状態遷移機械をメモリーから呼び出し;
ある目標位置から次に続く目標位置に至る間の前記身体部位の位置の中間状態を補間し、ここで前記中間状態における前記身体部位の位置の時間変化を、その躍度を低減する数理モデルに基づいて算出し;
前記身体部位に対して直接又は間接に接続する関節の運動を、前記中間状態を元に逆運動学(IK)によって算出し;
前記関節の前記運動を元にキャラクターアニメーションをレンダリングで生成し、
前記画面は前記キャラクターアニメーションを表示する、
システム。 - 仮想的なキャラクターの動作を画面上に表現する方法であって、コンピューターが:
前記キャラクターの身体部位の目標回転が時間順に指定された状態遷移機械をメモリーから呼び出し;
ある目標位置から次に続く目標回転に至る間の前記身体部位の回転の中間状態を補間し、ここで前記中間状態における前記身体部位の回転の時間変化を、その躍度を低減する数理モデルに基づいて算出し;
前記身体部位に対して直接又は間接に接続する関節の運動を、前記中間状態を元に逆運動学(IK)によって算出し;
前記関節の前記運動を元にキャラクターアニメーションをレンダリングで生成し、
前記画面が前記キャラクターアニメーションを表示する、
方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021543799A JP7529220B2 (ja) | 2019-09-05 | 2020-09-02 | 仮想的なキャラクターの動作を画面上に表現する方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019161990 | 2019-09-05 | ||
JP2019-161990 | 2019-09-05 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021045082A1 true WO2021045082A1 (ja) | 2021-03-11 |
Family
ID=74853239
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2020/033221 WO2021045082A1 (ja) | 2019-09-05 | 2020-09-02 | 仮想的なキャラクターの動作を画面上に表現する方法 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP7529220B2 (ja) |
WO (1) | WO2021045082A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023088041A1 (zh) * | 2021-11-19 | 2023-05-25 | 腾讯科技(深圳)有限公司 | 虚拟角色的行走动画生成方法、装置、设备及存储介质 |
WO2024009748A1 (ja) * | 2022-07-04 | 2024-01-11 | ソニーグループ株式会社 | 情報処理装置、情報処理方法、および記録媒体 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09190549A (ja) * | 1996-01-11 | 1997-07-22 | Nec Corp | 対話型映像提示装置 |
JP2018129005A (ja) * | 2017-02-10 | 2018-08-16 | 日本放送協会 | 手話cg生成装置及びプログラム |
-
2020
- 2020-09-02 JP JP2021543799A patent/JP7529220B2/ja active Active
- 2020-09-02 WO PCT/JP2020/033221 patent/WO2021045082A1/ja active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09190549A (ja) * | 1996-01-11 | 1997-07-22 | Nec Corp | 対話型映像提示装置 |
JP2018129005A (ja) * | 2017-02-10 | 2018-08-16 | 日本放送協会 | 手話cg生成装置及びプログラム |
Non-Patent Citations (1)
Title |
---|
SHIMIZU, ARISA ET AL.: "Reproducing hand chasing trajectory for interactive character", IPSJ SYMPOSIUM, SYMPOSIUM OF 2015 ENTERTAINMENT COMPUTING, 18 September 2015 (2015-09-18), pages 551 - 556 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023088041A1 (zh) * | 2021-11-19 | 2023-05-25 | 腾讯科技(深圳)有限公司 | 虚拟角色的行走动画生成方法、装置、设备及存储介质 |
WO2024009748A1 (ja) * | 2022-07-04 | 2024-01-11 | ソニーグループ株式会社 | 情報処理装置、情報処理方法、および記録媒体 |
Also Published As
Publication number | Publication date |
---|---|
JPWO2021045082A1 (ja) | 2021-03-11 |
JP7529220B2 (ja) | 2024-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Shapiro | Building a character animation system | |
US10977851B2 (en) | Animation control method for multiple participants | |
US8941642B2 (en) | System for the creation and editing of three dimensional models | |
JP4977742B2 (ja) | 3次元モデル表示システム | |
WO2021045082A1 (ja) | 仮想的なキャラクターの動作を画面上に表現する方法 | |
WO2009154821A1 (en) | Method and apparatus for providing natural facial animation | |
JP6574401B2 (ja) | モデリング制御システム、モデリング制御方法、及びモデリング制御プログラム | |
JP4989605B2 (ja) | 簡易アニメーション作成装置 | |
US20210192821A1 (en) | Animation control method and apparatus, storage medium, and electronic device | |
JP6506443B1 (ja) | 画像生成装置及び画像生成プログラム | |
JP7349256B2 (ja) | 画像生成装置および情報提示方法 | |
US9934607B2 (en) | Real-time goal space steering for data-driven character animation | |
Thiebaux et al. | Real-time expressive gaze animation for virtual humans | |
Kuijk et al. | Autonomous agents and avatars in REVERIE's virtual environment | |
JP2023095862A (ja) | プログラム及び情報処理方法 | |
Kennaway | Avatar-independent scripting for real-time gesture animation | |
US11980818B2 (en) | Game system, processing method, and information storage medium | |
US20080088586A1 (en) | Method for controlling a computer generated or physical character based on visual focus | |
Gillies | Piavca: A framework for heterogeneous interactions with virtual characters | |
ARIPIN | DEVELOPMENT OF INDONESIAN TALKING-HEAD ANIMATIONS ON HUMANOID AND NON-HUMANOID CHARACTERS USING THE RETARGETING PROCESS OF FACIAL MOTION CAPTURE DATA | |
CN116943196A (zh) | 身体部位的朝向编辑方法、装置、设备及存储介质 | |
Wong et al. | Real-time Facial Expressions in the Auslan Tuition System. | |
Torrao et al. | Palco: A multisensor realtime 3D cartoon production system | |
WO2024083302A1 (en) | Virtual portal between physical space and virtual space in extended reality environments | |
JP2021189544A (ja) | コンピュータプログラム、及び方法 |
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: 20861443 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2021543799 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 20861443 Country of ref document: EP Kind code of ref document: A1 |