(57)【特許請求の範囲】
【請求項１】
複数の部位が関節によってリンクされているオブジェクトの画像合成を行う方法であって、
モーションデータ形成手段が、複数の部位が関節によって３階層以上の階層構造にリンクされたオブジェクトのモーションデータを、隣り合う部位の位置関係をデータ化したデータ構造から、当該オブジェクトの基準点と各部位とが仮想的な関節によって一対一にリンクしたデータ構造に変換して、当該オブジェクトを構成する部位のモーションデータを当該オブジェクトの基準点からの相対的な位置データとして形成するモーションデータ形成ステップと、
モーション演算手段が、当該オブジェクトの基準点からの相対的な位置データとして形成されたモーションデータに基づき当該オブジェクトを構成する部位のワールド座標系における位置データを演算するステップと、
画像合成手段が、演算された当該オブジェクトを構成する部位のワールド座標系における位置データに基づき画像合成を行うステップと、
を含むことを特徴とする画像合成方法。
【請求項２】
複数の部位が関節によってリンクされているオブジェクトの画像合成を行う方法であって、
モーションデータ形成手段が、当該オブジェクトを構成する部位の内少なくとも分離後は当該オブジェクトの基準点とは独立して運動し得る分離可能な部位のモーションデータを分離前は当該オブジェクトの基準点からの相対的な位置データとして形成するモーションデータ形成ステップと、
モーション演算手段が、前記分離可能な部位の分離前には、当該オブジェクトの基準点からの相対的な位置データとして形成されたモーションデータに基づき分離可能な部位のワールド座標系における位置データを演算するステップと、
空間演算手段が、前記分離可能な部位の分離後には、当該オブジェクトの基準点とは独立して分離可能な部位のワールド座標系における位置データを演算するステップと、
画像合成手段が、演算された分離可能な部位のワールド座標系における位置データに基づき画像合成を行うステップと、
を含むことを特徴とする画像合成方法。
【請求項３】
請求項１または２において、
前記モーションデータ形成ステップは、
モーションデータ形成手段が、当該オブジェクトのワールド座標系におけるデータを持っている点又はそれに基づき定められる点を基準点として、当該オブジェクトを構成する部位のモーションデータを前記基準点からの相対的な位置データとして形成することを特徴とする画像合成方法。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記モーションデータ形成ステップは、
モーションデータ形成手段が、当該オブジェクトを構成する部位のモーションデータを前記オブジェクトの基準点を原点とするボディ座標系における前記部位の３次元座標と、各部位ごとに前記ボディ座標系に設定された基準方向に対する当該部位の前記ボディ座標系における回転角を含む位置データとして形成することを特徴とする画像合成方法。
【請求項５】
複数の部位が関節によってリンクされているオブジェクトの画像合成を行う装置であって、
複数の部位が関節によって３階層以上の階層構造にリンクされたオブジェクトのモーションデータを、隣り合う部位の位置関係をデータ化したデータ構造から、当該オブジェクトの基準点と各部位とが仮想的な関節によって一対一にリンクしたデータ構造に変換して、当該オブジェクトを構成する部位のモーションデータを当該オブジェクトの基準点からの相対的な位置データとして記憶するモーションデータ記憶手段と、
当該オブジェクトの基準点からの相対的な位置データとして記憶されたモーションデータに基づき当該オブジェクトを構成する部位のワールド座標系における位置データを演算する手段と、
演算された当該オブジェクトを構成する部位のワールド座標系における位置データに基づき画像合成を行う手段と、
を含むことを特徴とする画像合成装置。
【請求項６】
複数の部位が関節によってリンクされているオブジェクトの画像合成を行う装置であって、
当該オブジェクトを構成する部位の内少なくとも分離後は当該オブジェクトの基準点とは独立して運動し得る分離可能な部位のモーションデータを分離前は当該オブジェクトの基準点からの相対的な位置データとして記憶するモーションデータ記憶手段と、
前記分離可能な部位の分離前には、当該オブジェクトの基準点からの相対的な位置データとして記憶されたモーションデータに基づき分離可能な部位のワールド座標系における位置データを演算する手段と、
前記分離可能な部位の分離後には、当該オブジェクトの基準点とは独立して分離可能な部位のワールド座標系における位置データを演算する手段と、
演算された分離可能な部位のワールド座標系における位置データに基づき画像合成を行う手段と、
を含むことを特徴とする画像合成装置。
【請求項７】
複数の部位が関節によってリンクされているオブジェクトの画像合成を行う装置であって、
複数の部位が関節によって３階層以上の階層構造にリンクされたオブジェクトのモーションデータを、隣り合う部位の位置関係をデータ化したデータ構造から、当該オブジェクトの基準点と各部位とが仮想的な関節によって一対一にリンクしたデータ構造に変換して、当該オブジェクトを構成する部位のモーションデータを当該オブジェクトの基準点からの相対的な位置データとして記憶するモーションデータ記憶手段と、
当該オブジェクトの基準点のワールド座標系における位置データを演算する空間演算手段と、
前記空間演算手段が演算した当該オブジェクトの基準点のワールド座標系における位置データ及びモーションデータ記憶手段に記憶されたモーションデータに基づき、当該オブジェクトを構成する各部位のワールド座標系における位置データを演算するモーション演算手段と、
当該オブジェクトを構成する各部位の画像情報を記憶しているオブジェクト情報記憶手段とを含み、
前記モーション演算手段によって演算された当該オブジェクトを構成する各部位のワールド座標系における位置データ及び前記オブジェクト情報記憶手段に記憶されている各部位の画像情報とに基づき、当該オブジェクトの画像を合成することを特徴とする画像合成装置。
【請求項８】
請求項５乃至７のいずれかにおいて、
前記モーションデータ記憶手段は、
当該オブジェクトのワールド座標系におけるデータを持っている点又はそれに基づき定められる点を基準点として、当該オブジェクトを構成する部位のモーションデータを前記基準点からの相対的な位置データとして記憶することを特徴とする画像合成装置。
【請求項９】
請求項５乃至８のいずれかにおいて、
前記モーションデータ記憶手段は、
当該オブジェクトを構成する部位のモーションデータを前記オブジェクトの基準点を原点とするボディ座標系における前記部位の３次元座標と、各部位ごとに前記ボディ座標系に設定された基準方向に対する当該部位の前記ボディ座標系における回転角を含む位置データとして記憶することを特徴とする画像合成装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は画像合成方法び画像合成装置に関し、特に複数の部位が関節によってリンクされているオブジェクトのモーションデータを用いて画像合成を行う画像合成方法及び画像合成装置に関する。
【０００２】
【背景の技術】
従来より、映像やゲーム装置等においてコンピュータグラフィクス（以下ＣＧという）を用いて、人体の動きを表示することが行われている。通常の変形しないオブジェクトであれば、３次元空間のワールド座標系における当該オブジェクトの座標及び方向を時系列に求めることにより、当該オブジェクトの動きを表示することができる。
【０００３】
ところが、人体等は手足や頭等は固定されておらず、個々別々に運動する。すなわち、人間の身体は首、肩、肘、手首、指、腰、膝等の関節によってリンクされた物体が個々にボディ座標系をもち、ワールド座標系のなかで一つのボディを形成しているとみなすことが出来る。
【０００４】
このような、関節によってリンクされた物体の動きをＣＧで表示するためには、関節で切り取った物体を作成し、それぞれを３次元座標上に配置する必要がある。
【０００５】
したがって、各フレーム毎に変化する物体のワールド座標系における位置のみならず、当該物体の各部位の動きを表すデータも必要となる。
【０００６】
この様な各部位の動きに基づき、関節で隣り合っているものの関係をデータ化して、表示するときにそのデータに基づいて、演算して座標を求めることが一般に行われている。このようなデータをモーションデータと呼び、通常、一連の動きにおける各関節と各部位の関係を各フレーム毎に時系列にデータ化したものである。
【０００７】
ところで、人体等の複雑な動き等をＣＧで表示する際は、予め人体の複雑な動きをモデリングして、モーションデータとしてデータ化しておく。このような人体の動きをモデリングする際は、図１４に示すように、人体の各部位２０−１〜２０−１５を人体を模した階層構造の関節１０−１〜１０−１５によってリンクして一つのボディを形成している。この様に、人体の関節に対応した関節のある階層構造で各部位をリンクさせてモデリングを行うと最も自然な動きを表現することが出来るからである。そして、人体に一連の動きをさせたときの、それぞれの部位の位置及び方向は、各部位の対応する関節を原点としたボディ座標系における座標変換の量として特定することが出来る。
【０００８】
すなわち、人体（原点３０）のワールド座標系における位置及び方向が与えられると、対応する部位をボディ座標系からワールド座標系おける座標変換を行うことによって、人体を構成する全ての部位のワールド座標系における位置及び方向が決定される。
【０００９】
従来は、この様にモデリング時に作成する階層構造のデータを、画像合成時のモーションデータとして用いていた。
【００１０】
ところが、人体の一部に分離可能性のあるものが付加されているような場合、例えば右足の靴（右足と一体となっている）を飛ばしたような場合、人体と右足の靴は分離後は独立の動きをするようになる。すなわち分離前は右足と一体となって動いていた右足の靴も、分離後はワールド座標系に配置された１個の物体としてワールド座標系における位置座標及び方向情報が必要となる。
【００１１】
このとき図１４のような階層構造のデータ構造のモーションデータだと、右足のワールド座標系における位置座標を求めるためには、人体の中心を示す原点３０から右足までに存在する関節（１０−２、１０−６、１０−８、１０−１２）の数だけ演算が必要となる。
【００１２】
この様に、図１４に示す階層構造のデータ構造のモーションデータだと、分離可能性のある部位を含む物体を表示する場合、ＣＰＵにおける演算量の付加が大きいという問題点があった。
【００１３】
【発明が解決しようとする課題】
そこで、物体を構成する各部位の動きの内容を保持しつつ、各部位までの演算量が少なくてすむデータ構造のモ−ションデータを用いて画像合成を行うと、ＣＰＵにおける演算量の付加を軽減することが出来る。
【００１４】
本発明はこの様な課題に鑑みてなされたものであり、各部位までの演算量が少なくてすむデータ構造のモ−ションデータを用いて画像合成を行う方法及び画像合成装置を提供することである。
【００１５】
【課題を解決するための手段】
請求項１の発明は、
複数の部位が関節によってリンクされているオブジェクトの画像合成を行う方法であって、
当該オブジェクトを構成する各部位のモーションデータを当該オブジェクトの基準点からの相対的な位置データとして形成し、画像合成を行うことを特徴とする。
【００１６】
請求項４の発明は、
複数の部位が関節によってリンクされているオブジェクトの画像合成を行う装置であって、
当該オブジェクトを構成する各部位のモーションデータを当該オブジェクトの基準点からの相対的な位置データとして形成し画像合成を行うことを特徴とする。
【００１７】
個々別々に運動する部位の結合しているオブジェクトをモデリングする際は、各部位を関節でリンクしたモデルを作成して行う。本発明は、この様に関節でリンクしたモデルを用いてモデリングされたオブジェクトのモーションデータを用いて画像合成をおこなう画像合成方法及び画像合成装置に関するものである。
【００１８】
前記オブジェクトの複数の部位は、関節によってツリ−状にリンクされている場合でもよいし、枝分かれせずにリンクされている場合でもよい。
【００１９】
また、基準点とは当該オブジェクトのワールド座標系における位置データを持っている点又はそれに基づき決められる点であり、位置データとは、各部位の位置座標や方向を定めるのに必要なデータをいう。基準点からの相対的な位置データとは、前記位置データが例えば基準点を原点とするボディ座標系における位置データとして与えられる場合等をいう。
【００２０】
この様なオブジェクトの各部位のモーションデータは、通常各部位がリンクされている関節を原点とするボディ座標系における位置データとして形成されていた。
【００２１】
従って、複数の部位が、関節によってツリ−状等にリンクされている場合、各部位のワールド座標系における位置データを求めるためには、前記基準点から、各部位の間に存在する関節の数だけ座標変換の演算が必要であった。この演算量を減らすべく、本発明では、各部位のモーションデータを基準点からの相対的な位置データとして形成し、画像合成を行っている。すなわち、各部位の位置データは、それぞれ基準位置を原点とするボディ座標系における位置データとして形成されている。
【００２２】
このようにすると、前記基準点と各部位の間の座標変換の演算だけで、各部位のワールド座標系における位置データを求めることが出来る。従って各部位のワールド座標系における位置データを取り出す際の演算付加を軽減することが出来る。また、画像合成時においても各部位の位置データは、他の部位と独立して演算可能なので並列処理による処理時間の高速化をはかることが出来る。
【００２３】
請求項２の発明は、
複数の部位が関節によってリンクされているオブジェクトの画像合成を行う方法であって、
当該オブジェクトを構成する少なくとも分離可能な部位のモーションデータを当該オブジェクトの基準点からの相対的な位置データとして形成し、
前記分離可能な部位の分離時には、前記基準点からの相対的な位置データに基づき分離可能な部位の位置データを演算し、画像合成を行うことを特徴とする。
【００２４】
請求項５の発明は、
複数の部位が関節によってリンクされているオブジェクトの画像合成を行う装置であって、
当該オブジェクトを構成する少なくとも分離可能な部位のモーションデータを当該オブジェクトの基準点からの相対的な位置データとして形成し、
前記分離可能な部位の分離時には、前記基準点からの相対的な位置データに基づき分離可能な部位の位置データを演算し、画像合成を行うことを特徴とする。
【００２５】
本発明では、分離可能な各部位のモーションデータを基準点からの相対的な位置データとして形成し、画像合成を行っている。すなわち、分離可能な各部位の位置データは、はそれぞれ基準位置を原点とするボディ座標系における位置データとして形成されている。
【００２６】
分離可能な各部位とは、分離前はオブジェクトの基準点に従属して運動していたが、分離後は、前記オブジェクトの基準点とは独立して運動する部位をさす。例えば、人間が靴を飛ばしたりする場合の靴であったり、バイクに乗っていた人間がバイクから落ちた後のバイクであったりする。前記靴やバイクは分離前は人間に付随していたので、人間の基準点のワールド座標系における位置データがわかれば、モーションデータを用いて演算することにより、前記靴やバイクのワールド座標系における位置データを求めることが出来た。しかし、分離後は人間とは独立して運動するため、前記靴やバイクは、独立したオブジェクトとなり、それ自体のワールド座標系における位置データが必要となる。
【００２７】
従って分離時に前記靴やバイクのワールド座標系における位置データを、独立したオブジェクトである靴やバイクのワールド座標系における位置データとして与えなければならない。
【００２８】
このとき、本発明によれば、前記基準点と分離対象である各部位の間の座標変換の演算だけで、分離対象の各部位のワールド座標系における位置データを求めることが出来る。従って分離対象の各部位のワールド座標系における位置データを演算する際の演算付加を軽減することが出来る。
【００２９】
請求項３の発明は、
請求項１又は請求項２のいずれかにおいて、
３次元空間内のオブジェクトと、当該オブジェクトを構成する部位の位置データは、前記オブジェクトの基準点を原点とするボディ座標系における前記部位の３次元座標と、各部位ごとに前記ボディ座標系に設定された基準方向に対する当該部位の前記ボディ座標系における回転角を含むことを特徴とする。
【００３０】
請求項７の発明は、
請求項４〜請求項６のいずれかにおいて、
３次元空間内のオブジェクトと、当該オブジェクトを構成する部位の位置データは、前記オブジェクトの基準点を原点とするボディ座標系における前記部位の３次元座標と、各部位ごとに前記ボディ座標系に設定された基準方向に対する当該部位の前記ボディ座標系における回転角を含むことを特徴とする。
【００３１】
各部位を３次元のワールド座標系に設定するためにはワールド座標系における位置座標とその位置おける各部位の回転角が与えられればよい。本発明によれば、各部位の位置データは、前記オブジェクトの基準点を原点とするボディ座標系における前記部位の３次元座標と、各部位ごとに前記ボディ座標系に設定された基準方向に対する当該部位の前記ボディ座標系のおける回転角によって決定される。従って前記オブジェクトのワールド座標系における位置座標とその位置おける各部位の回転角が与えられれば、座標変換により、各部位を３次元のワールド座標系に設定するためにはワールド座標系における位置座標とその位置おける各部位の回転角が与えられる。
【００３２】
各部位ごとにボディ座標系に設定された基準方向とは、ボディ座標系における当該部位の方向のいずれか一態様とすればよい。例えば前記オブジェクトが標準的な１状態にある時の各部位の方向をその部位の基準方向とする。そして、当該部位が前記基準方向に対してどれだけ回転したかを基準位置に対する当該部位の回転角とする。
【００３３】
この様にすることにより、本発明によれば、モーションデータによる各部位のワールド座標系における位置及び方向の演算を少ない演算量で簡単に行うことが出来る。
【００３４】
なお前記回転角は、ボディ座標系における前記部位の３軸方向への回転角で表すことが好ましい。
【００３５】
請求項６の発明は、
複数の部位が関節によってリンクされているオブジェクトの画像合成を行う装置であって、
当該オブジェクトを構成する各部位のモーションデータを当該オブジェクトの基準点からの相対的な位置データとして記憶するモーションデータ記憶手段と、当該オブジェクトの基準点のワールド座標系における位置データを演算する空間演算手段と、
前記空間演算手段が演算した当該オブジェクトの基準点のワールド座標系における位置データ及びモーションデータ記憶手段に記憶されたモーションデータに基づき、当該オブジェクトを構成する各部位のワールド座標系における位置データを演算するモーション演算手段と、
当該オブジェクトを構成する各部位の画像情報を記憶しているオブジェクト情報記憶手段とを含み、
前記モーション演算手段によって演算された当該オブジェクトを構成する各部位のワールド座標系における位置データ及び前記オブジェクト情報記憶手段に記憶されている各部位の画像情報とに基づき、当該オブジェクトの画像を合成することを特徴とする。
【００３６】
この様にモーションデータを予めモーションデータ記憶手段に記憶させておくと演算処理の負荷を軽減し、処理時間の短縮を図ることが出来る。特にオブジェクトの動きが定型的な動きの組み合わせで表現できる場合や、同じ動きを複数回使用する場合は有効である。
【００３７】
【発明の実施の形態】
以下、本発明の好適な実施の形態について説明する。
【００３８】
図１には、本発明が適用されたサーキットレース型のゲーム装置１０の一例が示されている。
【００３９】
前記各ゲーム装置１０は、レーシングバイクの運転席をモデルに形成されている。そして、シート１４に座ったプレーヤ１６は、前方のディスプレイ１８上に表示されるゲーム画面を見ながらハンドル２０やアクセル、ブレーキなどを操作し、ディスプレイ１８上に表示されるプレーヤバイク２２０を操縦し、ゲーム空間に登場する他のレーシングバイクと競争するように形成されている。
【００４０】
図６には当該ゲーム装置１０のディスプレイに表示されるゲーム画面２００−１の一例が示されている。本ゲーム画面２００−１には、プレーヤの操縦及びゲーム状況に応じて動くプレーヤキャラクタ２１０と、プレーヤと一体となって走行しているプレーヤバイク２２０がリアルに表示されている。
【００４１】
通常ドライブゲーム等においては、プレーヤカーはそれ自体は変形しないので、ゲーム画面に表示されるプレーヤカーの形態は、プレーヤカ−のゲーム空間内の位置及び方向と、視点情報（視点位置、視線方向、視野角）によって決まる。
【００４２】
しかし、ゲーム画面のプレーヤキャラクタ２１０は、ゲーム空間内で位置及び方向の変化のみならず、プレーヤキャラクタ２１０自体の手足や頭等を動かす動きも行う。すなわち、プレーヤキャラクタ２１０は、スタート時や転倒時その他のゲーム状況に応じて、人体を模した動きをするのである。本ゲーム装置１０では、この様な人体の動きをリアルに再現するため、以下のような構成を採用している。
【００４３】
図２には、ゲーム装置１０の構成を示すブロック図が示されている。
【００４４】
実施例のゲーム装置１０は、操作部１００、空間演算部１１０、画像合成部１２０、表示部１３０、空間情報記憶部１４０、モーションデータ記憶部１５０、オブジェクト画像情報記憶部１６０を含む。
【００４５】
前記操作部１００は、プレーヤがプレ−ヤバイク２２０の動作を制御するための信号を前記空間演算部１１０に入力するためのもので、ハンドル２０，アクセル，ブレーキなどプレーヤ１６がレーシングバイクを操縦する各種操作部を含んで構成されている。
【００４６】
そして、前記空間演算部１１０は、前記操作部１００からの操作信号および所定のゲームプログラムに基づき、所定のゲーム空間内に設定されたレーシングコースで、プレーヤの操縦するプレーヤバイク２２０を他のレーシングバイクと競争させ、プレーヤの操縦するプレーヤバイク２２０や他のレーシングバイクのゲーム空間内の位置及び状態等を演算し、その演算結果を画像合成部１２０へ向け出力する。
【００４７】
画像合成部１２０は、この演算結果に基づきゲーム画面の画像データを演算し、表示部１３０であるディスプレイ１８上に表示させる。
【００４８】
これにより、ディスプレイ１８上には、例えば図６に示すようなゲーム画面２００ー１が表示される。このゲーム画面２００−１はレーシングコース２３０上にプレーヤキャラクタ２１０の操縦するレーシングバイク２２０が走行している状態を表わしている。
【００４９】
まず空間演算部１１０と空間情報記憶部１４０がゲーム空間内の表示物の位置及び状態等を演算する機能について詳しく説明する。
【００５０】
図３は、プレーヤキャラクタ２１０及びそれと一体となって動くプレーヤバイク２２０の位置及び姿勢と、位置情報（Ｘ，Ｙ，Ｚ）及び方向情報（θ，φ，ρ）との関係を示す図である。本ゲーム装置では、各表示物は、ゲーム空間（オブジェクト空間）に設けられたワールド座標系（Ｘｗ，Ｙｗ，Ｚｗ）における位置情報（Ｘ，Ｙ，Ｚ）及び方向情報（θ，φ，ρ）が与えられることによりゲーム空間に設定される。
【００５１】
この様なゲーム空間内に配置される各表示物（レーシングコース周辺の建築物、プレーヤキャラクタ２１０及びプレーヤバイク２２０、他のレーシングバイク等）の位置情報（Ｘ，Ｙ，Ｚ）、方向情報（θ，φ，ρ）及び後述する従属情報が記憶されているのが前記空間情報記憶部１４０である。すなわち、空間情報記憶部１４０には、図４に示すように、ｉ＋１個の表示物の位置情報（Ｘ，Ｙ，Ｚ）及び方向情報（θ，φ，ρ）が、各表示物に割り当てられたオブジェクトナンバーＯＢとともに記憶されている。
【００５２】
なお、オブジェクトナンバーＯＢは、通常各表示物毎に割り当てられており、各表示物毎にその位置情報（Ｘ，Ｙ，Ｚ）及び方向情報（θ，φ，ρ）を有している。従って、前記プレーヤキャラクタ２１０とプレーヤバイク２２０は異なる表示物として、別々にオブジェクトナンバーＯＢが割り当てられ、別々に位置情報（Ｘ，Ｙ，Ｚ）及び方向情報（θ，φ，ρ）を有しているのが原則である。しかし、本ゲーム装置ではプレーヤキャラクタ２１０とプレーヤバイク２２０は衝突等で分離するまでは一体となって動くので、プレーヤバイク２２０はゲームステージにおける位置情報（Ｘ，Ｙ，Ｚ）及び方向情報（θ，φ，ρ）をプレーヤキャラクタ２１０と共有するよう構成されている。
【００５３】
前記プレーヤキャラクタ２１０（後述するように実際はさらに複数の部位に分割されている）のように独立して位置及び方向情報が必要な表示物（以下独立表示物という）であるか、前記プレーヤバイク２２０のように他の独立表示物とその位置及び方向情報を共有している表示物（以下従属表示物という）であるかの区別、及び従属表示物に関してはどの独立表示物に従属しているかの情報を格納しているのが図４に示す従属情報のエリアである。
【００５４】
具体的には前記従属情報のエリアには、当該表示物が独立表示物であれば、独立表示物である旨を示すｉｄｆフラグが立っており、当該表示物が従属表示物であれば、該従属表示物がその位置及び方向情報を共有している独立表示物のオブジェクトナンバーＯＢが格納されている。
【００５５】
なお、後述するようにモーションデータによって親につながっている各部位にあたる表示物が従属表示物であり、他の表示物は独立表示物である。本実施の形態では、従属表示物は、空間情報記憶部１４０内でそれぞれ独立した一個の表示物としてオブジェクトナンバーＮＯを有しているが、その位置情報（Ｘ，Ｙ，Ｚ）及び方向情報（θ，φ，ρ）には、親にあたる独立表示物の位置情報（Ｘ，Ｙ，Ｚ）及び方向情報（θ，φ，ρ）と同じ値がセットされており、従属情報エリアには、親のオブジェクトナンバーＮＯがセットされている。
【００５６】
通常モーションデータによって各部位をつないで構成するのは、人体等であるが、本実施の形態ではプレーヤキャラクタ２１０とプレーヤバイク２２０は、衝突等で分離するまでは一体となって動くので、プレーヤキャラクタ２１０の基準位置に対して、プレーヤバイク２２０をモーションデータによってつないで構成している。さらに本実施の形態では、プレーヤキャラクタ２１０も首、肩、肘、手首、指、腰、膝等の各部位をモーションデータによってプレーヤキャラクタ２１０の基準位置につないで構成している。
【００５７】
このため、前記プレーヤキャラクタ２１０の基準位置を含む部位（本実施の形態では腹であり仮にオブジェクトナンバーをＯＢ０とする）が独立表示物となり、該部位に従属する他のプレーヤキャラクタ２１０の残りの各部位及びプレーヤバイク２２０（仮にオブジェクトナンバーをＯＢ１〜ＯＢ１０とする）はそれぞれ従属表示物となる。従って、図４に示す空間情報記憶部１４０において、オブジェクトナンバーＯＢ０に対応する従属情報のエリアには、ｉｄｆフラグが格納されており、オブジェクトナンバーをＯＢ１〜ＯＢ１０に対応する従属情報のエリアにはＯＢ０が格納されている。また、ＯＢ１〜ＯＢ１０に対応する位置情報（Ｘ，Ｙ，Ｚ）及び方向情報（θ，φ，ρ）のエリアにはＯＢ０と同じ値がセットされている。
【００５８】
前記空間演算部１１０は、以上のようにして記憶されるゲームステージにおける各表示物の位置情報（Ｘ，Ｙ，Ｚ）及び方向情報（θ，φ，ρ）を、前記操作部１００によって入力される操作信号やゲームプログラム等に従って、所定の時間毎に、例えば１／６０秒毎に書き換えて更新する。例えば、プレーヤバイク２２０がゲーム空間内をワールド座標系のＸ軸方向に姿勢を変えずに移動する様子は、前記空間情報記憶部１４０に記憶された該当するオブジェクトナンバーとともに記憶されている位置情報のＸ座標を、前記空間演算部１４０が移動速度に応じた所定の増分で変更記憶することで表現される。こうして、ゲーム空間内において各表示物が刻々と位置及び方向（姿勢）を変化させていく状況を容易に演出することができる。
【００５９】
なお、空間情報演算部１１０は独立表示物について、ワールド座標系における位置及び方向情報を演算して、空間情報記憶部１４０の当該エリアを更新し、従属表示物については、従属情報に格納されている独立表示物の位置及び方向情報と同じ値をセットして更新するよう構成されている。
【００６０】
従って、前記プレーヤバイク２２０（仮にオブジェクトナンバーをＯＢ４とする）は衝突等でプレーヤキャラクタ２１０から分離する以前は従属表示物として、ＯＢ０と同じ位置及び方向情報を有しているが、分離した後は独立表示物となるので、空間演算部１１０は、ＯＢ４の位置情報（Ｘ，Ｙ，Ｚ）及び方向情報（θ，φ，ρ）を、ＯＢ０の当該情報とは、独立して演算するよう構成されている。
【００６１】
このように、プレーヤバイク２２０は、衝突等で分離するまでは前記プレーヤキャラクタ２１０の各部位とは一体となって動くので従属表示物として扱われ、分離後は独立して動くので独立表示物として扱われるが、この様な属性の切替（具体的には空間情報記憶部１４２の従属情報にｉｄｆフラグを立てること）は、後述する分離情報演算部１１４によって行われる。従って空間演算部１１０は、空間情報記憶部１４０の従属情報により表示物が独立表示物であるか従属表示物であるかを判断することが出来る。
【００６２】
また、空間情報記憶部１４０にはフレーム情報が記憶されている。フレーム情報は視点情報（遊戯者の視点位置、視線方向、視野角）等を含んでいる。そして、このフレーム情報も同様に前記空間演算部１１０によって所定時間毎に更新される。本ゲーム装置では３人称の視点表示を選択すると、視点２０はプレーヤバイク２２０の後方に配置され、視線方向はプレーヤバイク２２０の前方向に向いているため、プレーヤバイク２２０の位置情報及び方向情報に基づいて前記フレーム情報に含まれる視点位置及び視線方向は変更記憶される。
【００６３】
次に、画像合成部１２０とオブジェクト画像情報記憶部１６０の画像合成の機能について詳しく説明する。前記オブジェクト画像情報記憶部１６０は、ゲーム空間内の各表示物の形状及び外観にかかる情報を記憶するものであり、ポリゴン情報記憶部１６２とテクスチャ情報記憶部１６４とを含んでいる。すなわち、本ゲーム装置においては、各表示物はポリゴンの組み合わせによってモデリングされていて、各ポリゴンにはそれぞれの表示物の外観を表すテクスチャがマッピングされる。
【００６４】
前記ポリゴン情報記憶部１６２には、各表示物の形状を表す情報として、該表示物を構成する各ポリゴンの頂点座標と、それぞれのポリゴンにマッピングするテクスチャとが対応して記憶される。前記頂点座標は各表示物にそれぞれ設けられた座標系（ボディ座標系）における各頂点の位置座標として記憶されている。
【００６５】
なお、各表示物の形状を表す情報は、前記空間情報記憶部１４０に格納されている各表示物のオブジェクトナンバーに対応して設けられている。従って、複数の部位がモーションデータでつながれているような場合、例えば本実施の形態のプレーヤキャラクタ２１０の首、肩、肘、手首、指、腰、膝等の各部位は、それそれ別個に情報が格納されている。
【００６６】
前記テクスチャ情報記憶部１６４には、これらのポリゴンにマッピングするテクスチャのテクスチャ情報が記憶される。ここで、テクスチャ情報とは表示物の色や模様等の情報を意味する。
【００６７】
前記画像合成部１２０は、前記空間情報記憶部１４０及び前記オブジェクト画像情報記憶部１６０に記憶される情報に従ってゲーム空間の情景を表す画像を合成する。具体的には、先ず初めに、図５に示すように表示物３００を構成するポリゴンを、ワールド座標系（Ｘｗ，Ｙｗ，Ｚｗ）で表現されるゲームステージ上に配置するための演算を行う。すなわち、前記オブジェクト画像情報記憶部１６０には、表示物を構成するポリゴンの位置情報がボディ座標系における座標情報として記憶されている。前記画像合成部１２０は、これを前記空間情報記憶部１４０に記憶される位置情報（Ｘ，Ｙ，Ｚ）及び方向情報（θ，φ，ρ）に基づいて、平行移動、回転、反転、拡大、縮小等の３次元座標変換を施し、ワールド座標系（Ｘｗ，Ｙｗ，Ｚｗ）での位置座標に変換している。次に、各表示物についてそれを構成するポリゴンを所与の視点を基準とした視点座標系（Ｘｖ，Ｙｖ，Ｚｖ）へ座標変換する処理を行う。その後、クリッピング処理等を施し、スクリーン座標系（Ｘｓ，Ｙｓ）への投影変換処理を行う。そして、こうして得られたスクリーン座標系（Ｘｓ，Ｙｓ）での画像情報に基づいて前記表示部１３０はゲーム空間の所定の範囲を画像表示出力する。
【００６８】
ところで、前述したようにプレーヤキャラクタ２１０は人体の動きを模して表示されるので、手足や頭等は固定されておらず、個々別々に運動する。すなわち人間の身体は首、肩、肘、手首、指、腰、膝等の関節によってリンクされた物体が個々にボディ座標系をもち、ワールド座標系のなかで一つのボディを形成しているとみなすことが出来る。
【００６９】
人体の様に、関節によってリンクされた物体の動きをＣＧで表示するためには、
関節で切り取った首、肩、肘、手首、指、腰、膝等の物体を作成し、それぞれを３次元座標上に配置する必要がある。従って、変化する当該物体の各部位のボディ座標系における動きを表示するためのモーションデータも必要となる。
【００７０】
この様なモーションデータをリアルタイムに作成するとＣＰＵに過度の負担が加わり処理時間が増大するため、本実施の形態では、人体等の複雑な動きを画像合成する際は、予め人体の複雑な動きをモデリングして、各動きに対応するモーションデータを作成して後述するモーションデータ記憶部１５０に記憶させておくよう構成している。そして、画像合成するときにその該当するモーションデータに基づいて演算して、人体の各部位のワ−ルド座標系における位置及び方向を求めるよう構成している。
【００７１】
この様に予め作成したモーションデータを用いて画像合成を行うために、次のような構成を採用している。すなわち図２に示すように、本実施の形態のゲーム装置は、予め作成したモーションデータを記憶させておくモーションデータ記憶部１５０をさらに有している。
【００７２】
また空間情報演算部１１０は、使用するモーションデータを決定する使用モーションデータ情報決定部１１２と、モーションデータでつながれていた部位が分離した時の処理を行う分離情報演算部１１４を有している。そして、空間情報記憶部１４０は、前記使用モーションデータ情報決定部１１２が決定した使用するモーションデータに関する情報を記憶する使用モーションデータ情報記憶部１４２を有する。また、画像合成部１２０は、モーションデータを用いて従属表示物である各部位のワールド座標系における位置及び方向情報を演算するモーション演算部１２２を有している。以下前記各部の機能について詳しく説明する。
【００７３】
モーションデータ記憶部１５０は、前述したように、ゲーム展開に応じて予測される様々な動き、たとえばスタート時の動き、転倒時の動き、衝突時の動き等を予めモデリングして、予めデータ化したモーションデータを記憶している。本実施の形態では、プレーヤキャラクタの各部位及び一体となって動くプレーヤバイクの様々な動きを表示するために必要なモーションデータが記憶されている。通常画面は１／６０秒毎に画像合成して表示するよう形成されているので、モーションデータもこのフレーム毎に時系列にデータ化して格納されている。
【００７４】
図１１は、本実施の形態のモーションデータ記憶部１５０に格納されているモーションデータ４００のデータ構造及び内容を示した図である。モーションナンバー４１０は、ゲーム展開に応じて予測される様々な動き、たとえばスタート時の動き、転倒時の動き、衝突時の動き等の各動きに対応している番号であり、前記各動きに対応するモーションデータを検索するときのインデックスとして機能する。また、モーションデータは、各フレームごとに有しているので、各フレーム４２０毎に配列構造に格納されている。
【００７５】
また、１つのフレーム内においては、各関節によってリンクされた部位４３０のデータが配列構造になっており、１つの部位４３０について、位置情報（ｘｎ，ｙｎ，ｚｎ）４４０と、回転情報（θｎ，φｎ，ρｎ）４５０が格納されている。後述するように、位置情報（ｘｎ，ｙｎ，ｚｎ）４４０には、親である独立表示物の基準位置を原点とするボディ座標系における該関節によってリンクされた部位の基準点の位置座標が格納されている。また、回転情報（θｎ，φｎ，ρｎ）４５０には、該関節によってリンクされた部位の後述する基準状態に対する３軸方向の回転角が格納されている。
【００７６】
したがって、モーションナンバー４１０、フレームの配列番号、部位の配列番号を特定することにより、該当する動きの該当するフレームの該当する部位の位置情報（ｘｎ，ｙｎ，ｚｎ）４４０と、回転情報（θｎ，φｎ，ρｎ）４５０を取り出すことが出来る。
【００７７】
この様なモーションデータに基づいて、前記プレーヤキャラクタ等の動きを表示するためには、合成すべき画像に用いるモーションデータを決定する必要がある。すなわち前記モーションデータ記憶部１５０に記憶されているどのモーションナンバーのどのフレームのモーションデータを使用して各部位の位置及び方向情報を演算すべきかの情報（以下使用モーションデータ情報という）を、ゲーム展開に応じて決定する必要がある。本実施の形態のゲーム装置では、前記空間演算部１１０の使用モーションデータ情報決定部１１２が、ゲーム展開に応じて前記使用モーションデータ情報の決定を行い、前記空間情報記憶部１４０の使用モーションデータ情報記憶部１４２に記憶されている使用モーションデータ情報を更新するように構成されている。
【００７８】
使用モーションデータ情報記憶部１４２には、どのモーションデータであるを示すためのモーションナンバーと、どのフレームであるかを示すための、モーションデータのフレームの配列番号を含むデータが格納されている。
【００７９】
また、空間演算部１１０の分離情報演算部１１４は、モーションデータによって結合されている部位が分離して、独立してゲームステージにおける位置及び方向情報を有するようになった場合の分離独立時の位置及び方向情報の設定、及び以後前記部位が独立して位置及び方向情報が必要である旨の設定を行う。
【００８０】
分離情報演算部１１４は、前記部位が分離した場合、分離独立時の該部位の位置及び方向情報を、空間情報記憶部１４０に記憶されている該部位の位置情報（Ｘ，Ｙ，Ｚ）及び方向情報（θ，φ，ρ）と前記使用モーションデータ情報によって特定される該部位のモーションデータである位置情報（ｘｎ，ｙｎ，ｚｎ）４４０と、回転情報（θｎ，φｎ，ρｎ）４５０に基づき演算し、空間情報記憶部１４０に記憶されている該部位の位置情報（Ｘ，Ｙ，Ｚ）及び方向情報（θ，φ，ρ）の更新を行う。
【００８１】
また、空間情報記憶部１１０は、前述したように従属情報のエリアに、独立表示物であるか従属表示物であるかの識別情報を有している。モーションデータによって親につながっている部位は従属表示物であるが、該部位が分離した場合、該部位は従属表示物から独立表示物に変わる。従って、前記分離情報演算部１１４は、部位が分離した場合、空間情報記憶部１４０の該部位の従属情報の更新を行う。
【００８２】
本実施の形態では独立表示物のワールド座標系における位置及び方向情報は空間演算部１１０が演算し、従属表示物のワールド座標系における位置及び方向情報は画像合成部１２０のモーション演算部１２２が演算するように構成されている。
【００８３】
すなわちモーション演算部１２２は、前記画像合成部１２０が、図５に示すように表示物３００を構成するポリゴンを、ワールド座標系（Ｘｗ，Ｙｗ，Ｚｗ）で表現されるゲームステージ上に配置する際、従属表示物のワールド座標系における位置及び方向情報の演算を行う。
【００８４】
表示物を構成するポリゴンの位置情報は、前記オブジェクト画像情報記憶部１６０に、ボディ座標系における座標情報として記憶されている。画像合成部１２０は、これを前記空間情報記憶部１４０に記憶される表示物の位置情報（Ｘ，Ｙ，Ｚ）及び方向情報（θ，φ，ρ）に基づいて、平行移動、回転、反転、拡大、縮小等の３次元座標変換を施し、ワールド座標系（Ｘｗ，Ｙｗ，Ｚｗ）での位置座標に変換している。このとき独立表示物については、前記空間情報記憶部１４０に記憶される表示物の位置情報（Ｘ，Ｙ，Ｚ）及び方向情報（θ，φ，ρ）を用いればよいが、従属表示物については、前記情報と使用モーションデータ情報によって特定されるモーションデータとに基づきワールド座標系における位置及び方向情報を特定してから用いなければならない。
【００８５】
すなわち、空間情報記憶部１４０に記憶されている該部位の位置情報（Ｘ，Ｙ，Ｚ）及び方向情報（θ，φ，ρ）と前記使用モーションデータ情報によって特定される該部位のモーションデータである位置情報（ｘｎ，ｙｎ，ｚｎ）４４０と、回転情報（θｎ，φｎ，ρｎ）４５０に基づき該従属表示物のワールド座標系における位置及び方向情報を演算する。この様に画像合成時に従属表示物のワールド座標系における位置及び方向情報を特定しているのがモーション演算部１２２である。
【００８６】
次に、関節によって複数の部位がリンクされた物体の動きとモーションデータの関係について簡単な例を取り説明する。図８（Ａ）は１つの関節Ｋを持つ物体４００を示した図であり、図８（Ｂ）はそのモーションデータのデータ構造を表した図である。部位Ｍ１と部位Ｍ２は関節Ｋによってリンクされている。このとき部位Ｍ１に対してワールド座標系における位置及び方向が与えられる場合、部位Ｍ１を親、部位Ｍ２は関節によって部位Ｍ１にリンクされており、部位Ｍ１に従属して動くので部位Ｍ２を子と呼ぶ。複雑な物体になると、さらに子の下に子（いわゆる孫）がつながったり、親が複数の関節を持ち、子が複数つながったりする。
【００８７】
この物体４００を表示するのに必要な情報は、部位Ｍ１については、ワールド座標系における位置（この場合Ｍ１の代表点である点Ａの座標（３次元））、部位Ｍ１の方向（この場合３軸に対する回転角）、部位Ｍ２についても、ワールド座標系における位置（この場合Ｍ２の代表点である点Ｂの座標（３次元））、部位Ｍ２の方向（この場合３軸に対する回転角）である。このうち、親であるＭ１のワールド座標系における位置及び方向を示す点Ａの座標（３次元）及び部位Ｍ１の回転角（３軸）は、本実施の形態のゲーム機であれば、空間情報記憶部１４０に記憶された位置情報（Ｘ，Ｙ，Ｚ）及び方向情報（θ，φ，ρ）によって与えるられ、ゲーム中ゲーム展開に応じて変化するものである。
【００８８】
子である部位Ｍ２をワールド座標系に配置するために必要な点Ｂの座標及びＭ２の回転角は部位Ｍ１の位置及び回転角に依存しているため、いずれも親に対して相対的な値として持ち、親の位置及び回転角が決定してから演算により求めるのが一般的である。
【００８９】
モーションデータは、このような親に対して相対的な子の位置及び方向（回転）情報のことである。この場合点Ｂの相対座標はＡＢ間の距離と部位Ｍ１の回転角によっても与えてもよいし、点Ａに対して点Ｂが所定の位置関係にある時を部位Ｍ１が基準状態にあるとして、該基準状態にある時の点Ａを原点とするボディ座標系における位置座標（以下Ｂの基準位置座標という）と該基準状態に対する部位Ｍ１の回転角によっても与えてもよい。ここにおいて、ＡＢ間の距離及び点Ｂの基準位置座標は常に一定なので各フレーム毎にもつ必要はない。また後者において、部位Ｍ１の回転角は、部位Ｍ１の基準状態に対する３軸方向の回転角として、部位Ｍ２の相対的な回転角は、部位Ｍ２の基準状態に対する点Ｂを原点とするボディ座標系における３軸方向の回転角として与えるとよい。
【００９０】
従って、図８において、親である部位Ｍ１のワールド座標系における位置及び方向が点Ａの位置及び部位Ｍ１の基準状態に対する回転角で与えられるとすると、子である部位Ｍ２のモーションデータは、点Ｂの基準位置座標及び部位Ｍ２の回転角で与えられる。この場合、前述したように点Ｂの基準位置座標は各フレーム毎にもつ必要はなく、部位Ｍ２の回転角がフレーム毎に与えられることになる。
【００９１】
関節が１つの物体を例にとり説明したが、人体のように複数の関節をもつ物体の場合でも同様で、各関節毎に前記データを持つことで、関節によってリンクされた各部位のワールド座標系における位置及び方向を求めることが出来る。
【００９２】
従来この様なモーションデータは、人体の場合、図１４に示すようなモデリング時に作成する階層構造の関節を持つデータが用いられていた。本実例のようにプレーヤキャラクタ２１０とそれと一体となって動くプレーヤバイク２２０が一つのオブジェクトとしてモーションデータが与えられている場合、図１４に示すように、バイクを表示する部位２０−１６は、右足を表示する部位２０−１３に関節１０−１６によってリンクされている。このようにすることにより、プレーヤバイク２２０が、プレーヤキャラクタ２１０に従属して動く様子が表示される。例えば図６に示すように、プレーヤキャラクタ２１０がカーブで体を傾けると、プレーヤバイク２２０もプレーヤキャラクタ２１０と一体となって傾くよう表示される。
【００９３】
ところが、一体となって走行していたプレーヤキャラクタ２１０とプレーヤバイク２２０が前方の障害物２５０に衝突して、図７に示すように分離してしまうような場合、プレーヤキャラクタ２１０とプレーヤバイク２２０は分離後は独立の動きをするようになる。すなわち分離前はプレーヤキャラクタ２１０と一体となって動いていたプレーヤバイク２２０も、分離後はワールド座標系に配置された１個の物体としてワールド座標系における位置座標が必要となる。
【００９４】
通常図１４のような階層構造の関節を持つモーションデータだと、各関節毎に座標変換を行い、関節にリンクされた部位の位置座標及び方向を演算する。従ってプレーヤバイク２２０右足のワールド座標系における位置座標及び方向を求めるためには、人体の中心を示す原点３０からバイク２０−１６までに存在する関節（１０−１、１０−４、１０−９、１０−１３、１０−１６）の数だけ演算が必要となる。
【００９５】
この様に、人体の一部にバイクのように分離可能性のあるものが付加されているような場合、図１４に示す階層構造のデータ構造のモーションデータだと、分離時のＣＰＵにおける演算量の付加が大きいという問題点があった。
【００９６】
本ゲーム装置は、こうした不具合を解消すべく、物体のモーションデータを、図９に示すように、原点と各部位が関節によって１対１にリンクした構造に変換して、モーションデータ記憶部１５０に格納しておくよう形成されている。この様にすると、分離可能性のある部位のワールド座標系における位置座標及び方向を求める際、関節一つ分の演算ですむ。
【００９７】
このようなモーションデータについて簡単な例をあげ説明する。
【００９８】
図１０は、複数の関節によってリンクされた物体４１０を示している。Ｎ１を親としてその下に子である各部位Ｎ２〜Ｎ７が関節Ｋ１〜Ｋ５によって階層構造にリンクされている。従来のモーションデータは、各関節Ｋ１〜Ｋ５について、隣り合う部位の位置関係をデータ化していたが、本実施の形態では、原点Ｏと各部位Ｎ２〜Ｎ７とを１対１にリンクさせた仮想的な関節を設定してデータ化している。この様な関係をデータ化するためには、Ｎ１と各部位Ｎ２〜Ｎ７の相対的な位置関係を求めればよい。すなわち、Ｏを原点とするボディ座標系における各部位Ｎ２〜Ｎ７の位置座標と、回転情報を求めればよい。例えば、Ｎ５を例にとってみると、Ｏを原点とするボディ座標系におけるＫ４の位置座標と、Ｎ５の回転情報（θN5，φN5，ρN5）を求める。
【００９９】
このときＯを原点とするボディ座標系におけるＫ４の位置座標は、階層構造のモーションデータの場合と違って、各フレーム毎に異なった値となる。
【０１００】
また、Ｎ５の回転情報（θN5，φN5，ρN5）は、物体４１０の各関節が回転する前の部位Ｎ５の基準状態をきめておいて、その基準状態に対する回転角として求める。すなわち、図１０の物体４１０の各部位Ｎ２〜Ｎ７の実線で示した状態を基準状態として、破線で示した状態を、運動により各関節が回転した時の状態とする。このとき回転後のＮ５’が回転前のＮ５に対して３軸方向にどれだけ回転したかを表す回転情報（θN5，φN5，ρN5）を求める。
【０１０１】
また、関節Ｋ５の位置自体がＫ５’のように変わることもあるが、その時も、Ｎ７をＫ５からＫ５’まで平衡移動させて考えれば同様となる。
【０１０２】
すなわち、図９の各関節１２−Ｎ（Ｎ＝１〜１６）ごとのモーションデータは、各部位２２−Ｎ（Ｎ＝１〜１６）のＯを原点とするボディ座標系の位置座標（ｘｎ，ｙｎ，ｚｎ）と、それぞれの部位の基準状態に対する回転情報（θｎ，φｎ，ρｎ）で与えられる。なお、本実施の形態においては、プレーヤキャラクタ２１０がプレーヤバイク２２０に対して正常な姿勢で乗った時のプレーヤキャラクタ２１０の各部位の胴（へそを含む部位）に対する方向に基づきそれぞれの部位の基準状態を定めている。すなわち正常な姿勢で乗った時の各部位の位置が該部位の基準状態となる。
【０１０３】
したがって、本実施の形態でモーションデータを用いてプレーヤキャラクタ２１０を構成する各部位のワールド座標系における位置及び方向を演算するときは、以下のように行う。
【０１０４】
各部位の位置情報は、Ｏを原点とするボディ座標系の位置座標（ｘｎ，ｙｎ，ｚｎ）と、Ｏのワールド座標系における位置座標から演算して求める。ここにおいて、Ｏを原点とするボディ座標系の位置座標（ｘｎ，ｙｎ，ｚｎ）は該当するモーションデータの位置情報（図１１の位置情報４４０）を、Ｏのワールド座標系における位置座標は空間情報記憶部１４０の該当する部位の位置情報（Ｘ、Ｙ、Ｚ）（前述したように子である従属表示物の位置情報には親である独立表示物の位置情報が格納されている）を用いる。
【０１０５】
また、各部位の方向情報は、それぞれの部位の基準状態に対する回転情報（θｎ，φｎ，ρｎ）と、親である独立表示物（Ｏを含む部位である胴）のワールド座標系における方向座標（θ，φ，ρ）から演算して求める。ここにいおいて、それぞれの部位の基準状態に対する回転情報（θｎ，φｎ，ρｎ）は該当するモーションデータの回転情報（図１１の回転情報４５０）を、親である独立表示物のワールド座標系における方向座標（θ，φ，ρ）は空間情報記憶部１４０の該当する部位の方向座標（θ，φ，ρ）（前述したように子である従属表示物の位置情報には親である独立表示物の方向情報が格納されている）を用いる。
【０１０６】
本実施の形態のゲーム装置のモーションデータ記憶部１５０には、この様にして作成されたモーションデータが、図１１に示すような形式で、各運動毎に所与の時間分、フレーム毎に時系列に格納されている。
【０１０７】
なお、本実施の形態のゲーム装置では、この様なモーションデータを作成する際は、図１４のように階層構造の関節でモデリングした人体のモーションデータを求め、前記図９のような１対１の構造のモーションデータに変換し、モーションデータ記憶部１５０に格納するよう形成されている。
【０１０８】
この様なモーションデータを用いると、分離可能性のある部位の分離時のワールド座標系における位置座標及び方向を関節１つ分の演算で求めることが出来る。
【０１０９】
次に、関節１つ分の演算について、ワールド座標系における各部位の位置及び方向を演算する際の、その演算量とパラメータの関係について、図１４及び図９の２つのモーションデータの異同を簡単に説明する。
【０１１０】
１関節における演算の量は、後述するように前記いずれの形式のモーションデータであっても同様である。いずれの場合も、親からの相対方向情報（回転角）と、親からの相対位置をパラメータとして持つので、これらをそれぞれ相対回転角（θｘ，θｙ，θｚ）、相対位置（Ｄｘ，Ｄｙ，Ｄｚ）として説明する。
【０１１１】
但し、図１４のように階層構造の場合は前述したように、親からの相対位置は常に一定であるので、（Ｄｘ，Ｄｙ，Ｄｚ）は、モーションデータ全体に対して１つもてばよいのに対し、図９のように１対１の対応のデータ構造の場合は、フレーム毎に異なるので、全フレームに対して必要である。従って、１関節に対するパラメータの量は、図１４のモーションデータでは親からの相対回転角（θｘ，θｙ，θｚ）の３つでよいのに対し、図９のモーションデータでは、親からの相対回転角（θｘ，θｙ，θｚ）と親からの相対位置（Ｄｘ，Ｄｙ，Ｄｚ）の６つが必要になる。
【０１１２】
親からの相対回転角（θｘ，θｙ，θｚ）は、演算で扱いやすいように、対応する行列Ｍで表す。このときの行列Ｍは、次の計算式で表せる。
【０１１３】
【数１】
0003822929.tif 000002
【０１１４】
このとき、親自身のワールド座標系における方向を表す回転角をＫとすると、子のワールド座標系における方向を表す回転角はＭ×Ｋとなる。また、階層構造の場合、次の関節で子から孫への行列Ｎが与えられると、孫のワールド座標系における方向を表す回転角はＮ×Ｍ×Ｋとなる。すなわち階層構造の場合、下位の関節に行くときは、その関節における行列を、上位の関節における行列のかけ算の演算結果である行列に掛ければよい。
【０１１５】
従っていずれのモーションデータにおいても、その関節における回転角を行列に直す数１に示す演算が１回必要となる。数１より、行列を求めるために、１６回のかけ算と、４回の加減算と、６回の３角関数計算が、必要となることがわかる。
【０１１６】
また、子の回転行列を求めるためには、各関節でＭ×Ｋのように行列演算が必要で、
【０１１７】
【数２】
0003822929.tif 000003
【０１１８】
【数３】
0003822929.tif 000004
【０１１９】
とすると、
【０１２０】
【数４】
0003822929.tif 000005
【０１２１】
となる。この演算もいずれのモーションデータにおいても、関節ごとに必要となり、この演算のために、数４に示すように、２７回のかけ算と、１８回の加減算が必要となることがわかる。
【０１２２】
また各部位の表示座標は、各部位の親の位置（Ｐｘ、Ｐｙ、Ｐｚ）と、前述した親から子への相対位置（Ｄｘ、Ｄｙ、Ｄｚ）と、親の回転行列Ｋから、いずれのモーションデータにおいても、次の式で求められる。
【０１２３】
【数５】
0003822929.tif 000006
【０１２４】
ここにおいて親の回転角を（θｘ’，θｙ’，θｚ’）として、ＫをＭと同様に表すと、次式のようになる。
【０１２５】
【数６】
0003822929.tif 000007
【０１２６】
また、数５を計算すると、
【０１２７】
【数７】
0003822929.tif 000008
【０１２８】
となり、数７に示すように、座標を求めるために９回のかけ算と９回の加減算が必要となる。
【０１２９】
この様にいずれのモーションデータにおいても１関節における演算量は変わらない。従って、ＣＰＵにおける演算の負荷は関節の数によってきまるので、いずれかの部位のワールド座標系における位置及び方向を求める際は、図９のモーションデータのほうが演算負荷は少なくてすむ。
【０１３０】
但し、全部位についてワールド座標系における位置及び方向を求める際は、図１４でも図９でも関節の数は同じであるため、演算負荷は変わらない。しかし、図９の場合は各関節の演算処理は他の関節の演算処理と独立であるので、並列処理等で演算時間の短縮を行う際には有効である。以上により、図９のモーションデータは、演算時間の短縮や、全ての部位についての位置及び方向を求める際を除く、１又は複数の部位の位置及び方向を求める際の演算負荷の軽減に有効であると言える。
【０１３１】
次に実施例のゲーム装置で、モーションデータを用いて画像合成を行う際の作用について説明する。図１２は本実施の形態のゲーム装置で、モーションデータを用いて画像合成を行う過程を示したフローチャート図である。
【０１３２】
前述したように、本実施の形態のゲーム装置では、１／６０秒毎に１フレームの画像が供給されるため、以下の処理をゲームオーバーとなるまで、各フレーム毎に繰りかえす（ステップ１０）。
【０１３３】
まず空間演算部１１０は、操作部１００によって入力される操作信号やゲームプログラム等に従って、ゲーム空間内の表示物の位置情報を演算して、空間情報記憶部１４０の該当個所を更新する。また、使用モーションデータ情報決定部１１２は、ゲーム展開に応じたプレーヤキャラクタの動きを表現する使用モーションデータ情報を決定し、使用モーションデータ情報記憶部１４２のモーションナンバー、該当するフレームの配列番号を更新する（ステップ２０）。すなわち、プレーヤキャラクタ２１０の動きが、例えばスタート時の動き、転倒時の動き、衝突時の動き等の予め予定されているどの動きに対応しているのか演算し、対応する使用モーションデータ情報を設定するのである。
【０１３４】
このとき、もしプレーヤキャラクタ２１０とプレーヤバイク２２０が分離するというゲーム展開があれば（ステップ３０）、分離前は従属表示物であったプレーヤバイク２２０は、分離後は独立表示物となりワールド座標系における位置情報（Ｘ，Ｙ，Ｚ）及び方向情報（θ，φ，ρ）が必要となる。そこで、分離情報演算部１１４は、使用モーションデータ情報に基づきモーションデータの該当するモーションナンバー４１０の該当するフレームの該当する部位（この場合はプレーヤバイク２２０）に対応する関節のモーションデータと、空間情報部１４０に記憶されたプレーヤバイク２２０の位置情報（Ｘ，Ｙ，Ｚ）及び方向情報（θ，φ，ρ）に基づき、分離時のプレーヤバイク２２０のワールド座標系における位置情報（Ｘ，Ｙ，Ｚ）及び方向情報（θ，φ，ρ）を演算する（ステップ４０）。  また分離後、プレーヤバイク２２０は独立表示物となるので、分離情報演算部１１４は、空間情報記憶部１４０の前記プレーヤバイク２２０に対応する従属情報のエリアにｉｄｆフラグをセットする（ステップ５０）。
【０１３５】
次に画像合成部１２０は、空間演算部１１０の設定した各表示部の位置情報に基づき画像合成を行う際、従属表示物に関してはワールド座標系における位置情報（Ｘ，Ｙ，Ｚ）及び方向情報（θ，φ，ρ）が必要である。そこで、モーション演算部１２２は、空間情報記憶部１４０に記憶された位置と、使用モーションデータ情報記憶部１４２によって特定されるモーションデータ記憶部１５０に記憶されたモーションデータに基づき、これらの従属表示物のワールド座標系における位置情報（Ｘ，Ｙ，Ｚ）及び方向情報（θ，φ，ρ）を演算する（ステップ６０）。この演算は、使用モーションデータ情報記憶部１４２に記憶された使用モーションデータ情報のモーションナンバー４１０の該当するフレーム４２０の全関節に対して行われる。
【０１３６】
この様にして従属表示物のワールド座標系における位置情報（Ｘ，Ｙ，Ｚ）及び方向情報（θ，φ，ρ）が定まると、画像合成部１２０は、前述した画像合成を行い１フレーム分の画像を供給する（ステップ７０）。
【０１３７】
本発明は上記実施例に限定されるものではなく、各種の変更実施が可能である。
【０１３８】
例えば、前記モーションデータは、親に対して１対１リンクしていれば、前述した内容に限られないし、方向情報は、３軸方向の回転角の関数、例えば対応する行列式としてデータ化してもよい。
【０１３９】
また、モーションデータ記憶部１５０に格納する際のデータ構造も前述したものに限られない。
【０１４０】
また、本実施の形態では、画像合成時にモーション演算部１２２が従属表示物のワールド座標系における位置情報（Ｘ，Ｙ，Ｚ）及び方向情報（θ，φ，ρ）をモーションデータによって演算する構成のゲーム装置を例に取り説明したがこれに限られず、画像合成時以外、例えば空間情報記憶部で行うようにしてもよい。
【０１４１】
さらに、本実施の形態では、モーションデータを予め求めて格納しておく場合について説明したが、ゲーム中リアルタイムにモーションデータを作成する場合でもよい。
【０１４２】
さらに、以上説明した本発明は家庭用、業務用を問わずあらゆるハードウェアを用いて実施可能である。図１３は現在広く用いられているタイプのゲーム装置のハードウェア構成の一例を示す図である。同図に示すゲーム装置はＣＰＵ１０００、ＲＯＭ１００２、ＲＡＭ１００４、情報記憶媒体１００６、音声合成ＩＣ１００８、画像合成ＩＣ１０１０、Ｉ／Ｏポート１０１２、１０１４がシステムバス１０１６により相互にデータ送受信可能に接続されている。そして前記画像合成ＩＣ１０１０にはディスプレイ１０１８が接続され、前記音声合成ＩＣ１００８にはスピーカ１０２０が接続され、Ｉ／Ｏポート１０１２にはコントロール装置１０２２が接続され、Ｉ／Ｏポート１０１４には通信装置１０２４が接続されている。
【０１４３】
前記情報記憶媒体１００６は、ＣＤ−ＲＯＭ、ゲームＲＯＭ、メモリカード等のゲーム装置本体と着脱可能に設けられる記憶手段を意味し、ゲーム内容に応じた所定の情報を書き込み保存することのできるタイプも用いられる。また、前記ＲＯＭ１００２は、ゲーム装置本体に固定して設けられる記憶手段である。これらは、ゲームプログラムやゲームステージの空間情報等のゲームタイトルに関係する情報の他、ゲーム装置本体の初期化情報等のゲームタイトルに関係しない情報を記憶する手段である。
【０１４４】
前記コントロール装置１０２２は、遊戯者がゲーム進行に応じて行う判断の結果をゲーム装置本体に入力するための装置であり、家庭用に広く用いられているパッドタイプのものや、業務用ドライブゲームに用いられるハンドル、アクセル等が挙げられる。
【０１４５】
そして、前記情報記憶媒体１００６やＲＯＭ１００２に格納されるゲームプログラムやシステムプログラム又は前記コントロール装置１０２２によって入力される信号等に従って、前記ＣＰＵ１０００はゲーム装置全体の制御や各種データ処理を行う。前記ＲＡＭ１００４はこのＣＰＵ１０００の作業領域として用いられる記憶手段であり、前記情報記憶媒体１００６や前記ＲＯＭ１００２の所定の内容、あるいはＣＰＵ１０００の演算結果等が格納される。
【０１４６】
さらに、この種のゲーム装置には音声合成ＩＣ１００８と画像合成ＩＣ１０１０とが設けられていて音声や画像の好適な出力が行えるようになっている。前記音声合成ＩＣ１００８は情報記憶媒体１００６やＲＯＭ１００２に記憶される情報に基づいて効果音やゲーム音楽等を合成する回路であり、合成された音楽等はスピーカ１０２０によって出力される。また、前記画像合成ＩＣ１０１０はＲＡＭ１００４、ＲＯＭ１００２、情報記憶媒体１００６等から送られる画像情報に基づいてディスプレイ１０１８に出力するための画素情報を合成する回路である。
【０１４７】
また、前記通信装置１０２４はゲーム装置内部で利用される各種の情報を外部とやりとりするものであり、他のゲーム装置と接続されてゲームプログラムに応じた所定の情報を送受したり、通信回線を介してゲームプログラム等の情報を送受することなどに利用される。
【０１４８】
以上説明した一般的なゲーム装置を用いても本発明は容易に実施可能である。例えば、前記操作部１００はコントロール装置１０２２に対応し、前記空間演算部１１０はＣＰＵ１０００及びＲＯＭ１００２又は情報記憶媒体１００６に格納されるソフトウェアによって実現される。また、空間情報記憶部１４０、モーションデータ記憶部１５０、オブジェクト画像情報記憶部１６０は、ＲＡＭ１００４、ＲＯＭ１００２、情報記憶媒体１００６のいずれかに設けることが可能である。更に、画像合成部１２０は画像合成ＩＣ１０１０によって、あるいはＣＰＵ１０００と所定のソフトウェアによって実現される。また、表示部１３０はディスプレイ１０１８に対応する。
【０１４９】
【図面の簡単な説明】
【図１】本実施の形態にかかるゲーム装置の構成の一例を示す図である。
【図２】本実施の形態のゲーム装置の構成を示す機能ブロック図である。
【図３】プレーヤキャラクタ及びプレーヤバイクの位置及び姿勢と、位置情報及び方向情報との関係を示す図である。
【図４】本実施の形態にかかるゲーム装置の空間情報記憶部に記憶される情報を示す図である。
【図５】本実施の形態にかかるゲーム装置の画像合成処理を説明する図である。
【図６】本実施の形態のゲーム装置の画面に表示されるゲーム画像を示す図である。
【図７】本実施の形態のゲーム装置の画面に表示されるゲーム画像を示す図である。
【図８】同図（Ａ）、（Ｂ）は、１つの関節を持つ物体とそのモーションデータの説明図である。
【図９】本実施の形態にもちいられているモーションデータの構造を示す図である。
【図１０】複数の関節によってリンクされた物体のモーションデータを説明するための図である。
【図１１】本実施の形態のモーションデータ記憶部に格納されたモーションデータのデータ構造及び内容を示した図である。
【図１２】本実施の形態のゲーム装置で、モーションデータを用いて画像合成を行う過程を示したフローチャート図である。
【図１３】ゲーム装置のハードウェア構成の一例を示す図である。
【図１４】人体の各部位を関節によって階層構造にリンクしたデータ構造を示す図である。
【符号の説明】
１００  操作部
１１０  空間演算部
１１２  使用モーションデータ情報決定部
１１４  分離情報演算部
１２０  画像合成部
１２２  モーション演算部
１３０  表示部
１４０  空間情報記憶部
１４２  使用モーションデータ情報記憶部
１５０  モーションデータ記憶部
１６０  オブジェクト画像情報記憶部
【図１】
0003822929.tif 000009
【図２】
0003822929.tif 000010
【図３】
0003822929.tif 000011
【図４】
0003822929.tif 000012
【図５】
0003822929.tif 000013
【図６】
0003822929.tif 000014
【図７】
0003822929.tif 000015
【図８】
0003822929.tif 000016
【図９】
0003822929.tif 000017
【図１０】
0003822929.tif 000018
【図１１】
0003822929.tif 000019
【図１２】
0003822929.tif 000020
【図１３】
0003822929.tif 000021
【図１４】
0003822929.tif 000022