説明

動作モデリング装置及び方法、並びにプログラム

【課題】胴体に結合される肢体毎に動作をモデリングする場合において、当該動作の特定に要する変数を減らしつつも、より現実の動作に近いモデルの動作をモデリングすることができる。
【解決手段】仮想3次元空間におけるプレイヤキャラクタの動作は、その四肢部毎に決定される。まず、各四肢部について、その固定部を基準とした四肢部のローカル座標における先端部の位置を決定する。先端部の位置は、予め定義されている到達範囲内において決定される。先端部の位置が決定されると、中間部の関節角度が固定され、固定部と先端部を結ぶ軸を中心とした回転角として、中間部の位置が決定されることになる。中間部の位置は、先端部の位置に応じて定義されている中間部の可動範囲内において、角度情報として決定される。キャラクタの四肢部の形状は、先端部の位置情報と中間部の角度情報で決定される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、胴体に関節を介して結合する肢体を有するキャラクタの動作のモデリングにおいて、中途に関節を有する肢体毎の形状を一体として定義して動作を定めるモデリングに関する。
【背景技術】
【0002】
近年のコンピュータ技術の高度化に伴い、CG(Computer Graphics)において、3次元でのより精細でリアルな表現が可能になってきている。そして、CGの分野においては仮想空間におけるキャラクタ、例えば、人や動物などの動作を、複数の骨を関節で連結させて構成する骨格モデル(スケルトンモデル)を用い、その関節において各骨を動作させることによって表現することが行われている。
【0003】
このように、仮想3次元空間において動作させるスケルトンモデルでは、関節毎にその連結する骨の可動範囲を設定し、その関節の特性に合わせ、その可動範囲の大きさや、動作の自由度を異ならせることによって、より現実味のある動作をさせるようにしている。そして、さらに自然で滑らかなスケルトンモデルの動作を表現するために、各関節において射影を用いて球面状の点を射影面上に座標変換して可動範囲を設定することによって、従来における関節の可動範囲を設定する手法が開示されている(特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2010−170279号公報(段落0010等)
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1においても各関節毎に独立な可動域モデルが用意されている。ところが、現実の人間や動物などの関節動作は、隣接する関節の影響を受けて動作が制限される場合もある。そのため、その可動域毎にモデリングに係る計算を行っていると、四肢部の先端が不自然な位置に移動することも考えられる。一方、さらに自然な動きを実現するために、変数の数を増やしてしまうと、その処理に複雑な数学モデルを要することとなってしまう。
【0006】
本発明は、胴体に結合される肢体毎に動作をモデリングする場合において、当該動作の特定に要する変数を減らしつつも、より現実の動作に近いモデルの動作をモデリングすることができる動作モデリング装置等を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するため、本発明の第1の観点にかかる動作モデリング装置は、第1関節を介して胴体に結合されるとともに中途に第2関節が配された肢体であって、該第1関節を中心に所定の角度範囲内で回転させることができる肢体を有するキャラクタの動作をモデリングする動作モデリング装置であって、前記第1関節の位置を基準として、前記肢体の前記第2関節よりも先にある特定部位の位置を決定する特定部位位置決定手段と、前記特定部位の前記第1関節からの相対位置に対して、前記第2関節を回転させることが可能な角度範囲を定義した角度範囲データを対応付けて記憶した角度範囲データ記憶手段と、前記特定部位位置決定手段により決定された前記特定部位の位置に応じて前記角度範囲データ記憶手段に記憶された角度範囲データに基づいて、前記第2関節の位置を決定する第2関節位置決定手段とを備えることを特徴とする。
【0008】
上記第1の観点にかかる動作モデリング装置では、まず、胴体に第1関節を介して結合される肢体について、その第1関節を基準として、その肢体の中途に配された第2関節の先にある特定部位の位置を決定する。第1関節を基準に特定部位の位置が決定されると、その特定部位の位置に応じて設定された、第1関節からの相対位置に対して、第2関節の回転可能な角度範囲において第2関節の位置が決定される。つまり、肢体において第1関節を基準として特定部位の位置が決定されると、第2関節の関節角度が固定されるので、続いて第1関節と特定部位を結ぶ軸を中心とした第2関節の回転角度を決定することで、その肢体の動作のモデリングをすることができるようになる。さらに、第2関節の回転角度は、特定部位の位置に応じた回転角度の範囲内において決定されるので、肢体の特定部位の位置に対する不自然な動作を防ぐことができる。
【0009】
具体的には、モデリングの対象となる、現実において人間の肘や膝のように、限定された方向のみに屈伸動作をする関節を有する腕や脚をモデリングの対象とするとき、その対象における第2関節が、第2関節の先にある特定部位の位置において、不自然に曲がってしまうことを防ぐことができ、その対象の肢体の動作において違和感のないモデリングができるようになる。また、その肢体の動作のモデリングにおいて、特定部位の位置に係る情報と、第2関節の回転角度に係る情報とだけで、その肢体の形状を決定することができるので、より少ない情報で動作のモデリングを行うことができる。
【0010】
上記第1の観点にかかる動作モデリング装置において、前記キャラクタは、ゲームにおいて登場するキャラクタであり、前記動作モデリング装置は、前記ゲームの進行状況が予め定義された複数種類の状況のうちの何れの状況となっているかを判定するゲーム状況判定手段をさらに備え、前記角度範囲データ記憶手段は、前記複数種類の状況のそれぞれに対して、前記第2関節を回転させることが可能な角度範囲として異なる角度範囲を定義した複数の角度範囲データを記憶し、前記第2関節位置決定手段は、前記角度範囲データ記憶手段に記憶された複数の角度範囲データのうちの前記ゲーム状況判定手段により判定された状況に対応した角度範囲データに基づいて、前記第2関節の位置を決定するものとすることができる。
【0011】
この場合には、そのゲーム状況に応じて第2関節の回転可能な角度範囲を変化させることができる。これによって、例えば、キャラクタがゲームの進行において負傷した場合には、その負傷した肢体に係る第2関節の回転可能な角度範囲を、通常の場合よりも狭く設定することができ、キャラクタに対して、そのゲームの状況に応じた自然な動作のモデリングをすることができる。また、他にこのようなゲーム状態としては、キャラクタが身につけているものの状態や、仮想空間におけるキャラクタの周りの環境などがある。
【0012】
上記第1の観点にかかる動作モデリング装置において、前記特定部位を前記第1関節からの相対位置として位置させることができる該特定部位の可動域を定義した可動域データを記憶する可動域データ記憶手段をさらに備え、前記特定部位位置決定手段は、前記可動域データ記憶手段に記憶された可動域データに基づいて、前記特定部位の位置を決定し、前記角度範囲データ記憶手段は、前記可動域データ記憶手段に記憶された可動域の範囲内の位置に対して、前記第2関節を回転させることが可能な角度範囲を定義した角度範囲データを対応付けて記憶するものとすることができる。
【0013】
この場合には、特定部位の位置を定義された可動域において決定し、その位置に応じた第2関節の回転可能な角度範囲で第2関節の位置を決定する。これによって、例えば人型のキャラクタの腕部や脚部をモデリングの対象とした場合において、その腕部や脚部における手首や足首の位置が現実的に到達可能な範囲で決定することができる。そのため、その位置に応じて、関節が不自然に曲がるような動作のモデリングを防ぐことができ、さらに、現実には到達し得ないような位置に肢体が到達することも防ぐことができるようになるので、人型のキャラクタに対してより自然な人の動作をモデリングできるようになる。
【0014】
上記第1の観点にかかる動作モデリング装置において、前記キャラクタは、ゲームにおいて登場するキャラクタであり、前記動作モデリング装置は、前記ゲームの進行状況が予め定義された複数種類の状況のうちの何れの状況となっているかを判定するゲーム状況判定手段をさらに備え、前記可動域データ記憶手段は、前記複数種類の状況のそれぞれに対して、前記特定部位の可動域として異なる可動域を定義した複数の可動域データを記憶し、前記特定部位位置決定手段は、前記可動域データ記憶手段に記憶された複数の可動域データのうちの前記ゲーム状況判定手段により判定された状況に対応した可動域データに基づいて、前記特定部位の位置を決定するものとすることができる。
【0015】
この場合には、そのゲーム状況に応じて特定部位の可動域を変化させることができる。これによって、例えば、キャラクタがゲームの進行において負傷した場合には、その負傷した肢体に係る特定部位の可動域を、通常の場合よりも狭く設定することができ、キャラクタに対して、そのゲームの状況に応じた自然な動作のモデリングをすることができる。
【0016】
上記第1の観点にかかる動作モデリング装置において、前記第1関節から前記第2関節までの長さと前記第2関節から前記特定部位までの長さとの比率を維持しつつ、前記肢体の長さを変化させる肢体長変化手段と、前記肢体長変化手段により変化させられた前記肢体の長さに従って、前記角度範囲データ記憶手段に前記角度範囲データに対応付けて記憶されている前記特定部位の前記第1関節からの相対位置を補正する角度範囲データ補正手段とをさらに備え、前記特定部位位置決定手段は、前記第1関節の位置を基準として、前記肢体長変化手段により長さが変化させられた前記肢体の前記特定部位の位置を特定し、前記第2関節位置決定手段は、前記角度範囲データ補正手段により前記特定部位の前記第1関節からの相対位置が補正された角度範囲データに基づいて、前記第2関節の位置を決定するものとすることができる。
【0017】
なお、前記可動域データ記憶手段をさらに備える動作モデリング装置においては、前記肢体長変化手段により変化させられた前記肢体の長さに従って、前記可動域データ記憶手段に前記可動域データに対応付けて記憶されている前記特定部位の前記第1関節からの相対位置を補正する可動域データ補正手段をさらに備え、前記特定部位位置決定手段は、前記可動域データ補正手段により前記特定部位の前記第1関節からの相対位置が補正された可動域データに基づいて、前記特定部位の位置を決定するものとすることができる。
【0018】
この場合には、肢体の長さを、第1関節から第2関節、第2関節から特定部位のそれぞれの長さの比率を一定に保ちながら変化させることができる。そして、肢体の長さを変化させた場合には、その肢体の長さに従って、第1関節から特定部位の相対位置が補正されるものとなる。これによって、常に同じ大きさのキャラクタだけではなく、様々な大きさに変化させたキャラクタに対しても同様の自然な動作のモデリングを行うことができる。
【0019】
肢体の長さを変化させる前に特定部位の位置、および第2関節の位置を決定した(決定された位置は、肢体の長さが変化される前では存在できる位置)後に肢体の長さを変化させると、長さが変化された肢体では特定部位や第2関節が存在できない位置(例えば、障害物に衝突する位置など)に存在してしまうことがあり、再度特定部位の位置や第2関節の位置を決定し直さなければならなくなってしまう。ここでは、角度範囲データ補正手段により角度範囲補正データに対応付けて記憶されている特定部位の第1関節からの相対位置を補正することで、先に肢体の長さを変化させてから特定部位の位置、および第2関節の位置を決定することができ、このような位置の決定のための処理が一度で済むものとなる。
【0020】
上記第1の観点にかかる動作モデリング装置において、前記肢体の長さを変化させる肢体長変化手段をさらに備え、前記角度範囲データ記憶手段は、前記肢体長変化手段により変化させることが可能な前記肢体の長さの範囲のうちの複数の範囲に対して、前記第2関節を回転させることが可能な角度範囲として異なる角度範囲を定義した複数の角度範囲データを記憶し、前記特定部位位置決定手段は、前記第1関節の位置を基準として、前記肢体長変化手段により長さが変化させられた前記肢体の前記特定部位の位置を特定し、前記第2関節位置決定手段は、前記肢体長変化手段により変化させられた前記肢体の長さに対応した角度範囲データに基づいて、前記第2関節の位置を決定するものとすることができる。
【0021】
なお、前記可動域データ記憶手段をさらに備える動作モデリング装置においては、前記可動域データ記憶手段は、前記肢体長変化手段により変化させることが可能な前記肢体の長さの範囲のうちの複数の範囲に対して、前記特定部位の可動域として異なる可動域を定義した複数の可動域データを記憶し、前記特定部位位置決定手段は、前記可動域データ記憶手段に記憶された複数の可動域データのうちの前記肢体長変化手段により変化させられた前記肢体の長さに対応した可動域データに基づいて、前記特定部位の位置を決定するものとすることができる。
【0022】
この場合には、肢体の長さを、第1関節から第2関節、第2関節から特定部位のそれぞれの長さを変化させることができる。そして、肢体の長さを変化させた場合には、第1関節から特定部位の相対位置において、その肢体の長さに対応した、異なる第2関節の回転可能な角度範囲を適用することができる。これによって、常に同じ大きさ、或いは形状のキャラクタだけではなく、様々な大きさ、或いは形状に変化させたキャラクタに対しても同様の過程においてその肢体の大きさ、形状に合わせた適正な動作のモデリングを行うことができる。
【0023】
上記目的を達成するため、本発明の第2の観点にかかる動作モデリング方法は、第1関節を介して胴体に結合されるとともに中途に第2関節が配された肢体であって、該第1関節を中心に所定の角度範囲内で回転させることができる肢体を有するキャラクタの動作をコンピュータ装置においてモデリングする動作モデリング方法であって、前記肢体の前記第2関節よりも先にある特定部位の前記第1関節からの相対位置に対して、前記第2関節を回転させることが可能な角度範囲を定義した角度範囲データを対応付けて記憶した角度範囲データを、前記コンピュータ装置が備える記憶装置に予め記憶させるステップと、前記第1関節の位置を基準として、前記コンピュータ装置が備える処理装置が所定の演算により前記特定部位の位置を決定するステップと、前記決定された前記特定部位の位置に応じて前記コンピュータ装置が備える処理装置が前記記憶装置に記憶された角度範囲データを参照して、前記第2関節の位置を決定するステップとを備えることを特徴とする。
【0024】
上記目的を達成するため、本発明の第3の観点にかかるプログラムは、第1関節を介して胴体に結合されるとともに中途に第2関節が配された肢体であって、該第1関節を中心に所定の角度範囲内で回転させることができる肢体を有するキャラクタの動作をコンピュータ装置にモデリングさせるためのプログラムであって、前記肢体の前記第2関節よりも先にある特定部位の前記第1関節からの相対位置に対して、前記第2関節を回転させることが可能な角度範囲を定義した角度範囲データを対応付けて記憶した角度範囲データを、前記コンピュータ装置が備える記憶装置に予め記憶させる角度範囲データ記憶手段、前記第1関節の位置を基準として、前記特定部位の位置を決定する特定部位位置決定手段、及び、前記特定部位位置決定手段により決定された前記特定部位の位置に応じて前記記憶装置に予め記憶された角度範囲データに基づいて、前記第2関節の位置を決定する第2関節位置決定手段として前記コンピュータ装置を機能させることを特徴とする。
【0025】
上記第3の観点にかかるプログラムは、コンピュータ読み取り可能な記録媒体に記録して提供することができる。このコンピュータ読み取り可能な記録媒体は、上記コンピュータ装置に着脱可能に構成され、上記コンピュータ装置とは別個に提供される記録媒体としてもよい。このコンピュータ読み取り可能な記録媒体は、上記コンピュータ装置内に設けられ、上記コンピュータ装置と共に提供される固定ディスク装置などの記録媒体としてもよい。上記第3の観点にかかるプログラムは、ネットワーク上に存在するサーバ装置から、そのデータ信号を搬送波に重畳して、ネットワークを通じて上記コンピュータ装置に配信することもできる。
【0026】
また、上記第3の観点にかかるプログラムに含まれる各手段の実行する処理を各ステップの処理として実行する方法も、本発明の範囲に含まれる。
【図面の簡単な説明】
【0027】
【図1】本発明の実施の形態に適用されるビデオゲーム装置の構成を示すブロック図である。
【図2】本発明の実施の形態に係るプレイヤキャラクタについて、スケルトンモデルの右手首の到達可能範囲を示した図である。
【図3】先端部の位置が決定された場合における中間部の回転態様を示した図である。
【図4】先端部の到達点に格納された中間部の可動範囲を示した図である。
【図5】負傷時におけるプレイヤキャラクタの先端部の到達範囲、および中間部の可動範囲を示した図である。
【図6】右腕部の形状を決定するための処理を示すフローチャートである。
【発明を実施するための形態】
【0028】
以下、添付図面を参照して、本発明の実施の形態について説明する。
【0029】
図1は、この実施の形態に適用されるビデオゲーム装置の構成を示すブロック図である。図示するように、ビデオゲーム装置100は、装置本体101を中心として構築される。この装置本体101は、その内部バス119に接続された制御部103、RAM(Random Access Memory)105、ハードディスク・ドライブ(HDD)107、サウンド処理部109、グラフィック処理部111、DVD/CD−ROMドライブ113、通信インターフェイス115、及びインターフェイス部117を含む。
【0030】
この装置本体101のサウンド処理部109は、スピーカーであるサウンド出力装置125に、グラフィック処理部111は、表示画面122を有する表示装置121に接続されている。DVD/CD−ROMドライブ113には、記録媒体(本実施の形態では、DVD−ROMまたはCD−ROM)131を装着し得る。通信インターフェイス115は、ネットワーク151に接続される。インターフェイス部117には、入力部(コントローラ)161とメモリーカード162とが接続されている。
【0031】
制御部103は、CPU(Central Processing Unit)やROM(Read Only Memory)などを含み、HDD107や記録媒体131上に格納されたプログラムを実行し、装置本体101の制御を行う。制御部103は、内部タイマを備えている。RAM105は、制御部103のワークエリアであり、後述する、プレイヤキャラクタの手首の可動域や、肘、膝のひねり角度などに関する情報は、RAM105に一時記憶される。HDD107は、プログラムやデータを保存するための記憶領域である。サウンド処理部109は、制御部103により実行されているプログラムがサウンド出力を行うよう指示している場合に、その指示を解釈して、サウンド出力装置125にサウンド信号を出力する。
【0032】
グラフィック処理部111は、制御部103から出力される描画命令に従って、フレームメモリ112(図では、グラフィック処理部111の外側に描かれているが、グラフィック処理部111を構成するチップに含まれるRAM内に設けられる)に画像データを展開し、表示装置121の表示画面122上に画像を表示するビデオ信号を出力する。グラフィック処理部111から出力されるビデオ信号に含まれる画像の1フレーム時間は、例えば60分の1秒である。フレームメモリ112は、2セット設けられており、データの書き込み用と読み出し用とがフレーム期間毎に切り替えられる。
【0033】
グラフィック処理部111は、仮想3次元空間に存在するオブジェクト(プレイヤキャラクタ、ノンプレイヤキャラクタ、及びキャラクタ以外のオブジェクト)を仮想カメラにより透視変換した2次元画像の画像データを生成して、フレームメモリ112に書き込む。
【0034】
DVD/CD−ROMドライブ113は、記録媒体131に対しプログラム及びデータの読み出しを行う。通信インターフェイス115は、ネットワーク151に接続され、他のコンピュータとの通信を行う。入力部161は、方向キー及び複数の操作ボタンを備えている。仮想3次元空間におけるプレイヤキャラクタの位置は、入力部161の方向キーから入力される指示によって移動させられる。
【0035】
インターフェイス部117は、入力部161からの入力データをRAM105に出力し、制御部103がそれを解釈して演算処理を実施する。インターフェイス部117は、また、制御部103からの指示に基づいて、RAM105に記憶されているゲームの進行状況を示すデータをメモリーカード162に保存させ、メモリーカード162に保存されている中断時のゲームのデータを読み出して、RAM105に転送する。
【0036】
ビデオゲーム装置100でゲームを行うためのプログラム及びデータは、最初例えば記録媒体131に記憶されている。記録媒体131に記憶されているデータとしては、ゲーム空間(仮想3次元空間)に存在するオブジェクトを構成するためのグラフィックデータを含んでいる。記録媒体131に記憶されたプログラム及びデータは、実行時にDVD/CD−ROMドライブ113により読み出されて、RAM105にロードされる。制御部103は、RAM105にロードされたプログラム及びデータを処理し、描画命令をグラフィック処理部111に出力し、サウンド出力の指示をサウンド処理部109に出力する。制御部103が処理を行っている間の中間的なデータは、RAM105に記憶される。
【0037】
この実施の形態にかかるビデオゲームでは、ゲーム空間となる仮想3次元空間に複数の3次元オブジェクトが存在し、これらのオブジェクトを仮想カメラにより透視変換した画像がゲームの画像として表示装置121の表示画面122に表示される。仮想3次元空間に存在するオブジェクトとしては、プレイヤの入力部161からの入力により動作させられるプレイヤキャラクタ、プレイヤキャラクタ以外のキャラクタであるノンプレイヤキャラクタ(敵キャラクタなど。制御部103により動作させられる)などが含まれ、それらが、バトルを行うことでゲームが進行するものである。バトルでは、互いに攻撃し合い、どちらかが戦闘不能となるまで続けられるものとなる。また、プレイヤキャラクタは敵キャラクタからの攻撃により負傷することがあり、それによって動作の不自由を強いられることもある。
【0038】
そして、そのプレイヤキャラクタの動作は、プレイヤキャラクタはプレイヤの入力部161からの入力により、モデリングされた動作を実行することになる。この動作のモデリングでは、その一連の動作を形作る当該プレイヤキャラクタの各時点での形状において、プレイヤキャラクタの各四肢部の形状が、その四肢部毎においてモデリングされるものとなっている。以下、プレイヤキャラクタの動作のモデリングにおける、四肢部の形状のモデリングについて説明する。
【0039】
まず、形状のモデリングの対象となる四肢部とは、当該プレイヤキャラクタのスケルトンモデルにおいて、上腕と下腕、或いは腿と脛といった2本の骨格からなる部位である。そして、プレイヤキャラクタの当該四肢部の形状のモデリングの手順は、まず、四肢部毎に定義される固定された部位(例えば、腕部なら肩、脚部なら股など。以下、固定部とする)を中心とした先端部(例えば、腕部なら手首、脚部なら足首など。以下、先端部とする)の到達範囲内から、当該先端部の位置を決定する。
【0040】
そして、その四肢部の中間の関節部(腕部なら肘、脚部なら膝。以下、中間部とする)の位置を、固定部と先端部とを結んだ軸を中心とした回転角(ひねり角度)を中間部の可動範囲内から決定するものとなっている。以下、四肢部のモデリングの手順について、右腕部を例にして詳細に説明する。
【0041】
図2は、スケルトンモデルと共に、当該スケルトンモデル右腕部における右手首(先端部)の到達範囲を示すものである。図示するように、右腕部においては、肩部(固定部)を中心として先端部の到達範囲が定義されている。このような、四肢部の先端部の到達範囲は各四肢部毎に同様に定義されている。右腕部のモデリングの手順としては、まずこの先端部の到達範囲内において、先端部の位置が決定されることとなる。このとき、先端部の位置が到達範囲内に設定されれば、その位置で先端部の位置が決定されるが、到達範囲外に設定されたときは、その位置から最も近い距離にある到達範囲に、その先端部の位置が修正されて決定されるものとなる。
【0042】
先端部の位置が決定されると、右腕部において、固定部と位置の定められた先端部とから上腕と下腕とから作る肘部(中間部)の関節角の形状が定まる。続いて、先端部、或いは固定部を中心とした中間部の回転角、詳細には、先端部と固定部を直線で結んだ軸を中心とした中間部の回転角の範囲から、その中間部の位置が決定されるものとなる。
【0043】
図3は、図2に示したスケルトンモデルの右腕部、および固定部と先端部とを直線で結んだ軸を中心とした中間部の回転を示したものである。図示するように、両端部の位置が決定されていると、中間部の位置が、その軸に対して中間部から引いた垂線と軸との交点Pを中心とした円周上のみから決定されるものとなる。そして、この円周上に定められる中間部の位置は、その先端部の位置に応じた回転角の範囲内において、当該先端部の位置から従来の手法(例えば、逆運動学など。詳細な説明は省略する)を用いて決定されることになる。
【0044】
ここで、中間部の回転角を決定するとき、その回転方向は軸の先端部を進行方向とした右ねじ方向への回転を正とする。そして、軸と右腕部(上腕、下腕の各辺)で作る平面が、右腕部に定義されるローカル座標(x,y,z)のz軸と平行となるような中間部の位置を、その中間部の回転角が0となる基準点とし、その中間部の回転角の可動範囲が定められるものとする。なお、中間部の回転の基準点の定義に関しては、これに限るものではなく、その基準点に対して、可動範囲が特定されるものであればよい。
【0045】
次に、この先端部の位置に応じた可動範囲について説明する。図4(a)は、図示する肩部を右腕部に定義されるローカル座標(x,y,z)の中心(0,0,0)として、格子状に定められた、先端部が到達位置の一部を示すものである。この格子状に定められた先端部の到達位置には、中間部の可動範囲が定義されている。そして、図4(b)は、RAM105に記憶されるその先端部の到達位置毎の中間部の可動範囲を示すものである。
【0046】
図4(a)に示すように、中間部の可動範囲が定義されている先端部が到達可能な位置(黒丸)は、右腕部の固定部(肩:ローカル座標(0,0,0))を中心としたローカル3次元座標において格子状に定められている。そして、到達不可能な位置の座標においては、中間部の可動範囲が定義された位置は定められていない。
【0047】
そして、図4(b)に示すように、RAM105において、図4(a)に示した各位置座標において定義される中間部の可動範囲が記憶されている。実際に、先端部がこの中間部の可動範囲が定義された座標に位置するときには、その可動範囲内で中間部の位置が決定されるものとなる。このとき、中間部の位置が可動範囲内に設定されれば、その位置で中間部の位置が決定されるが、可動範囲外に設定されたときは、その位置から最も近い可動範囲に、その中間部の位置が修正されて決定されるものとなる。
【0048】
これに基づいて、先端部の座標位置が(0,1,0)と決定し、続いて、中間部の可動範囲が0〜35(deg)の範囲で決定されることにより、右腕部の形状が決定されることになる。このように、右腕部の形状は、手首の到達可能範囲における位置である3変数と、肘の回転角である1変数の計4変数からモデリングされるものとなっている。
【0049】
なお、先端部の位置が、先端部の到達範囲内であって、この中間部の可動範囲が定義された座標に位置しない場合には、その先端部の位置からの距離が最も近い、当該座標に定義された中間部の可動範囲内が、その先端部の位置における中間部の可動範囲として決定されるものとなる。
【0050】
また、プレイヤキャラクタは、ゲームの進行過程において敵キャラクタのバトルを経て負傷する場合があり、そのようなプレイヤキャラクタにさせる動作のモデリングは、その負傷が反映されたものとなるように行う。このような負傷がプレイヤキャラクタの右上腕部に対して生じた場合における、右腕部の動作のモデリングに係るスケルトンモデルの右手首の到達範囲を図5(a)に、肘部の可動範囲を図5(b)に示す。
【0051】
プレイヤキャラクタの右上腕部に負傷が生じた場合には、図示するように、右手首の到達範囲は、図2に示す到達範囲よりも小さく設定されている。そして、図5(b)に示す、右上腕部に負傷が生じた場合における中間部の可動範囲は、図4(b)に示した通常時の中間部の可動範囲よりも、狭く設定されている。これは、実際の人間であっても負傷することで行動の不自由が生ずることと同様に、プレイヤキャラクタの右上腕部の負傷により、四肢部がモデリングできる動作の範囲が狭められたものとなっている。
【0052】
次に、ビデオゲーム装置100における処理について説明する。図6は、このビデオゲーム装置100において実行される四肢部のモデリング処理を示すフローチャートである。まず、この四肢部のモデリング処理では、制御部103は、プレイヤキャラクタが四肢部において負傷しているか否かの判定を行う(ステップS101)。負傷していると判定されれば、制御部103は、先端部の到達範囲、および中間部の可動範囲について、プレイヤキャラクタの負傷時に適用される、到達範囲および可動範囲を設定する(ステップS102)。
【0053】
ステップS101において、負傷していないと判定され、またはステップS102において、負傷時に適用される到達範囲および可動範囲が設定されると、続いて、制御部103は、プレイヤの入力部161の操作に応じて先端部の位置を設定する(ステップS103)。先端部の位置が設定されると、設定された位置が、先端部の到達範囲内にあるか否かの判定を行う(ステップS104)。到達範囲内にないと判定されれば、制御部103は、先端部の位置を、その位置から最も近い到達範囲内に修正して設定する(ステップS105)。
【0054】
ステップS104において、先端部の位置が到達範囲内にあると判定され、またはステップS105において、先端部の位置が修正して設定されると、続いて、制御部103は、当該設定された位置において先端部の位置を決定する(ステップS106)。先端部の位置が決定されると、制御部103は、プレイヤの入力部161の操作に応じ、逆運動学などの従来の手法を用いて中間部の位置を設定する(ステップS107)。中間部の位置が設定されると、設定された位置が、中間部の可動範囲内にあるか否かの判定を行う(ステップS108)。
【0055】
可動範囲内にないと判定されれば、制御部103は、中間部の位置を、その位置から最も近い可動範囲内に修正して設定する(ステップS109)。ステップS108において、中間部の位置が可動範囲内にあると判定され、またはステップS109において、中間部の位置が修正して設定されると、続いて、制御部103は、当該設定された位置において中間部の位置を決定する(ステップS110)。
【0056】
以上説明したように、この実施の形態では、プレイヤキャラクタの動作のモデリングにおいて、まず、四肢部について、その固定部を基準として、先端部の位置を決定する。先端部の位置が決定されると、その先端部の位置に応じて定義されている中間部の可動範囲内において中間部の位置が決定される。つまり、四肢部において、固定部を基準として先端部の位置が決定されると、中間部の関節角度が決定され、固定部と先端部を結ぶ軸を中心として中間部の回転角度を、先端部の位置に応じた可動範囲内において決定することで、その四肢部の動作のモデリングをすることができる。
【0057】
これによって、プレイヤキャラクタの四肢部において屈伸動作をする肘や膝などの関節が、その四肢部の手首や足首などの位置において、不自然に曲がってしまうことを防ぐことができ、そのプレイヤキャラクタの四肢部の動作において違和感のないモデリングができるようになる。また、その四肢部の動作のモデリングにおいて、先端部の位置に係る情報と、中間部の回転角度に係る情報だけで、その四肢部の形状を決定することができるので、より少ない情報で動作のモデリングを行うことができる。このようにモデリングに要する情報を少なくすることで、ゲームの進行に合わせたリアルタイム処理において有利である。
【0058】
また、先端部の位置は、到達範囲内において決定され、その到達範囲内の位置に応じた中間部の可動範囲が定義されている。これによって、人型のプレイヤキャラクタであれば、その腕部や脚部における手首や足首の位置が現実的に到達可能な範囲で決定することができ、さらに、その位置に応じて、関節が不自然に曲がるような動作のモデリングを防ぐことができるようになり、このような人型のキャラクタに対してより自然な人の動作をモデリングできるようになる。
【0059】
また、プレイヤキャラクタは、敵キャラクタとのバトルにおいて負傷した場合には、その負傷によって、先端部の到達範囲、および中間部の可動範囲が通常時より狭められることになる。これによって、プレイヤキャラクタに対して、そのゲームの状況に応じた自然な動作のモデリングをすることができる。
【0060】
本発明は、上記の実施の形態に限られず、種々の変形、応用が可能である。以下、本発明に適用可能な上記の実施の形態の変形態様について説明する。
【0061】
上記の実施の形態では、プレイヤキャラクタの四肢部の長さについては特に言及しなかったが、プレイヤキャラクタの動作のモデリングをする過程において、四肢部の長さが変化するものであってもよい。この場合において、四肢部の長さが、固定部から中間部、中間部から先端部のそれぞれの長さの比率を一定に保ちながら変化させてもよいし、またはその比率も変わるように、四肢部の長さを変化させてもよい。プレイヤキャラクタが全体的に拡大・縮小される場合も、このように固定部から中間部、中間部から先端部のそれぞれの長さの比率を一定に保ちながら四肢部の長さが変化される。
【0062】
このように固定部から中間部、中間部から先端部のそれぞれの長さの比率が一定のまま四肢部(または、キャラクタ全体)が大きくなる場合において、先端部の到達範囲が広くなるような場合には、併せて図4(a)に示す中間部の可動範囲が定義された格子間の間隔を大きくするようにデータの補正を行う(四肢部が小さくなる場合は、格子間の間隔を小さくするようにデータの補正を行う)。例えば、プレイヤキャラクタの大きさが2倍になって四肢部の長さも2倍になる場合には、ローカル座標が(1,0,2)である格子の点のローカル座標は、(2,0,4)に補正される。
【0063】
このような補正を行うことで、当初の大きさではプレイヤキャラクタの四肢部の位置(先端部及び中間部)を全く決定しないまま、先にプレイヤキャラクタを拡大・縮小させるなど四肢部の長さを変化させる。そして、四肢部の長さが変化させられたプレイヤキャラクタについて、四肢の先端部の位置を決定する(決定される各先端部の位置は、障害物に衝突したりして存在し得ない位置とはならない)。その後に、上記の補正されたデータを用いて、四肢の中間部の位置を決定する。
【0064】
なお、四肢部の長さが変化することで、先端部の所定の位置における中間部の可動範囲が変化する場合に、その中間部位置が可動範囲外に存在しうるようになったときには、上記の実施の形態と同様に、その中間部の位置を最も近い可動範囲の位置に修正するようにしてもよい。
【0065】
この変形例では、補正されたデータを適用して、先に四肢部の長さを変化させて、先端部の位置、および第2関節の位置を決定するものとしている。四肢部の長さを変化させる前に先端部の位置、および中間部の位置を決定した(決定された位置は、肢体の長さが変化される前では存在できる位置)後にそのままプレイヤキャラクタを拡大させるなどして四肢部の長さを変化させるのでは、長さが変化された後の四肢部では障害物に衝突する位置などの先端部が存在できない位置に存在してしまうことがある。中間部が存在できない位置に存在してしまうこともある。このような場合は、改めて先端部の位置や中間部の位置を決定し直さなければならない。
【0066】
一方、この変形例のように格子間のデータを補正し、補正したデータを適用できるようにすることで、プレイヤキャラクタを拡大・縮小させるなど四肢部の長さの変化を確定させてから、変化された長さで四肢部のそれぞれにおける先端部及び中間部の位置を決定できる。このため、四肢部のそれぞれにおける先端部及び中間部の位置を何度も決定し直すことなく一度で決定できるようになり、処理負荷を小さくすることができる。また、格子間のデータの補正が必要となっても、その処理負荷は極小さくて済むので、先端部及び中間部の位置を一旦決めてから四肢部の長さを変化させる場合に生じ得る処理負荷に比べれば、大した問題とはならない。
【0067】
また、四肢部の長さを変化させる場合には、上記の実施の形態において説明した、図4(a)に示した各位置座標において定義される中間部の可動範囲のデータは、その長さの変化に応じた複数の可動範囲のデータを記憶しているものとして、四肢部の長さが変化する場合には、その長さの変化に応じて中間部の可動範囲を変化させるようにすることができる。
【0068】
これは、プレイヤキャラクタが全体的に拡大・縮小される場合のように、固定部から中間部、中間部から先端部のそれぞれの長さの比率を一定に保ちながら四肢部の長さが変化されるものであっても、固定部から中間部、中間部から先端部のそれぞれの長さの比率が変わるものであってもよい。さらに、全体としては四肢部の長さが変わらなくても、固定部から中間部、中間部から先端部のそれぞれの長さの比率が変わる場合には、四肢部の長さが変化するものとして、この例に含められる。
【0069】
このようにすることで、ゲームの進行において、常に同じ形状のキャラクタのみを動作させるだけではなく、様々な形状に変化させることができるようになり、その変化後のキャラクタに対してもその四肢部の大きさ、形状に合わせた適正な動作のモデリングが可能となる。また、プレイヤキャラクタに自然な動作をさせながらも、様々な形状にプレイヤキャラクタを変化させることができるので、プレイヤはゲームとしての興趣が得られるようになる。例えば、プレイヤキャラクタの手だけが伸びて敵キャラクタを攻撃できるような場合に、手が伸びるほど肘の可動範囲が小さくなるような様子をモデリングできる。
【0070】
なお、四肢部の長さが、固定部から中間部、中間部から先端部のそれぞれの長さの比率が一定の場合と変わる場合とでは、その四肢部自体の長さが同じであっても、その先端部の到達範囲が異なるものとしてもよい。これは、例えば、上記の実施の形態において図2のスケルトンモデルで示した右腕の手首の到達範囲であれば、固定部から中間部、中間部から先端部のそれぞれの長さの比率が一定の場合には、全体としてその到達範囲が広くなるのに対し、比率が変わる場合には、スケルトンモデルの背面側の到達範囲が広くなるような到達範囲の変化があってもよい。
【0071】
この手法により、本発明において四肢部の動作をモデリングするキャラクタには、胴体に対して四肢部だけの大きさ、形状が変化するような仮想的なキャラクタ、例えば、極端に腕部の長いキャラクタを用いるものとすることができ、そのキャラクタの胴体と四肢部とに合わせた、適切な四肢部の先端部の到達範囲、および中間部の可動範囲を設定することができる。これによって、例えば、一部に極端な大きさの四肢部、あるいは四肢部の中でも固定部から中間部、中間部から先端部の比率が変化の前後で変わる四肢部を有する仮想的なキャラクタであっても、その四肢部の大きさ、形状に合わせた適正な動作のモデリングが可能となる。
【0072】
また、四肢部(または、キャラクタ全体)の大きさ、形状を変化させたときには、それが大きく変化する場合には、一般的に動作が鈍くなるものであり、結果として四肢部の先端部の到達範囲、および中間部の可動範囲が狭くなるように定義してもよい。一方、小さく変化する場合には、一般的に動作が素早くなるものであり、結果として四肢部の先端部の到達範囲、および中間部の可動範囲が広くなるように定義するようにしてもよい。
【0073】
上記の実施の形態では、四肢部の動作のモデリングについて、人型のプレイヤキャラクタの腕部や脚部といった、関節が1つの場合の四肢部の動作のモデリングを例に示したが、関節が2つ以上ある場合であっても、その関節角の形状の組合せとして中間部の可動範囲を定義し、上記の実施の形態を適用するものとしてもよい。
【0074】
上記の実施の形態では、右上腕部が負傷した場合について、先端部の到達範囲、および中間部の可動範囲が狭まる場合の例を1つ示したが、このように負傷した場合の先端部の到達範囲、および中間部の可動範囲の狭まる範囲は、負傷の程度に応じて変化するものであってもよい。例えば、負傷の程度が軽い場合の先端部の到達範囲、および中間部の可動範囲に対して、負傷の程度が重い場合の先端部の到達範囲、および中間部の可動範囲は、より狭められるように定義してもよい。こうすることで、プレイヤは自らが動作させるプレイヤキャラクタの動作に対する現実味を得られるものとなる。
【0075】
また、先端部の到達範囲、および中間部の可動範囲が変化するようなゲームの状況は、プレイヤキャラクタが負傷した場合に限らず、例えば、プレイヤキャラクタが武器や防具を装備できる場合において、その武器や防具の種類が変化するというものでもよい。さらに詳細に説明すると、重い武器や防具を装備する場合には、先端部の到達範囲、および中間部の可動範囲がより狭く定義され、反対に、軽い武器や防具を装備する場合には、先端部の到達範囲、および中間部の可動範囲が広く定義されるようにするなどである。
【0076】
また、同様に、プレイヤキャラクタに各種ステータスを設定している場合には、例えば、そのステータスの示す状態が、毒に犯されている状態や麻痺の状態であるとき、先端部の到達範囲、および中間部の可動範囲はより狭く定義されるものとしてもよい。また、ステータスにおいて、プレイヤキャラクタの気分や気持ちの状態を示す場合に、気分や気持ちが落ち込んでいる状態のときは、先端部の到達範囲、および中間部の可動範囲はより狭く定義され、反対に、気分や気持ちが上昇している状態のときは、先端部の到達範囲、および中間部の可動範囲が広く定義されるものとしてもよい。
【0077】
また、プレイヤキャラクタを動作させる仮想3次元空間における状況が、プレイヤキャラクタの行動に影響を及ぼすようなものである場合にも、先端部の到達範囲、および中間部の可動範囲が変化するようにしてもよい。例えば、仮想3次元空間における状況が、気温の寒い状況であるときには、先端部の到達範囲、および中間部の可動範囲はより狭く定義され、また、重力や、移動体に乗っているときに生じる荷重により先端部の到達範囲、および中間部の可動範囲はより狭く定義されるものとしてもよい。また、その仮想3次元空間における状況が水中である場合には、先端部の到達範囲、および中間部の可動範囲が変化されるものとしてもよい。
【0078】
また、プレイヤキャラクタ自身の動作の状態において、先端部の到達範囲、および中間部の可動範囲が変化するようにしてもよい。例えば、プレイヤキャラクタが走っている状態のときの両腕の先端部の到達範囲、および中間部の可動範囲については、現実的にも、制限されるものであるため、その到達範囲、可動範囲が狭く定義されるものとしてもよい。また、例えば、両手首が縛られている場合に、一方の腕の動作は、他方の腕からの影響を受けることによって制限されることも考えられ、他方の腕の形状によっては、一方の中間部の可動範囲がより狭く定義されるものとしてもよい。
【0079】
また、現実的な四肢部の動作においても、勢いよく動かせば、通常よりもより広い範囲に亘って四肢部を動作させることができるため、上記の実施の形態におけるプレイヤキャラクタにおいても、前の動作の速度に応じて、先端部の到達範囲、および中間部の可動範囲がより広くなるものとしてもよい。
【0080】
上記の実施の形態では、右腕を例にして各四肢部に先端部の到達範囲、および中間部の可動範囲が定義されているものとしたが、これに限らず、四肢部においても両腕だけ、このような先端部の到達範囲、および中間部の可動範囲が定義されているものとしてもよい。
【0081】
上記の実施の形態では、右腕を例にして、その右腕において、先端部の到達範囲、およびその先端部の位置に応じた中間部の可動範囲を定義し、他の四肢部についてはその四肢部毎に到達範囲、可動範囲を定義しているものとしていたが、両腕の片方の腕において先端部の到達範囲、中間部の可動範囲のデータが定義されていれば、その反転したデータを他方の腕に適用するものとしてもよい。これによって、それぞれの独立した到達範囲、可動範囲のデータを保持する必要はなく、情報量を軽減することができるようになる。また、このような情報量の軽減は、左右対称な四肢部を有するもの、例えば、他のほ乳類やは虫類、或いは昆虫などにおいても同様に適用することができる。
【0082】
上記の実施の形態では、プレイヤキャラクタをモデルとして、そのモデリングの手順を示したが、ノンプレイヤキャラクタも同様に、その動作をモデリングするものとしてもよい。
【0083】
上記の実施の形態では、胴体に対して四肢部、例えば、腕部、脚部などの動作のモデリングについて説明した。これは、例えば、両腕の動作範囲は、肩関節の位置が同じであれば、胴体の動き(捻りなど)による影響があまり見られないからである。一方、人間の足部(膝下)の動作範囲は、空間上で同じ場所に位置していても、腿部(膝上)の動きによって相当な影響を受けるので、通常であれば、膝の位置を基準としたつま先の位置や足首の角度のモデリングに、上記の実施の形態をそのままに適用することはできない。
【0084】
もっとも、人間が椅子に座った姿勢だけを考えるならば腿部が固定されるので、足部の動作範囲に対して腿部の動きというものをほとんど無視することができる。そこで、例えば、人型のキャラクタが椅子に座っていることを前提とした上で足部の動作をモデリングする場合には、腿部を胴体、足部を胴体に結合される肢体と見立て、膝関節を上記の実施の形態における肩関節、つま先を上記の実施の形態における手首、足首を上記の実施の形態における肘といった具合に当て嵌め、上記の実施の形態と同様の手法によって、足部の動作をモデリングすることが可能となる。
【0085】
上記の実施の形態では、プレイヤの操作およびゲーム進行に応じて、プレイヤキャラクタの四肢部の動作をモデリングするものとしていたが、予め、プレイヤの操作およびゲーム進行に応じたプレイヤキャラクタの動作をモデリングし、そのモデリングした動作をプレイヤの操作、およびゲーム進行に応じて実行するものであってもよい。
【0086】
上記の実施の形態では、人型のプレイヤキャラクタの四肢部を例とした動作のモデリングを示したが、これに限らず、四肢部を有する、例えば、骨格を有する脊椎動物や、甲殻類など、動物全般をモデルとして動作のモデリングを行ってもよく、また、油圧ショベル、ロボットアームのような、無生物に対しても適用できる。
【0087】
上記の実施の形態では、本発明にかかるキャラクタの動作に係るモデリングをビデオゲームでする場合に適用し、各プレイヤがゲームを進めるために用いる端末装置としてゲーム専用機であるビデオゲーム装置100を適用していた。これに対して、本発明は、3次元コンピュータグラフィックスによるモデリングであれば、ビデオゲーム以外でキャラクタの動作に係るモデリングをする場合にも適用することができる。
【0088】
また、本発明にかかる手法でモデリングの処理を行う装置は、ビデオゲーム装置100と同様の構成要素を備えるものであれば、汎用のパーソナルコンピュータなどを適用してもよい。3次元コンピュータグラフィックスを処理できる能力があれば、表示装置121及びサウンド出力装置125を装置本体101と同一の筐体内に納めた構成を有する携帯ゲーム機(アプリケーションの実行機能を有する携帯電話機を含む)を適用するものとしてもよい。
【0089】
記録媒体131としては、DVD−ROMやCD−ROMの代わりに半導体メモリーカードを適用することができる。このメモリーカードを挿入するためのカードスロットをDVD/CD−ROMドライブ113の代わりに設けることができる。汎用のパーソナルコンピュータの場合には、本発明に係るプログラム及びデータを記録媒体131に格納して提供するのではなく、HDD107に予め格納して提供してもよい。本発明にかかるプログラム及びデータを格納して提供するための記録媒体は、ハードウェアの物理的形態及び流通形態に応じて任意のものを適用することができる。
【0090】
上記の実施の形態では、ビデオゲーム装置100のプログラム及びデータは、記録媒体131に格納されて配布されるものとしていた。これに対して、これらのプログラム及びデータをネットワーク151上に存在するサーバ装置が有する固定ディスク装置に格納しておき、装置本体101にネットワーク151を介して配信するものとしてもよい。ビデオゲーム装置100において、通信インターフェイス115がサーバ装置から受信したプログラム及びデータは、HDD107に保存し、実行時にRAM105にロードすることができる。
【符号の説明】
【0091】
100 ビデオゲーム装置
101 ビデオゲーム装置本体
103 制御部
105 RAM
107 HDD
109 サウンド処理部
111 グラフィック処理部
112 フレームメモリ
113 DVD/CD−ROMドライブ
115 通信インターフェイス
117 インターフェイス部
119 内部バス
121 表示装置
122 表示画面
125 サウンド出力装置
131 記録媒体
151 ネットワーク
161 入力部
162 メモリーカード

【特許請求の範囲】
【請求項1】
第1関節を介して胴体に結合されるとともに中途に第2関節が配された肢体であって、該第1関節を中心に所定の角度範囲内で回転させることができる肢体を有するキャラクタの動作をモデリングする動作モデリング装置であって、
前記第1関節の位置を基準として、前記肢体の前記第2関節よりも先にある特定部位の位置を決定する特定部位位置決定手段と、
前記特定部位の前記第1関節からの相対位置に対して、前記第2関節を回転させることが可能な角度範囲を定義した角度範囲データを対応付けて記憶した角度範囲データ記憶手段と、
前記特定部位位置決定手段により決定された前記特定部位の位置に応じて前記角度範囲データ記憶手段に記憶された角度範囲データに基づいて、前記第2関節の位置を決定する第2関節位置決定手段と
を備えることを特徴とする動作モデリング装置。
【請求項2】
前記キャラクタは、ゲームにおいて登場するキャラクタであり、
前記動作モデリング装置は、前記ゲームの進行状況が予め定義された複数種類の状況のうちの何れの状況となっているかを判定するゲーム状況判定手段をさらに備え、
前記角度範囲データ記憶手段は、前記複数種類の状況のそれぞれに対して、前記第2関節を回転させることが可能な角度範囲として異なる角度範囲を定義した複数の角度範囲データを記憶し、
前記第2関節位置決定手段は、前記角度範囲データ記憶手段に記憶された複数の角度範囲データのうちの前記ゲーム状況判定手段により判定された状況に対応した角度範囲データに基づいて、前記第2関節の位置を決定する
ことを特徴とする請求項1に記載の動作モデリング装置。
【請求項3】
前記特定部位を前記第1関節からの相対位置として位置させることができる該特定部位の可動域を定義した可動域データを記憶する可動域データ記憶手段をさらに備え、
前記特定部位位置決定手段は、前記可動域データ記憶手段に記憶された可動域データに基づいて、前記特定部位の位置を決定し、
前記角度範囲データ記憶手段は、前記可動域データ記憶手段に記憶された可動域の範囲内の位置に対して、前記第2関節を回転させることが可能な角度範囲を定義した角度範囲データを対応付けて記憶する
ことを特徴とする請求項1または2に記載の動作モデリング装置。
【請求項4】
前記キャラクタは、ゲームにおいて登場するキャラクタであり、
前記動作モデリング装置は、前記ゲームの進行状況が予め定義された複数種類の状況のうちの何れの状況となっているかを判定するゲーム状況判定手段をさらに備え、
前記可動域データ記憶手段は、前記複数種類の状況のそれぞれに対して、前記特定部位の可動域として異なる可動域を定義した複数の可動域データを記憶し、
前記特定部位位置決定手段は、前記可動域データ記憶手段に記憶された複数の可動域データのうちの前記ゲーム状況判定手段により判定された状況に対応した可動域データに基づいて、前記特定部位の位置を決定する
ことを特徴とする請求項3に記載の動作モデリング装置。
【請求項5】
前記第1関節から前記第2関節までの長さと前記第2関節から前記特定部位までの長さとの比率を維持しつつ、前記肢体の長さを変化させる肢体長変化手段と、
前記肢体長変化手段により変化させられた前記肢体の長さに従って、前記角度範囲データ記憶手段に前記角度範囲データに対応付けて記憶されている前記特定部位の前記第1関節からの相対位置を補正する角度範囲データ補正手段とをさらに備え、
前記特定部位位置決定手段は、前記第1関節の位置を基準として、前記肢体長変化手段により長さが変化させられた前記肢体の前記特定部位の位置を特定し、
前記第2関節位置決定手段は、前記角度範囲データ補正手段により前記特定部位の前記第1関節からの相対位置が補正された角度範囲データに基づいて、前記第2関節の位置を決定する
ことを特徴とする請求項1乃至4のいずれか1項に記載の動作モデリング装置。
【請求項6】
前記肢体の長さを変化させる肢体長変化手段をさらに備え、
前記角度範囲データ記憶手段は、前記肢体長変化手段により変化させることが可能な前記肢体の長さの範囲のうちの複数の範囲に対して、前記第2関節を回転させることが可能な角度範囲として異なる角度範囲を定義した複数の角度範囲データを記憶し、
前記特定部位位置決定手段は、前記第1関節の位置を基準として、前記肢体長変化手段により長さが変化させられた前記肢体の前記特定部位の位置を特定し、
前記第2関節位置決定手段は、前記肢体長変化手段により変化させられた前記肢体の長さに対応した角度範囲データに基づいて、前記第2関節の位置を決定する
ことを特徴とする請求項1乃至4のいずれか1項に記載の動作モデリング装置。
【請求項7】
第1関節を介して胴体に結合されるとともに中途に第2関節が配された肢体であって、該第1関節を中心に所定の角度範囲内で回転させることができる肢体を有するキャラクタの動作をコンピュータ装置においてモデリングする動作モデリング方法であって、
前記肢体の前記第2関節よりも先にある特定部位の前記第1関節からの相対位置に対して、前記第2関節を回転させることが可能な角度範囲を定義した角度範囲データを対応付けて記憶した角度範囲データを、前記コンピュータ装置が備える記憶装置に予め記憶させるステップと、
前記第1関節の位置を基準として、前記コンピュータ装置が備える処理装置が所定の演算により前記特定部位の位置を決定するステップと、
前記決定された前記特定部位の位置に応じて前記コンピュータ装置が備える処理装置が前記記憶装置に記憶された角度範囲データを参照して、前記第2関節の位置を決定するステップと
を備えることを特徴とする動作モデリング方法。
【請求項8】
第1関節を介して胴体に結合されるとともに中途に第2関節が配された肢体であって、該第1関節を中心に所定の角度範囲内で回転させることができる肢体を有するキャラクタの動作をコンピュータ装置にモデリングさせるためのプログラムであって、
前記肢体の前記第2関節よりも先にある特定部位の前記第1関節からの相対位置に対して、前記第2関節を回転させることが可能な角度範囲を定義した角度範囲データを対応付けて記憶した角度範囲データを、前記コンピュータ装置が備える記憶装置に予め記憶させる角度範囲データ記憶手段、
前記第1関節の位置を基準として、前記特定部位の位置を決定する特定部位位置決定手段、及び、
前記特定部位位置決定手段により決定された前記特定部位の位置に応じて前記記憶装置に予め記憶された角度範囲データに基づいて、前記第2関節の位置を決定する第2関節位置決定手段
として前記コンピュータ装置を機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2012−208536(P2012−208536A)
【公開日】平成24年10月25日(2012.10.25)
【国際特許分類】
【出願番号】特願2011−31341(P2011−31341)
【出願日】平成23年2月16日(2011.2.16)
【出願人】(308033283)株式会社スクウェア・エニックス (173)
【Fターム(参考)】