JP2018128851A - Program, object layout system and object layout method - Google Patents

Program, object layout system and object layout method Download PDF

Info

Publication number
JP2018128851A
JP2018128851A JP2017021373A JP2017021373A JP2018128851A JP 2018128851 A JP2018128851 A JP 2018128851A JP 2017021373 A JP2017021373 A JP 2017021373A JP 2017021373 A JP2017021373 A JP 2017021373A JP 2018128851 A JP2018128851 A JP 2018128851A
Authority
JP
Japan
Prior art keywords
arrangement
skeleton
target
skeleton joints
joints
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2017021373A
Other languages
Japanese (ja)
Inventor
秀久 原田
Hidehisa Harada
秀久 原田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Interactive Entertainment LLC
Original Assignee
Sony Interactive Entertainment LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Interactive Entertainment LLC filed Critical Sony Interactive Entertainment LLC
Priority to JP2017021373A priority Critical patent/JP2018128851A/en
Publication of JP2018128851A publication Critical patent/JP2018128851A/en
Pending legal-status Critical Current

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide a program, an object layout system and an object layout method capable of expressing, with a high reality, an object corresponding to a ragdoll on which a physical simulation process is executed.SOLUTION: A feedback unit 52 determines a reference layout for multiple skeleton joints associated with an object on the basis of the layout of multiple ragdoll parts having undergone a physical simulation process. The feedback unit 52 corrects the reference layout for the multiple skeleton joints into a final layout on the basis of a reference layout for target joints and an objective layout for the target joints. An object layout determining unit 54 determines a layout of the object in a virtual space on the basis of the final layout of the multiple skeleton joints.SELECTED DRAWING: Figure 8

Description

本発明は、プログラム、オブジェクト配置システム及びオブジェクト配置方法に関する。   The present invention relates to a program, an object arrangement system, and an object arrangement method.

古典力学の法則等の物理法則をシミュレートするソフトウェアである物理エンジンを活用したプログラムによって、仮想空間内に配置されたゲームキャラクタ等のオブジェクトの動きのリアリティを高めることが行われている。   The reality of the movement of objects such as game characters arranged in a virtual space is improved by a program that uses a physics engine that is software that simulates a physical law such as a law of classical mechanics.

また物理エンジンを活用したプログラムにおいて、互いにコンストレイント(拘束条件)で関連付けられた複数のラグドールパーツから構成されるラグドールとゲームキャラクタ等のオブジェクトとを対応付けることがある。   In a program using a physics engine, a rag doll composed of a plurality of rag doll parts associated with each other by constraints (constraint conditions) may be associated with an object such as a game character.

この場合、例えば、位置、向き、質量、慣性モーメント、速度、角速度、などの物理量や速度上限、角速度上限などの物理的な条件を表す物理パラメータの値が各ラグドールパーツに設定される。そしてあるタイミングにおける物理パラメータの値や上述のコンストレイントに基づいて、各ラグドールパーツに対して物理エンジンによる物理シミュレーション処理が実行され、その後のタイミングにおける各ラグドールパーツの配置が決定される。そしてこのようにして決定される複数のラグドールパーツの配置に応じて当該複数のラグドールパーツから構成されるラグドールに対応するオブジェクトの新たな配置が決定される。   In this case, for example, physical parameters such as physical quantity such as position, orientation, mass, moment of inertia, speed, angular velocity, and physical conditions such as upper speed limit and upper limit angular speed are set in each ragdoll part. Based on the value of the physical parameter at a certain timing and the above-described constraint, a physical simulation process by the physics engine is executed for each ragdoll part, and the arrangement of each ragdoll part at a subsequent timing is determined. Then, in accordance with the arrangement of the plurality of rag doll parts determined in this way, a new arrangement of objects corresponding to the rag doll composed of the plurality of rag doll parts is determined.

上述のようにしてオブジェクトの配置を決定する場合、決定されるオブジェクトの配置が不自然なものとなることがある。例えばゲームキャラクタが手で物体を掴み続けている状況であるにも関わらず、決定されるオブジェクトの配置においてはゲームキャラクタの手が物体から離れてしまうことがある。このような状況になると、仮想空間内に配置されたゲームキャラクタなどといったオブジェクトの表現におけるリアリティが損なわれる。   When determining the arrangement of objects as described above, the determined arrangement of objects may be unnatural. For example, even if the game character continues to grab the object with his hand, the game character's hand may be separated from the object in the determined arrangement of the object. In such a situation, the reality in the expression of objects such as game characters arranged in the virtual space is lost.

本発明は上記課題に鑑みてなされたものであって、その目的の1つは、物理シミュレーション処理が実行されたラグドールに対応するオブジェクトをリアリティ高く表現できるプログラム、オブジェクト配置システム及びオブジェクト配置方法を提供することにある。   The present invention has been made in view of the above problems, and one of its purposes is to provide a program, an object arrangement system, and an object arrangement method capable of expressing an object corresponding to a ragdoll subjected to physical simulation processing with high reality. There is to do.

上記課題を解決するために、本発明に係るプログラムは、仮想空間内に配置されたオブジェクトの現在の配置と、当該オブジェクトの目標となる配置と、に基づいて、当該オブジェクトに対応付けられる複数のラグドールパーツについての物理パラメータの値を設定する物理パラメータ設定手順、前記複数のラグドールパーツに対して前記物理パラメータに応じた物理シミュレーション処理を実行する物理シミュレーション処理実行手順、前記物理シミュレーション処理の実行後の前記複数のラグドールパーツの配置に基づいて、前記オブジェクトに対応付けられる複数のスケルトンジョイントの基準配置を決定する基準配置決定手順、前記複数のスケルトンジョイントのうちの1つであるターゲットジョイントの前記基準配置と当該ターゲットジョイントの目標となる配置とに基づいて、前記複数のスケルトンジョイントの前記基準配置を最終配置に修正する配置修正手順、前記複数のスケルトンジョイントの前記最終配置に基づいて、前記オブジェクトの前記仮想空間内における配置を決定するオブジェクト配置決定手順、をコンピュータに実行させる。   In order to solve the above-described problem, a program according to the present invention includes a plurality of objects associated with an object based on the current arrangement of the object arranged in the virtual space and the target arrangement of the object. Physical parameter setting procedure for setting physical parameter values for ragdoll parts, physical simulation processing execution procedure for executing physical simulation processing according to the physical parameters for the plurality of ragdoll parts, after execution of the physical simulation processing A reference arrangement determining procedure for determining a reference arrangement of a plurality of skeleton joints associated with the object based on an arrangement of the plurality of ragdoll parts; and the reference arrangement of a target joint which is one of the plurality of skeleton joints And the target An arrangement correction procedure for correcting the reference arrangement of the plurality of skeleton joints to a final arrangement based on a target arrangement of a plurality of skeleton joints, and the virtual space of the object based on the final arrangement of the plurality of skeleton joints The computer executes an object arrangement determining procedure for determining the arrangement in the computer.

本発明の一態様では、前記配置修正手順では、前記ターゲットジョイントの前記基準配置が当該ターゲットジョイントの目標となる配置と一致するよう、前記複数のスケルトンジョイントの前記基準配置を前記最終配置に修正する。   In one aspect of the present invention, in the arrangement correction procedure, the reference arrangement of the plurality of skeleton joints is corrected to the final arrangement so that the reference arrangement of the target joint matches the target arrangement of the target joint. .

あるいは、前記配置修正手順では、前記ターゲットジョイントの前記最終配置が、当該ターゲットジョイントの前記基準配置と当該ターゲットジョイントの目標となる配置とを補間した配置となるよう、前記複数のスケルトンジョイントの前記基準配置を前記最終配置に修正する。   Alternatively, in the arrangement correction procedure, the reference positions of the plurality of skeleton joints are such that the final arrangement of the target joint is an arrangement obtained by interpolating the reference arrangement of the target joint and a target arrangement of the target joint. Modify the placement to the final placement.

この態様では、前記配置修正手順では、前記ターゲットジョイントの前記最終配置が、補間の開始タイミングから現在までの時間と、現在から補間の終了タイミングまでの時間と、に基づいて算出される重みで、当該ターゲットジョイントの前記基準配置と当該ターゲットジョイントの目標となる配置とを補間した配置となるよう、前記複数のスケルトンジョイントの前記基準配置を前記最終配置に修正してもよい。   In this aspect, in the arrangement correction procedure, the final arrangement of the target joint is a weight calculated based on the time from the start timing of interpolation to the current time and the time from the current time to the end timing of interpolation, The reference arrangement of the plurality of skeleton joints may be modified to the final arrangement so that the reference arrangement of the target joint and the target arrangement of the target joint are interpolated.

また、本発明の一態様では、前記配置修正手順では、前記ターゲットジョイントの前記基準配置と当該ターゲットジョイントの目標となる配置とに基づいて、前記複数のスケルトンジョイントの第1の配置を決定し、前記複数のスケルトンジョイントのうちの前記ターゲットジョイントとは異なるスケルトンジョイントの前記基準配置と当該スケルトンジョイントの目標となる配置とに基づいて、前記複数のスケルトンジョイントの第2の配置を決定し、第1の配置と前記第2の配置とを補間した配置が前記複数のスケルトンジョイントの前記最終配置となるよう、前記複数のスケルトンジョイントの前記基準配置を前記最終配置に修正する。   In one aspect of the present invention, in the arrangement correction procedure, a first arrangement of the plurality of skeleton joints is determined based on the reference arrangement of the target joint and a target arrangement of the target joint, Determining a second arrangement of the plurality of skeleton joints based on the reference arrangement of the skeleton joints different from the target joint of the plurality of skeleton joints and a target arrangement of the skeleton joints; The reference arrangement of the plurality of skeleton joints is corrected to the final arrangement so that the arrangement obtained by interpolating the arrangement of the second arrangement and the second arrangement becomes the final arrangement of the plurality of skeleton joints.

この態様では、前記配置修正手順では、補間の開始タイミングから現在までの時間と、現在から補間の終了タイミングまでの時間と、に基づいて算出される重みで、前記第1の配置と前記第2の配置とを補間した配置が前記複数のスケルトンジョイントの前記最終配置となるよう、前記複数のスケルトンジョイントの前記基準配置を前記最終配置に修正してもよい。   In this aspect, in the arrangement correction procedure, the first arrangement and the second are calculated with weights calculated based on the time from the start timing of interpolation to the present and the time from the present to the end timing of interpolation. The reference arrangement of the plurality of skeleton joints may be modified to the final arrangement so that an arrangement obtained by interpolating the arrangement of the plurality of skeleton joints becomes the final arrangement of the plurality of skeleton joints.

また、本発明に係るオブジェクト配置システムは、仮想空間内に配置されたオブジェクトの現在の配置と、当該オブジェクトの目標となる配置と、に基づいて、当該オブジェクトに対応付けられる複数のラグドールパーツについての物理パラメータの値を設定する物理パラメータ設定部と、前記複数のラグドールパーツに対して前記物理パラメータに応じた物理シミュレーション処理を実行する物理シミュレーション処理実行部と、前記物理シミュレーション処理の実行後の前記複数のラグドールパーツの配置に基づいて、前記オブジェクトに対応付けられる複数のスケルトンジョイントの基準配置を決定する基準配置決定部と、前記複数のスケルトンジョイントのうちの1つであるターゲットジョイントの前記基準配置と当該ターゲットジョイントの目標となる配置とに基づいて、前記複数のスケルトンジョイントの前記基準配置を最終配置に修正する配置修正部と、前記複数のスケルトンジョイントの前記最終配置に基づいて、前記オブジェクトの前記仮想空間内における配置を決定するオブジェクト配置決定部と、を含む。   Further, the object placement system according to the present invention provides a plurality of ragdoll parts associated with the object based on the current placement of the object placed in the virtual space and the target placement of the object. A physical parameter setting unit for setting a physical parameter value; a physical simulation process executing unit for executing a physical simulation process in accordance with the physical parameter for the plurality of ragdoll parts; and the plurality of the post-physical simulation process A reference arrangement determining unit that determines a reference arrangement of a plurality of skeleton joints associated with the object based on an arrangement of the rag doll parts; and the reference arrangement of a target joint that is one of the plurality of skeleton joints; The target An arrangement correction unit that corrects the reference arrangement of the plurality of skeleton joints to a final arrangement based on a target arrangement of the objects; and the virtual space of the object based on the final arrangement of the plurality of skeleton joints An object placement determining unit for determining the placement in the inside.

