JP2018128851A - Program, object layout system and object layout method - Google Patents
Program, object layout system and object layout method Download PDFInfo
- 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
Links
Images
Abstract
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.
以下、本発明の一実施形態について図面に基づき詳細に説明する。 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
プロセッサ12は、エンタテインメント装置10にインストールされるプログラムに従って動作するCPU等のプログラム制御デバイスである。記憶部14は、ROMやRAM等の記憶素子やハードディスクドライブなどである。操作部16は、キーボードやマウス、あるいはゲームコンソールのコントローラ等であって、ユーザの操作入力を受け付けて、その内容を示す信号をプロセッサ12に出力する。表示部18は、液晶ディスプレイ等の表示デバイスであって、プロセッサ12の指示に従って各種の画像を表示する。
The
なお、エンタテインメント装置10は、ネットワークボードなどの通信インタフェース、DVD−ROMやBlu−ray(登録商標)ディスクなどの光ディスクを読み取る光ディスクドライブ、USB(Universal Serial Bus)ポートなどを含んでいてもよい。
The
本実施形態に係るエンタテインメント装置10は、本実施形態に係るプログラムを実行することにより、メモリ上に、図2に例示する仮想空間20を構築するようになっている。同図に示すように、本実施形態に係る仮想空間20は、仮想3次元空間であり、プレイヤオブジェクト22、床オブジェクト24、壁オブジェクト26、などの仮想オブジェクトが視点28とともに配置されている。そして本実施形態では、視点28から視線方向をみた様子を表す画像が表示部18に表示される。また本実施形態では、プレイヤオブジェクト22等の仮想オブジェクトの配置の更新及び視点28から視線方向をみた様子を表す画像の表示が所定のフレームレートで実行される。
The
本実施形態に係る仮想オブジェクトは、それぞれテクスチャがマッピングされている複数のポリゴンにより構成されている。また本実施形態では、エンタテインメント装置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
また、本実施形態に係るエンタテインメント装置10で実行されるプログラムには、古典力学の法則等の物理法則をシミュレートする物理シミュレーション処理を実行する物理エンジンの機能が実装されている。
In addition, the program executed by the
本実施形態に係るプレイヤオブジェクト22のレンダリングには、スケルトンアニメーションの技術が用いられる。図3は、プレイヤオブジェクト22に対応付けられる仮想的なスケルトン30の一例を示す図である。図3には、プレイヤオブジェクト22が手前側正面を向いて立っている状況におけるスケルトン30が示されている。本実施形態に係るスケルトン30は不可視の仮想オブジェクトである。図3に示すように、スケルトン30には、例えば、親子関係が設定された複数のスケルトンジョイント32(32a〜32s)が含まれる。これら複数のスケルトンジョイント32のうち、プレイヤオブジェクト22の胴体に対応付けられるルートスケルトンジョイント32aが最上位の親として設定される。図3の例では、スケルトンジョイント32は丸印で、スケルトンジョイント32間の親子関係は線で表現されている。そしてそれぞれのスケルトンジョイント32には、位置及び向きが設定される。
For rendering the
本実施形態では、ルートスケルトンジョイント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
図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
ラグドールパーツ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
本実施形態では例えば、プレイヤによる操作入力や、直前のフレームにおけるスケルトン30の配置などに基づいて、当該フレームにおけるスケルトン30の目標となる配置が決定される。以下このようにして決定される配置を目標配置と呼ぶこととする。なお目標配置は、仮想空間20や他の仮想オブジェクトの状況を表すパラメータの値の影響を受けてもよい。
In the present embodiment, for example, based on the operation input by the player, the arrangement of the
そして例えば、プレイヤオブジェクト22の動作モードがダイナミックモードである場合は、直前のフレームにおけるスケルトン30の配置とスケルトン30の目標配置とに基づいて、各ラグドールパーツ36の物理パラメータの値が設定される。そしてこのようにして物理パラメータの値が設定された各ラグドールパーツ36に対して物理シミュレーション処理が実行される。そして物理シミュレーション処理の実行後のラグドール34の配置に基づいて、スケルトン30の配置が決定される。そしてこのようにして決定されるスケルトン30の配置に基づいて一意に決定される配置が、プレイヤオブジェクト22の配置として決定される。
For example, when the operation mode of the
一方、例えばプレイヤオブジェクト22の動作モードがキーフレームモードである場合は、スケルトン30の目標配置そのものに基づいて一意に決定される配置が、プレイヤオブジェクト22の配置として決定される。そのためこの場合は、プレイヤオブジェクト22の配置はラグドール34に対する物理シミュレーション処理の実行結果の影響は受けない。ただしこの場合でもラグドール34に対する物理シミュレーション処理は実行されて、その実行結果は仮想空間20内の他の仮想オブジェクトの配置に影響を与える。
On the other hand, for example, when the operation mode of the
本実施形態に係るエンタテインメント装置10では、以下の第1表現例〜第3表現例に示すようなアニメーション表現を採用することで、プレイヤオブジェクト22がリアリティ高く表現される。また本実施形態によれば、プレイヤオブジェクト22のアニメーションをリアリティ高く表現するアニメータのタスクの一部が自動化される。
In the
以下、本実施形態におけるアニメーション表現の第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
また第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
ここで図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
本実施形態では各ラグドールパーツ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
図5Cに、図5Bに示すラグドール34に基づいて一意に決定されるスケルトン30の配置の一例を示す。図5Bに示すラグドール34が全体として縦に伸びていることによって、図5Cに示すスケルトン30も全体として縦に伸びる。そのため図5Cに示すスケルトン30に基づいて生成されるプレイヤオブジェクト22をレンダリングすると、表示されるプレイヤオブジェクト22が全体として縦に伸びてしまう。またプレイヤオブジェクト22の手の位置が掴んでいた位置からずれてしまう。
FIG. 5C shows an example of the arrangement of the
図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
以上の点を踏まえ、第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
なお第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
以上のようにして第1表現例では、プレイヤオブジェクト22が壁オブジェクト26を掴んだままの状態で、その体が揺さぶられる様子がリアリティ高く表現されることとなる。
As described above, in the first expression example, a state in which the body is shaken while the
次に、本実施形態におけるアニメーション表現の第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
第2表現例では、プレイヤオブジェクト22は、まずはキーフレームモードで動作した状態で真上にジャンプした様子が表示され、その後動作モードがダイナミックモードに移行する。
In the second expression example, first, the
図6Aには、プレイヤオブジェクト22の動作モードがダイナミックモードに移行したタイミングにおける、スケルトン30及びラグドール34の一例が示されている。このスケルトン30の配置は、ラグドール34の配置に基づいて一意に決定される配置である。第2表現例では、図6Aに示すスケルトン30の配置が基準配置に相当する。
FIG. 6A shows an example of the
ここで例えば、ラグドールパーツ36eと点P3の位置との接続を示すコンストレイント38oが生成されることとする。ここで例えばラグドールパーツ36eと点P3の位置に配置されるラグドールパーツ36との接続を示すコンストレイント38oが生成されてもよい。このコンストレイント38oによって、物理エンジンのコンストレイントソルバーは、ラグドールパーツ36eの位置と点P3の位置との間の距離ができるだけ短くなるよう各ラグドールパーツ36の配置を決定することとする。
Here, for example, a constraint 38o indicating the connection between the
この場合、図6Bに例示するように、ラグドールパーツ36eが点P3の位置に近づいていく。しかしこのようにすると、プレイヤオブジェクト22のアニメーション表現が不自然なものとなる。具体的にはこの場合には、プレイヤオブジェクト22が自らの意思で体をひねりながらジャンプした様子がリアリティ高く表現されない。
In this case, as illustrated in FIG. 6B, the
ここで例えば、図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
以上の点を踏まえ、第2表現例では、以下のようにして所与の補間時間Tにわたって徐々にスケルトン30全体を回転させることで、プレイヤオブジェクト22が自らの意思で体をひねりながらジャンプした様子がリアリティ高く表現されるようにした。
Based on the above points, in the second expression example, the
図6Dには、図6Aに示すスケルトン30が二点鎖線で示されており、当該スケルトン30全体をルートスケルトンジョイント32aの位置を変えずに回転させたスケルトン30が実線で示されている。図6Dに示すように第2表現例では、まず、ルートスケルトンジョイント32aからスケルトンジョイント32hに向かうベクトルV1と、ルートスケルトンジョイント32aから点P3に向かうベクトルV2とが特定される。そして、複数のスケルトンジョイント32の相対的な配置及びルートスケルトンジョイント32aの位置は図6Aに示す状態で維持されたまま、これら複数のスケルトンジョイント32を全体として回転させた配置が特定される。ここではベクトルV1がベクトルV2に重なるよう回転させた配置が特定される。
In FIG. 6D, the
ここで例えば、ルートスケルトンジョイント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
そして第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
ここで、第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
なお第2表現例では、補間処理が行われている間においても毎フレーム、当該フレームのラグドール34に対して物理シミュレーション処理が実行される。そして当該フレームにおける物理シミュレーション処理の実行後のラグドールパーツ36の配置に基づいてスケルトンジョイント32の相対的な配置(スケルトン30のポーズ)が一意に決定される。そしてこのようにしてポーズが決定されるスケルトン30が、仮想空間20内に配置されることとなる。
In the second expression example, the physical simulation process is performed on the
次に、本実施形態におけるアニメーション表現の第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
図7Aには、プレイヤオブジェクト22に対応付けられるスケルトン30及びラグドール34の一例が示されている。なお図7Aにおいては、ラグドールパーツ36間に設定されているコンストレイント38の図示は省略されている。
FIG. 7A shows an example of a
第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
そして、第3表現例では、第1の調整配置のスケルトン30と第2の調整配置のスケルトン30とを公知の補間技術により補間した配置が、スケルトン30の最終配置として決定される。図7Bでは、補間されたスケルトン30の最終配置が実線で示されている。
In the third expression example, an arrangement obtained by interpolating the
ここで、第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
第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
以下、本実施形態に係るエンタテインメント装置10の機能、及び、エンタテインメント装置10で実行される処理についてさらに説明する。
Hereinafter, functions of the
図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
以上の機能は、コンピュータであるエンタテインメント装置10にインストールされた、以上の機能に対応する指令を含むプログラムをプロセッサ12で実行することにより実装されてもよい。このプログラムは、例えば、光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等のコンピュータ読み取り可能な情報記憶媒体を介して、あるいは、インターネットなどを介してエンタテインメント装置10に供給されてもよい。
The above functions may be implemented by causing the
アニメーションデータ記憶部40には、本実施形態では例えば、仮想オブジェクトが配置されている仮想空間20を表すデータが記憶されている。またアニメーションデータ記憶部40には、仮想空間20に配置されている仮想オブジェクトに関するポリゴンデータやテクスチャデータなども記憶されている。またアニメーションデータ記憶部40には、例えば、走る、歩く、ジャンプする、などといったプレイヤオブジェクト22のアクションを表現するためのキーフレームアニメーションのデータも記憶されている。またアニメーションデータ記憶部40には、スケルトンジョイント32の配置とプレイヤオブジェクト22のポーズとを対応付ける規則を示すデータも記憶されている。
In the present embodiment, for example, data representing the
スケルトンデータ記憶部42には、本実施形態では例えば、上述のスケルトン30を表すスケルトンデータが記憶されている。スケルトンデータには、例えばルートスケルトンジョイント32aの位置及び向きを示すデータや、ルートスケルトンジョイント32aを基準としたスケルトンジョイント32の相対的な位置及び相対的な向きを示すデータが含まれる。また、スケルトンデータには、各スケルトンジョイント32について、当該スケルトンジョイント32の親のスケルトンジョイント32の識別情報が含まれる。またスケルトンデータ記憶部42には、ラグドールパーツ36の配置とスケルトンジョイント32の配置とを対応付ける規則を示すデータも記憶されている。
In the present embodiment, for example, skeleton data representing the
ラグドールデータ記憶部44には、本実施形態では例えば、上述のラグドール34を表すラグドールデータが記憶されている。ラグドールデータには、例えば、各ラグドールパーツ36に設定されている物理パラメータの値が設定されたデータや、コンストレイント38のパラメータの値が設定されたデータなどが含まれる。またラグドールデータ記憶部44には、スケルトン30の現在の配置とスケルトン30の目標配置とに基づいて、ラグドールパーツ36に設定される物理パラメータの値を決定する規則を示すデータも記憶されている。
In the present embodiment, for example, rag doll data representing the
目標配置決定部46は、本実施形態では例えば、プレイヤによる操作入力や、仮想空間20内に配置されたオブジェクトの現在の配置などに基づいて、当該オブジェクトの目標となる配置を決定する。ここで例えばプレイヤによる操作入力や、直前のフレームにおけるスケルトン30の配置などに基づいて、当該フレームにおけるスケルトン30の目標配置が決定されてもよい。また上述のように目標配置は、仮想空間20や他の仮想オブジェクトの状況を表すパラメータの値の影響を受けてもよい。
In the present embodiment, the target
物理パラメータ設定部48は、本実施形態では例えば、仮想空間20内に配置されたオブジェクトの現在の配置と、当該オブジェクトの目標となる配置と、に基づいて、物理パラメータの値を設定する。ここで例えば、複数のスケルトンジョイント32の現在の配置と、プレイヤオブジェクト22の目標配置と、に基づいて、プレイヤオブジェクト22に対応付けられる複数のラグドールパーツ36についての物理パラメータの値が設定されてもよい。また例えば、複数のラグドールパーツ36の現在の配置と、プレイヤオブジェクト22の目標配置と、に基づいて、プレイヤオブジェクト22に対応付けられる複数のラグドールパーツ36についての物理パラメータの値が設定されてもよい。また例えば、スケルトン30の現在の配置、スケルトン30の目標配置、及び、ラグドールデータ記憶部44に記憶されている規則を示すデータに基づいて、複数のラグドールパーツ36についての物理パラメータの値が設定されてもよい。また例えば、ラグロールデータに設定されている、各ラグドールパーツ36についての物理パラメータの値が変更されてもよい。
In this embodiment, for example, the physical
物理シミュレーション処理実行部50は、本実施形態では例えば、複数のラグドールパーツ36に対して、設定される物理パラメータに応じた物理シミュレーション処理を実行する。ここでは例えば、各ラグドールパーツに設定されている物理パラメータの値や、コンストレイント38に設定されているパラメータの値に基づいて、各ラグドールパーツ36に対する物理シミュレーション処理が実行される。そして、ラグドールデータに設定されている、各ラグドールパーツ36についての位置や向き等の物理パラメータの値が変更される。
In the present embodiment, the physical simulation
フィードバック部52は、本実施形態では例えば、複数のラグドールパーツ36に対する物理シミュレーション処理の実行結果をスケルトンジョイント32の配置にフィードバックする。例えば、フィードバック部52は、物理シミュレーション処理の実行後の複数のラグドールパーツ36の配置に基づいて、プレイヤオブジェクト22に対応付けられる複数のスケルトンジョイント32の基準配置を決定する。ここでスケルトンデータに含まれる、スケルトンジョイント32の位置や向きを示すデータが決定されてもよい。
In the present embodiment, for example, the
そして本実施形態では、フィードバック部52は、スケルトンジョイント32の最終配置の決定基準となるターゲットジョイントを決定する。例えば、上述の第1表現例ではスケルトンジョイント32kが、第2表現例ではスケルトンジョイント32hが、ターゲットジョイントに相当する。
In the present embodiment, the
またターゲットジョイントが複数決定されてもよい。第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
なお第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
オブジェクト配置決定部54は、本実施形態では例えば、複数のスケルトンジョイントの32の最終配置に基づいて、プレイヤオブジェクト22の仮想空間20内における配置を決定する。ここで例えば、アニメーションデータ記憶部40に記憶されているデータに基づいて、プレイヤオブジェクト22の位置、向き、及び、ポーズが決定されてもよい。そしてオブジェクト配置決定部54は、このようにして決定された配置に従ってプレイヤオブジェクト22を仮想空間20内に配置する。ここで例えばアニメーションデータ記憶部40に記憶されている、仮想空間20を表すデータが更新されてもよい。
In this embodiment, for example, the object
画像生成出力部56は、本実施形態では例えば、仮想空間20内の視点28から視線方向を見た様子を表す画像を表示させる。
In the present embodiment, for example, the image generation /
ここで、本実施形態に係るエンタテインメント装置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
まず目標配置決定部46が、各スケルトンジョイント32の目標配置を決定する(S101)。なおS101に示す処理で例えばブレンド処理や逆運動学処理などが併せて実行されてもよい。
First, the target
そして物理パラメータ設定部48が、各スケルトンジョイント32の現在の位置、及び、S101に示す処理で決定された目標配置に基づいて、各ラグドールパーツ36の物理パラメータの値を設定する(S102)。
Then, the physical
そして物理シミュレーション処理実行部50が、各ラグドールパーツ36に対して物理シミュレーション処理を実行する(S103)。上述のように本処理例では、プレイヤオブジェクト22の動作モードがダイナミックモードであってもキーフレームモードであっても物理シミュレーション処理は実行される。
Then, the physical simulation
そしてフィードバック部52は、プレイヤオブジェクト22の動作モードを確認する(S104)。
Then, the
ここでダイナミックモードであることが確認されたとする。この場合は、フィードバック部52は、S103に示す処理での物理シミュレーション処理の実行結果に基づいて、スケルトンジョイント32の基準配置を決定する(S105)。
Here, it is assumed that the dynamic mode is confirmed. In this case, the
そしてフィードバック部52は、上述のベクトルV1及びベクトルV2に基づいて、ターゲットジョイントの移動量及び回転量を決定する(S106)。
Then, the
そしてフィードバック部52は、スケルトンジョイント32の調整配置を決定する(S107)。ここでは例えば、ルートスケルトンジョイント32aの位置が維持された状態で、S106に示す処理で決定された移動量及び回転量に従って、S105に示す処理で決定された基準配置のスケルトンジョイント32を移動させた際の配置が調整配置として決定される。
Then, the
そしてフィードバック部52は、S105に示す処理で決定された基準配置と、S107に示す処理で決定された調整配置と、を補間することで、スケルトン30の最終配置を決定する(S108)。
Then, the
そしてフィードバック部52は、所定の後処理を実行する(S109)。後処理としては、例えば、ブレンド処理や逆運動学処理などが挙げられる。
Then, the
そしてオブジェクト配置決定部54が、S109に示す処理で後処理が実行された最終配置のスケルトン30に基づいて、プレイヤオブジェクト22を仮想空間20内に配置する(S110)。
Then, the object
一方、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
そして、S110又はS111に示す処理が終了すると、画像生成出力部56が、仮想空間20内の視点28から視線方向を見た様子を表す画像を表示させて(S112)、S101に示す処理に戻る。
Then, when the processing shown in S110 or S111 is completed, the image generation /
なお上述の処理例の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
また上述の処理例の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
なお、本発明は上述の実施形態に限定されるものではない。 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
また、本実施形態をエンタテインメント装置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
また、上記の具体的な文字列や数値及び図面中の具体的な文字列や数値は例示であり、これらの文字列や数値には限定されない。 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:
ことを特徴とする請求項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:
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)
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 |
-
2017
- 2017-02-08 JP JP2017021373A patent/JP2018128851A/en active Pending
Cited By (6)
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 |