(57)【要約】【課題】  オブジェクトの動作をリアルにモデリングしつつ、少ない計算量で３次元画像を描画する。【解決手段】  プレイヤキャラクタ２００の髪２０１以外の部位に設定された骨格３１１〜３１４の位置は、風などの外力の影響を受けずにプレイヤキャラクタ２００の動作に基づいて決定され、これにより基準軸３００が定められる。髪２０１に設定された骨格３０１〜３０５は、プレイヤキャラクタ２００の動作に関わらず、風などの外力の影響を受けて動作する。外力に応じて計算される骨格３０１の位置が基準角度（ａの点線）の範囲になければ、基準角度の位置に補正される（ｂ）。骨格３０２の位置も基準角度（ｃの点線）の範囲になければ、基準角度の位置に補正される（ｄ）。同様に骨格３０１〜３０５の位置を決める。プレイヤキャラクタ２００を構成するポリゴンの位置は、決定された骨格３０１〜３０５、３１１〜３１４の位置のみに基づいて決定される。【選択図】    図５
2005056251.tif 000002
【特許請求の範囲】
【請求項１】
第１のオブジェクトと、該第１のオブジェクトに結合すると共に複数のポリゴンの表示位置を規定する１以上の骨格を含み、該第１のオブジェクトとは結合点以外において独立して動作可能な第２のオブジェクトとをモデリングした３次元画像を描画する３次元画像描画装置であって、
所定の動作条件に従って前記第２のオブジェクトが動作させられるとき、該動作させられた前記第２のオブジェクトに含まれる骨格の位置をそれぞれ算出する骨格位置算出手段と、
前記骨格位置算出手段により算出されたそれぞれの骨格の位置において前記第２のオブジェクトが前記第１のオブジェクトと衝突しない位置にあるかを判定する衝突判定手段と、
前記衝突判定手段により前記第１のオブジェクトと衝突しない位置にないと判定された骨格の位置を、前記第２のオブジェクトが前記第１のオブジェクトと衝突しない位置に算出し直す骨格位置補正手段と、
前記第２のオブジェクトが前記第１のオブジェクトと衝突しない位置に算出された前記骨格のそれぞれの位置を基準として、前記複数のポリゴンのそれぞれの位置を算出するポリゴン位置算出手段と、
前記ポリゴン位置算出手段により算出された位置でポリゴンを描画することにより、前記第１、第２のオブジェクトをモデリングした画像を描画する画像描画手段と
を備えることを特徴とする３次元画像描画装置。
【請求項２】
前記衝突判定手段は、前記第２のオブジェクトに含まれる骨格のそれぞれが前記第１のオブジェクトを基準として設定される基準軸に対してなす角度が、前記第１のオブジェクトとの衝突を生じないものとして予め定められた基準角度の範囲内であるかを判定することにより、該骨格の位置において前記第２のオブジェクトが前記第１のオブジェクトと衝突しない位置にあることを判定する
ことを特徴とする請求項１に記載の３次元画像描画装置。
【請求項３】
前記第２のオブジェクトは、前記第１のオブジェクトとの結合点から先端に至るまでに関節を介して結合された複数の骨格を含んでおり、
前記衝突判定手段は、前記第１のオブジェクトと直接結合しない骨格が該骨格よりも前記第１のオブジェクトに近い位置にある骨格に対してなす角度が、前記第１のオブジェクトとの衝突を生じないものとして予め定められた基準角度の範囲内であるかを判定することにより、該骨格の位置において前記第２のオブジェクトが前記第１のオブジェクトと衝突しない位置にあることを判定する
ことを特徴とする請求項２に記載の３次元画像描画装置。
【請求項４】
前記骨格位置算出手段は、前記衝突判定手段により前記第２のオブジェクトが前記第１のオブジェクトと衝突しない位置にないと判定された骨格の位置を、前記基準角度となる位置まで算出し直す
ことを特徴とする請求項２または３に記載の３次元画像描画装置。
【請求項５】
前記第２のオブジェクトは、外部から加わる力の影響を動作条件として、受動的に動作させられる
ことを特徴とする請求項２乃至４のいずれか１項に記載の３次元画像描画装置。
【請求項６】
第１のオブジェクトと、該第１のオブジェクトに結合すると共に複数のポリゴンの表示位置を規定する１以上の骨格を含み、該第１のオブジェクトとは結合点以外において独立して動作可能な第２のオブジェクトとをモデリングした３次元画像を描画するための３次元画像描画方法であって、
所定の動作条件に従って前記第２のオブジェクトが動作させられるとき、該動作させられた前記第２のオブジェクトに含まれる骨格の位置をそれぞれ算出し、
算出されたそれぞれの骨格の位置において前記第２のオブジェクトが前記第１のオブジェクトと衝突しない位置にあるかを判定し、
前記第１のオブジェクトと衝突しない位置にないと判定された骨格の位置を、前記第２のオブジェクトが前記第１のオブジェクトと衝突しない位置に算出し直し、
前記第２のオブジェクトが前記第１のオブジェクトと衝突しない位置に算出された前記骨格のそれぞれの位置を基準として、前記複数のポリゴンのそれぞれの位置を算出し、
当該算出された位置でポリゴンを描画することにより、前記第１、第２のオブジェクトをモデリングした画像を描画する
ことを特徴とする３次元画像描画方法。
【請求項７】
第１のオブジェクトと、該第１のオブジェクトに結合すると共に複数のポリゴンの表示位置を規定する１以上の骨格を含み、該第１のオブジェクトとは結合点以外において独立して動作可能な第２のオブジェクトとをモデリングした３次元画像を描画するためのプログラムであって、
所定の動作条件に従って前記第２のオブジェクトが動作させられるとき、該動作させられた前記第２のオブジェクトに含まれる骨格の位置をそれぞれ算出する骨格位置算出手段、
前記骨格位置算出手段により算出されたそれぞれの骨格の位置において前記第２のオブジェクトが前記第１のオブジェクトと衝突しない位置にあるかを判定する衝突判定手段、
前記衝突判定手段により前記第１のオブジェクトと衝突しない位置にないと判定された骨格の位置を、前記第２のオブジェクトが前記第１のオブジェクトと衝突しない位置に算出し直す骨格位置補正手段、
前記第２のオブジェクトが前記第１のオブジェクトと衝突しない位置に算出された前記骨格のそれぞれの位置を基準として、前記複数のポリゴンのそれぞれの位置を算出するポリゴン位置算出手段、及び、
前記ポリゴン位置算出手段により算出された位置でポリゴンを描画することにより、前記第１、第２のオブジェクトをモデリングした画像を描画する画像描画手段
としてコンピュータ装置を機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、第１のオブジェクトと、該第１のオブジェクトとの結合点以外において独立して動作する第２のオブジェクトとをモデリングして３次元画像を描画するための技術に関する。
【背景技術】
【０００２】
近年のビデオゲームは、仮想３次元空間内でキャラクタ等のオブジェクトを動作させ、これを仮想カメラにより透視変換した画像をモニタ上に表示する３次元ビデオゲームが主流になっている。現実の世界を考えると、仮想３次元空間内に存在するオブジェクトは、様々な外力（例えば、風の力など）の影響を受けて動作させられるはずである。このような外力の影響をオブジェクトの動作に再現して、リアルな画像を作成できるようにすることが３次元ビデオゲームにおける重要な課題となっている。
【０００３】
例えば、ポリゴンの頂点が結合するスケルトン（骨格）に対する結合度と、スケルトン毎に結合する頂点の移動量の最大値である基準移動量を設定しておき、該結合度と基準移動量とに基づいて頂点の移動量及び移動方向を求めることによって、キャラクタの着ている衣服が風を受けて揺動する場合などをリアルに再現できるようにした３次元画像の生成方法がある（例えば、特許文献１参照）。
【０００４】
【特許文献１】特開２００３−５１０３０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
もっとも、風などの外力だけの影響を受けてポリゴンの頂点の位置を算出すると、現実にはあり得ない位置に算出されてしまう場合がある。例えば、衣服を構成するポリゴンがキャラクタの体の中にめり込んでしまうなどということである。これを避けるため、従来からのコンピュータグラフィックスの分野では、衝突判定用のオブジェクトを用いた衝突判定によりポリゴンのめり込みを防ぐ技術が知られている。
【０００６】
しかしながら、この技術による衝突判定は、ポリゴンの各頂点について行わなければならず、非常に多くの計算量を必要とする。ビデオゲームにおいてはリアルタイムで処理を行わなくてはならないため、ポリゴンの数が多いと画像を描画するための計算が間に合わなくなってしまう虞がある。これを避けるためには、ポリゴンの数を少なく抑えればよいが、曲面を表現するはずのものが角張ってしまい、却ってリアルさが失われてしまうこととなる。
【０００７】
また、キャラクタそのものの動作などは、一般に運動学や動力学を用いて計算されるが、キャラクタが壁を突き抜けたり、キャラクタの関節が限界以上に曲がったりしないようにするため、逆運動学や逆動力学といった方法も適用されている。しかし、逆運動学や逆動力学の計算は、運動学や動力学に比べて極めて複雑で、計算量も多くなる。さらに、キャラクタが歩く、走るといった能動的な動作ではなく、風などの外力の影響による受動的な動作は、逆運動学や逆動力学では適切に計算できないという問題点もあった。
【０００８】
本発明は、オブジェクトの動作をリアルにモデリングしつつ、少ない計算量で３次元画像を描画することができる３次元画像描画装置等を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本発明の第１の観点にかかる３次元画像描画装置は、第１のオブジェクトと、該第１のオブジェクトに結合すると共に複数のポリゴンの表示位置を規定する１以上の骨格を含み、該第１のオブジェクトとは結合点以外において独立して動作可能な第２のオブジェクトとをモデリングした３次元画像を描画する３次元画像描画装置であって、所定の動作条件に従って前記第２のオブジェクトが動作させられるとき、該動作させられた前記第２のオブジェクトに含まれる骨格の位置をそれぞれ算出する骨格位置算出手段と、前記骨格位置算出手段により算出されたそれぞれの骨格の位置において前記第２のオブジェクトが前記第１のオブジェクトと衝突しない位置にあるかを判定する衝突判定手段と、前記衝突判定手段により前記第１のオブジェクトと衝突しない位置にないと判定された骨格の位置を、前記第２のオブジェクトが前記第１のオブジェクトと衝突しない位置に算出し直す骨格位置補正手段と、前記第２のオブジェクトが前記第１のオブジェクトと衝突しない位置に算出された前記骨格のそれぞれの位置を基準として、前記複数のポリゴンのそれぞれの位置を算出するポリゴン位置算出手段と、前記ポリゴン位置算出手段により算出された位置でポリゴンを描画することにより、前記第１、第２のオブジェクトをモデリングした画像を描画する画像描画手段とを備えることを特徴とする。
【００１０】
上記３次元画像描画装置では、骨格位置算出手段により算出された骨格の位置に応じて第２のオブジェクトが第１のオブジェクトと衝突することになるときには、骨格位置補正手段により当該骨格の位置がこのような衝突の生じない位置に補正される。第２のオブジェクトを構成するポリゴンは、このような衝突が生じない位置にある骨格を基準としてその位置を算出して、描画することができる。このように衝突が生じないようにポリゴンを描画できることによって、リアルな画像を描画することができる。また、ポリゴン毎に衝突の判定が必要ないので、少ない計算量で画像を描画することができる。
【００１１】
上記３次元画像描画装置において、前記衝突判定手段は、前記第２のオブジェクトに含まれる骨格のそれぞれが前記第１のオブジェクトを基準として設定される基準軸に対してなす角度が、前記第１のオブジェクトとの衝突を生じないものとして予め定められた基準角度の範囲内であるかを判定することにより、該骨格の位置において前記第２のオブジェクトが前記第１のオブジェクトと衝突しない位置にあることを判定するものとすることができる。
【００１２】
ここで、前記第２のオブジェクトは、前記第１のオブジェクトとの結合点から先端に至るまでに関節を介して結合された複数の骨格を含むものであってもよい。この場合には、前記衝突判定手段は、前記第１のオブジェクトと直接結合しない骨格が該骨格よりも前記第１のオブジェクトに近い位置にある骨格に対してなす角度が、前記第１のオブジェクトとの衝突を生じないものとして予め定められた基準角度の範囲内であるかを判定することにより、該骨格の位置において前記第２のオブジェクトが前記第１のオブジェクトと衝突しない位置にあることを判定するものとすることができる。
【００１３】
このように第２のオブジェクトに含まれる骨格が基準軸または第１のオブジェクトに近い位置にある骨格に対してなす角度が基準角度の範囲内にあるかを判定することにより、第２のオブジェクトを描画するためには本来必要のない衝突判定用のオブジェクトを用いる必要がない。
【００１４】
なお、前記骨格位置算出手段は、前記衝突判定手段により前記第２のオブジェクトが前記第１のオブジェクトと衝突しない位置にないと判定された骨格の位置を、前記基準角度となる位置まで算出し直すものとすることができる。
【００１５】
この場合には、第２のオブジェクトが第１のオブジェクトと衝突する位置にあると判定されたときでも、基準角度となる位置までは第２のオブジェクトに含まれる骨格の位置を動かすことができるので、衝突が生じない範囲で可能な限り第２のオブジェクトの動作を表現することができるようになる。
【００１６】
ここで、前記第２のオブジェクトは、外部から加わる力の影響を動作条件として、受動的に動作させられるものであってもよい。
【００１７】
このように第２のオブジェクトが外部から加わる力により受動的に動作するものであって、逆運動学や逆動力学による計算に適さないものであっても、予め定められた基準角度の範囲内で骨格の位置を決めることによって、その動作を適切にモデリングすることができるようになる。
【００１８】
上記目的を達成するため、本発明の第２の観点にかかる３次元画像描画方法は、第１のオブジェクトと、該第１のオブジェクトに結合すると共に複数のポリゴンの表示位置を規定する１以上の骨格を含み、該第１のオブジェクトとは結合点以外において独立して動作可能な第２のオブジェクトとをモデリングした３次元画像を描画するための３次元画像描画方法であって、所定の動作条件に従って前記第２のオブジェクトが動作させられるとき、該動作させられた前記第２のオブジェクトに含まれる骨格の位置をそれぞれ算出し、算出されたそれぞれの骨格の位置において前記第２のオブジェクトが前記第１のオブジェクトと衝突しない位置にあるかを判定し、前記第１のオブジェクトと衝突しない位置にないと判定された骨格の位置を、前記第２のオブジェクトが前記第１のオブジェクトと衝突しない位置に算出し直し、前記第２のオブジェクトが前記第１のオブジェクトと衝突しない位置に算出された前記骨格のそれぞれの位置を基準として、前記複数のポリゴンのそれぞれの位置を算出し、当該算出された位置でポリゴンを描画することにより、前記第１、第２のオブジェクトをモデリングした画像を描画することを特徴とする。
【００１９】
上記目的を達成するため、本発明の第３の観点にかかるプログラムは、第１のオブジェクトと、該第１のオブジェクトに結合すると共に複数のポリゴンの表示位置を規定する１以上の骨格を含み、該第１のオブジェクトとは結合点以外において独立して動作可能な第２のオブジェクトとをモデリングした３次元画像を描画するためのプログラムであって、所定の動作条件に従って前記第２のオブジェクトが動作させられるとき、該動作させられた前記第２のオブジェクトに含まれる骨格の位置をそれぞれ算出する骨格位置算出手段、前記骨格位置算出手段により算出されたそれぞれの骨格の位置において前記第２のオブジェクトが前記第１のオブジェクトと衝突しない位置にあるかを判定する衝突判定手段、前記衝突判定手段により前記第１のオブジェクトと衝突しない位置にないと判定された骨格の位置を、前記第２のオブジェクトが前記第１のオブジェクトと衝突しない位置に算出し直す骨格位置補正手段、前記第２のオブジェクトが前記第１のオブジェクトと衝突しない位置に算出された前記骨格のそれぞれの位置を基準として、前記複数のポリゴンのそれぞれの位置を算出するポリゴン位置算出手段、及び、前記ポリゴン位置算出手段により算出された位置でポリゴンを描画することにより、前記第１、第２のオブジェクトをモデリングした画像を描画する画像描画手段としてコンピュータ装置を機能させることを特徴とする。
【発明の効果】
【００２０】
本発明によれば、第１のオブジェクトと、該第１のオブジェクトとの結合点以外において独立して動作する第２のオブジェクトとをモデリングした３次元画像を、リアルに、且つ少ない計算量で描画することが可能となる。
【発明を実施するための最良の形態】
【００２１】
以下、添付図面を参照して、本発明の実施の形態について説明する。ここでは、３次元ビデオゲームにおけるプレイヤキャラクタの画像を描画するために、本発明を適用した場合を例として説明する。
【００２２】
図１は、この実施の形態にかかる３次元ビデオゲームを実行するためのビデオゲーム装置１００の構成を示すブロック図である。図示するように、ビデオゲーム装置１００は、ビデオゲーム本体１０１を中心として構築される。このビデオゲーム本体１０１は、その内部バス１１９に接続された制御部１０３、ＲＡＭ（Random Access Memory）１０５、ハードディスク・ドライブ（ＨＤＤ）１０７、サウンド処理部１０９、グラフィック処理部１１１、ＤＶＤ／ＣＤ−ＲＯＭドライブ１１３、通信インターフェイス１１５、及びインターフェイス部１１７を含む。
【００２３】
このビデオゲーム本体１０１のサウンド処理部１０９は、スピーカーであるサウンド出力装置１２５に、グラフィック処理部１１１は、表示画面１２２を有する表示装置１２１に接続されている。ＤＶＤ／ＣＤ−ＲＯＭドライブ１１３には、記録媒体（ＤＶＤ−ＲＯＭまたはＣＤ−ＲＯＭ）１３１を装着し得る。通信インターフェイス１１５は、ネットワーク１５１に接続される。インターフェイス部１１７には、入力部（コントローラ）１６１とメモリカード１６２とが接続されている。
【００２４】
制御部１０３は、ＣＰＵ（Central Processing Unit）やＲＯＭ（Read Only Memory）などを含み、ＨＤＤ１０７や記録媒体１３１上に格納されたプログラムを実行し、ビデオゲーム装置１００の制御を行う。制御部１０３は、内部タイマを備えている。ＲＡＭ１０５は、制御部１０３のワークエリアである。ＨＤＤ１０７は、プログラムやデータを保存するための記憶領域である。サウンド処理部１０９は、制御部１０３により実行されているプログラムがサウンド出力を行うよう指示している場合に、その指示を解釈して、サウンド出力装置１２５にサウンド信号を出力する。
【００２５】
グラフィック処理部１１１は、制御部１０３から出力される描画命令に従って、フレームメモリ１１２に画像を展開し、表示装置１２１の表示画面１２２上に画像を表示するビデオ信号を出力する。出力されるビデオ信号に含まれる画像の１フレーム時間は、例えば３０分の１秒とする。ＤＶＤ／ＣＤ−ＲＯＭドライブ１１３は、記録媒体１３１に対しプログラム及びデータの読み書きを行う。通信インターフェイス１１５は、ネットワーク１５１に接続され、他のコンピュータとの通信を行う。
【００２６】
インターフェイス部１１７は、入力部１６１からの入力データをＲＡＭ１０５に出力し、制御部１０３がそれを解釈して演算処理を実施する。入力部１６１は、方向キー及び複数の操作ボタンを備え、方向キーの操作により後述するプレイヤキャラクタを移動させ、操作ボタンの操作により所定の処理を行わせるものである。方向キーは、カーソルの移動やメッセージなどのためにも用いられ、操作ボタンは、所定の指示を入力するために用いられる。インターフェイス部１１７は、また、制御部１０３からの指示に基づいて、ＲＡＭ１０５に記憶されているゲームの進行状況を示すデータをメモリーカード１６２に保存させ、メモリーカード１６２に保存されている中断時のゲームのデータを読み出して、ＲＡＭ１０５に転送する。
【００２７】
ビデオゲーム装置１００でゲームを行うためのプログラム及びデータは、最初例えば記録媒体１３１に記憶されている。このプログラム及びデータは、実行時にＤＶＤ／ＣＤ−ＲＯＭドライブ１１３により読み出されて、ＲＡＭ１０５にロードされる。制御部１０３は、ＲＡＭ１０５にロードされたプログラム及びデータを処理し、描画命令をグラフィック処理部１１１に出力し、サウンド出力の指示をサウンド処理部１０９に出力する。制御部１０３が処理を行っている間の中間的なデータは、ＲＡＭ１０５に記憶される。
【００２８】
この実施の形態にかかる３次元ビデオゲームは、仮想３次元空間に設けられたフィールド上を、プレイヤが入力部１６１を操作して動作させるキャラクタ（プレイヤキャラクタ）が移動していくことによりゲームが進行していく。このフィールドが形成された仮想３次元空間は、ワールド座標系によって示される。フィールドは、複数の面で構成され、各構成面の頂点の座標を特徴点として表したものである。
【００２９】
図２は、この３次元ビデオゲームにおいて用いられるプレイヤキャラクタの構成を示す図である。図示するように、プレイヤキャラクタ２００は、頭２０２、胴体２０３、腕２０４、足２０５から構成されている。頭２０２には、ポニーテイルに結んだ髪２０１が付加されている。プレイヤキャラクタ２００の各部位は、複数のポリゴンによって構成されており、その特徴点（ポリゴンの頂点）がローカル座標系によって示される。髪２０１は、頭２０２に結合された末端部以外は、先端部まで頭２００の動きとは独立して動作することが可能である。
【００３０】
プレイヤキャラクタ２００の内部には、仮想的な骨格３０１〜３０５、３１１〜３１７等が設定されて、これらの骨格３０１〜３０５、３１１〜３１７等の位置によって、ポリゴンの位置が決定される。髪２０１以外に設定された骨格３１１〜３１７等は、プレイヤキャラクタ２００の能動的な動作のみによって位置決めされる。髪２０１以外に設定された骨格３１１〜３１７等の位置は、運動学や動力学などの従来から適用されている方法を用いて決定することができる。
【００３１】
髪２０１に設定された骨格３０１〜３０５は、関節を介して順に結合されており、プレイヤキャラクタ２００の能動的な動作によらずに、外力の影響を受けて受動的に動作する。ここで、髪２０１に加えられる外力としては、少なくとも髪２０１の重量によって働く重力と、プレイヤキャラクタ２００の動作による運動の慣性力と、仮想３次元空間において流れている風の力とが含まれており、部分毎に受ける力が異なる場合がある。骨格３０１〜３０５の位置を計算するため、骨格３０１〜３０５のそれぞれを単位として髪２０１の重量が予め設定されている。もっとも、髪２０１の重量は、プレイヤキャラクタ２００の能動的な動作に及ぼす影響を無視できる程度に軽いものとする。
【００３２】
次に、プレイヤキャラクタ３００の髪２０１の動きについて説明する。図３は、髪２０１の動きを説明する図である。例えば、図３（ａ）に示すように、プレイヤキャラクタ２００が正面から風を受けているときには、この風の影響により髪２０１が頭２０２及び胴体２０３の後側になびくこととなる。また、図３（ｂ）に示すように、プレイヤキャラクタ２００が背面から風を受けているときには、髪２０１が頭２０２及び胴体２０３の側になびくこととなる。プレイヤキャラクタ２００が走ったり止まったりした場合にも、運動の慣性により受動的に動作する。
【００３３】
髪２０１に設定された骨格３０１〜３０５の位置を、後述するように位置決めするために、プレイヤキャラクタ２００について仮想的な基準軸３００が設定されている。基準軸３００は、例えば、髪２０１と頭２０２の結合部の位置から、胴体２０３の背中側であって結合部から髪２０１の長さだけ下の所定位置を結ぶ直線に設定される。従って、プレイヤキャラクタ２００が動けば、基準軸３００の方向も動くものとなる。
【００３４】
上記のようにような受動的な動作をする髪２０１に設定された骨格３０１〜３０５の位置も、運動の慣性や風などにより受動的に受ける力（外力）に基づいて、従来から適用されている方法を用いて計算することで、決定することができる。もっとも、外力に基づいてのみ計算を行うものとすると、外力の大きさによっては、髪２０１に設定された骨格３０１〜３０５が頭２０２の内部や胴体２０３の内部までに入り込んでしまう場合（以下、このような場合を衝突という）も生じ得る。
【００３５】
このような衝突が生じた場合には、髪２０１を構成するポリゴンが頭２０２や胴体２０３にめり込んでしまう。そこで、このような衝突を生じさせないものとするため、、基準軸３００と骨格３０１、骨格３０１と３０２、３０２と３０３、３０３と３０４、３０４と３０５との間の角は、予め定められた基準角度の範囲内にとなるように定められている。この基準角度の判定のために、基準軸３００の方向をｘ軸方向とし、プレイヤキャラクタ２００の後に向く方向をｙ軸方向、横の方向をｚ軸方向とした座標系が用いられている。例えば、ベクトルプロセッサを用いて骨格３０１〜３０５の位置を行列演算によって求める場合、ワールド座標系のＸ軸を基準軸に移動させる行列演算を行った上で基準角度の判定を行い、逆行列演算によって元のワールド座標系に戻すことができる。
【００３６】
図４は、骨格３０１〜３０５について定められた基準角度を説明する図である。基準軸３００の方向をｘ軸方向とした座標系を用いるため、ここではｘ成分の判定は必要ない。図４（ａ）に示すように、基準軸３００と骨格３０１、骨格３０１と３０２、３０２と３０３、３０３と３０４、３０４と３０５との間の角のＹ成分θ1y、θ2y、θ3y、θ4y、θ5yには、それぞれ点線で示す基準角度が定められており、基準角度の範囲を越えれば、基準角度となる位置に骨格３０１、３０２、３０３、３０４、３０５の位置が補正されるものとなっている。同様に図４（ｂ）に示すように、それぞれの、それぞれの角のＺ成分θ1z、θ2z、θ3z、θ4z、θ5zにも、それぞれ点線で示す基準角度が定められており、基準角度の範囲を越えれば、基準角度となる位置に骨格３０１、３０２、３０３、３０４、３０５の位置が補正されるものとなっている。
【００３７】
次に、プレイヤキャラクタ２００の髪２０１に設定された骨格３０１〜３０５、３１１〜３１７等の位置決めから、髪２０１、頭２０２、胴体２０３、腕２０４、足２０５を構成するポリゴンの位置決めまでについて説明する。図５は、骨格３０１〜３０５、３１１〜３１７等の位置決めから、ポリゴンの位置決めまでを説明する図である。ここでは、説明を簡単にするため、ｙ成分、ｚ成分の区別を付けていないが、実際の計算では各成分に分けられるものとなる。
【００３８】
まず、髪２０１以外に設定された骨格３１１〜３１７等の位置決めを行う。これは、従来から適用されてきたのと同様の方法により行うものであるため、特に図を用いた説明を行っていない。骨格３１１〜３１７等の位置が決まれば、頭２０２、胴体２０３、手２０４、足２０５を構成するポリゴンの位置も自ずと決まることとなる。ここでは、髪２０１と頭２０２との結合部、胴体２０３の背中の所定位置を簡易に求めて、基準軸３００を設定する。
【００３９】
基準軸３００が決まると、プレイヤキャラクタ２００の頭２０２、胴体２０３などの存在を無視して、髪２０１が受ける外力によって頭２０２に最も近い骨格３０１がどの位置に位置するかを算出する。さらに、ここで算出した位置での骨格３０１と基準軸３００とがなす角θ１を求める。図５（ａ）に示すように、算出した角θ１がこれについて定められた基準角度の範囲を越えていれば、図５（ｂ）に示すように、角θ１が基準角度となる位置まで骨格３０１の位置を補正し、この位置を骨格３０１の位置として決定する。
【００４０】
次に、決定された位置で骨格３０１を固定した上で、頭２０２、胴体２０３などの存在を無視して、髪２０１のうちの骨格３０２よりも先端に近い部分が受ける外力によって骨格３０２がどの位置に位置するかを算出する。さらに、ここで算出した位置での骨格３０２とこれより末端側の骨格３０１とがなす角θ２を求める。図５（ｃ）に示すように、算出した角θ２がこれについて定められた基準角度の範囲を越えていれば、図５（ｄ）に示すように、角θ２が基準角度となる位置まで骨格３０２の位置を補正し、この位置を骨格３０２の位置として決定する。
【００４１】
以下同様にして、図５（ｅ）に示すように、骨格３０５までの位置も順次決定する。これで、プレイヤキャラクタ２００の骨格３０１〜３０５、３１１〜３１７等の全ての位置が決定されたこととなる。そして、図５（ｆ）に示すように、骨格３０１〜３０５、３１１〜３１７等の位置のみを基準として、プレイヤキャラクタ２００の各部位を構成する全てのポリゴンの位置を決定する。
【００４２】
ここで、プレイヤキャラクタ２００の骨格３０１〜３０５、３１１〜３１７等の位置は、ローカル座標系の座標をワールド座標系の座標に変換して定められる。プレイヤキャラクタ２００を構成するポリゴンの頂点の位置は、骨格３０１〜３０５、３１１〜３１７等に対してローカル座標系で位置関係を特定でき、ワールド座標系の座標に変換して定められるものとなる。
【００４３】
プレイヤキャラクタ２００が仮想３次元空間内のフィールド上を移動していく様子の画像は、仮想カメラにより仮想３次元空間を透視変換することで表示画面１２２上に映し出され、プレイヤに認識される。仮想３次元空間内におかれた仮想カメラから仮想スクリーン上に投影される画像が表示画面１２２として表示される画像となる。仮想スクリーン上に画像を投影するためには、視点座標系が用いられ、ワールド座標系の座標は、視点座標系の座標に変換されるものとなる。
【００４４】
透視変換により仮想スクリーン上に投影した画像を生成する場合には、前面に他の物体があって隠されてしまう面を消去する隠面消去を行う必要がある。隠面消去の方法としては、ここでは、Ｚバッファ法を用いる。制御部１０３は、ワールド座標系の座標を視点座標系の座標へ変換すると、各特徴点の座標をグラフィック処理部１１１に送ると共に、描画命令を出力する。この描画命令に基づいて、グラフィック処理部１１１は、各特徴点について、前側にある点のデータが残るようにＺバッファの内容を更新し、更新の都度、当該特徴点についての画像データをフレームメモリ１１２に展開する。
【００４５】
以下、この実施の形態にかかる３次元ビデオゲームにおける処理について説明する。ここでは、説明を簡単にするため、仮想３次元空間において動作するオブジェクトとしては、プレイヤキャラクタ２００しか存在しないものとし、本発明に特に関わる処理以外は、説明を省略している場合があるものとする。また、実際には骨格３０１〜３０３、３１１〜３１７等やポリゴンの位置決めにはベクトル演算を用い、角度の判定には正弦、余弦、正接などを用いているが、本質的な処理としては何ら変わりがない。
【００４６】
図６は、この実施の形態にかかる３次元ビデオゲームにおけるメイン処理を示す図である。このメイン処理は、１フレーム分の画像を生成する処理であり、３０分の１秒ごとのタイマ割り込みによって行われる。このメイン処理は、１フィールド期間（６０分の１秒）毎のタイマ割り込みによって行われるものとしても、処理量によっては２フレーム期間（１５分の１秒）毎のタイマ割り込みによって行われるものとしてもよい。
【００４７】
メイン処理においては、制御部１０３は、プレイヤによりプレイヤキャラクタ２００を動作させるための指示が入力部１６１から入力されているかどうかを判定する（ステップＳ１０１）。プレイヤキャラクタ２００を動作させるための指示が入力されていない場合には、制御部１０３は、前回のフレームでのプレイヤキャラクタ２００の態様が所定の静止態様にあるかどうかを判定する（ステップＳ１０３）。プレイヤキャラクタ２００の態様が所定の静止態様にあれば、そのままステップＳ１０５の処理に進む。
【００４８】
ステップＳ１０１においてプレイヤキャラクタ２００を動作させるための指示が入力されている場合には、制御部１０３は、現在の態様（すなわち、前のフレームで決定された骨格３１１〜３１７等に応じた態様）から動作の指示内容に応じて、プレイヤキャラクタ２００の髪２０１以外に設定された骨格３１１〜３１７等の位置（ワールド座標系）を移動させる（ステップＳ１０２）。ここで、プレイヤキャラクタ２００の動きが加速する様子等を表現するため、数フレーム前までの骨格３１１〜３１７等の位置を考慮するものとしてもよい。そして、ステップＳ１０５の処理に進む。
【００４９】
ステップＳ１０２においてプレイヤキャラクタ２００の態様が所定の静止態様になければ、制御部１０３は、現在の態様から所定の静止態様に戻すように、プレイヤキャラクタ２００の髪２０１以外に設定された骨格３１１〜３１７等の位置（ワールド座標系）を移動させる（ステップＳ１０４）。ここでも、プレイヤキャラクタ２００の動きが急激に停止してプレイヤに違和感を感じさせないようにするため、数フレーム前までの骨格３１１〜３１７等の位置を考慮するものとしてもよい。そして、ステップＳ１０５の処理に進む。
【００５０】
ステップＳ１０５では、制御部１０３は、ステップＳ１０２またはＳ１０４で移動された、または前のフレームから移動されていないプレイヤキャラクタ２００の骨格３１１、３１７の位置に基づいて、髪２０１に設定された骨格３０１〜３０５の位置を決定するための基準軸３００を設定する。外力の影響を受けない髪２０１以外に設定された骨格３１１〜３１７等の位置と、基準軸３００の位置とが決まると、制御部１０３は、髪２０１に設定された骨格３０１〜３０５の位置を決定する髪骨格位置決定処理を行う（ステップＳ１０６）。
【００５１】
図７は、この髪骨格位置決定処理を詳細に示すフローチャートである。ここでも、説明を簡単にするため、プレイヤキャラクタ２００の髪２０１にかかる力は、髪２０１の重量による重力と、プレイヤキャラクタ２００の動作に応じた運動の慣性力と、仮想３次元空間において流れる風の力だけであるものとする。髪骨格位置決定処理では、制御部１０３は、Ｎの値を１、２、３、４、５と順次変化させながら、ループ処理を行う（ステップＳ２０１−Ｓ２０１’）。
【００５２】
ループ内においては、制御部１０３は、まず、プレイヤキャラクタ２００の髪２０１のうちで骨格３０Ｎよりも下の部分が受ける重力を算出する（ステップＳ２０２）。制御部１０３は、髪２０１が結合する頭２０２の骨格についての今回のフレームでの位置と前回でのフレームでの位置とに基づいて、髪２０１のうちで骨格３０Ｎよりも下の部分が受ける運動の慣性力を算出する（ステップＳ２０３）。制御部１０３は、髪２０１のうちで骨格３０Ｎよりも下の部分が仮想３次元空間を流れる風（強さ、方向が経時的に変動）から受ける力を算出する（ステップＳ２０４）。
【００５３】
制御部１０３は、ステップＳ２０２〜Ｓ２０４で算出した髪２０１のうちで骨格３０Ｎよりも下の部分が受ける全ての力に基づいて、骨格３０Ｎの位置（ワールド座標系）を算出する（ステップＳ２０５）。そして、制御部１０３は、骨格３０Ｎが上位（骨格３０１であれば基準軸３００、骨格３０２〜３０５であればそれぞれ骨格３０１〜３０４）に対してなす角を算出する。この角は、基準軸３００の方向をｘ軸方向とした座標系でのｙ成分、ｚ成分のそれぞれについて算出する（ステップＳ２０６）。
【００５４】
制御部１０３は、骨格３０Ｎが上位に対してなす角がｙ成分、ｚ成分ともに基準角度の範囲内にあるかどうかを判定する（ステップＳ２０７）。ｙ成分、ｚ成分ともに基準角度の範囲内にある場合であって、Ｎの値が５まで変化させられていなければ、制御部１０３は、Ｎの値を更新して再びループ内の処理を行う。ｙ成分、ｚ成分ともに基準角度の範囲内にある場合であって、既にＮの値が５まで変化させられていれば、このフローチャートの処理を終了し、図６のフローチャートに復帰する。
【００５５】
ｙ成分とｚ成分のいずれかでも基準角度の範囲内にない場合には、制御部１０３は、骨格３０Ｎが上位に対してなす角のｙ成分とｚ成分のいずれもが基準角度の範囲に範囲となるギリギリの位置まで補正した骨格３０Ｎの位置（ワールド座標系）を求める（ステップＳ２０８）。そして、Ｎの値が５まで変化させられていなければ、制御部１０３は、Ｎの値を更新して再びループ内の処理を行う。既にＮの値が５まで変化させられていれば、このフローチャートの処理を終了し、図６のフローチャートに復帰する。
【００５６】
図６に戻って説明を続けると、制御部１０３は、ステップＳ１０６までで決められたプレイヤキャラクタ２００の骨格３０１〜３０５、３１１〜３１７等の位置を基準として、プレイヤキャラクタ２００の各部位２０１〜２０５を構成するポリゴンの頂点の位置（ワールド座標系）を算出する。ここで、ローカル座標系で骨格３０１〜３０５、３１１〜３１７の位置に対して自ずとポリゴンの頂点の位置が決定されるので、これをワールド座標系に変換するものとすればよい（ステップＳ１０７）。なお、仮想３次元空間においてプレイヤキャラクタ２００以外を構成するポリゴンの頂点の位置（ワールド座標系）は固定であるため、ここで算出する必要はない。
【００５７】
プレイヤキャラクタ２００の各部位２０１〜２０５を構成するポリゴンの頂点が算出されると、制御部１０３は、プレイヤキャラクタ２００の位置に基づいて、視点の位置と視軸の方向、さらには必要に応じて視角の大きさを決定して、透視変換を行うための仮想カメラの設定を行う。仮想カメラの設定を行うための処理は、従来の方法を適用すればよい（ステップＳ１０８）。
【００５８】
仮想カメラが設定され、その視点及び光軸が決まると、制御部１０３は、仮想カメラからプレイヤキャラクタを含む仮想３次元空間を仮想スクリーン上に透視変換して、表示画面１２２上に表示すべき２次元画像を生成するための表示処理を行う（ステップＳ１０９）。表示処理を終了すると、このメイン処理を終了し、次のフレーム期間の開始タイミングにおいて、再びメイン処理が実行されることとなる。
【００５９】
ステップＳ１０９の表示処理について簡単に説明する。制御部１０３は、プレイヤキャラクタ２００を含む仮想３次元空間を構成するポリゴンの頂点の座標のうち、少なくとも仮想スクリーン上に透視変換される範囲に含まれるポリゴンの頂点の座標を、ワールド座標系の座標から視点座標系の座標に変換する。制御部１０３は、視点座標系にポリゴンの頂点の座標をグラフィック処理部１１１に送り、グラフィック処理部１１１に描画命令を出力する。
【００６０】
描画命令を受け取ったグラフィック処理部１１１は、視点座標系の座標に基づいて、各面を構成する各点について、前側にある点のデータが残るようにＺバッファの内容を更新する。Ｚバッファの内容を更新した場合には、グラフィック処理部１１１は、当該点についての画像データをフレームメモリ１１２に展開する。グラフィック処理部１１１は、展開される画像データに対してシェーディングやテクスチャマッピングなどの処理も行う。
【００６１】
グラフィック処理部１１１は、フレームメモリ１１２に展開された画像データを順次読み出し、同期信号を付加してビデオ信号を生成し、表示装置１２１に出力する。表示装置１２１は、グラフィック処理部１１１から出力されたビデオ信号に対応した画像を表示画面１２２上に表示する。１フレーム時間毎に表示画面１２２上の画像が切り替えられていくことで、プレイヤは、プレイヤキャラクタ２００がフィールド上を移動し、外力によって髪２０１が動く様子を含む画像を見ることができる。
【００６２】
以上説明したように、この実施の形態にかかる３次元ビデオゲームでは、プレイヤキャラクタ２００の髪２０１は、プレイヤキャラクタ２００の動作とは別に、外力の影響を受けて動作する、すなわち外力の影響により髪２０１に設定されている骨格３０１〜３０５の位置が変化するものとなる。ここで、骨格３０１〜３０５が上位に対してなす角には、衝突を生じさせないものとして予め基準角度が定められている。
【００６３】
ここで、プレイヤキャラクタ２００の髪２０１に加わる外力の大きさによっては、髪２０１だけについての計算では骨格３０１〜３０５が上位に対してなす角としてどのような角度をとることも可能であるが、この実施の形態の３次元ビデオゲームでは、骨格３０１〜３０５の位置は、それぞれが上位に対してなす角が基準角度の範囲となるように補正される。これにより、髪２０１に設定されている骨格３０１〜３０５の位置は、必ず衝突の生じ得ない位置に決定されるものとなるので、表示画面１２２に表示される画像において、髪２０１を構成するポリゴンが頭２０２などにめり込んでしまうという現象が生じることがない。
【００６４】
また、髪２０１に設定されている骨格３０１〜３０５が上位に対してなす角が基準角度の範囲を越えているときにおける骨格３０１〜３０５の位置は、基準角度の範囲となるギリギリまでしか行われない。このため、髪２０１に加えられる力が大きいときは、可能な限りその力の大きさに応じた動きを表現することができる。つまり、衝突を生じない範囲で最大限に髪２０１の動きを表現できるものとなり、透視変換されて表示画面１２２に表示される画像にリアルさを増すことができるようになる。
【００６５】
また、骨格３０１〜３０５が上位に対してなす角を判定するものとしていることにより、オブジェクトを描画するためには本来必要のない衝突判定用のオブジェクトを用いなくても、衝突の判定を行うことができる。頭２０２に結合する骨格３０１だけでなく、より先端の骨格３０２〜３０５についても、それぞれの上位の骨格３０１〜３０４に対してなす角を判定するため、衝突判定用のオブジェクトなしで衝突の判定を行うことができる。
【００６６】
一方、この実施の形態にかかるビデオゲームでは、髪２０１の衝突を生じないようにするための判定を骨格３０１〜３０５のみで行っている。プレイヤキャラクタ２００を構成するポリゴンの頂点の位置は、骨格３０１〜３０５の位置が決まれば、これのみに基づいて決定することができる。つまり、ポリゴンの頂点毎に衝突を判定することが一切必要ないので、衝突判定に要する計算量を小さくすることができる。
【００６７】
しかも、ポリゴンの頂点毎に衝突を判定するものではないので、透視変換される範囲に含まれるポリゴンの数が多くなっても、これで計算量が大きく増えることはない。これによって、プレイヤキャラクタ２００を含む仮想３次元空間に存在するオブジェクトを構成するポリゴンを細かく設定することができ、透視変換されて表示画面１２２に表示される画像がなめらかなものとなり、リアルさを増すことができるようになる。
【００６８】
さらに、プレイヤキャラクタ２００の髪２０１に設定されている骨格３０１〜３０５のそれぞれについて、衝突の生じないような基準角度を予め定めておき、この範囲で骨格３０１〜３０５の位置を決定している。このため、外力の影響を受けて動作する髪２０１のような逆運動学や逆動力学による計算に適さないオブジェクトについても、その動作を適切にモデリングすることができる。
【００６９】
本発明は、上記の実施の形態に限られず、種々の変形、応用が可能である。以下、本発明に適用可能な上記の実施の形態の変形態様について説明する。
【００７０】
上記の実施の形態では、プレイヤキャラクタ２００の髪２０１の動作をモデリングするため、本発明を適用した場合について説明した。しかしながら、本発明を用いてモデリング対象とするオブジェクトは、これに限るものではない。末端が他のオブジェクトに結合するとともに、先端が自由に動作するオブジェクトであれば、他の種類のオブジェクトの動作をモデリングする場合にも、本発明を適用することができる。また、適用対象とするオブジェクトは、外力により受動的に動作するものだけでなく、能動的な動作をするもの、能動的な動作とともに外力による受動的な動作をするものにも適用することができる。
【００７１】
上記の実施の形態では、プレイヤキャラクタ２００の髪２０１には、順に関節を介して結合された５本の骨格３０１〜３０５が含まれていた。しかしながら、１本以上の任意の数の骨格を含むオブジェクトについて、本発明を適用することができる。また、髪２０１のような幅の小さいオブジェクトだけでなく、ある程度の幅を持つオブジェクトの動作をモデリングする場合にも本発明を適用することができる。
【００７２】
図８は、このような幅を持つオブジェクトを有するキャラクタの構成を示す図である。このキャラクタ４００は、幅を持つオブジェクトとしてマント５００をまとっている。このマント５００の動作を一連なりの骨格だけで表現するのは困難である。そこで、このマント５００には、骨格５１１〜５１４からなる骨格組５０１と、骨格５２１〜５２４からなる骨格組５０２と、骨格５３１〜５３４からなる骨格組５０３と、骨格５４１〜５４４からなる骨格組５０４とが設定されている。骨格組５０１〜５０４には、それぞれ別個の基準軸を設定するものとしても、共通の基準軸を設定するものとしてもよい。このように複数の骨格組５０１〜５０４を設定することで、マント５００のような幅を持つオブジェクトをモデリングするためにも、本発明を適用することができる。
【００７３】
上記の実施の形態では、基準軸３００は、プレイヤキャラクタ２００の髪２０１以外に設定された骨格３１１〜３１７等とは別に設定されるものとしていた。しかしながら、いずれかの骨格（特に髪２０１が結合する頭２０２の骨格３１１）に基準軸を設定するものとしてもよい。特に髪２０１の先端がプレイヤキャラクタ２００の背中まで達することなく、頭２０２のある範囲までしか達しないのであれば、基準軸を容易に設定できるため、特に有効なものとなる。
【００７４】
上記の実施の形態では、プレイヤキャラクタ２００の髪２０１は、プレイヤキャラクタ２００の動作による運動の慣性力と仮想３次元空間を流れる風の力を受けて動作するものとしていた。しかしながら、プレイヤキャラクタ２００の髪２０１は、他の種類の外力を受けて動作するものとしてもよい。例えば、他のキャラクタが手や武器でプレイヤキャラクタ２００の髪２０１を叩くことで動作することがあってもよい。この場合、他のキャラクタの手や武器との衝突判定を骨格３０１〜３０５の位置を基準として行うものとすることができる。
【００７５】
上記の実施の形態では、ビデオゲームを実行するためのプラットフォームとして専用機であるビデオゲーム装置１００を適用していた。これに対して、ビデオゲーム本体１０１と同様の構成要素を備え、３次元画像を描画する機能を有するものであれば、汎用のパーソナルコンピュータなどを適用してもよい。表示装置１２１及びサウンド出力装置１２５をビデオゲーム本体１０１と同一の筐体内に納めた構成を有する携帯ゲーム機を適用するものとしてもよい。
【００７６】
携帯ゲーム機の場合は、記録媒体１３１として、ＤＶＤ−ＲＯＭやＣＤ−ＲＯＭの代わりに半導体メモリカードを適用することができる。携帯ゲーム機には、このメモリカードを挿入するためのカードスロットをＤＶＤ／ＣＤ−ＲＯＭドライブ１１３の代わりに設けることができる。汎用のパーソナルコンピュータの場合には、本発明に係るプログラム及びデータを記録媒体１３１に格納して提供するのではなく、ＨＤＤ１０７に予め格納して提供してもよい。本発明にかかるプログラム及びデータを格納して提供するための記録媒体は、ハードウェアの物理的形態及び流通形態に応じて任意のものを適用することができる。
【００７７】
上記の実施の形態では、ビデオゲーム装置１００のプログラム及びデータは、記録媒体１３１に格納されて配布されるものとしていた。これに対して、これらのプログラム及びデータをネットワーク１５１上に存在するサーバ装置が有する固定ディスク装置に格納しておき、ビデオゲーム本体１０１にネットワーク１５１を介して配信するものとしてもよい。ビデオゲーム装置１００において、通信インターフェイス１１５がサーバ装置から受信したプログラム及びデータは、ＨＤＤ１０７に保存し、実行時にＲＡＭ１０５にロードすることができる。ビデオゲームのプログラムの一部として適用されるものだけでなく、上記したように３次元画像を描画する機能を含むプログラム全般を、同様の方法により配布するものとすることができる。
【産業上の利用可能性】
【００７８】
本発明は、３次元ビデオゲームを初めとして、３次元画像を描画するためのコンピュータグラフィックス処理の分野において利用することができる。本発明は、リアルタイムで３次元画像を描画する３次元コンピュータグラフィックス処理の分野での利用に、特に適したものである。
【図面の簡単な説明】
【００７９】
【図１】本発明の実施の形態に適用されるビデオゲーム装置の構成を示すブロック図である。
【図２】本発明の実施の形態にかかる３次元ビデオゲームにおいて用いられるプレイヤキャラクタの構成を示す図である。
【図３】図２のプレイヤキャラクタの髪の動きを説明する図である。
【図４】図２のプレイヤキャラクタの髪の骨格に定められた基準角度を説明する図である。
【図５】図２のプレイヤキャラクタの髪の骨格の位置決めから各ポリゴンの位置決めまでを説明する図である。
【図６】本発明の実施の形態にかかる３次元ビデオゲームにおけるメイン処理を示すフローチャートである。
【図７】図６の髪骨格位置決定処理を詳細に示すフローチャートである。
【図８】他のキャラクタの構成を示す図である。
【符号の説明】
【００８０】
１００  ビデオゲーム装置
１０１  ビデオゲーム本体
１０３  制御部
１０５  ＲＡＭ
１０７  ＨＤＤ
１０９  サウンド処理部
１１１  グラフィック処理部
１１３  ＤＶＤ／ＣＤ−ＲＯＭドライブ
１１５  通信インターフェイス
１１７  インターフェイス部
１１９  内部バス
１２１  表示装置
１２２  表示画面
１２５  サウンド出力装置
１３１  記録媒体
１５１  ネットワーク
１６１  入力部
１６２  メモリーカード
２００  プレイヤキャラクタ
３００  基準軸
３０１〜３０５  骨格
【図１】
2005056251.tif 000003
【図２】
2005056251.tif 000004
【図３】
2005056251.tif 000005
【図４】
2005056251.tif 000006
【図５】
2005056251.tif 000007
【図６】
2005056251.tif 000008
【図７】
2005056251.tif 000009
【図８】
2005056251.tif 000010
【手続補正書】
【提出日】平成15年8月6日(2003.8.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１のオブジェクトと、該第１のオブジェクトに結合すると共に複数のポリゴンの表示位置を規定する１以上の骨格を含み、該第１のオブジェクトとは結合点以外において独立して動作可能な第２のオブジェクトとをモデリングした３次元画像を描画する３次元画像描画装置であって、
所定の動作条件に従って前記第２のオブジェクトが動作させられるとき、該動作させられた前記第２のオブジェクトに含まれる骨格の位置をそれぞれ算出する骨格位置算出手段と、
前記骨格位置算出手段により算出されたそれぞれの骨格の位置において前記第２のオブジェクトが前記第１のオブジェクトと衝突しない位置にあるかを判定する衝突判定手段と、
前記衝突判定手段により前記第１のオブジェクトと衝突しない位置にないと判定された骨格の位置を、前記第２のオブジェクトが前記第１のオブジェクトと衝突しない位置に算出し直す骨格位置補正手段と、
前記第２のオブジェクトが前記第１のオブジェクトと衝突しない位置に算出された前記骨格のそれぞれの位置を基準として、前記複数のポリゴンのそれぞれの位置を算出するポリゴン位置算出手段と、
前記ポリゴン位置算出手段により算出された位置でポリゴンを描画することにより、前記第１、第２のオブジェクトをモデリングした画像を描画する画像描画手段と
を備えることを特徴とする３次元画像描画装置。
【請求項２】
前記衝突判定手段は、前記第２のオブジェクトに含まれる骨格のそれぞれが前記第１のオブジェクトを基準として設定される基準軸に対してなす角度が、前記第１のオブジェクトとの衝突を生じないものとして予め定められた基準角度の範囲内であるかを判定することにより、該骨格の位置において前記第２のオブジェクトが前記第１のオブジェクトと衝突しない位置にあることを判定する
ことを特徴とする請求項１に記載の３次元画像描画装置。
【請求項３】
前記第２のオブジェクトは、前記第１のオブジェクトとの結合点から先端に至るまでに関節を介して結合された複数の骨格を含んでおり、
前記衝突判定手段は、前記第１のオブジェクトと直接結合しない骨格が該骨格よりも前記第１のオブジェクトに近い位置にある骨格に対してなす角度が、前記第１のオブジェクトとの衝突を生じないものとして予め定められた基準角度の範囲内であるかを判定することにより、該骨格の位置において前記第２のオブジェクトが前記第１のオブジェクトと衝突しない位置にあることを判定する
ことを特徴とする請求項２に記載の３次元画像描画装置。
【請求項４】
前記骨格位置算出手段は、前記衝突判定手段により前記第２のオブジェクトが前記第１のオブジェクトと衝突しない位置にないと判定された骨格の位置を、前記基準角度となる位置まで算出し直す
ことを特徴とする請求項２または３に記載の３次元画像描画装置。
【請求項５】
前記第２のオブジェクトは、外部から加わる力の影響を動作条件として、受動的に動作させられる
ことを特徴とする請求項２乃至４のいずれか１項に記載の３次元画像描画装置。
【請求項６】
第１のオブジェクトと、該第１のオブジェクトに結合すると共に複数のポリゴンの表示位置を規定する１以上の骨格を含み、該第１のオブジェクトとは結合点以外において独立して動作可能な第２のオブジェクトとをモデリングした３次元画像を描画するための３次元画像描画方法であって、
所定の動作条件に従って前記第２のオブジェクトが動作させられるとき、該動作させられた前記第２のオブジェクトに含まれる骨格の位置をそれぞれ算出し、
算出されたそれぞれの骨格の位置において前記第２のオブジェクトが前記第１のオブジェクトと衝突しない位置にあるかを判定し、
前記第１のオブジェクトと衝突しない位置にないと判定された骨格の位置を、前記第２のオブジェクトが前記第１のオブジェクトと衝突しない位置に算出し直し、
前記第２のオブジェクトが前記第１のオブジェクトと衝突しない位置に算出された前記骨格のそれぞれの位置を基準として、前記複数のポリゴンのそれぞれの位置を算出し、
当該算出された位置でポリゴンを描画することにより、前記第１、第２のオブジェクトをモデリングした画像を描画する
ことを特徴とする３次元画像描画方法。
【請求項７】
第１のオブジェクトと、該第１のオブジェクトに結合すると共に複数のポリゴンの表示位置を規定する１以上の骨格を含み、該第１のオブジェクトとは結合点以外において独立して動作可能な第２のオブジェクトとをモデリングした３次元画像を描画するためのプログラムであって、
所定の動作条件に従って前記第２のオブジェクトが動作させられるとき、該動作させられた前記第２のオブジェクトに含まれる骨格の位置をそれぞれ算出する骨格位置算出手段、
前記骨格位置算出手段により算出されたそれぞれの骨格の位置において前記第２のオブジェクトが前記第１のオブジェクトと衝突しない位置にあるかを判定する衝突判定手段、
前記衝突判定手段により前記第１のオブジェクトと衝突しない位置にないと判定された骨格の位置を、前記第２のオブジェクトが前記第１のオブジェクトと衝突しない位置に算出し直す骨格位置補正手段、
前記第２のオブジェクトが前記第１のオブジェクトと衝突しない位置に算出された前記骨格のそれぞれの位置を基準として、前記複数のポリゴンのそれぞれの位置を算出するポリゴン位置算出手段、及び、
前記ポリゴン位置算出手段により算出された位置でポリゴンを描画することにより、前記第１、第２のオブジェクトをモデリングした画像を描画する画像描画手段
としてコンピュータ装置を機能させるためのプログラム。
【請求項８】
第１のオブジェクトと、該第１のオブジェクトに結合すると共に複数のポリゴンの表示位置を規定する１以上の骨格を含み、該第１のオブジェクトとは結合点以外において独立して動作可能な第２のオブジェクトとをモデリングした３次元画像を描画するためのプログラムであって、
所定の動作条件に従って前記第２のオブジェクトが動作させられるとき、該動作させられた前記第２のオブジェクトに含まれる骨格の位置をそれぞれ算出する骨格位置算出手段、
前記骨格位置算出手段により算出されたそれぞれの骨格の位置において前記第２のオブジェクトが前記第１のオブジェクトと衝突しない位置にあるかを判定する衝突判定手段、
前記衝突判定手段により前記第１のオブジェクトと衝突しない位置にないと判定された骨格の位置を、前記第２のオブジェクトが前記第１のオブジェクトと衝突しない位置に算出し直す骨格位置補正手段、
前記第２のオブジェクトが前記第１のオブジェクトと衝突しない位置に算出された前記骨格のそれぞれの位置を基準として、前記複数のポリゴンのそれぞれの位置を算出するポリゴン位置算出手段、及び、
前記ポリゴン位置算出手段により算出された位置でポリゴンを描画することにより、前記第１、第２のオブジェクトをモデリングした画像を描画する画像描画手段
としてコンピュータ装置を機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１９
【補正方法】変更
【補正の内容】
【００１９】
上記目的を達成するため、本発明の第３の観点にかかるプログラムは、第１のオブジェクトと、該第１のオブジェクトに結合すると共に複数のポリゴンの表示位置を規定する１以上の骨格を含み、該第１のオブジェクトとは結合点以外において独立して動作可能な第２のオブジェクトとをモデリングした３次元画像を描画するためのプログラムであって、所定の動作条件に従って前記第２のオブジェクトが動作させられるとき、該動作させられた前記第２のオブジェクトに含まれる骨格の位置をそれぞれ算出する骨格位置算出手段、前記骨格位置算出手段により算出されたそれぞれの骨格の位置において前記第２のオブジェクトが前記第１のオブジェクトと衝突しない位置にあるかを判定する衝突判定手段、前記衝突判定手段により前記第１のオブジェクトと衝突しない位置にないと判定された骨格の位置を、前記第２のオブジェクトが前記第１のオブジェクトと衝突しない位置に算出し直す骨格位置補正手段、前記第２のオブジェクトが前記第１のオブジェクトと衝突しない位置に算出された前記骨格のそれぞれの位置を基準として、前記複数のポリゴンのそれぞれの位置を算出するポリゴン位置算出手段、及び、前記ポリゴン位置算出手段により算出された位置でポリゴンを描画することにより、前記第１、第２のオブジェクトをモデリングした画像を描画する画像描画手段としてコンピュータ装置を機能させることを特徴とする。
上記目的を達成するため、本発明の第４の観点にかかるコンピュータ読み取り可能な記録媒体は、第１のオブジェクトと、該第１のオブジェクトに結合すると共に複数のポリゴンの表示位置を規定する１以上の骨格を含み、該第１のオブジェクトとは結合点以外において独立して動作可能な第２のオブジェクトとをモデリングした３次元画像を描画するためのプログラムであって、所定の動作条件に従って前記第２のオブジェクトが動作させられるとき、該動作させられた前記第２のオブジェクトに含まれる骨格の位置をそれぞれ算出する骨格位置算出手段、前記骨格位置算出手段により算出されたそれぞれの骨格の位置において前記第２のオブジェクトが前記第１のオブジェクトと衝突しない位置にあるかを判定する衝突判定手段、前記衝突判定手段により前記第１のオブジェクトと衝突しない位置にないと判定された骨格の位置を、前記第２のオブジェクトが前記第１のオブジェクトと衝突しない位置に算出し直す骨格位置補正手段、前記第２のオブジェクトが前記第１のオブジェクトと衝突しない位置に算出された前記骨格のそれぞれの位置を基準として、前記複数のポリゴンのそれぞれの位置を算出するポリゴン位置算出手段、及び、前記ポリゴン位置算出手段により算出された位置でポリゴンを描画することにより、前記第１、第２のオブジェクトをモデリングした画像を描画する画像描画手段としてコンピュータ装置を機能させるためのプログラムを記録したことを特徴とする。