また、本発明に係るオブジェクト配置方法は、仮想空間内に配置されたオブジェクトの現在の配置と、当該オブジェクトの目標となる配置と、に基づいて、当該オブジェクトに対応付けられる複数のラグドールパーツについての物理パラメータの値を設定するステップと、前記複数のラグドールパーツに対して前記物理パラメータに応じた物理シミュレーション処理を実行するステップと、前記物理シミュレーション処理の実行後の前記複数のラグドールパーツの配置に基づいて、前記オブジェクトに対応付けられる複数のスケルトンジョイントの基準配置を決定するステップと、前記複数のスケルトンジョイントのうちの1つであるターゲットジョイントの前記基準配置と当該ターゲットジョイントの目標となる配置とに基づいて、前記複数のスケルトンジョイントの前記基準配置を最終配置に修正するステップと、前記複数のスケルトンジョイントの前記最終配置に基づいて、前記オブジェクトの前記仮想空間内における配置を決定するステップと、を含む。   Further, the object placement method according to the present invention provides a plurality of ragdoll parts associated with the object based on the current placement of the object placed in the virtual space and the target placement of the object. Based on a step of setting a value of a physical parameter, a step of executing a physical simulation process according to the physical parameter for the plurality of ragdoll parts, and an arrangement of the plurality of ragdoll parts after the execution of the physical simulation process Determining a reference arrangement of a plurality of skeleton joints associated with the object; and a reference arrangement of a target joint that is one of the plurality of skeleton joints and an arrangement that is a target of the target joint. Based on the above And correcting of the reference arrangement of the skeleton joints in the final arrangement, based on the final arrangement of the plurality of skeletons joints, and determining the placement of the virtual space of the object.

本発明の一実施形態に係るエンタテインメント装置の構成図である。It is a block diagram of the entertainment apparatus which concerns on one Embodiment of this invention. 仮想空間の一例を示す図である。It is a figure which shows an example of virtual space. スケルトンの一例を示す図である。It is a figure which shows an example of a skeleton. ラグドールの一例を示す図である。It is a figure which shows an example of a rag doll. 第1表現例を説明する説明図である。It is explanatory drawing explaining the 1st expression example. 第1表現例を説明する説明図である。It is explanatory drawing explaining the 1st expression example. 第1表現例を説明する説明図である。It is explanatory drawing explaining the 1st expression example. 第1表現例を説明する説明図である。It is explanatory drawing explaining the 1st expression example. 第1表現例を説明する説明図である。It is explanatory drawing explaining the 1st expression example. 第2表現例を説明する説明図である。It is explanatory drawing explaining the 2nd example of expression. 第2表現例を説明する説明図である。It is explanatory drawing explaining the 2nd example of expression. 第2表現例を説明する説明図である。It is explanatory drawing explaining the 2nd example of expression. 第2表現例を説明する説明図である。It is explanatory drawing explaining the 2nd example of expression. 第2表現例を説明する説明図である。It is explanatory drawing explaining the 2nd example of expression. 第2表現例を説明する説明図である。It is explanatory drawing explaining the 2nd example of expression. 第3表現例を説明する説明図である。It is explanatory drawing explaining the 3rd example of expression. 第3表現例を説明する説明図である。It is explanatory drawing explaining the 3rd example of expression. 本発明の一実施形態に係るエンタテインメント装置で実装される機能の一例を示す機能ブロック図である。It is a functional block diagram which shows an example of the function mounted with the entertainment apparatus which concerns on one Embodiment of this invention. 本発明の一実施形態に係るエンタテインメント装置で行われる処理の流れの一例を示すフロー図である。It is a flowchart which shows an example of the flow of the process performed with the entertainment apparatus which concerns on one Embodiment of this invention.

以下、本発明の一実施形態について図面に基づき詳細に説明する。   Hereinafter, an embodiment of the present invention will be described in detail with reference to the drawings.

図1は、本発明の一実施形態に係るエンタテインメント装置10の構成図である。本実施形態に係るエンタテインメント装置10は、例えば、ゲームコンソール、携帯型ゲーム端末、パーソナルコンピュータ等である。図1に示すように、本実施形態に係るエンタテインメント装置10は、プロセッサ12、記憶部14、操作部16、表示部18、を含んでいる。   FIG. 1 is a configuration diagram of an entertainment apparatus 10 according to an embodiment of the present invention. The entertainment apparatus 10 according to the present embodiment is, for example, a game console, a portable game terminal, a personal computer, or the like. As shown in FIG. 1, the entertainment apparatus 10 according to the present embodiment includes a processor 12, a storage unit 14, an operation unit 16, and a display unit 18.

プロセッサ12は、エンタテインメント装置10にインストールされるプログラムに従って動作するCPU等のプログラム制御デバイスである。記憶部14は、ROMやRAM等の記憶素子やハードディスクドライブなどである。操作部16は、キーボードやマウス、あるいはゲームコンソールのコントローラ等であって、ユーザの操作入力を受け付けて、その内容を示す信号をプロセッサ12に出力する。表示部18は、液晶ディスプレイ等の表示デバイスであって、プロセッサ12の指示に従って各種の画像を表示する。   The processor 12 is a program control device such as a CPU that operates according to a program installed in the entertainment apparatus 10. The storage unit 14 is a storage element such as a ROM or a RAM, a hard disk drive, or the like. The operation unit 16 is a keyboard, a mouse, a game console controller, or the like. The operation unit 16 receives a user operation input and outputs a signal indicating the content to the processor 12. The display unit 18 is a display device such as a liquid crystal display, and displays various images in accordance with instructions from the processor 12.

なお、エンタテインメント装置10は、ネットワークボードなどの通信インタフェース、DVD−ROMやBlu−ray(登録商標)ディスクなどの光ディスクを読み取る光ディスクドライブ、USB(Universal Serial Bus)ポートなどを含んでいてもよい。   The entertainment apparatus 10 may include a communication interface such as a network board, an optical disk drive that reads an optical disk such as a DVD-ROM or a Blu-ray (registered trademark) disk, a USB (Universal Serial Bus) port, and the like.

本実施形態に係るエンタテインメント装置10は、本実施形態に係るプログラムを実行することにより、メモリ上に、図2に例示する仮想空間20を構築するようになっている。同図に示すように、本実施形態に係る仮想空間20は、仮想3次元空間であり、プレイヤオブジェクト22、床オブジェクト24、壁オブジェクト26、などの仮想オブジェクトが視点28とともに配置されている。そして本実施形態では、視点28から視線方向をみた様子を表す画像が表示部18に表示される。また本実施形態では、プレイヤオブジェクト22等の仮想オブジェクトの配置の更新及び視点28から視線方向をみた様子を表す画像の表示が所定のフレームレートで実行される。   The entertainment apparatus 10 according to the present embodiment constructs a virtual space 20 illustrated in FIG. 2 on a memory by executing a program according to the present embodiment. As shown in the figure, the virtual space 20 according to the present embodiment is a virtual three-dimensional space, and virtual objects such as a player object 22, a floor object 24, and a wall object 26 are arranged together with a viewpoint 28. In the present embodiment, an image representing a state in which the viewing direction is viewed from the viewpoint 28 is displayed on the display unit 18. Further, in the present embodiment, the update of the placement of the virtual object such as the player object 22 and the display of the image representing the state of viewing the viewing direction from the viewpoint 28 are executed at a predetermined frame rate.

本実施形態に係る仮想オブジェクトは、それぞれテクスチャがマッピングされている複数のポリゴンにより構成されている。また本実施形態では、エンタテインメント装置10のユーザは、操作部16を操作することによって、仮想空間20内においてプレイヤオブジェクト22を移動させることができるようになっている。   The virtual object according to the present embodiment is composed of a plurality of polygons each mapped with a texture. In the present embodiment, the user of the entertainment apparatus 10 can move the player object 22 in the virtual space 20 by operating the operation unit 16.

また、本実施形態に係るエンタテインメント装置10で実行されるプログラムには、古典力学の法則等の物理法則をシミュレートする物理シミュレーション処理を実行する物理エンジンの機能が実装されている。   In addition, the program executed by the entertainment apparatus 10 according to the present embodiment has a function of a physics engine that executes a physical simulation process that simulates a physical law such as a law of classical mechanics.

本実施形態に係るプレイヤオブジェクト22のレンダリングには、スケルトンアニメーションの技術が用いられる。図3は、プレイヤオブジェクト22に対応付けられる仮想的なスケルトン30の一例を示す図である。図3には、プレイヤオブジェクト22が手前側正面を向いて立っている状況におけるスケルトン30が示されている。本実施形態に係るスケルトン30は不可視の仮想オブジェクトである。図3に示すように、スケルトン30には、例えば、親子関係が設定された複数のスケルトンジョイント32(32a〜32s)が含まれる。これら複数のスケルトンジョイント32のうち、プレイヤオブジェクト22の胴体に対応付けられるルートスケルトンジョイント32aが最上位の親として設定される。図3の例では、スケルトンジョイント32は丸印で、スケルトンジョイント32間の親子関係は線で表現されている。そしてそれぞれのスケルトンジョイント32には、位置及び向きが設定される。   For rendering the player object 22 according to the present embodiment, a skeleton animation technique is used. FIG. 3 is a diagram illustrating an example of a virtual skeleton 30 associated with the player object 22. FIG. 3 shows the skeleton 30 in a situation where the player object 22 stands facing the front side of the front side. The skeleton 30 according to the present embodiment is an invisible virtual object. As shown in FIG. 3, the skeleton 30 includes, for example, a plurality of skeleton joints 32 (32a to 32s) in which a parent-child relationship is set. Of these skeleton joints 32, the root skeleton joint 32a associated with the body of the player object 22 is set as the highest parent. In the example of FIG. 3, the skeleton joint 32 is represented by a circle, and the parent-child relationship between the skeleton joints 32 is represented by a line. Each skeleton joint 32 is set in position and orientation.

本実施形態では、ルートスケルトンジョイント32aの配置を基準とした各スケルトンジョイント32の配置によって、スケルトン30のポーズが一意に決定されるようになっている。例えばルートスケルトンジョイント32aの位置及び向きを基準とした、各スケルトンジョイント32の位置及び向きの組合せによって、スケルトン30のポーズが一意に決定される。そして本実施形態では、ルートスケルトンジョイント32aの仮想空間20内における位置及び向きに従って、決定されるポーズのスケルトン30が仮想空間20内に配置される。そして本実施形態ではこのようにして配置されるスケルトン30に応じたプレイヤオブジェクト22のポリゴンモデルが生成されて仮想空間20内に配置される。以上のように本実施形態では、プレイヤオブジェクト22のポーズは、スケルトン30のポーズによって一意に決定される。またプレイヤオブジェクト22の位置及び向きは、ルートスケルトンジョイント32aの位置及び向きに基づいて一意に決定される。   In the present embodiment, the pose of the skeleton 30 is uniquely determined by the arrangement of each skeleton joint 32 based on the arrangement of the root skeleton joint 32a. For example, the pose of the skeleton 30 is uniquely determined by the combination of the position and orientation of each skeleton joint 32 based on the position and orientation of the root skeleton joint 32a. In the present embodiment, the skeleton 30 having a pose determined according to the position and orientation of the root skeleton joint 32 a in the virtual space 20 is arranged in the virtual space 20. In this embodiment, a polygon model of the player object 22 corresponding to the skeleton 30 arranged in this way is generated and arranged in the virtual space 20. As described above, in this embodiment, the pose of the player object 22 is uniquely determined by the pose of the skeleton 30. Further, the position and orientation of the player object 22 are uniquely determined based on the position and orientation of the root skeleton joint 32a.

図4は、図3に例示するスケルトン30に対応付けられるラグドール34の一例を示す図である。本実施形態に係るラグドール34は不可視の仮想オブジェクトである。本実施形態では、図4に例示するラグドール34に対して物理エンジンによる物理シミュレーション処理が実行される。なお図4には、参考のため、ラグドール34に対応付けられるスケルトン30が二点鎖線で示されている。ラグドール34には、複数のラグドールパーツ36(36a〜36m)と、ラグドールパーツ36間の物理的な制約を示すコンストレイント38(38a〜38l)と、が含まれる。個々のラグドールパーツ36は、例えば、柱形状、カプセル形状、球形状、あるいは、これらを組み合わせた形状のいずれかをしている。図4に示すように、スケルトンジョイント32とラグドールパーツ36とは1対1で対応付けられている必要はない。また図4の例では、親子関係にあるスケルトンジョイント32の組合せに対応付けられるラグドールパーツ36の組合せの間にはコンストレイント38が設定されている。   FIG. 4 is a diagram illustrating an example of a rag doll 34 associated with the skeleton 30 illustrated in FIG. 3. The rag doll 34 according to the present embodiment is an invisible virtual object. In the present embodiment, a physical simulation process by a physics engine is executed on the rag doll 34 illustrated in FIG. In FIG. 4, the skeleton 30 associated with the rag doll 34 is indicated by a two-dot chain line for reference. The rag doll 34 includes a plurality of rag doll parts 36 (36a to 36m) and a constraint 38 (38a to 38l) indicating physical restrictions between the rag doll parts 36. Each rag doll part 36 has, for example, a columnar shape, a capsule shape, a spherical shape, or a shape obtained by combining these. As shown in FIG. 4, the skeleton joint 32 and the rag doll part 36 do not have to be associated one-on-one. In the example of FIG. 4, a constraint 38 is set between the combinations of the rag doll parts 36 associated with the combination of the skeleton joints 32 having a parent-child relationship.

ラグドールパーツ36には、当該ラグドールパーツ36の物理量(例えば、位置、向き、質量、慣性モーメント、速度、角速度)や物理的な条件(例えば速度上限や角速度上限)を示す物理パラメータの値が設定されている。また複数のラグドールパーツ36を関連付けるコンストレイント38には、当該複数のラグドールパーツ36の間の距離の上限や下限、角度の上限や下限などといった拘束条件を示すパラメータの値が設定されている。本実施形態では例えば、物理エンジンに含まれるコンストレイントソルバーによって、コンストレイント38のパラメータの値が示す拘束条件をなるべく満足するような各ラグドールパーツ36の配置が決定されることとなる。ラグドールパーツ36に設定されている物理パラメータの値やコンストレイント38に設定されているパラメータの値には、状況に応じて可変なものもあれば、所与の固定値が設定された不変なものもある。   The rag doll part 36 is set with physical parameter values indicating physical quantities (for example, position, orientation, mass, moment of inertia, speed, angular velocity) and physical conditions (for example, upper limit of velocity and upper limit of angular velocity) of the rag doll part 36. ing. In addition, a constraint 38 that associates a plurality of ragdoll parts 36 is set with parameter values indicating constraint conditions such as an upper limit and a lower limit of a distance between the plurality of ragdoll parts 36 and an upper limit and a lower limit of an angle. In the present embodiment, for example, the arrangement of each rag doll part 36 that satisfies the constraint condition indicated by the parameter value of the constraint 38 is determined by the constraint solver included in the physical engine. Some of the physical parameter values set in the ragdoll part 36 and the parameter values set in the constraint 38 are variable depending on the situation. There are also things.

また本実施形態では、プレイヤオブジェクト22が、キーフレームモード又はダイナミックモードのいずれかの動作モードで動作する。プレイヤオブジェクト22の動作モードは、エンタテインメント装置10で実行されるプログラムによって適宜変更可能になっている。   In the present embodiment, the player object 22 operates in either the key frame mode or the dynamic mode. The operation mode of the player object 22 can be appropriately changed by a program executed by the entertainment device 10.

本実施形態では例えば、プレイヤによる操作入力や、直前のフレームにおけるスケルトン30の配置などに基づいて、当該フレームにおけるスケルトン30の目標となる配置が決定される。以下このようにして決定される配置を目標配置と呼ぶこととする。なお目標配置は、仮想空間20や他の仮想オブジェクトの状況を表すパラメータの値の影響を受けてもよい。   In the present embodiment, for example, based on the operation input by the player, the arrangement of the skeleton 30 in the previous frame, and the like, the target arrangement of the skeleton 30 in the frame is determined. Hereinafter, the arrangement determined in this way is referred to as a target arrangement. The target arrangement may be affected by the value of a parameter that represents the status of the virtual space 20 or other virtual object.

そして例えば、プレイヤオブジェクト22の動作モードがダイナミックモードである場合は、直前のフレームにおけるスケルトン30の配置とスケルトン30の目標配置とに基づいて、各ラグドールパーツ36の物理パラメータの値が設定される。そしてこのようにして物理パラメータの値が設定された各ラグドールパーツ36に対して物理シミュレーション処理が実行される。そして物理シミュレーション処理の実行後のラグドール34の配置に基づいて、スケルトン30の配置が決定される。そしてこのようにして決定されるスケルトン30の配置に基づいて一意に決定される配置が、プレイヤオブジェクト22の配置として決定される。   For example, when the operation mode of the player object 22 is the dynamic mode, the value of the physical parameter of each rag doll part 36 is set based on the arrangement of the skeleton 30 and the target arrangement of the skeleton 30 in the immediately preceding frame. Then, a physical simulation process is executed for each ragdoll part 36 in which the values of the physical parameters are set in this way. The arrangement of the skeleton 30 is determined based on the arrangement of the rag dolls 34 after the execution of the physical simulation process. Then, an arrangement uniquely determined based on the arrangement of the skeleton 30 determined in this way is determined as the arrangement of the player object 22.

一方、例えばプレイヤオブジェクト22の動作モードがキーフレームモードである場合は、スケルトン30の目標配置そのものに基づいて一意に決定される配置が、プレイヤオブジェクト22の配置として決定される。そのためこの場合は、プレイヤオブジェクト22の配置はラグドール34に対する物理シミュレーション処理の実行結果の影響は受けない。ただしこの場合でもラグドール34に対する物理シミュレーション処理は実行されて、その実行結果は仮想空間20内の他の仮想オブジェクトの配置に影響を与える。   On the other hand, for example, when the operation mode of the player object 22 is the key frame mode, an arrangement uniquely determined based on the target arrangement itself of the skeleton 30 is determined as the arrangement of the player object 22. Therefore, in this case, the placement of the player object 22 is not affected by the execution result of the physical simulation process for the rag doll 34. However, even in this case, the physical simulation process for the rag doll 34 is executed, and the execution result affects the arrangement of other virtual objects in the virtual space 20.

本実施形態に係るエンタテインメント装置10では、以下の第1表現例〜第3表現例に示すようなアニメーション表現を採用することで、プレイヤオブジェクト22がリアリティ高く表現される。また本実施形態によれば、プレイヤオブジェクト22のアニメーションをリアリティ高く表現するアニメータのタスクの一部が自動化される。   In the entertainment apparatus 10 according to the present embodiment, the player object 22 is expressed with high reality by adopting animation expressions as shown in the following first to third expression examples. Further, according to the present embodiment, a part of an animator task for expressing the animation of the player object 22 with high reality is automated.

以下、本実施形態におけるアニメーション表現の第1表現例を、図5A〜図5Eを参照しながら説明する。   Hereinafter, a first expression example of the animation expression in the present embodiment will be described with reference to FIGS. 5A to 5E.

第1表現例では、プレイヤオブジェクト22は、図2に示すように、壁オブジェクト26を手で掴んでおり、壁オブジェクト26にぶらさがっている状態であることとする。図5Aには、図2に示す状態のプレイヤオブジェクト22に対応付けられるスケルトン30及びラグドール34の一例が示されている。ここでは例えば左手の先に対応付けられるスケルトンジョイント32kが、壁オブジェクト26上の点P1に配置されており、右手の先に対応付けられるスケルトンジョイント32hが、壁オブジェクト26上の点P2に配置されていることとする。なお図5Aにおいては、ラグドールパーツ36間に設定されているコンストレイント38の図示は省略されている。   In the first expression example, it is assumed that the player object 22 is holding the wall object 26 with his hand and is hanging on the wall object 26 as shown in FIG. FIG. 5A shows an example of the skeleton 30 and the rag doll 34 associated with the player object 22 in the state shown in FIG. Here, for example, the skeleton joint 32k associated with the tip of the left hand is disposed at the point P1 on the wall object 26, and the skeleton joint 32h associated with the tip of the right hand is disposed at the point P2 on the wall object 26. Suppose that In FIG. 5A, the illustration of the constraint 38 set between the rag doll parts 36 is omitted.

また第1表現例では、ラグドールパーツ36gと点P1の位置との接続を示すコンストレイント38mが生成されていることとする。ここで例えばラグドールパーツ36gと点P1の位置に配置されるラグドールパーツ36との接続を示すコンストレイント38mが生成されてもよい。このコンストレイント38mによって、物理エンジンのコンストレイントソルバーは、ラグドールパーツ36gの位置と点P1の位置との間の距離ができるだけ短くなるよう各ラグドールパーツ36の配置を決定することとなる。またラグドールパーツ36eと点P2の位置との接続を示すコンストレイント38nが生成されていることとする。ここで例えばラグドールパーツ36eと点P2の位置に配置されるラグドールパーツ36との接続を示すコンストレイント38nが生成されてもよい。このコンストレイント38nによって、物理エンジンのコンストレイントソルバーは、ラグドールパーツ36eの位置と点P2の位置との間の距離ができるだけ短くなるよう各ラグドールパーツ36の配置を決定することとなる。   In the first expression example, it is assumed that a constraint 38m indicating the connection between the rag doll part 36g and the position of the point P1 is generated. Here, for example, a constraint 38m indicating a connection between the rag doll part 36g and the rag doll part 36 arranged at the position of the point P1 may be generated. By this constraint 38m, the constraint solver of the physics engine determines the arrangement of each rag doll part 36 so that the distance between the position of the rag doll part 36g and the position of the point P1 is as short as possible. It is also assumed that a constraint 38n indicating the connection between the rag doll part 36e and the position of the point P2 is generated. Here, for example, a constraint 38n indicating the connection between the rag doll part 36e and the rag doll part 36 arranged at the position of the point P2 may be generated. By this constraint 38n, the constraint solver of the physics engine determines the arrangement of each rag doll part 36 so that the distance between the position of the rag doll part 36e and the position of the point P2 is as short as possible.

ここで図5Aに示す状況で壁オブジェクト26が右側に向かって高速で移動した際における、ラグドールパーツ36に対する物理シミュレーション結果を図5Bに例示する。なおここでは例えば図5Aに示す状況の次のフレームにおいて壁オブジェクト26が図5Bに例示する位置まで移動することとする。なお図5Bにおいても、ラグドールパーツ36間に設定されているコンストレイント38の図示は省略されている。   Here, FIG. 5B illustrates a physical simulation result for the rag doll part 36 when the wall object 26 moves at high speed toward the right side in the situation shown in FIG. 5A. Here, for example, in the next frame in the situation shown in FIG. 5A, the wall object 26 moves to the position illustrated in FIG. 5B. Also in FIG. 5B, the illustration of the constraint 38 set between the rag doll parts 36 is omitted.

本実施形態では各ラグドールパーツ36に対して独立して物理シミュレーション処理が実行される。そのため図5Bに示すように、物理シミュレーション処理の結果、ラグドール34が全体として縦に伸びてしまうことがある。   In the present embodiment, the physical simulation process is executed independently for each ragdoll part 36. Therefore, as shown in FIG. 5B, as a result of the physical simulation process, the rag doll 34 may extend vertically as a whole.

図5Cに、図5Bに示すラグドール34に基づいて一意に決定されるスケルトン30の配置の一例を示す。図5Bに示すラグドール34が全体として縦に伸びていることによって、図5Cに示すスケルトン30も全体として縦に伸びる。そのため図5Cに示すスケルトン30に基づいて生成されるプレイヤオブジェクト22をレンダリングすると、表示されるプレイヤオブジェクト22が全体として縦に伸びてしまう。またプレイヤオブジェクト22の手の位置が掴んでいた位置からずれてしまう。   FIG. 5C shows an example of the arrangement of the skeleton 30 that is uniquely determined based on the rag doll 34 shown in FIG. 5B. When the rag doll 34 shown in FIG. 5B extends vertically as a whole, the skeleton 30 shown in FIG. 5C also extends vertically as a whole. Therefore, when the player object 22 generated based on the skeleton 30 shown in FIG. 5C is rendered, the displayed player object 22 extends vertically as a whole. Further, the position of the hand of the player object 22 is deviated from the grasped position.

図5Dに、ルートスケルトンジョイント32aの位置及び向きを維持したまま、図5Cに示すスケルトンジョイント32の配置を補正した状態の一例を示す。以下、第1表現例においては、図5Dに示すスケルトンジョイント32の配置を基準配置と呼ぶこととする。ここではあるスケルトンジョイント32から当該スケルトンジョイント32の子であるスケルトンジョイント32への向きは、補正前後で維持されている。一方、親子関係にある2つのスケルトンジョイント32間の長さは、物理シミュレーション処理の実行前である図5Aに示す状態における長さとなっている。図5Dに示す、基準配置のスケルトンジョイント32に基づいて生成されるプレイヤオブジェクト22をレンダリングした場合は、表示されるプレイヤオブジェクト22が全体として縦に伸びてしまうことは防げる。しかしこの場合も、表示されるプレイヤオブジェクト22の手の位置が掴んでいた位置からずれてしまうこととなる。   FIG. 5D shows an example of a state in which the arrangement of the skeleton joint 32 shown in FIG. 5C is corrected while maintaining the position and orientation of the root skeleton joint 32a. Hereinafter, in the first expression example, the arrangement of the skeleton joint 32 illustrated in FIG. 5D is referred to as a reference arrangement. Here, the direction from a skeleton joint 32 to the skeleton joint 32 that is a child of the skeleton joint 32 is maintained before and after correction. On the other hand, the length between the two skeleton joints 32 in the parent-child relationship is the length in the state shown in FIG. 5A before the execution of the physical simulation process. When the player object 22 generated based on the skeleton joint 32 of the reference arrangement shown in FIG. 5D is rendered, it is possible to prevent the displayed player object 22 from extending vertically as a whole. However, in this case as well, the position of the displayed hand of the player object 22 will deviate from the position it was gripping.

以上の点を踏まえ、第1表現例では、図5Eに例示するようにスケルトン30が配置されるようにした。図5Eでは、スケルトンジョイント32kの位置が、壁オブジェクト26上の点P1に配置されるよう、図5Dに示す、スケルトンジョイント32の基準配置が補正されている。以下、第1表現例においては、図5Eに示すスケルトンジョイント32の配置を最終配置と呼ぶこととする。図5Eの例では、複数のスケルトンジョイント32の相対的な配置は図5Dに示す状態で維持されたまま、これら複数のスケルトンジョイント32が全体として平行移動されている。図5Eに示す最終配置のスケルトンジョイント32に基づいて生成されるプレイヤオブジェクト22をレンダリングした場合は、表示されるプレイヤオブジェクト22の左手は壁オブジェクト26上の点P1に配置される。そのため表示されるプレイヤオブジェクト22はリアリティ高く表現されることとなる。   Based on the above points, in the first expression example, the skeleton 30 is arranged as illustrated in FIG. 5E. In FIG. 5E, the reference arrangement of the skeleton joint 32 shown in FIG. 5D is corrected so that the position of the skeleton joint 32k is arranged at the point P1 on the wall object 26. Hereinafter, in the first expression example, the arrangement of the skeleton joint 32 illustrated in FIG. 5E is referred to as a final arrangement. In the example of FIG. 5E, the plurality of skeleton joints 32 are translated as a whole while the relative arrangement of the plurality of skeleton joints 32 is maintained in the state shown in FIG. 5D. When the player object 22 generated based on the skeleton joint 32 of the final arrangement shown in FIG. 5E is rendered, the left hand of the player object 22 to be displayed is arranged at the point P1 on the wall object 26. Therefore, the displayed player object 22 is expressed with high reality.

なお第1表現例におけるスケルトンジョイント32の最終配置において、スケルトンジョイント32hの位置が、壁オブジェクト26上の点P2に配置されるようにしてもよい。この場合は、表示されるプレイヤオブジェクト22の右手が壁オブジェクト26上の点P2に配置されることとなる。   In the final arrangement of the skeleton joint 32 in the first expression example, the position of the skeleton joint 32h may be arranged at the point P2 on the wall object 26. In this case, the right hand of the displayed player object 22 is placed at the point P2 on the wall object 26.

以上のようにして第1表現例では、プレイヤオブジェクト22が壁オブジェクト26を掴んだままの状態で、その体が揺さぶられる様子がリアリティ高く表現されることとなる。   As described above, in the first expression example, a state in which the body is shaken while the player object 22 holds the wall object 26 is expressed with high reality.

次に、本実施形態におけるアニメーション表現の第2表現例を、図6A〜図6Fを参照しながら説明する。なお図6A〜図6Fでは、一部のスケルトンジョイント32、一部のラグドールパーツ36、及び、ラグドールパーツ36間に設定されているコンストレイント38の図示は省略されている。   Next, a second expression example of the animation expression in the present embodiment will be described with reference to FIGS. 6A to 6F. In FIGS. 6A to 6F, some of the skeleton joints 32, some of the rag doll parts 36, and the constraints 38 set between the rag doll parts 36 are omitted.

第2表現例では、壁オブジェクト26を背にして床オブジェクト24に立っているプレイヤオブジェクト22が体をひねりながらジャンプして壁オブジェクト26上の点P3を右手で掴む様子が表現される。   In the second expression example, a state where the player object 22 standing on the floor object 24 with the wall object 26 in the back jumps while twisting the body and grabs the point P3 on the wall object 26 with the right hand is expressed.

第2表現例では、プレイヤオブジェクト22は、まずはキーフレームモードで動作した状態で真上にジャンプした様子が表示され、その後動作モードがダイナミックモードに移行する。   In the second expression example, first, the player object 22 is displayed in a state in which the player object 22 jumps right above in the state of operating in the key frame mode, and then the operation mode shifts to the dynamic mode.

図6Aには、プレイヤオブジェクト22の動作モードがダイナミックモードに移行したタイミングにおける、スケルトン30及びラグドール34の一例が示されている。このスケルトン30の配置は、ラグドール34の配置に基づいて一意に決定される配置である。第2表現例では、図6Aに示すスケルトン30の配置が基準配置に相当する。   FIG. 6A shows an example of the skeleton 30 and the rag doll 34 at the timing when the operation mode of the player object 22 shifts to the dynamic mode. The arrangement of the skeleton 30 is an arrangement that is uniquely determined based on the arrangement of the rag dolls 34. In the second expression example, the arrangement of the skeletons 30 illustrated in FIG. 6A corresponds to the reference arrangement.

ここで例えば、ラグドールパーツ36eと点P3の位置との接続を示すコンストレイント38oが生成されることとする。ここで例えばラグドールパーツ36eと点P3の位置に配置されるラグドールパーツ36との接続を示すコンストレイント38oが生成されてもよい。このコンストレイント38oによって、物理エンジンのコンストレイントソルバーは、ラグドールパーツ36eの位置と点P3の位置との間の距離ができるだけ短くなるよう各ラグドールパーツ36の配置を決定することとする。   Here, for example, a constraint 38o indicating the connection between the ragdoll part 36e and the position of the point P3 is generated. Here, for example, a constraint 38o indicating the connection between the rag doll part 36e and the rag doll part 36 arranged at the position of the point P3 may be generated. With this constraint 38o, the constraint solver of the physics engine determines the arrangement of each rag doll part 36 so that the distance between the position of the rag doll part 36e and the position of the point P3 is as short as possible.

この場合、図6Bに例示するように、ラグドールパーツ36eが点P3の位置に近づいていく。しかしこのようにすると、プレイヤオブジェクト22のアニメーション表現が不自然なものとなる。具体的にはこの場合には、プレイヤオブジェクト22が自らの意思で体をひねりながらジャンプした様子がリアリティ高く表現されない。   In this case, as illustrated in FIG. 6B, the rag doll part 36e approaches the position of the point P3. However, when this is done, the animation expression of the player object 22 becomes unnatural. Specifically, in this case, the state in which the player object 22 jumps while twisting his / her own intention is not expressed with high reality.

ここで例えば、図6Cに示すように、スケルトンジョイント32hが、壁オブジェクト26上の点P3に配置されるよう、図6Aに示すスケルトンジョイント32の配置を補正したとする。ここでは複数のスケルトンジョイント32の相対的な配置は図6Aに示す状態が維持されたまま、これら複数のスケルトンジョイント32が全体として平行移動されている。しかしこのようにすると、プレイヤオブジェクト22が壁オブジェクト26にめりこんでしまい、やはりプレイヤオブジェクト22のアニメーション表現は不自然なものとなる。   Here, for example, as shown in FIG. 6C, it is assumed that the arrangement of the skeleton joint 32 shown in FIG. 6A is corrected so that the skeleton joint 32h is arranged at the point P3 on the wall object 26. Here, the relative arrangement of the plurality of skeleton joints 32 is translated as a whole while the state shown in FIG. 6A is maintained. However, if this is done, the player object 22 sinks into the wall object 26, and the animation expression of the player object 22 is also unnatural.

以上の点を踏まえ、第2表現例では、以下のようにして所与の補間時間Tにわたって徐々にスケルトン30全体を回転させることで、プレイヤオブジェクト22が自らの意思で体をひねりながらジャンプした様子がリアリティ高く表現されるようにした。   Based on the above points, in the second expression example, the player object 22 jumps while twisting his / her own body by rotating the entire skeleton 30 gradually over a given interpolation time T as follows. Was expressed with high reality.

図6Dには、図6Aに示すスケルトン30が二点鎖線で示されており、当該スケルトン30全体をルートスケルトンジョイント32aの位置を変えずに回転させたスケルトン30が実線で示されている。図6Dに示すように第2表現例では、まず、ルートスケルトンジョイント32aからスケルトンジョイント32hに向かうベクトルV1と、ルートスケルトンジョイント32aから点P3に向かうベクトルV2とが特定される。そして、複数のスケルトンジョイント32の相対的な配置及びルートスケルトンジョイント32aの位置は図6Aに示す状態で維持されたまま、これら複数のスケルトンジョイント32を全体として回転させた配置が特定される。ここではベクトルV1がベクトルV2に重なるよう回転させた配置が特定される。   In FIG. 6D, the skeleton 30 shown in FIG. 6A is indicated by a two-dot chain line, and the skeleton 30 obtained by rotating the entire skeleton 30 without changing the position of the root skeleton joint 32a is indicated by a solid line. As shown in FIG. 6D, in the second expression example, first, a vector V1 from the root skeleton joint 32a to the skeleton joint 32h and a vector V2 from the root skeleton joint 32a to the point P3 are specified. And the arrangement | positioning which rotated these several skeleton joint 32 as a whole is specified, maintaining the relative arrangement | positioning of the several skeleton joint 32, and the position of the root skeleton joint 32a in the state shown to FIG. 6A. Here, an arrangement in which the vector V1 is rotated so as to overlap the vector V2 is specified.

ここで例えば、ルートスケルトンジョイント32aの回転軸は、ベクトルV1を正規化したベクトルとベクトルV2を正規化したベクトルとの外積の方向に相当する。またルートスケルトンジョイント32aの回転角度は、ベクトルV1を正規化したベクトルとベクトルV2を正規化したベクトルとの内積のアークコサインの値に相当する。ここで上述のようにして算出される回転軸及び回転角度に対応付けられるクォータニオンを基準配置の複数のスケルトンジョイント32に適用することで、複数のスケルトンジョイント32を全体として回転させた配置が特定されるようにしてもよい。   Here, for example, the rotation axis of the root skeleton joint 32a corresponds to the direction of the outer product of a vector obtained by normalizing the vector V1 and a vector obtained by normalizing the vector V2. The rotation angle of the root skeleton joint 32a corresponds to the arc cosine value of the inner product of the vector normalized by the vector V1 and the vector normalized by the vector V2. Here, by applying the quaternion associated with the rotation axis and the rotation angle calculated as described above to the plurality of skeleton joints 32 in the reference arrangement, the arrangement obtained by rotating the plurality of skeleton joints 32 as a whole is specified. You may make it do.

そして図6Eに示すように、スケルトンジョイント32hの位置が点P3の位置と重なるよう複数のスケルトンジョイント32を全体として平行移動させた配置が特定される。図6Eでは、平行移動前のスケルトン30が二点鎖線で示されており、平行移動後のスケルトン30が実線で示されている。ここでは複数のスケルトンジョイント32を全体としてベクトルV2に沿って平行移動させた配置が特定されることとなる。以下、図6Eにおいて実線で示されているスケルトン30の配置を調整配置と呼ぶこととする。   Then, as shown in FIG. 6E, an arrangement in which the plurality of skeleton joints 32 are translated as a whole is specified so that the position of the skeleton joint 32h overlaps the position of the point P3. In FIG. 6E, the skeleton 30 before translation is indicated by a two-dot chain line, and the skeleton 30 after translation is indicated by a solid line. Here, the arrangement in which the plurality of skeleton joints 32 are translated in parallel along the vector V2 is specified. Hereinafter, the arrangement of the skeleton 30 indicated by the solid line in FIG. 6E is referred to as an adjustment arrangement.

そして第2表現例では、図6Fに示すように、スケルトン30の基準配置とスケルトン30の調整配置とを公知の補間技術により補間した配置が、スケルトン30の最終配置として決定される。図6Fでは、スケルトン30の基準配置が破線で示されておりスケルトン30の調整配置が二点鎖線で示されている。そして補間後のスケルトン30の最終配置が実線で示されている。   In the second expression example, as illustrated in FIG. 6F, an arrangement obtained by interpolating the reference arrangement of the skeleton 30 and the adjustment arrangement of the skeleton 30 by a known interpolation technique is determined as the final arrangement of the skeleton 30. In FIG. 6F, the reference arrangement of the skeleton 30 is indicated by a broken line, and the adjustment arrangement of the skeleton 30 is indicated by a two-dot chain line. The final arrangement of the skeleton 30 after the interpolation is indicated by a solid line.

ここで、第2表現例における補間の開始タイミングから現在までの時間をtとする。この場合、補間処理における、基準配置のスケルトン30の重みは(T−t)/Tとなり、調整配置のスケルトン30の重みはt/Tとなる。このようにすることで徐々に回転するプレイヤオブジェクト22がリアリティ高く表現されることとなる。なお第2表現例で用いられる補間技術の例として、線形補間や球面線形補間などが挙げられるが、これらの技術以外の、非線形補間等の補間技術が用いられても構わない。   Here, t is the time from the interpolation start timing to the present time in the second expression example. In this case, the weight of the reference arrangement skeleton 30 in the interpolation process is (T−t) / T, and the weight of the adjustment arrangement skeleton 30 is t / T. In this way, the player object 22 that rotates gradually is expressed with high reality. Note that examples of the interpolation technique used in the second expression example include linear interpolation and spherical linear interpolation, but interpolation techniques such as nonlinear interpolation other than these techniques may be used.

なお第2表現例では、補間処理が行われている間においても毎フレーム、当該フレームのラグドール34に対して物理シミュレーション処理が実行される。そして当該フレームにおける物理シミュレーション処理の実行後のラグドールパーツ36の配置に基づいてスケルトンジョイント32の相対的な配置(スケルトン30のポーズ)が一意に決定される。そしてこのようにしてポーズが決定されるスケルトン30が、仮想空間20内に配置されることとなる。   In the second expression example, the physical simulation process is performed on the rag doll 34 of each frame, even during the interpolation process. The relative arrangement of the skeleton joint 32 (the pose of the skeleton 30) is uniquely determined based on the arrangement of the rag doll parts 36 after execution of the physical simulation process in the frame. The skeleton 30 whose pose is determined in this way is arranged in the virtual space 20.

次に、本実施形態におけるアニメーション表現の第3表現例を、図7A、及び、図7Bを参照しながら説明する。   Next, a third expression example of the animation expression in the present embodiment will be described with reference to FIGS. 7A and 7B.

第3表現例では、プレイヤオブジェクト22の左手が図7Aに示す壁オブジェクト26上の点P4を掴んだ状態から、壁オブジェクト26上の図7Aに示す点P5に配置されている右手を点P6の位置まで移動させる様子が表現される。ここでプレイヤオブジェクト22の左手はスケルトンジョイント32kに相当し、プレイヤオブジェクト22の右手はスケルトンジョイント32hに相当する。また第3表現例では、プレイヤオブジェクト22の左手が壁オブジェクト26上の点P4を掴んだタイミングから右手が点P6を掴んだタイミングまでの時間が、補間時間Tに相当することとなる。   In the third expression example, from the state where the left hand of the player object 22 grabs the point P4 on the wall object 26 shown in FIG. 7A, the right hand arranged at the point P5 shown in FIG. The movement to the position is expressed. Here, the left hand of the player object 22 corresponds to the skeleton joint 32k, and the right hand of the player object 22 corresponds to the skeleton joint 32h. Further, in the third expression example, the time from the timing when the left hand of the player object 22 grasps the point P4 on the wall object 26 to the timing when the right hand grasps the point P6 corresponds to the interpolation time T.

図7Aには、プレイヤオブジェクト22に対応付けられるスケルトン30及びラグドール34の一例が示されている。なお図7Aにおいては、ラグドールパーツ36間に設定されているコンストレイント38の図示は省略されている。   FIG. 7A shows an example of a skeleton 30 and a rag doll 34 associated with the player object 22. In FIG. 7A, the illustration of the constraint 38 set between the rag doll parts 36 is omitted.

第3表現例は、上述の第1表現例又は第2表現例と同様の方法により決定される基準配置のスケルトンジョイント32を補正することで、スケルトンジョイント32kが壁オブジェクト26上の点P4に配置されたスケルトンジョイント32の配置が特定される。この配置を第1の調整配置と呼ぶこととする。また上述の第1表現例又は第2表現例と同様の方法により決定される基準配置のスケルトンジョイント32を補正することで、スケルトンジョイント32hが壁オブジェクト26上の点P6に配置されたスケルトンジョイント32の配置も特定される。この配置を第2の調整配置と呼ぶこととする。図7Bでは、第1の調整配置のスケルトン30が破線で示されており、第2の調整配置のスケルトンが二点鎖線で示されている。   In the third expression example, the skeleton joint 32k is arranged at the point P4 on the wall object 26 by correcting the skeleton joint 32 of the reference arrangement determined by the same method as the first expression example or the second expression example. The arrangement of the skeleton joint 32 is specified. This arrangement is referred to as a first adjustment arrangement. Further, the skeleton joint 32 in which the skeleton joint 32h is arranged at the point P6 on the wall object 26 is corrected by correcting the skeleton joint 32 having the reference arrangement determined by the same method as the first expression example or the second expression example. Is also specified. This arrangement will be referred to as a second adjustment arrangement. In FIG. 7B, the skeleton 30 of the first adjustment arrangement is indicated by a broken line, and the skeleton of the second adjustment arrangement is indicated by a two-dot chain line.

そして、第3表現例では、第1の調整配置のスケルトン30と第2の調整配置のスケルトン30とを公知の補間技術により補間した配置が、スケルトン30の最終配置として決定される。図7Bでは、補間されたスケルトン30の最終配置が実線で示されている。   In the third expression example, an arrangement obtained by interpolating the skeleton 30 having the first adjustment arrangement and the skeleton 30 having the second adjustment arrangement by a known interpolation technique is determined as the final arrangement of the skeleton 30. In FIG. 7B, the final placement of the interpolated skeleton 30 is indicated by a solid line.

ここで、第3表現例における補間の開始タイミングから現在までの時間をtとする。この場合、補間処理における、第1の調整配置の重みは(T−t)/Tとなり、第2の調整配置の重みはt/Tとなる。このようにすることで壁オブジェクト26にぶら下がった状態で右手を移動させるプレイヤオブジェクト22がリアリティ高く表現されることとなる。なお第3表現例で用いられる補間技術の例として、線形補間や球面線形補間などが挙げられるが、これらの技術以外の、非線形補間等の補間技術が用いられても構わない。   Here, the time from the interpolation start timing to the present time in the third expression example is t. In this case, the weight of the first adjustment arrangement in the interpolation process is (T−t) / T, and the weight of the second adjustment arrangement is t / T. In this way, the player object 22 that moves the right hand while hanging from the wall object 26 is expressed with high reality. Note that examples of the interpolation technique used in the third expression example include linear interpolation and spherical linear interpolation. However, other interpolation techniques such as nonlinear interpolation may be used.

第3表現例での表現は、プレイヤオブジェクト22の右手が図7Aに示す壁オブジェクト26を掴んだ状態から、左手を移動させる様子の表現にも用いることができる。そして右手を移動させる表現と左手を移動させる表現を交互に繰り返し行うことで、プレイヤオブジェクト22が壁オブジェクト26にぶら下がっている状態から左右の手を交互に移動させる様子がリアリティ高く表現されることとなる。   The expression in the third expression example can also be used to express the state in which the left hand is moved from the state in which the right hand of the player object 22 grabs the wall object 26 shown in FIG. 7A. Then, by alternately repeating the expression of moving the right hand and the expression of moving the left hand, the state in which the left and right hands are alternately moved from the state in which the player object 22 is hanging on the wall object 26 is expressed with high reality. Become.

以下、本実施形態に係るエンタテインメント装置10の機能、及び、エンタテインメント装置10で実行される処理についてさらに説明する。   Hereinafter, functions of the entertainment device 10 according to the present embodiment and processing executed by the entertainment device 10 will be further described.

図8は、本実施形態に係るエンタテインメント装置10の機能ブロック図である。図8に示すように、エンタテインメント装置10は、機能的に、アニメーションデータ記憶部40、スケルトンデータ記憶部42、ラグドールデータ記憶部44、目標配置決定部46、物理パラメータ設定部48、物理シミュレーション処理実行部50、フィードバック部52、オブジェクト配置決定部54、画像生成出力部56を含んでいる。アニメーションデータ記憶部40、スケルトンデータ記憶部42、ラグドールデータ記憶部44は、記憶部14を主として実装される。目標配置決定部46、物理パラメータ設定部48、物理シミュレーション処理実行部50、フィードバック部52、オブジェクト配置決定部54は、プロセッサ12を主として実装される。画像生成出力部56は、プロセッサ12及び表示部18を主として実装される。   FIG. 8 is a functional block diagram of the entertainment apparatus 10 according to the present embodiment. As shown in FIG. 8, the entertainment device 10 functionally includes an animation data storage unit 40, a skeleton data storage unit 42, a ragdoll data storage unit 44, a target arrangement determination unit 46, a physical parameter setting unit 48, and a physical simulation process execution. A unit 50, a feedback unit 52, an object arrangement determination unit 54, and an image generation output unit 56. The animation data storage unit 40, the skeleton data storage unit 42, and the ragdoll data storage unit 44 are mainly implemented by the storage unit 14. The target placement determination unit 46, physical parameter setting unit 48, physical simulation processing execution unit 50, feedback unit 52, and object placement determination unit 54 are implemented mainly by the processor 12. The image generation / output unit 56 is mainly mounted with the processor 12 and the display unit 18.

以上の機能は、コンピュータであるエンタテインメント装置10にインストールされた、以上の機能に対応する指令を含むプログラムをプロセッサ12で実行することにより実装されてもよい。このプログラムは、例えば、光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等のコンピュータ読み取り可能な情報記憶媒体を介して、あるいは、インターネットなどを介してエンタテインメント装置10に供給されてもよい。   The above functions may be implemented by causing the processor 12 to execute a program that is installed in the entertainment device 10 that is a computer and that includes instructions corresponding to the above functions. This program may be supplied to the entertainment apparatus 10 via a computer-readable information storage medium such as an optical disk, a magnetic disk, a magnetic tape, a magneto-optical disk, or a flash memory, or via the Internet.

アニメーションデータ記憶部40には、本実施形態では例えば、仮想オブジェクトが配置されている仮想空間20を表すデータが記憶されている。またアニメーションデータ記憶部40には、仮想空間20に配置されている仮想オブジェクトに関するポリゴンデータやテクスチャデータなども記憶されている。またアニメーションデータ記憶部40には、例えば、走る、歩く、ジャンプする、などといったプレイヤオブジェクト22のアクションを表現するためのキーフレームアニメーションのデータも記憶されている。またアニメーションデータ記憶部40には、スケルトンジョイント32の配置とプレイヤオブジェクト22のポーズとを対応付ける規則を示すデータも記憶されている。   In the present embodiment, for example, data representing the virtual space 20 in which the virtual object is arranged is stored in the animation data storage unit 40. The animation data storage unit 40 also stores polygon data, texture data, and the like related to a virtual object arranged in the virtual space 20. The animation data storage unit 40 also stores key frame animation data for expressing the action of the player object 22 such as running, walking, jumping, and the like. The animation data storage unit 40 also stores data indicating rules for associating the arrangement of the skeleton joint 32 with the pose of the player object 22.

スケルトンデータ記憶部42には、本実施形態では例えば、上述のスケルトン30を表すスケルトンデータが記憶されている。スケルトンデータには、例えばルートスケルトンジョイント32aの位置及び向きを示すデータや、ルートスケルトンジョイント32aを基準としたスケルトンジョイント32の相対的な位置及び相対的な向きを示すデータが含まれる。また、スケルトンデータには、各スケルトンジョイント32について、当該スケルトンジョイント32の親のスケルトンジョイント32の識別情報が含まれる。またスケルトンデータ記憶部42には、ラグドールパーツ36の配置とスケルトンジョイント32の配置とを対応付ける規則を示すデータも記憶されている。   In the present embodiment, for example, skeleton data representing the skeleton 30 is stored in the skeleton data storage unit 42. The skeleton data includes, for example, data indicating the position and orientation of the root skeleton joint 32a and data indicating the relative position and orientation of the skeleton joint 32 with respect to the root skeleton joint 32a. Further, the skeleton data includes, for each skeleton joint 32, identification information of the skeleton joint 32 that is the parent of the skeleton joint 32. The skeleton data storage unit 42 also stores data indicating rules for associating the arrangement of the rag doll parts 36 and the arrangement of the skeleton joints 32.

ラグドールデータ記憶部44には、本実施形態では例えば、上述のラグドール34を表すラグドールデータが記憶されている。ラグドールデータには、例えば、各ラグドールパーツ36に設定されている物理パラメータの値が設定されたデータや、コンストレイント38のパラメータの値が設定されたデータなどが含まれる。またラグドールデータ記憶部44には、スケルトン30の現在の配置とスケルトン30の目標配置とに基づいて、ラグドールパーツ36に設定される物理パラメータの値を決定する規則を示すデータも記憶されている。   In the present embodiment, for example, rag doll data representing the rag doll 34 is stored in the rag doll data storage unit 44. The rag doll data includes, for example, data in which the values of physical parameters set in each rag doll part 36 are set, data in which the values of parameters of the constraint 38 are set, and the like. The rag doll data storage unit 44 also stores data indicating rules for determining values of physical parameters set in the rag doll part 36 based on the current arrangement of the skeleton 30 and the target arrangement of the skeleton 30.

目標配置決定部46は、本実施形態では例えば、プレイヤによる操作入力や、仮想空間20内に配置されたオブジェクトの現在の配置などに基づいて、当該オブジェクトの目標となる配置を決定する。ここで例えばプレイヤによる操作入力や、直前のフレームにおけるスケルトン30の配置などに基づいて、当該フレームにおけるスケルトン30の目標配置が決定されてもよい。また上述のように目標配置は、仮想空間20や他の仮想オブジェクトの状況を表すパラメータの値の影響を受けてもよい。   In the present embodiment, the target arrangement determining unit 46 determines the target arrangement of the object based on, for example, an operation input by the player or the current arrangement of the object arranged in the virtual space 20. Here, the target arrangement of the skeleton 30 in the frame may be determined based on, for example, an operation input by the player or the arrangement of the skeleton 30 in the immediately preceding frame. Further, as described above, the target arrangement may be affected by the value of a parameter representing the status of the virtual space 20 or other virtual objects.

物理パラメータ設定部48は、本実施形態では例えば、仮想空間20内に配置されたオブジェクトの現在の配置と、当該オブジェクトの目標となる配置と、に基づいて、物理パラメータの値を設定する。ここで例えば、複数のスケルトンジョイント32の現在の配置と、プレイヤオブジェクト22の目標配置と、に基づいて、プレイヤオブジェクト22に対応付けられる複数のラグドールパーツ36についての物理パラメータの値が設定されてもよい。また例えば、複数のラグドールパーツ36の現在の配置と、プレイヤオブジェクト22の目標配置と、に基づいて、プレイヤオブジェクト22に対応付けられる複数のラグドールパーツ36についての物理パラメータの値が設定されてもよい。また例えば、スケルトン30の現在の配置、スケルトン30の目標配置、及び、ラグドールデータ記憶部44に記憶されている規則を示すデータに基づいて、複数のラグドールパーツ36についての物理パラメータの値が設定されてもよい。また例えば、ラグロールデータに設定されている、各ラグドールパーツ36についての物理パラメータの値が変更されてもよい。   In this embodiment, for example, the physical parameter setting unit 48 sets the value of the physical parameter based on the current arrangement of the object arranged in the virtual space 20 and the target arrangement of the object. Here, for example, based on the current arrangement of the plurality of skeleton joints 32 and the target arrangement of the player object 22, the values of physical parameters for the plurality of ragdoll parts 36 associated with the player object 22 are set. Good. Further, for example, based on the current arrangement of the plurality of ragdoll parts 36 and the target arrangement of the player object 22, values of physical parameters for the plurality of ragdoll parts 36 associated with the player object 22 may be set. . Further, for example, based on data indicating the current arrangement of the skeleton 30, the target arrangement of the skeleton 30, and the rules stored in the ragdoll data storage unit 44, the values of the physical parameters for the plurality of ragdoll parts 36 are set. May be. For example, the value of the physical parameter for each rag doll part 36 set in the rag roll data may be changed.

物理シミュレーション処理実行部50は、本実施形態では例えば、複数のラグドールパーツ36に対して、設定される物理パラメータに応じた物理シミュレーション処理を実行する。ここでは例えば、各ラグドールパーツに設定されている物理パラメータの値や、コンストレイント38に設定されているパラメータの値に基づいて、各ラグドールパーツ36に対する物理シミュレーション処理が実行される。そして、ラグドールデータに設定されている、各ラグドールパーツ36についての位置や向き等の物理パラメータの値が変更される。   In the present embodiment, the physical simulation process execution unit 50 executes, for example, a physical simulation process corresponding to a set physical parameter for a plurality of ragdoll parts 36. Here, for example, the physical simulation process for each rag doll part 36 is executed based on the value of the physical parameter set for each rag doll part or the value of the parameter set for the constraint 38. Then, the values of physical parameters such as position and orientation for each ragdoll part 36 set in the ragdoll data are changed.

フィードバック部52は、本実施形態では例えば、複数のラグドールパーツ36に対する物理シミュレーション処理の実行結果をスケルトンジョイント32の配置にフィードバックする。例えば、フィードバック部52は、物理シミュレーション処理の実行後の複数のラグドールパーツ36の配置に基づいて、プレイヤオブジェクト22に対応付けられる複数のスケルトンジョイント32の基準配置を決定する。ここでスケルトンデータに含まれる、スケルトンジョイント32の位置や向きを示すデータが決定されてもよい。   In the present embodiment, for example, the feedback unit 52 feeds back the execution result of the physical simulation process for the plurality of rag doll parts 36 to the arrangement of the skeleton joint 32. For example, the feedback unit 52 determines the reference arrangement of the plurality of skeleton joints 32 associated with the player object 22 based on the arrangement of the plurality of rag doll parts 36 after execution of the physical simulation process. Here, data indicating the position and orientation of the skeleton joint 32 included in the skeleton data may be determined.

そして本実施形態では、フィードバック部52は、スケルトンジョイント32の最終配置の決定基準となるターゲットジョイントを決定する。例えば、上述の第1表現例ではスケルトンジョイント32kが、第2表現例ではスケルトンジョイント32hが、ターゲットジョイントに相当する。   In the present embodiment, the feedback unit 52 determines a target joint that is a determination criterion for the final arrangement of the skeleton joint 32. For example, in the first expression example described above, the skeleton joint 32k corresponds to the target joint, and in the second expression example, the skeleton joint 32h corresponds to the target joint.

またターゲットジョイントが複数決定されてもよい。第3表現例では、スケルトンジョイント32kが第1の調整配置に対応する第1のターゲットジョイントに相当し、スケルトンジョイント32hが第2の調整配置に対応する第2のターゲットジョイントに相当する。   A plurality of target joints may be determined. In the third expression example, the skeleton joint 32k corresponds to a first target joint corresponding to the first adjustment arrangement, and the skeleton joint 32h corresponds to a second target joint corresponding to the second adjustment arrangement.

そして本実施形態では、フィードバック部52は、複数のスケルトンジョイント32の基準配置を最終配置に修正する。ここでフィードバック部52は、ターゲットジョイントの基準配置とターゲットジョイントの目標となる配置とに基づいて、複数のスケルトンジョイント32の基準配置を最終配置に修正してもよい。この場合、スケルトン30全体について、回転移動及び平行移動の両方が行われても構わないし、いずれか一方だけが行われても構わない。またこの場合、スケルトンデータに含まれる、スケルトンジョイント32の位置や向きを示すデータが変更されてもよい。また、最終配置における複数のスケルトンジョイント32の相対的な配置は、基準配置における複数のスケルトンジョイント32の相対的な配置と同じであってもよい。   In this embodiment, the feedback unit 52 corrects the reference arrangement of the skeleton joints 32 to the final arrangement. Here, the feedback unit 52 may correct the reference arrangement of the plurality of skeleton joints 32 to the final arrangement based on the reference arrangement of the target joint and the target arrangement of the target joint. In this case, both the rotational movement and the parallel movement may be performed on the entire skeleton 30, or only one of them may be performed. In this case, the data indicating the position and orientation of the skeleton joint 32 included in the skeleton data may be changed. Further, the relative arrangement of the plurality of skeleton joints 32 in the final arrangement may be the same as the relative arrangement of the plurality of skeleton joints 32 in the reference arrangement.

なお第1表現例のように、ターゲットジョイントの基準配置がターゲットジョイントの目標となる配置と一致するよう、複数のスケルトンジョイント32の基準配置が最終配置に修正されてもよい。   As in the first expression example, the reference arrangement of the plurality of skeleton joints 32 may be corrected to the final arrangement so that the reference arrangement of the target joint matches the target arrangement of the target joint.

また第2表現例のように、ターゲットジョイントの最終配置が、ターゲットジョイントの基準配置とターゲットジョイントの目標となる配置とを補間した配置となるよう、複数のスケルトンジョイント32の基準配置が最終配置に修正されてもよい。ここでターゲットジョイントの目標となる配置は、調整配置におけるターゲットジョイントの配置に相当することとなる。またこの場合、例えば、補間の開始タイミングから現在までの時間tと、現在から補間の終了タイミングまでの時間(T−t)と、に基づいて算出される重みで、ターゲットジョイントの基準配置と調整配置とが補間されてもよい。ここで例えば基準配置の重みが(T−t)/Tであり調整配置の重みがt/Tであってもよい。   Further, as in the second expression example, the reference arrangement of the plurality of skeleton joints 32 is changed to the final arrangement so that the final arrangement of the target joint is an arrangement obtained by interpolating the reference arrangement of the target joint and the target arrangement of the target joint. It may be modified. Here, the target arrangement of the target joint corresponds to the arrangement of the target joint in the adjustment arrangement. Further, in this case, for example, the reference joint arrangement and adjustment of the target joint with weights calculated based on the time t from the interpolation start timing to the present and the time from the present to the interpolation end timing (T−t). The arrangement may be interpolated. Here, for example, the weight of the reference arrangement may be (T−t) / T and the weight of the adjustment arrangement may be t / T.

また第3表現例のように、スケルトン30の調整配置が複数決定されてもよい。例えば第1のターゲットジョイントの目標となる配置に基づいて、第1の調整配置が決定され、第2のターゲットジョイントの目標となる配置に基づいて、第2の調整配置が決定されてもよい。そしてこれら複数の調整配置を補間した配置が、複数のスケルトンジョイント32の最終配置として決定されてもよい。例えば第1の調整配置と第2の調整配置とを補間した配置が、複数のスケルトンジョイント32の最終配置として決定されてもよい。ここで例えば、補間の開始タイミングから現在までの時間tと、現在から補間の終了タイミングまでの時間(T−t)と、に基づいて算出される重みで、第1の調整配置と第2の調整配置とが補間されてもよい。ここで例えば第1の調整配置の重みが(T−t)/Tであり第2の調整配置の重みがt/Tであってもよい。そして複数のスケルトンジョイント32の基準配置がこのようにして決定される最終配置に修正されてもよい。   Further, as in the third expression example, a plurality of adjustment arrangements of the skeleton 30 may be determined. For example, the first adjustment arrangement may be determined based on the target arrangement of the first target joint, and the second adjustment arrangement may be determined based on the arrangement of the second target joint. An arrangement obtained by interpolating the plurality of adjustment arrangements may be determined as the final arrangement of the plurality of skeleton joints 32. For example, an arrangement obtained by interpolating the first adjustment arrangement and the second adjustment arrangement may be determined as the final arrangement of the plurality of skeleton joints 32. Here, for example, with the weight calculated based on the time t from the start timing of the interpolation to the present time and the time (T−t) from the present time to the end timing of the interpolation, the first adjustment arrangement and the second The adjustment arrangement may be interpolated. Here, for example, the weight of the first adjustment arrangement may be (T−t) / T and the weight of the second adjustment arrangement may be t / T. Then, the reference arrangement of the plurality of skeleton joints 32 may be corrected to the final arrangement determined in this way.

オブジェクト配置決定部54は、本実施形態では例えば、複数のスケルトンジョイントの32の最終配置に基づいて、プレイヤオブジェクト22の仮想空間20内における配置を決定する。ここで例えば、アニメーションデータ記憶部40に記憶されているデータに基づいて、プレイヤオブジェクト22の位置、向き、及び、ポーズが決定されてもよい。そしてオブジェクト配置決定部54は、このようにして決定された配置に従ってプレイヤオブジェクト22を仮想空間20内に配置する。ここで例えばアニメーションデータ記憶部40に記憶されている、仮想空間20を表すデータが更新されてもよい。   In this embodiment, for example, the object placement determination unit 54 determines the placement of the player object 22 in the virtual space 20 based on the final placement of the plurality of skeleton joints 32. Here, for example, the position, orientation, and pose of the player object 22 may be determined based on data stored in the animation data storage unit 40. Then, the object placement determination unit 54 places the player object 22 in the virtual space 20 according to the placement thus determined. Here, for example, data representing the virtual space 20 stored in the animation data storage unit 40 may be updated.

画像生成出力部56は、本実施形態では例えば、仮想空間20内の視点28から視線方向を見た様子を表す画像を表示させる。   In the present embodiment, for example, the image generation / output unit 56 displays an image representing a state in which the viewing direction is viewed from the viewpoint 28 in the virtual space 20.

ここで、本実施形態に係るエンタテインメント装置10で行われる、上述の第2表現例での表現における処理の流れの一例を、図9に例示するフロー図を参照しながら説明する。本処理例では、以下のS101〜S112に示す処理のループが所定のフレームレートで繰り返し実行される。   Here, an example of the flow of processing in the expression in the above-described second expression example performed in the entertainment apparatus 10 according to the present embodiment will be described with reference to the flowchart illustrated in FIG. In this processing example, the following processing loop shown in S101 to S112 is repeatedly executed at a predetermined frame rate.

まず目標配置決定部46が、各スケルトンジョイント32の目標配置を決定する(S101)。なおS101に示す処理で例えばブレンド処理や逆運動学処理などが併せて実行されてもよい。   First, the target arrangement determining unit 46 determines the target arrangement of each skeleton joint 32 (S101). In the process shown in S101, for example, a blend process or an inverse kinematic process may be executed together.

そして物理パラメータ設定部48が、各スケルトンジョイント32の現在の位置、及び、S101に示す処理で決定された目標配置に基づいて、各ラグドールパーツ36の物理パラメータの値を設定する(S102)。   Then, the physical parameter setting unit 48 sets the value of the physical parameter of each rag doll part 36 based on the current position of each skeleton joint 32 and the target arrangement determined in the process shown in S101 (S102).

そして物理シミュレーション処理実行部50が、各ラグドールパーツ36に対して物理シミュレーション処理を実行する(S103)。上述のように本処理例では、プレイヤオブジェクト22の動作モードがダイナミックモードであってもキーフレームモードであっても物理シミュレーション処理は実行される。   Then, the physical simulation process execution unit 50 executes a physical simulation process for each ragdoll part 36 (S103). As described above, in the present processing example, the physical simulation process is executed regardless of whether the operation mode of the player object 22 is the dynamic mode or the key frame mode.

そしてフィードバック部52は、プレイヤオブジェクト22の動作モードを確認する(S104)。   Then, the feedback unit 52 confirms the operation mode of the player object 22 (S104).

ここでダイナミックモードであることが確認されたとする。この場合は、フィードバック部52は、S103に示す処理での物理シミュレーション処理の実行結果に基づいて、スケルトンジョイント32の基準配置を決定する(S105)。   Here, it is assumed that the dynamic mode is confirmed. In this case, the feedback unit 52 determines the reference arrangement of the skeleton joint 32 based on the execution result of the physical simulation process in the process shown in S103 (S105).

そしてフィードバック部52は、上述のベクトルV1及びベクトルV2に基づいて、ターゲットジョイントの移動量及び回転量を決定する(S106)。   Then, the feedback unit 52 determines the amount of movement and the amount of rotation of the target joint based on the vector V1 and the vector V2 (S106).

そしてフィードバック部52は、スケルトンジョイント32の調整配置を決定する(S107)。ここでは例えば、ルートスケルトンジョイント32aの位置が維持された状態で、S106に示す処理で決定された移動量及び回転量に従って、S105に示す処理で決定された基準配置のスケルトンジョイント32を移動させた際の配置が調整配置として決定される。   Then, the feedback unit 52 determines the adjustment arrangement of the skeleton joint 32 (S107). Here, for example, in a state where the position of the root skeleton joint 32a is maintained, the skeleton joint 32 of the reference arrangement determined in the process shown in S105 is moved according to the movement amount and the rotation amount determined in the process shown in S106. This arrangement is determined as the adjustment arrangement.

そしてフィードバック部52は、S105に示す処理で決定された基準配置と、S107に示す処理で決定された調整配置と、を補間することで、スケルトン30の最終配置を決定する(S108)。   Then, the feedback unit 52 determines the final arrangement of the skeleton 30 by interpolating the reference arrangement determined in the process shown in S105 and the adjustment arrangement determined in the process shown in S107 (S108).

そしてフィードバック部52は、所定の後処理を実行する(S109)。後処理としては、例えば、ブレンド処理や逆運動学処理などが挙げられる。   Then, the feedback unit 52 executes predetermined post-processing (S109). Examples of the post-processing include blend processing and inverse kinematic processing.

そしてオブジェクト配置決定部54が、S109に示す処理で後処理が実行された最終配置のスケルトン30に基づいて、プレイヤオブジェクト22を仮想空間20内に配置する(S110)。   Then, the object placement determination unit 54 places the player object 22 in the virtual space 20 based on the final placement skeleton 30 that has been post-processed in the process shown in S109 (S110).

一方、S104に示す処理でキーフレームモードであることが確認されたとする。この場合は、オブジェクト配置決定部54が、S101に示す処理で決定されたスケルトン30の目標配置に基づいて、プレイヤオブジェクト22を仮想空間20内に配置する(S111)。なおS110又はS111に示す処理では、プレイヤオブジェクト22以外の仮想オブジェクトも仮想空間20内に配置されることとなる。   On the other hand, it is assumed that the key frame mode is confirmed in the process shown in S104. In this case, the object placement determination unit 54 places the player object 22 in the virtual space 20 based on the target placement of the skeleton 30 determined in the process shown in S101 (S111). In the processing shown in S110 or S111, virtual objects other than the player object 22 are also arranged in the virtual space 20.

そして、S110又はS111に示す処理が終了すると、画像生成出力部56が、仮想空間20内の視点28から視線方向を見た様子を表す画像を表示させて(S112)、S101に示す処理に戻る。   Then, when the processing shown in S110 or S111 is completed, the image generation / output unit 56 displays an image representing the viewing direction from the viewpoint 28 in the virtual space 20 (S112), and returns to the processing shown in S101. .

なお上述の処理例のS106に示す処理において移動量のみが決定されてもよい。またS107に示す処理は実行されず、S108に示す処理においてターゲットジョイントが目標位置に配置されたスケルトン30の配置が最終配置として決定されてもよい。上述の第1表現例での表現における処理の流れはこの場合に相当する。   Note that only the movement amount may be determined in the processing shown in S106 of the above processing example. Further, the process shown in S107 may not be executed, and the arrangement of the skeleton 30 in which the target joint is arranged at the target position in the process shown in S108 may be determined as the final arrangement. The flow of processing in the expression in the first expression example corresponds to this case.

また上述の処理例のS106に示す処理で移動量と回転量の組み合わせが複数決定されてもよい。そしてS107に示す処理でスケルトン30についての複数の調整配置が決定されてもよい。そしてS108に示す処理で、S107に示す処理で決定された複数の調整配置を補間することでスケルトン30の最終配置が決定されてもよい。上述の第3表現例での表現における処理の流れはこの場合に相当する。   Further, a plurality of combinations of movement amounts and rotation amounts may be determined by the processing shown in S106 of the above processing example. And the some adjustment arrangement | positioning about the skeleton 30 may be determined by the process shown to S107. In the process shown in S108, the final arrangement of the skeleton 30 may be determined by interpolating the plurality of adjustment arrangements determined in the process shown in S107. The flow of processing in the expression in the third expression example corresponds to this case.

なお、本発明は上述の実施形態に限定されるものではない。   In addition, this invention is not limited to the above-mentioned embodiment.

例えば本発明の適用範囲は、プレイヤオブジェクト22などといったゲームキャラクタには限定されない。例えば見た目の整合性を優先したい、高速で動く物体に取り付けられている仮想オブジェクトなどに、本発明を適用してもよい。   For example, the application range of the present invention is not limited to game characters such as the player object 22. For example, the present invention may be applied to a virtual object attached to an object that moves at high speed, in which priority is given to visual consistency.

また、本実施形態をエンタテインメント装置10以外の情報処理システム(例えば、シミュレーションシステムや画像処理システムなど)に応用してもよい。   Further, the present embodiment may be applied to an information processing system (for example, a simulation system or an image processing system) other than the entertainment apparatus 10.

また、上記の具体的な文字列や数値及び図面中の具体的な文字列や数値は例示であり、これらの文字列や数値には限定されない。   The specific character strings and numerical values described above and the specific character strings and numerical values in the drawings are examples, and are not limited to these character strings and numerical values.

10 エンタテインメント装置、12 プロセッサ、14 記憶部、16 操作部、18 表示部、20 仮想空間、22 プレイヤオブジェクト、24 床オブジェクト、26 壁オブジェクト、28 視点、30 スケルトン、32 スケルトンジョイント、32a ルートスケルトンジョイント、34 ラグドール、36 ラグドールパーツ、38 コンストレイント、40 アニメーションデータ記憶部、42 スケルトンデータ記憶部、44 ラグドールデータ記憶部、46 目標配置決定部、48 物理パラメータ設定部、50 物理シミュレーション処理実行部、52 フィードバック部、54 オブジェクト配置決定部、56 画像生成出力部。   10 entertainment devices, 12 processors, 14 storage units, 16 operation units, 18 display units, 20 virtual spaces, 22 player objects, 24 floor objects, 26 wall objects, 28 viewpoints, 30 skeletons, 32 skeleton joints, 32a root skeleton joints, 34 Ragdoll, 36 Ragdoll parts, 38 Constraint, 40 Animation data storage unit, 42 Skeleton data storage unit, 44 Ragdoll data storage unit, 46 Target arrangement determination unit, 48 Physical parameter setting unit, 50 Physical simulation processing execution unit, 52 A feedback unit, 54 an object arrangement determination unit, and 56 an image generation output unit.

Claims (8)

仮想空間内に配置されたオブジェクトの現在の配置と、当該オブジェクトの目標となる配置と、に基づいて、当該オブジェクトに対応付けられる複数のラグドールパーツについての物理パラメータの値を設定する物理パラメータ設定手順、
前記複数のラグドールパーツに対して前記物理パラメータに応じた物理シミュレーション処理を実行する物理シミュレーション処理実行手順、
前記物理シミュレーション処理の実行後の前記複数のラグドールパーツの配置に基づいて、前記オブジェクトに対応付けられる複数のスケルトンジョイントの基準配置を決定する基準配置決定手順、
前記複数のスケルトンジョイントのうちの1つであるターゲットジョイントの前記基準配置と当該ターゲットジョイントの目標となる配置とに基づいて、前記複数のスケルトンジョイントの前記基準配置を最終配置に修正する配置修正手順、
前記複数のスケルトンジョイントの前記最終配置に基づいて、前記オブジェクトの前記仮想空間内における配置を決定するオブジェクト配置決定手順、
をコンピュータに実行させることを特徴とするプログラム。
A physical parameter setting procedure for setting physical parameter values for a plurality of ragdoll parts associated with the object based on the current arrangement of the object arranged in the virtual space and the target arrangement of the object ,
A physical simulation process execution procedure for executing a physical simulation process according to the physical parameters for the plurality of ragdoll parts;
A reference arrangement determination procedure for determining a reference arrangement of a plurality of skeleton joints associated with the object based on an arrangement of the plurality of ragdoll parts after the execution of the physical simulation process;
An arrangement correction procedure for correcting the reference arrangement of the plurality of skeleton joints to a final arrangement based on the reference arrangement of the target joint that is one of the plurality of skeleton joints and the target arrangement of the target joint. ,
An object placement determination procedure for determining placement of the object in the virtual space based on the final placement of the plurality of skeleton joints;
A program that causes a computer to execute.
前記配置修正手順では、前記ターゲットジョイントの前記基準配置が当該ターゲットジョイントの目標となる配置と一致するよう、前記複数のスケルトンジョイントの前記基準配置を前記最終配置に修正する、
ことを特徴とする請求項1に記載のプログラム。
In the arrangement correction procedure, the reference arrangement of the plurality of skeleton joints is corrected to the final arrangement so that the reference arrangement of the target joint matches the target arrangement of the target joint.
The program according to claim 1.
前記配置修正手順では、前記ターゲットジョイントの前記最終配置が、当該ターゲットジョイントの前記基準配置と当該ターゲットジョイントの目標となる配置とを補間した配置となるよう、前記複数のスケルトンジョイントの前記基準配置を前記最終配置に修正する、
ことを特徴とする請求項1に記載のプログラム。
In the arrangement correction procedure, the reference arrangement of the plurality of skeleton joints is set so that the final arrangement of the target joint is an arrangement obtained by interpolating the reference arrangement of the target joint and a target arrangement of the target joint. Modify the final placement,
The program according to claim 1.
前記配置修正手順では、前記ターゲットジョイントの前記最終配置が、補間の開始タイミングから現在までの時間と、現在から補間の終了タイミングまでの時間と、に基づいて算出される重みで、当該ターゲットジョイントの前記基準配置と当該ターゲットジョイントの目標となる配置とを補間した配置となるよう、前記複数のスケルトンジョイントの前記基準配置を前記最終配置に修正する、
ことを特徴とする請求項3に記載のプログラム。
In the arrangement correction procedure, the final arrangement of the target joint is a weight calculated based on the time from the start timing of interpolation to the current time and the time from the current time to the end timing of interpolation. Correcting the reference arrangement of the plurality of skeleton joints to the final arrangement so as to be an arrangement obtained by interpolating the reference arrangement and a target arrangement of the target joint;
The program according to claim 3.
前記配置修正手順では、
前記ターゲットジョイントの前記基準配置と当該ターゲットジョイントの目標となる配置とに基づいて、前記複数のスケルトンジョイントの第1の配置を決定し、
前記複数のスケルトンジョイントのうちの前記ターゲットジョイントとは異なるスケルトンジョイントの前記基準配置と当該スケルトンジョイントの目標となる配置とに基づいて、前記複数のスケルトンジョイントの第2の配置を決定し、
第1の配置と前記第2の配置とを補間した配置が前記複数のスケルトンジョイントの前記最終配置となるよう、前記複数のスケルトンジョイントの前記基準配置を前記最終配置に修正する、
ことを特徴とする請求項1から4のいずれか一項に記載のプログラム。
In the arrangement correction procedure,
Determining a first arrangement of the plurality of skeleton joints based on the reference arrangement of the target joints and a target arrangement of the target joints;
Determining a second arrangement of the plurality of skeleton joints based on the reference arrangement of the skeleton joints different from the target joint of the plurality of skeleton joints and a target arrangement of the skeleton joints;
Correcting the reference arrangement of the plurality of skeleton joints to the final arrangement so that an arrangement obtained by interpolating the first arrangement and the second arrangement becomes the final arrangement of the plurality of skeleton joints;
The program according to any one of claims 1 to 4, wherein:
前記配置修正手順では、補間の開始タイミングから現在までの時間と、現在から補間の終了タイミングまでの時間と、に基づいて算出される重みで、前記第1の配置と前記第2の配置とを補間した配置が前記複数のスケルトンジョイントの前記最終配置となるよう、前記複数のスケルトンジョイントの前記基準配置を前記最終配置に修正する、
ことを特徴とする請求項5に記載のプログラム。
In the arrangement correction procedure, the first arrangement and the second arrangement are calculated with weights calculated based on the time from the start timing of interpolation to the present and the time from the present to the end timing of interpolation. Modifying the reference arrangement of the plurality of skeleton joints to the final arrangement such that the interpolated arrangement is the final arrangement of the plurality of skeleton joints;
The program according to claim 5.
仮想空間内に配置されたオブジェクトの現在の配置と、当該オブジェクトの目標となる配置と、に基づいて、当該オブジェクトに対応付けられる複数のラグドールパーツについての物理パラメータの値を設定する物理パラメータ設定部と、
前記複数のラグドールパーツに対して前記物理パラメータに応じた物理シミュレーション処理を実行する物理シミュレーション処理実行部と、
前記物理シミュレーション処理の実行後の前記複数のラグドールパーツの配置に基づいて、前記オブジェクトに対応付けられる複数のスケルトンジョイントの基準配置を決定する基準配置決定部と、
前記複数のスケルトンジョイントのうちの1つであるターゲットジョイントの前記基準配置と当該ターゲットジョイントの目標となる配置とに基づいて、前記複数のスケルトンジョイントの前記基準配置を最終配置に修正する配置修正部と、
前記複数のスケルトンジョイントの前記最終配置に基づいて、前記オブジェクトの前記仮想空間内における配置を決定するオブジェクト配置決定部と、
を含むことを特徴とするオブジェクト配置システム。
A physical parameter setting unit that sets physical parameter values for a plurality of ragdoll parts associated with the object based on the current arrangement of the object arranged in the virtual space and the target arrangement of the object When,
A physical simulation process execution unit that executes a physical simulation process according to the physical parameter for the plurality of ragdoll parts;
A reference arrangement determining unit that determines a reference arrangement of a plurality of skeleton joints associated with the object based on the arrangement of the plurality of ragdoll parts after the execution of the physical simulation process;
An arrangement correction unit that corrects the reference arrangement of the plurality of skeleton joints to a final arrangement based on the reference arrangement of the target joint that is one of the plurality of skeleton joints and the target arrangement of the target joint. When,
An object arrangement determining unit that determines an arrangement of the object in the virtual space based on the final arrangement of the plurality of skeleton joints;
An object placement system comprising:
仮想空間内に配置されたオブジェクトの現在の配置と、当該オブジェクトの目標となる配置と、に基づいて、当該オブジェクトに対応付けられる複数のラグドールパーツについての物理パラメータの値を設定するステップと、
前記複数のラグドールパーツに対して前記物理パラメータに応じた物理シミュレーション処理を実行するステップと、
前記物理シミュレーション処理の実行後の前記複数のラグドールパーツの配置に基づいて、前記オブジェクトに対応付けられる複数のスケルトンジョイントの基準配置を決定するステップと、
前記複数のスケルトンジョイントのうちの1つであるターゲットジョイントの前記基準配置と当該ターゲットジョイントの目標となる配置とに基づいて、前記複数のスケルトンジョイントの前記基準配置を最終配置に修正するステップと、
前記複数のスケルトンジョイントの前記最終配置に基づいて、前記オブジェクトの前記仮想空間内における配置を決定するステップと、
を含むことを特徴とするオブジェクト配置方法。
Setting physical parameter values for a plurality of ragdoll parts associated with the object based on the current arrangement of the object arranged in the virtual space and the target arrangement of the object;
Executing a physical simulation process according to the physical parameter for the plurality of ragdoll parts;
Determining a reference arrangement of a plurality of skeleton joints associated with the object based on the arrangement of the plurality of ragdoll parts after the execution of the physical simulation process;
Modifying the reference arrangement of the plurality of skeleton joints to a final arrangement based on the reference arrangement of a target joint that is one of the plurality of skeleton joints and a target arrangement of the target joint;
Determining an arrangement of the object in the virtual space based on the final arrangement of the plurality of skeleton joints;
An object placement method characterized by comprising:
JP2017021373A 2017-02-08 2017-02-08 Program, object layout system and object layout method Pending JP2018128851A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017021373A JP2018128851A (en) 2017-02-08 2017-02-08 Program, object layout system and object layout method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017021373A JP2018128851A (en) 2017-02-08 2017-02-08 Program, object layout system and object layout method

Publications (1)

Publication Number Publication Date
JP2018128851A true JP2018128851A (en) 2018-08-16

Family

ID=63172940

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017021373A Pending JP2018128851A (en) 2017-02-08 2017-02-08 Program, object layout system and object layout method

Country Status (1)

Country Link
JP (1) JP2018128851A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020070928A1 (en) * 2018-10-03 2020-04-09 株式会社ソニー・インタラクティブエンタテインメント Skeleton model updating device, skeleton model updating method, and program
CN111773690A (en) * 2020-06-30 2020-10-16 完美世界(北京)软件科技发展有限公司 Task processing method and device, storage medium and electronic device

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020070928A1 (en) * 2018-10-03 2020-04-09 株式会社ソニー・インタラクティブエンタテインメント Skeleton model updating device, skeleton model updating method, and program
WO2020070812A1 (en) * 2018-10-03 2020-04-09 株式会社ソニー・インタラクティブエンタテインメント Skeleton model update device, skeleton model update method, and program
JPWO2020070928A1 (en) * 2018-10-03 2021-09-02 株式会社ソニー・インタラクティブエンタテインメント Skeleton model update device, skeleton model update method and program
JP7038847B2 (en) 2018-10-03 2022-03-18 株式会社ソニー・インタラクティブエンタテインメント Skeleton model update device, skeleton model update method and program
US11605192B2 (en) 2018-10-03 2023-03-14 Sony Interactive Entertainment Inc. Skeleton model update apparatus, skeleton model update method, and program
CN111773690A (en) * 2020-06-30 2020-10-16 完美世界(北京)软件科技发展有限公司 Task processing method and device, storage medium and electronic device

Similar Documents

Publication Publication Date Title
US9050538B2 (en) Collision detection and motion simulation in game virtual space
US8909506B2 (en) Program, information storage medium, information processing system, and information processing method for controlling a movement of an object placed in a virtual space
US9892529B2 (en) Constraint evaluation in directed acyclic graphs
US20140078144A1 (en) Systems and methods for avatar creation
JP5118220B2 (en) Motion modeling apparatus and method, and program
US11497999B2 (en) Method and system for determining blending coefficients
CN111714880B (en) Picture display method and device, storage medium and electronic device
JP2006325695A (en) Game program using input to pointing device and game apparatus
US11238667B2 (en) Modification of animated characters
JP2010170279A (en) Skeleton motion control system, program, and information storage medium
US11816772B2 (en) System for customizing in-game character animations by players
JP5036199B2 (en) Program, information storage medium, and game system
JP2018128851A (en) Program, object layout system and object layout method
CN116196611A (en) Somatosensory game method based on waving action
JP2011095935A (en) Program, information storage medium, and image generation system
JP4467590B2 (en) Drawing apparatus, drawing method, and drawing program
JP6576544B2 (en) Information processing apparatus, information processing method, and computer-readable storage medium
JP2012247953A (en) Program, information storage medium, information processing system and information processing method
JP2010134798A (en) Program, information storage medium, game device, and game system
JP4408910B2 (en) Character display device, character display method, and program
JP5784985B2 (en) Program, information storage medium, information processing system, and information processing method
JP5328841B2 (en) Program, information storage medium, information processing system, and information processing method
US20160125646A1 (en) Image processing apparatus, image processing method, and image prodessing program
JP2017041042A (en) Image formation system, method and program
JP5396432B2 (en) Program, information storage medium, information processing system, and information processing method