JP3822929B2 - Image composition method and image composition apparatus - Google Patents
Image composition method and image composition apparatus Download PDFInfo
- Publication number
- JP3822929B2 JP3822929B2 JP03735796A JP3735796A JP3822929B2 JP 3822929 B2 JP3822929 B2 JP 3822929B2 JP 03735796 A JP03735796 A JP 03735796A JP 3735796 A JP3735796 A JP 3735796A JP 3822929 B2 JP3822929 B2 JP 3822929B2
- Authority
- JP
- Japan
- Prior art keywords
- coordinate system
- data
- motion data
- reference point
- information
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
- A63F2300/66—Methods for processing data by generating or executing the game program for rendering three dimensional images
- A63F2300/6607—Methods for processing data by generating or executing the game program for rendering three dimensional images for animating game characters, e.g. skeleton kinematics
Landscapes
- Processing Or Creating Images (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は画像合成方法び画像合成装置に関し、特に複数の部位が関節によってリンクされているオブジェクトのモーションデータを用いて画像合成を行う画像合成方法及び画像合成装置に関する。
【0002】
【背景の技術】
従来より、映像やゲーム装置等においてコンピュータグラフィクス(以下CGという)を用いて、人体の動きを表示することが行われている。通常の変形しないオブジェクトであれば、3次元空間のワールド座標系における当該オブジェクトの座標及び方向を時系列に求めることにより、当該オブジェクトの動きを表示することができる。
【0003】
ところが、人体等は手足や頭等は固定されておらず、個々別々に運動する。すなわち、人間の身体は首、肩、肘、手首、指、腰、膝等の関節によってリンクされた物体が個々にボディ座標系をもち、ワールド座標系のなかで一つのボディを形成しているとみなすことが出来る。
【0004】
このような、関節によってリンクされた物体の動きをCGで表示するためには、関節で切り取った物体を作成し、それぞれを3次元座標上に配置する必要がある。
【0005】
したがって、各フレーム毎に変化する物体のワールド座標系における位置のみならず、当該物体の各部位の動きを表すデータも必要となる。
【0006】
この様な各部位の動きに基づき、関節で隣り合っているものの関係をデータ化して、表示するときにそのデータに基づいて、演算して座標を求めることが一般に行われている。このようなデータをモーションデータと呼び、通常、一連の動きにおける各関節と各部位の関係を各フレーム毎に時系列にデータ化したものである。
【0007】
ところで、人体等の複雑な動き等をCGで表示する際は、予め人体の複雑な動きをモデリングして、モーションデータとしてデータ化しておく。このような人体の動きをモデリングする際は、図14に示すように、人体の各部位20−1〜20−15を人体を模した階層構造の関節10−1〜10−15によってリンクして一つのボディを形成している。この様に、人体の関節に対応した関節のある階層構造で各部位をリンクさせてモデリングを行うと最も自然な動きを表現することが出来るからである。そして、人体に一連の動きをさせたときの、それぞれの部位の位置及び方向は、各部位の対応する関節を原点としたボディ座標系における座標変換の量として特定することが出来る。
【0008】
すなわち、人体(原点30)のワールド座標系における位置及び方向が与えられると、対応する部位をボディ座標系からワールド座標系おける座標変換を行うことによって、人体を構成する全ての部位のワールド座標系における位置及び方向が決定される。
【0009】
従来は、この様にモデリング時に作成する階層構造のデータを、画像合成時のモーションデータとして用いていた。
【0010】
ところが、人体の一部に分離可能性のあるものが付加されているような場合、例えば右足の靴(右足と一体となっている)を飛ばしたような場合、人体と右足の靴は分離後は独立の動きをするようになる。すなわち分離前は右足と一体となって動いていた右足の靴も、分離後はワールド座標系に配置された1個の物体としてワールド座標系における位置座標及び方向情報が必要となる。
【0011】
このとき図14のような階層構造のデータ構造のモーションデータだと、右足のワールド座標系における位置座標を求めるためには、人体の中心を示す原点30から右足までに存在する関節(10−2、10−6、10−8、10−12)の数だけ演算が必要となる。
【0012】
この様に、図14に示す階層構造のデータ構造のモーションデータだと、分離可能性のある部位を含む物体を表示する場合、CPUにおける演算量の付加が大きいという問題点があった。
【0013】
【発明が解決しようとする課題】
そこで、物体を構成する各部位の動きの内容を保持しつつ、各部位までの演算量が少なくてすむデータ構造のモ−ションデータを用いて画像合成を行うと、CPUにおける演算量の付加を軽減することが出来る。
【0014】
本発明はこの様な課題に鑑みてなされたものであり、各部位までの演算量が少なくてすむデータ構造のモ−ションデータを用いて画像合成を行う方法及び画像合成装置を提供することである。
【0015】
【課題を解決するための手段】
請求項1の発明は、
複数の部位が関節によってリンクされているオブジェクトの画像合成を行う方法であって、
当該オブジェクトを構成する各部位のモーションデータを当該オブジェクトの基準点からの相対的な位置データとして形成し、画像合成を行うことを特徴とする。
【0016】
請求項4の発明は、
複数の部位が関節によってリンクされているオブジェクトの画像合成を行う装置であって、
当該オブジェクトを構成する各部位のモーションデータを当該オブジェクトの基準点からの相対的な位置データとして形成し画像合成を行うことを特徴とする。
【0017】
個々別々に運動する部位の結合しているオブジェクトをモデリングする際は、各部位を関節でリンクしたモデルを作成して行う。本発明は、この様に関節でリンクしたモデルを用いてモデリングされたオブジェクトのモーションデータを用いて画像合成をおこなう画像合成方法及び画像合成装置に関するものである。
【0018】
前記オブジェクトの複数の部位は、関節によってツリ−状にリンクされている場合でもよいし、枝分かれせずにリンクされている場合でもよい。
【0019】
また、基準点とは当該オブジェクトのワールド座標系における位置データを持っている点又はそれに基づき決められる点であり、位置データとは、各部位の位置座標や方向を定めるのに必要なデータをいう。基準点からの相対的な位置データとは、前記位置データが例えば基準点を原点とするボディ座標系における位置データとして与えられる場合等をいう。
【0020】
この様なオブジェクトの各部位のモーションデータは、通常各部位がリンクされている関節を原点とするボディ座標系における位置データとして形成されていた。
【0021】
従って、複数の部位が、関節によってツリ−状等にリンクされている場合、各部位のワールド座標系における位置データを求めるためには、前記基準点から、各部位の間に存在する関節の数だけ座標変換の演算が必要であった。この演算量を減らすべく、本発明では、各部位のモーションデータを基準点からの相対的な位置データとして形成し、画像合成を行っている。すなわち、各部位の位置データは、それぞれ基準位置を原点とするボディ座標系における位置データとして形成されている。
【0022】
このようにすると、前記基準点と各部位の間の座標変換の演算だけで、各部位のワールド座標系における位置データを求めることが出来る。従って各部位のワールド座標系における位置データを取り出す際の演算付加を軽減することが出来る。また、画像合成時においても各部位の位置データは、他の部位と独立して演算可能なので並列処理による処理時間の高速化をはかることが出来る。
【0023】
請求項2の発明は、
複数の部位が関節によってリンクされているオブジェクトの画像合成を行う方法であって、
当該オブジェクトを構成する少なくとも分離可能な部位のモーションデータを当該オブジェクトの基準点からの相対的な位置データとして形成し、
前記分離可能な部位の分離時には、前記基準点からの相対的な位置データに基づき分離可能な部位の位置データを演算し、画像合成を行うことを特徴とする。
【0024】
請求項5の発明は、
複数の部位が関節によってリンクされているオブジェクトの画像合成を行う装置であって、
当該オブジェクトを構成する少なくとも分離可能な部位のモーションデータを当該オブジェクトの基準点からの相対的な位置データとして形成し、
前記分離可能な部位の分離時には、前記基準点からの相対的な位置データに基づき分離可能な部位の位置データを演算し、画像合成を行うことを特徴とする。
【0025】
本発明では、分離可能な各部位のモーションデータを基準点からの相対的な位置データとして形成し、画像合成を行っている。すなわち、分離可能な各部位の位置データは、はそれぞれ基準位置を原点とするボディ座標系における位置データとして形成されている。
【0026】
分離可能な各部位とは、分離前はオブジェクトの基準点に従属して運動していたが、分離後は、前記オブジェクトの基準点とは独立して運動する部位をさす。例えば、人間が靴を飛ばしたりする場合の靴であったり、バイクに乗っていた人間がバイクから落ちた後のバイクであったりする。前記靴やバイクは分離前は人間に付随していたので、人間の基準点のワールド座標系における位置データがわかれば、モーションデータを用いて演算することにより、前記靴やバイクのワールド座標系における位置データを求めることが出来た。しかし、分離後は人間とは独立して運動するため、前記靴やバイクは、独立したオブジェクトとなり、それ自体のワールド座標系における位置データが必要となる。
【0027】
従って分離時に前記靴やバイクのワールド座標系における位置データを、独立したオブジェクトである靴やバイクのワールド座標系における位置データとして与えなければならない。
【0028】
このとき、本発明によれば、前記基準点と分離対象である各部位の間の座標変換の演算だけで、分離対象の各部位のワールド座標系における位置データを求めることが出来る。従って分離対象の各部位のワールド座標系における位置データを演算する際の演算付加を軽減することが出来る。
【0029】
請求項3の発明は、
請求項1又は請求項2のいずれかにおいて、
3次元空間内のオブジェクトと、当該オブジェクトを構成する部位の位置データは、前記オブジェクトの基準点を原点とするボディ座標系における前記部位の3次元座標と、各部位ごとに前記ボディ座標系に設定された基準方向に対する当該部位の前記ボディ座標系における回転角を含むことを特徴とする。
【0030】
請求項7の発明は、
請求項4〜請求項6のいずれかにおいて、
3次元空間内のオブジェクトと、当該オブジェクトを構成する部位の位置データは、前記オブジェクトの基準点を原点とするボディ座標系における前記部位の3次元座標と、各部位ごとに前記ボディ座標系に設定された基準方向に対する当該部位の前記ボディ座標系における回転角を含むことを特徴とする。
【0031】
各部位を3次元のワールド座標系に設定するためにはワールド座標系における位置座標とその位置おける各部位の回転角が与えられればよい。本発明によれば、各部位の位置データは、前記オブジェクトの基準点を原点とするボディ座標系における前記部位の3次元座標と、各部位ごとに前記ボディ座標系に設定された基準方向に対する当該部位の前記ボディ座標系のおける回転角によって決定される。従って前記オブジェクトのワールド座標系における位置座標とその位置おける各部位の回転角が与えられれば、座標変換により、各部位を3次元のワールド座標系に設定するためにはワールド座標系における位置座標とその位置おける各部位の回転角が与えられる。
【0032】
各部位ごとにボディ座標系に設定された基準方向とは、ボディ座標系における当該部位の方向のいずれか一態様とすればよい。例えば前記オブジェクトが標準的な1状態にある時の各部位の方向をその部位の基準方向とする。そして、当該部位が前記基準方向に対してどれだけ回転したかを基準位置に対する当該部位の回転角とする。
【0033】
この様にすることにより、本発明によれば、モーションデータによる各部位のワールド座標系における位置及び方向の演算を少ない演算量で簡単に行うことが出来る。
【0034】
なお前記回転角は、ボディ座標系における前記部位の3軸方向への回転角で表すことが好ましい。
【0035】
請求項6の発明は、
複数の部位が関節によってリンクされているオブジェクトの画像合成を行う装置であって、
当該オブジェクトを構成する各部位のモーションデータを当該オブジェクトの基準点からの相対的な位置データとして記憶するモーションデータ記憶手段と、当該オブジェクトの基準点のワールド座標系における位置データを演算する空間演算手段と、
前記空間演算手段が演算した当該オブジェクトの基準点のワールド座標系における位置データ及びモーションデータ記憶手段に記憶されたモーションデータに基づき、当該オブジェクトを構成する各部位のワールド座標系における位置データを演算するモーション演算手段と、
当該オブジェクトを構成する各部位の画像情報を記憶しているオブジェクト情報記憶手段とを含み、
前記モーション演算手段によって演算された当該オブジェクトを構成する各部位のワールド座標系における位置データ及び前記オブジェクト情報記憶手段に記憶されている各部位の画像情報とに基づき、当該オブジェクトの画像を合成することを特徴とする。
【0036】
この様にモーションデータを予めモーションデータ記憶手段に記憶させておくと演算処理の負荷を軽減し、処理時間の短縮を図ることが出来る。特にオブジェクトの動きが定型的な動きの組み合わせで表現できる場合や、同じ動きを複数回使用する場合は有効である。
【0037】
【発明の実施の形態】
以下、本発明の好適な実施の形態について説明する。
【0038】
図1には、本発明が適用されたサーキットレース型のゲーム装置10の一例が示されている。
【0039】
前記各ゲーム装置10は、レーシングバイクの運転席をモデルに形成されている。そして、シート14に座ったプレーヤ16は、前方のディスプレイ18上に表示されるゲーム画面を見ながらハンドル20やアクセル、ブレーキなどを操作し、ディスプレイ18上に表示されるプレーヤバイク220を操縦し、ゲーム空間に登場する他のレーシングバイクと競争するように形成されている。
【0040】
図6には当該ゲーム装置10のディスプレイに表示されるゲーム画面200−1の一例が示されている。本ゲーム画面200−1には、プレーヤの操縦及びゲーム状況に応じて動くプレーヤキャラクタ210と、プレーヤと一体となって走行しているプレーヤバイク220がリアルに表示されている。
【0041】
通常ドライブゲーム等においては、プレーヤカーはそれ自体は変形しないので、ゲーム画面に表示されるプレーヤカーの形態は、プレーヤカ−のゲーム空間内の位置及び方向と、視点情報(視点位置、視線方向、視野角)によって決まる。
【0042】
しかし、ゲーム画面のプレーヤキャラクタ210は、ゲーム空間内で位置及び方向の変化のみならず、プレーヤキャラクタ210自体の手足や頭等を動かす動きも行う。すなわち、プレーヤキャラクタ210は、スタート時や転倒時その他のゲーム状況に応じて、人体を模した動きをするのである。本ゲーム装置10では、この様な人体の動きをリアルに再現するため、以下のような構成を採用している。
【0043】
図2には、ゲーム装置10の構成を示すブロック図が示されている。
【0044】
実施例のゲーム装置10は、操作部100、空間演算部110、画像合成部120、表示部130、空間情報記憶部140、モーションデータ記憶部150、オブジェクト画像情報記憶部160を含む。
【0045】
前記操作部100は、プレーヤがプレ−ヤバイク220の動作を制御するための信号を前記空間演算部110に入力するためのもので、ハンドル20,アクセル,ブレーキなどプレーヤ16がレーシングバイクを操縦する各種操作部を含んで構成されている。
【0046】
そして、前記空間演算部110は、前記操作部100からの操作信号および所定のゲームプログラムに基づき、所定のゲーム空間内に設定されたレーシングコースで、プレーヤの操縦するプレーヤバイク220を他のレーシングバイクと競争させ、プレーヤの操縦するプレーヤバイク220や他のレーシングバイクのゲーム空間内の位置及び状態等を演算し、その演算結果を画像合成部120へ向け出力する。
【0047】
画像合成部120は、この演算結果に基づきゲーム画面の画像データを演算し、表示部130であるディスプレイ18上に表示させる。
【0048】
これにより、ディスプレイ18上には、例えば図6に示すようなゲーム画面200ー1が表示される。このゲーム画面200−1はレーシングコース230上にプレーヤキャラクタ210の操縦するレーシングバイク220が走行している状態を表わしている。
【0049】
まず空間演算部110と空間情報記憶部140がゲーム空間内の表示物の位置及び状態等を演算する機能について詳しく説明する。
【0050】
図3は、プレーヤキャラクタ210及びそれと一体となって動くプレーヤバイク220の位置及び姿勢と、位置情報(X,Y,Z)及び方向情報(θ,φ,ρ)との関係を示す図である。本ゲーム装置では、各表示物は、ゲーム空間(オブジェクト空間)に設けられたワールド座標系(Xw,Yw,Zw)における位置情報(X,Y,Z)及び方向情報(θ,φ,ρ)が与えられることによりゲーム空間に設定される。
【0051】
この様なゲーム空間内に配置される各表示物(レーシングコース周辺の建築物、プレーヤキャラクタ210及びプレーヤバイク220、他のレーシングバイク等)の位置情報(X,Y,Z)、方向情報(θ,φ,ρ)及び後述する従属情報が記憶されているのが前記空間情報記憶部140である。すなわち、空間情報記憶部140には、図4に示すように、i+1個の表示物の位置情報(X,Y,Z)及び方向情報(θ,φ,ρ)が、各表示物に割り当てられたオブジェクトナンバーOBとともに記憶されている。
【0052】
なお、オブジェクトナンバーOBは、通常各表示物毎に割り当てられており、各表示物毎にその位置情報(X,Y,Z)及び方向情報(θ,φ,ρ)を有している。従って、前記プレーヤキャラクタ210とプレーヤバイク220は異なる表示物として、別々にオブジェクトナンバーOBが割り当てられ、別々に位置情報(X,Y,Z)及び方向情報(θ,φ,ρ)を有しているのが原則である。しかし、本ゲーム装置ではプレーヤキャラクタ210とプレーヤバイク220は衝突等で分離するまでは一体となって動くので、プレーヤバイク220はゲームステージにおける位置情報(X,Y,Z)及び方向情報(θ,φ,ρ)をプレーヤキャラクタ210と共有するよう構成されている。
【0053】
前記プレーヤキャラクタ210(後述するように実際はさらに複数の部位に分割されている)のように独立して位置及び方向情報が必要な表示物(以下独立表示物という)であるか、前記プレーヤバイク220のように他の独立表示物とその位置及び方向情報を共有している表示物(以下従属表示物という)であるかの区別、及び従属表示物に関してはどの独立表示物に従属しているかの情報を格納しているのが図4に示す従属情報のエリアである。
【0054】
具体的には前記従属情報のエリアには、当該表示物が独立表示物であれば、独立表示物である旨を示すidfフラグが立っており、当該表示物が従属表示物であれば、該従属表示物がその位置及び方向情報を共有している独立表示物のオブジェクトナンバーOBが格納されている。
【0055】
なお、後述するようにモーションデータによって親につながっている各部位にあたる表示物が従属表示物であり、他の表示物は独立表示物である。本実施の形態では、従属表示物は、空間情報記憶部140内でそれぞれ独立した一個の表示物としてオブジェクトナンバーNOを有しているが、その位置情報(X,Y,Z)及び方向情報(θ,φ,ρ)には、親にあたる独立表示物の位置情報(X,Y,Z)及び方向情報(θ,φ,ρ)と同じ値がセットされており、従属情報エリアには、親のオブジェクトナンバーNOがセットされている。
【0056】
通常モーションデータによって各部位をつないで構成するのは、人体等であるが、本実施の形態ではプレーヤキャラクタ210とプレーヤバイク220は、衝突等で分離するまでは一体となって動くので、プレーヤキャラクタ210の基準位置に対して、プレーヤバイク220をモーションデータによってつないで構成している。さらに本実施の形態では、プレーヤキャラクタ210も首、肩、肘、手首、指、腰、膝等の各部位をモーションデータによってプレーヤキャラクタ210の基準位置につないで構成している。
【0057】
このため、前記プレーヤキャラクタ210の基準位置を含む部位(本実施の形態では腹であり仮にオブジェクトナンバーをOB0とする)が独立表示物となり、該部位に従属する他のプレーヤキャラクタ210の残りの各部位及びプレーヤバイク220(仮にオブジェクトナンバーをOB1〜OB10とする)はそれぞれ従属表示物となる。従って、図4に示す空間情報記憶部140において、オブジェクトナンバーOB0に対応する従属情報のエリアには、idfフラグが格納されており、オブジェクトナンバーをOB1〜OB10に対応する従属情報のエリアにはOB0が格納されている。また、OB1〜OB10に対応する位置情報(X,Y,Z)及び方向情報(θ,φ,ρ)のエリアにはOB0と同じ値がセットされている。
【0058】
前記空間演算部110は、以上のようにして記憶されるゲームステージにおける各表示物の位置情報(X,Y,Z)及び方向情報(θ,φ,ρ)を、前記操作部100によって入力される操作信号やゲームプログラム等に従って、所定の時間毎に、例えば1/60秒毎に書き換えて更新する。例えば、プレーヤバイク220がゲーム空間内をワールド座標系のX軸方向に姿勢を変えずに移動する様子は、前記空間情報記憶部140に記憶された該当するオブジェクトナンバーとともに記憶されている位置情報のX座標を、前記空間演算部140が移動速度に応じた所定の増分で変更記憶することで表現される。こうして、ゲーム空間内において各表示物が刻々と位置及び方向(姿勢)を変化させていく状況を容易に演出することができる。
【0059】
なお、空間情報演算部110は独立表示物について、ワールド座標系における位置及び方向情報を演算して、空間情報記憶部140の当該エリアを更新し、従属表示物については、従属情報に格納されている独立表示物の位置及び方向情報と同じ値をセットして更新するよう構成されている。
【0060】
従って、前記プレーヤバイク220(仮にオブジェクトナンバーをOB4とする)は衝突等でプレーヤキャラクタ210から分離する以前は従属表示物として、OB0と同じ位置及び方向情報を有しているが、分離した後は独立表示物となるので、空間演算部110は、OB4の位置情報(X,Y,Z)及び方向情報(θ,φ,ρ)を、OB0の当該情報とは、独立して演算するよう構成されている。
【0061】
このように、プレーヤバイク220は、衝突等で分離するまでは前記プレーヤキャラクタ210の各部位とは一体となって動くので従属表示物として扱われ、分離後は独立して動くので独立表示物として扱われるが、この様な属性の切替(具体的には空間情報記憶部142の従属情報にidfフラグを立てること)は、後述する分離情報演算部114によって行われる。従って空間演算部110は、空間情報記憶部140の従属情報により表示物が独立表示物であるか従属表示物であるかを判断することが出来る。
【0062】
また、空間情報記憶部140にはフレーム情報が記憶されている。フレーム情報は視点情報(遊戯者の視点位置、視線方向、視野角)等を含んでいる。そして、このフレーム情報も同様に前記空間演算部110によって所定時間毎に更新される。本ゲーム装置では3人称の視点表示を選択すると、視点20はプレーヤバイク220の後方に配置され、視線方向はプレーヤバイク220の前方向に向いているため、プレーヤバイク220の位置情報及び方向情報に基づいて前記フレーム情報に含まれる視点位置及び視線方向は変更記憶される。
【0063】
次に、画像合成部120とオブジェクト画像情報記憶部160の画像合成の機能について詳しく説明する。前記オブジェクト画像情報記憶部160は、ゲーム空間内の各表示物の形状及び外観にかかる情報を記憶するものであり、ポリゴン情報記憶部162とテクスチャ情報記憶部164とを含んでいる。すなわち、本ゲーム装置においては、各表示物はポリゴンの組み合わせによってモデリングされていて、各ポリゴンにはそれぞれの表示物の外観を表すテクスチャがマッピングされる。
【0064】
前記ポリゴン情報記憶部162には、各表示物の形状を表す情報として、該表示物を構成する各ポリゴンの頂点座標と、それぞれのポリゴンにマッピングするテクスチャとが対応して記憶される。前記頂点座標は各表示物にそれぞれ設けられた座標系(ボディ座標系)における各頂点の位置座標として記憶されている。
【0065】
なお、各表示物の形状を表す情報は、前記空間情報記憶部140に格納されている各表示物のオブジェクトナンバーに対応して設けられている。従って、複数の部位がモーションデータでつながれているような場合、例えば本実施の形態のプレーヤキャラクタ210の首、肩、肘、手首、指、腰、膝等の各部位は、それそれ別個に情報が格納されている。
【0066】
前記テクスチャ情報記憶部164には、これらのポリゴンにマッピングするテクスチャのテクスチャ情報が記憶される。ここで、テクスチャ情報とは表示物の色や模様等の情報を意味する。
【0067】
前記画像合成部120は、前記空間情報記憶部140及び前記オブジェクト画像情報記憶部160に記憶される情報に従ってゲーム空間の情景を表す画像を合成する。具体的には、先ず初めに、図5に示すように表示物300を構成するポリゴンを、ワールド座標系(Xw,Yw,Zw)で表現されるゲームステージ上に配置するための演算を行う。すなわち、前記オブジェクト画像情報記憶部160には、表示物を構成するポリゴンの位置情報がボディ座標系における座標情報として記憶されている。前記画像合成部120は、これを前記空間情報記憶部140に記憶される位置情報(X,Y,Z)及び方向情報(θ,φ,ρ)に基づいて、平行移動、回転、反転、拡大、縮小等の3次元座標変換を施し、ワールド座標系(Xw,Yw,Zw)での位置座標に変換している。次に、各表示物についてそれを構成するポリゴンを所与の視点を基準とした視点座標系(Xv,Yv,Zv)へ座標変換する処理を行う。その後、クリッピング処理等を施し、スクリーン座標系(Xs,Ys)への投影変換処理を行う。そして、こうして得られたスクリーン座標系(Xs,Ys)での画像情報に基づいて前記表示部130はゲーム空間の所定の範囲を画像表示出力する。
【0068】
ところで、前述したようにプレーヤキャラクタ210は人体の動きを模して表示されるので、手足や頭等は固定されておらず、個々別々に運動する。すなわち人間の身体は首、肩、肘、手首、指、腰、膝等の関節によってリンクされた物体が個々にボディ座標系をもち、ワールド座標系のなかで一つのボディを形成しているとみなすことが出来る。
【0069】
人体の様に、関節によってリンクされた物体の動きをCGで表示するためには、
関節で切り取った首、肩、肘、手首、指、腰、膝等の物体を作成し、それぞれを3次元座標上に配置する必要がある。従って、変化する当該物体の各部位のボディ座標系における動きを表示するためのモーションデータも必要となる。
【0070】
この様なモーションデータをリアルタイムに作成するとCPUに過度の負担が加わり処理時間が増大するため、本実施の形態では、人体等の複雑な動きを画像合成する際は、予め人体の複雑な動きをモデリングして、各動きに対応するモーションデータを作成して後述するモーションデータ記憶部150に記憶させておくよう構成している。そして、画像合成するときにその該当するモーションデータに基づいて演算して、人体の各部位のワ−ルド座標系における位置及び方向を求めるよう構成している。
【0071】
この様に予め作成したモーションデータを用いて画像合成を行うために、次のような構成を採用している。すなわち図2に示すように、本実施の形態のゲーム装置は、予め作成したモーションデータを記憶させておくモーションデータ記憶部150をさらに有している。
【0072】
また空間情報演算部110は、使用するモーションデータを決定する使用モーションデータ情報決定部112と、モーションデータでつながれていた部位が分離した時の処理を行う分離情報演算部114を有している。そして、空間情報記憶部140は、前記使用モーションデータ情報決定部112が決定した使用するモーションデータに関する情報を記憶する使用モーションデータ情報記憶部142を有する。また、画像合成部120は、モーションデータを用いて従属表示物である各部位のワールド座標系における位置及び方向情報を演算するモーション演算部122を有している。以下前記各部の機能について詳しく説明する。
【0073】
モーションデータ記憶部150は、前述したように、ゲーム展開に応じて予測される様々な動き、たとえばスタート時の動き、転倒時の動き、衝突時の動き等を予めモデリングして、予めデータ化したモーションデータを記憶している。本実施の形態では、プレーヤキャラクタの各部位及び一体となって動くプレーヤバイクの様々な動きを表示するために必要なモーションデータが記憶されている。通常画面は1/60秒毎に画像合成して表示するよう形成されているので、モーションデータもこのフレーム毎に時系列にデータ化して格納されている。
【0074】
図11は、本実施の形態のモーションデータ記憶部150に格納されているモーションデータ400のデータ構造及び内容を示した図である。モーションナンバー410は、ゲーム展開に応じて予測される様々な動き、たとえばスタート時の動き、転倒時の動き、衝突時の動き等の各動きに対応している番号であり、前記各動きに対応するモーションデータを検索するときのインデックスとして機能する。また、モーションデータは、各フレームごとに有しているので、各フレーム420毎に配列構造に格納されている。
【0075】
また、1つのフレーム内においては、各関節によってリンクされた部位430のデータが配列構造になっており、1つの部位430について、位置情報(xn,yn,zn)440と、回転情報(θn,φn,ρn)450が格納されている。後述するように、位置情報(xn,yn,zn)440には、親である独立表示物の基準位置を原点とするボディ座標系における該関節によってリンクされた部位の基準点の位置座標が格納されている。また、回転情報(θn,φn,ρn)450には、該関節によってリンクされた部位の後述する基準状態に対する3軸方向の回転角が格納されている。
【0076】
したがって、モーションナンバー410、フレームの配列番号、部位の配列番号を特定することにより、該当する動きの該当するフレームの該当する部位の位置情報(xn,yn,zn)440と、回転情報(θn,φn,ρn)450を取り出すことが出来る。
【0077】
この様なモーションデータに基づいて、前記プレーヤキャラクタ等の動きを表示するためには、合成すべき画像に用いるモーションデータを決定する必要がある。すなわち前記モーションデータ記憶部150に記憶されているどのモーションナンバーのどのフレームのモーションデータを使用して各部位の位置及び方向情報を演算すべきかの情報(以下使用モーションデータ情報という)を、ゲーム展開に応じて決定する必要がある。本実施の形態のゲーム装置では、前記空間演算部110の使用モーションデータ情報決定部112が、ゲーム展開に応じて前記使用モーションデータ情報の決定を行い、前記空間情報記憶部140の使用モーションデータ情報記憶部142に記憶されている使用モーションデータ情報を更新するように構成されている。
【0078】
使用モーションデータ情報記憶部142には、どのモーションデータであるを示すためのモーションナンバーと、どのフレームであるかを示すための、モーションデータのフレームの配列番号を含むデータが格納されている。
【0079】
また、空間演算部110の分離情報演算部114は、モーションデータによって結合されている部位が分離して、独立してゲームステージにおける位置及び方向情報を有するようになった場合の分離独立時の位置及び方向情報の設定、及び以後前記部位が独立して位置及び方向情報が必要である旨の設定を行う。
【0080】
分離情報演算部114は、前記部位が分離した場合、分離独立時の該部位の位置及び方向情報を、空間情報記憶部140に記憶されている該部位の位置情報(X,Y,Z)及び方向情報(θ,φ,ρ)と前記使用モーションデータ情報によって特定される該部位のモーションデータである位置情報(xn,yn,zn)440と、回転情報(θn,φn,ρn)450に基づき演算し、空間情報記憶部140に記憶されている該部位の位置情報(X,Y,Z)及び方向情報(θ,φ,ρ)の更新を行う。
【0081】
また、空間情報記憶部110は、前述したように従属情報のエリアに、独立表示物であるか従属表示物であるかの識別情報を有している。モーションデータによって親につながっている部位は従属表示物であるが、該部位が分離した場合、該部位は従属表示物から独立表示物に変わる。従って、前記分離情報演算部114は、部位が分離した場合、空間情報記憶部140の該部位の従属情報の更新を行う。
【0082】
本実施の形態では独立表示物のワールド座標系における位置及び方向情報は空間演算部110が演算し、従属表示物のワールド座標系における位置及び方向情報は画像合成部120のモーション演算部122が演算するように構成されている。
【0083】
すなわちモーション演算部122は、前記画像合成部120が、図5に示すように表示物300を構成するポリゴンを、ワールド座標系(Xw,Yw,Zw)で表現されるゲームステージ上に配置する際、従属表示物のワールド座標系における位置及び方向情報の演算を行う。
【0084】
表示物を構成するポリゴンの位置情報は、前記オブジェクト画像情報記憶部160に、ボディ座標系における座標情報として記憶されている。画像合成部120は、これを前記空間情報記憶部140に記憶される表示物の位置情報(X,Y,Z)及び方向情報(θ,φ,ρ)に基づいて、平行移動、回転、反転、拡大、縮小等の3次元座標変換を施し、ワールド座標系(Xw,Yw,Zw)での位置座標に変換している。このとき独立表示物については、前記空間情報記憶部140に記憶される表示物の位置情報(X,Y,Z)及び方向情報(θ,φ,ρ)を用いればよいが、従属表示物については、前記情報と使用モーションデータ情報によって特定されるモーションデータとに基づきワールド座標系における位置及び方向情報を特定してから用いなければならない。
【0085】
すなわち、空間情報記憶部140に記憶されている該部位の位置情報(X,Y,Z)及び方向情報(θ,φ,ρ)と前記使用モーションデータ情報によって特定される該部位のモーションデータである位置情報(xn,yn,zn)440と、回転情報(θn,φn,ρn)450に基づき該従属表示物のワールド座標系における位置及び方向情報を演算する。この様に画像合成時に従属表示物のワールド座標系における位置及び方向情報を特定しているのがモーション演算部122である。
【0086】
次に、関節によって複数の部位がリンクされた物体の動きとモーションデータの関係について簡単な例を取り説明する。図8(A)は1つの関節Kを持つ物体400を示した図であり、図8(B)はそのモーションデータのデータ構造を表した図である。部位M1と部位M2は関節Kによってリンクされている。このとき部位M1に対してワールド座標系における位置及び方向が与えられる場合、部位M1を親、部位M2は関節によって部位M1にリンクされており、部位M1に従属して動くので部位M2を子と呼ぶ。複雑な物体になると、さらに子の下に子(いわゆる孫)がつながったり、親が複数の関節を持ち、子が複数つながったりする。
【0087】
この物体400を表示するのに必要な情報は、部位M1については、ワールド座標系における位置(この場合M1の代表点である点Aの座標(3次元))、部位M1の方向(この場合3軸に対する回転角)、部位M2についても、ワールド座標系における位置(この場合M2の代表点である点Bの座標(3次元))、部位M2の方向(この場合3軸に対する回転角)である。このうち、親であるM1のワールド座標系における位置及び方向を示す点Aの座標(3次元)及び部位M1の回転角(3軸)は、本実施の形態のゲーム機であれば、空間情報記憶部140に記憶された位置情報(X,Y,Z)及び方向情報(θ,φ,ρ)によって与えるられ、ゲーム中ゲーム展開に応じて変化するものである。
【0088】
子である部位M2をワールド座標系に配置するために必要な点Bの座標及びM2の回転角は部位M1の位置及び回転角に依存しているため、いずれも親に対して相対的な値として持ち、親の位置及び回転角が決定してから演算により求めるのが一般的である。
【0089】
モーションデータは、このような親に対して相対的な子の位置及び方向(回転)情報のことである。この場合点Bの相対座標はAB間の距離と部位M1の回転角によっても与えてもよいし、点Aに対して点Bが所定の位置関係にある時を部位M1が基準状態にあるとして、該基準状態にある時の点Aを原点とするボディ座標系における位置座標(以下Bの基準位置座標という)と該基準状態に対する部位M1の回転角によっても与えてもよい。ここにおいて、AB間の距離及び点Bの基準位置座標は常に一定なので各フレーム毎にもつ必要はない。また後者において、部位M1の回転角は、部位M1の基準状態に対する3軸方向の回転角として、部位M2の相対的な回転角は、部位M2の基準状態に対する点Bを原点とするボディ座標系における3軸方向の回転角として与えるとよい。
【0090】
従って、図8において、親である部位M1のワールド座標系における位置及び方向が点Aの位置及び部位M1の基準状態に対する回転角で与えられるとすると、子である部位M2のモーションデータは、点Bの基準位置座標及び部位M2の回転角で与えられる。この場合、前述したように点Bの基準位置座標は各フレーム毎にもつ必要はなく、部位M2の回転角がフレーム毎に与えられることになる。
【0091】
関節が1つの物体を例にとり説明したが、人体のように複数の関節をもつ物体の場合でも同様で、各関節毎に前記データを持つことで、関節によってリンクされた各部位のワールド座標系における位置及び方向を求めることが出来る。
【0092】
従来この様なモーションデータは、人体の場合、図14に示すようなモデリング時に作成する階層構造の関節を持つデータが用いられていた。本実例のようにプレーヤキャラクタ210とそれと一体となって動くプレーヤバイク220が一つのオブジェクトとしてモーションデータが与えられている場合、図14に示すように、バイクを表示する部位20−16は、右足を表示する部位20−13に関節10−16によってリンクされている。このようにすることにより、プレーヤバイク220が、プレーヤキャラクタ210に従属して動く様子が表示される。例えば図6に示すように、プレーヤキャラクタ210がカーブで体を傾けると、プレーヤバイク220もプレーヤキャラクタ210と一体となって傾くよう表示される。
【0093】
ところが、一体となって走行していたプレーヤキャラクタ210とプレーヤバイク220が前方の障害物250に衝突して、図7に示すように分離してしまうような場合、プレーヤキャラクタ210とプレーヤバイク220は分離後は独立の動きをするようになる。すなわち分離前はプレーヤキャラクタ210と一体となって動いていたプレーヤバイク220も、分離後はワールド座標系に配置された1個の物体としてワールド座標系における位置座標が必要となる。
【0094】
通常図14のような階層構造の関節を持つモーションデータだと、各関節毎に座標変換を行い、関節にリンクされた部位の位置座標及び方向を演算する。従ってプレーヤバイク220右足のワールド座標系における位置座標及び方向を求めるためには、人体の中心を示す原点30からバイク20−16までに存在する関節(10−1、10−4、10−9、10−13、10−16)の数だけ演算が必要となる。
【0095】
この様に、人体の一部にバイクのように分離可能性のあるものが付加されているような場合、図14に示す階層構造のデータ構造のモーションデータだと、分離時のCPUにおける演算量の付加が大きいという問題点があった。
【0096】
本ゲーム装置は、こうした不具合を解消すべく、物体のモーションデータを、図9に示すように、原点と各部位が関節によって1対1にリンクした構造に変換して、モーションデータ記憶部150に格納しておくよう形成されている。この様にすると、分離可能性のある部位のワールド座標系における位置座標及び方向を求める際、関節一つ分の演算ですむ。
【0097】
このようなモーションデータについて簡単な例をあげ説明する。
【0098】
図10は、複数の関節によってリンクされた物体410を示している。N1を親としてその下に子である各部位N2〜N7が関節K1〜K5によって階層構造にリンクされている。従来のモーションデータは、各関節K1〜K5について、隣り合う部位の位置関係をデータ化していたが、本実施の形態では、原点Oと各部位N2〜N7とを1対1にリンクさせた仮想的な関節を設定してデータ化している。この様な関係をデータ化するためには、N1と各部位N2〜N7の相対的な位置関係を求めればよい。すなわち、Oを原点とするボディ座標系における各部位N2〜N7の位置座標と、回転情報を求めればよい。例えば、N5を例にとってみると、Oを原点とするボディ座標系におけるK4の位置座標と、N5の回転情報(θN5,φN5,ρN5)を求める。
【0099】
このときOを原点とするボディ座標系におけるK4の位置座標は、階層構造のモーションデータの場合と違って、各フレーム毎に異なった値となる。
【0100】
また、N5の回転情報(θN5,φN5,ρN5)は、物体410の各関節が回転する前の部位N5の基準状態をきめておいて、その基準状態に対する回転角として求める。すなわち、図10の物体410の各部位N2〜N7の実線で示した状態を基準状態として、破線で示した状態を、運動により各関節が回転した時の状態とする。このとき回転後のN5’が回転前のN5に対して3軸方向にどれだけ回転したかを表す回転情報(θN5,φN5,ρN5)を求める。
【0101】
また、関節K5の位置自体がK5’のように変わることもあるが、その時も、N7をK5からK5’まで平衡移動させて考えれば同様となる。
【0102】
すなわち、図9の各関節12−N(N=1〜16)ごとのモーションデータは、各部位22−N(N=1〜16)のOを原点とするボディ座標系の位置座標(xn,yn,zn)と、それぞれの部位の基準状態に対する回転情報(θn,φn,ρn)で与えられる。なお、本実施の形態においては、プレーヤキャラクタ210がプレーヤバイク220に対して正常な姿勢で乗った時のプレーヤキャラクタ210の各部位の胴(へそを含む部位)に対する方向に基づきそれぞれの部位の基準状態を定めている。すなわち正常な姿勢で乗った時の各部位の位置が該部位の基準状態となる。
【0103】
したがって、本実施の形態でモーションデータを用いてプレーヤキャラクタ210を構成する各部位のワールド座標系における位置及び方向を演算するときは、以下のように行う。
【0104】
各部位の位置情報は、Oを原点とするボディ座標系の位置座標(xn,yn,zn)と、Oのワールド座標系における位置座標から演算して求める。ここにおいて、Oを原点とするボディ座標系の位置座標(xn,yn,zn)は該当するモーションデータの位置情報(図11の位置情報440)を、Oのワールド座標系における位置座標は空間情報記憶部140の該当する部位の位置情報(X、Y、Z)(前述したように子である従属表示物の位置情報には親である独立表示物の位置情報が格納されている)を用いる。
【0105】
また、各部位の方向情報は、それぞれの部位の基準状態に対する回転情報(θn,φn,ρn)と、親である独立表示物(Oを含む部位である胴)のワールド座標系における方向座標(θ,φ,ρ)から演算して求める。ここにいおいて、それぞれの部位の基準状態に対する回転情報(θn,φn,ρn)は該当するモーションデータの回転情報(図11の回転情報450)を、親である独立表示物のワールド座標系における方向座標(θ,φ,ρ)は空間情報記憶部140の該当する部位の方向座標(θ,φ,ρ)(前述したように子である従属表示物の位置情報には親である独立表示物の方向情報が格納されている)を用いる。
【0106】
本実施の形態のゲーム装置のモーションデータ記憶部150には、この様にして作成されたモーションデータが、図11に示すような形式で、各運動毎に所与の時間分、フレーム毎に時系列に格納されている。
【0107】
なお、本実施の形態のゲーム装置では、この様なモーションデータを作成する際は、図14のように階層構造の関節でモデリングした人体のモーションデータを求め、前記図9のような1対1の構造のモーションデータに変換し、モーションデータ記憶部150に格納するよう形成されている。
【0108】
この様なモーションデータを用いると、分離可能性のある部位の分離時のワールド座標系における位置座標及び方向を関節1つ分の演算で求めることが出来る。
【0109】
次に、関節1つ分の演算について、ワールド座標系における各部位の位置及び方向を演算する際の、その演算量とパラメータの関係について、図14及び図9の2つのモーションデータの異同を簡単に説明する。
【0110】
1関節における演算の量は、後述するように前記いずれの形式のモーションデータであっても同様である。いずれの場合も、親からの相対方向情報(回転角)と、親からの相対位置をパラメータとして持つので、これらをそれぞれ相対回転角(θx,θy,θz)、相対位置(Dx,Dy,Dz)として説明する。
【0111】
但し、図14のように階層構造の場合は前述したように、親からの相対位置は常に一定であるので、(Dx,Dy,Dz)は、モーションデータ全体に対して1つもてばよいのに対し、図9のように1対1の対応のデータ構造の場合は、フレーム毎に異なるので、全フレームに対して必要である。従って、1関節に対するパラメータの量は、図14のモーションデータでは親からの相対回転角(θx,θy,θz)の3つでよいのに対し、図9のモーションデータでは、親からの相対回転角(θx,θy,θz)と親からの相対位置(Dx,Dy,Dz)の6つが必要になる。
【0112】
親からの相対回転角(θx,θy,θz)は、演算で扱いやすいように、対応する行列Mで表す。このときの行列Mは、次の計算式で表せる。
【0113】
【数1】
【0114】
このとき、親自身のワールド座標系における方向を表す回転角をKとすると、子のワールド座標系における方向を表す回転角はM×Kとなる。また、階層構造の場合、次の関節で子から孫への行列Nが与えられると、孫のワールド座標系における方向を表す回転角はN×M×Kとなる。すなわち階層構造の場合、下位の関節に行くときは、その関節における行列を、上位の関節における行列のかけ算の演算結果である行列に掛ければよい。
【0115】
従っていずれのモーションデータにおいても、その関節における回転角を行列に直す数1に示す演算が1回必要となる。数1より、行列を求めるために、16回のかけ算と、4回の加減算と、6回の3角関数計算が、必要となることがわかる。
【0116】
また、子の回転行列を求めるためには、各関節でM×Kのように行列演算が必要で、
【0117】
【数2】
【0118】
【数3】
【0119】
とすると、
【0120】
【数4】
【0121】
となる。この演算もいずれのモーションデータにおいても、関節ごとに必要となり、この演算のために、数4に示すように、27回のかけ算と、18回の加減算が必要となることがわかる。
【0122】
また各部位の表示座標は、各部位の親の位置(Px、Py、Pz)と、前述した親から子への相対位置(Dx、Dy、Dz)と、親の回転行列Kから、いずれのモーションデータにおいても、次の式で求められる。
【0123】
【数5】
【0124】
ここにおいて親の回転角を(θx’,θy’,θz’)として、KをMと同様に表すと、次式のようになる。
【0125】
【数6】
【0126】
また、数5を計算すると、
【0127】
【数7】
【0128】
となり、数7に示すように、座標を求めるために9回のかけ算と9回の加減算が必要となる。
【0129】
この様にいずれのモーションデータにおいても1関節における演算量は変わらない。従って、CPUにおける演算の負荷は関節の数によってきまるので、いずれかの部位のワールド座標系における位置及び方向を求める際は、図9のモーションデータのほうが演算負荷は少なくてすむ。
【0130】
但し、全部位についてワールド座標系における位置及び方向を求める際は、図14でも図9でも関節の数は同じであるため、演算負荷は変わらない。しかし、図9の場合は各関節の演算処理は他の関節の演算処理と独立であるので、並列処理等で演算時間の短縮を行う際には有効である。以上により、図9のモーションデータは、演算時間の短縮や、全ての部位についての位置及び方向を求める際を除く、1又は複数の部位の位置及び方向を求める際の演算負荷の軽減に有効であると言える。
【0131】
次に実施例のゲーム装置で、モーションデータを用いて画像合成を行う際の作用について説明する。図12は本実施の形態のゲーム装置で、モーションデータを用いて画像合成を行う過程を示したフローチャート図である。
【0132】
前述したように、本実施の形態のゲーム装置では、1/60秒毎に1フレームの画像が供給されるため、以下の処理をゲームオーバーとなるまで、各フレーム毎に繰りかえす(ステップ10)。
【0133】
まず空間演算部110は、操作部100によって入力される操作信号やゲームプログラム等に従って、ゲーム空間内の表示物の位置情報を演算して、空間情報記憶部140の該当個所を更新する。また、使用モーションデータ情報決定部112は、ゲーム展開に応じたプレーヤキャラクタの動きを表現する使用モーションデータ情報を決定し、使用モーションデータ情報記憶部142のモーションナンバー、該当するフレームの配列番号を更新する(ステップ20)。すなわち、プレーヤキャラクタ210の動きが、例えばスタート時の動き、転倒時の動き、衝突時の動き等の予め予定されているどの動きに対応しているのか演算し、対応する使用モーションデータ情報を設定するのである。
【0134】
このとき、もしプレーヤキャラクタ210とプレーヤバイク220が分離するというゲーム展開があれば(ステップ30)、分離前は従属表示物であったプレーヤバイク220は、分離後は独立表示物となりワールド座標系における位置情報(X,Y,Z)及び方向情報(θ,φ,ρ)が必要となる。そこで、分離情報演算部114は、使用モーションデータ情報に基づきモーションデータの該当するモーションナンバー410の該当するフレームの該当する部位(この場合はプレーヤバイク220)に対応する関節のモーションデータと、空間情報部140に記憶されたプレーヤバイク220の位置情報(X,Y,Z)及び方向情報(θ,φ,ρ)に基づき、分離時のプレーヤバイク220のワールド座標系における位置情報(X,Y,Z)及び方向情報(θ,φ,ρ)を演算する(ステップ40)。 また分離後、プレーヤバイク220は独立表示物となるので、分離情報演算部114は、空間情報記憶部140の前記プレーヤバイク220に対応する従属情報のエリアにidfフラグをセットする(ステップ50)。
【0135】
次に画像合成部120は、空間演算部110の設定した各表示部の位置情報に基づき画像合成を行う際、従属表示物に関してはワールド座標系における位置情報(X,Y,Z)及び方向情報(θ,φ,ρ)が必要である。そこで、モーション演算部122は、空間情報記憶部140に記憶された位置と、使用モーションデータ情報記憶部142によって特定されるモーションデータ記憶部150に記憶されたモーションデータに基づき、これらの従属表示物のワールド座標系における位置情報(X,Y,Z)及び方向情報(θ,φ,ρ)を演算する(ステップ60)。この演算は、使用モーションデータ情報記憶部142に記憶された使用モーションデータ情報のモーションナンバー410の該当するフレーム420の全関節に対して行われる。
【0136】
この様にして従属表示物のワールド座標系における位置情報(X,Y,Z)及び方向情報(θ,φ,ρ)が定まると、画像合成部120は、前述した画像合成を行い1フレーム分の画像を供給する(ステップ70)。
【0137】
本発明は上記実施例に限定されるものではなく、各種の変更実施が可能である。
【0138】
例えば、前記モーションデータは、親に対して1対1リンクしていれば、前述した内容に限られないし、方向情報は、3軸方向の回転角の関数、例えば対応する行列式としてデータ化してもよい。
【0139】
また、モーションデータ記憶部150に格納する際のデータ構造も前述したものに限られない。
【0140】
また、本実施の形態では、画像合成時にモーション演算部122が従属表示物のワールド座標系における位置情報(X,Y,Z)及び方向情報(θ,φ,ρ)をモーションデータによって演算する構成のゲーム装置を例に取り説明したがこれに限られず、画像合成時以外、例えば空間情報記憶部で行うようにしてもよい。
【0141】
さらに、本実施の形態では、モーションデータを予め求めて格納しておく場合について説明したが、ゲーム中リアルタイムにモーションデータを作成する場合でもよい。
【0142】
さらに、以上説明した本発明は家庭用、業務用を問わずあらゆるハードウェアを用いて実施可能である。図13は現在広く用いられているタイプのゲーム装置のハードウェア構成の一例を示す図である。同図に示すゲーム装置はCPU1000、ROM1002、RAM1004、情報記憶媒体1006、音声合成IC1008、画像合成IC1010、I/Oポート1012、1014がシステムバス1016により相互にデータ送受信可能に接続されている。そして前記画像合成IC1010にはディスプレイ1018が接続され、前記音声合成IC1008にはスピーカ1020が接続され、I/Oポート1012にはコントロール装置1022が接続され、I/Oポート1014には通信装置1024が接続されている。
【0143】
前記情報記憶媒体1006は、CD−ROM、ゲームROM、メモリカード等のゲーム装置本体と着脱可能に設けられる記憶手段を意味し、ゲーム内容に応じた所定の情報を書き込み保存することのできるタイプも用いられる。また、前記ROM1002は、ゲーム装置本体に固定して設けられる記憶手段である。これらは、ゲームプログラムやゲームステージの空間情報等のゲームタイトルに関係する情報の他、ゲーム装置本体の初期化情報等のゲームタイトルに関係しない情報を記憶する手段である。
【0144】
前記コントロール装置1022は、遊戯者がゲーム進行に応じて行う判断の結果をゲーム装置本体に入力するための装置であり、家庭用に広く用いられているパッドタイプのものや、業務用ドライブゲームに用いられるハンドル、アクセル等が挙げられる。
【0145】
そして、前記情報記憶媒体1006やROM1002に格納されるゲームプログラムやシステムプログラム又は前記コントロール装置1022によって入力される信号等に従って、前記CPU1000はゲーム装置全体の制御や各種データ処理を行う。前記RAM1004はこのCPU1000の作業領域として用いられる記憶手段であり、前記情報記憶媒体1006や前記ROM1002の所定の内容、あるいはCPU1000の演算結果等が格納される。
【0146】
さらに、この種のゲーム装置には音声合成IC1008と画像合成IC1010とが設けられていて音声や画像の好適な出力が行えるようになっている。前記音声合成IC1008は情報記憶媒体1006やROM1002に記憶される情報に基づいて効果音やゲーム音楽等を合成する回路であり、合成された音楽等はスピーカ1020によって出力される。また、前記画像合成IC1010はRAM1004、ROM1002、情報記憶媒体1006等から送られる画像情報に基づいてディスプレイ1018に出力するための画素情報を合成する回路である。
【0147】
また、前記通信装置1024はゲーム装置内部で利用される各種の情報を外部とやりとりするものであり、他のゲーム装置と接続されてゲームプログラムに応じた所定の情報を送受したり、通信回線を介してゲームプログラム等の情報を送受することなどに利用される。
【0148】
以上説明した一般的なゲーム装置を用いても本発明は容易に実施可能である。例えば、前記操作部100はコントロール装置1022に対応し、前記空間演算部110はCPU1000及びROM1002又は情報記憶媒体1006に格納されるソフトウェアによって実現される。また、空間情報記憶部140、モーションデータ記憶部150、オブジェクト画像情報記憶部160は、RAM1004、ROM1002、情報記憶媒体1006のいずれかに設けることが可能である。更に、画像合成部120は画像合成IC1010によって、あるいはCPU1000と所定のソフトウェアによって実現される。また、表示部130はディスプレイ1018に対応する。
【0149】
【図面の簡単な説明】
【図1】本実施の形態にかかるゲーム装置の構成の一例を示す図である。
【図2】本実施の形態のゲーム装置の構成を示す機能ブロック図である。
【図3】プレーヤキャラクタ及びプレーヤバイクの位置及び姿勢と、位置情報及び方向情報との関係を示す図である。
【図4】本実施の形態にかかるゲーム装置の空間情報記憶部に記憶される情報を示す図である。
【図5】本実施の形態にかかるゲーム装置の画像合成処理を説明する図である。
【図6】本実施の形態のゲーム装置の画面に表示されるゲーム画像を示す図である。
【図7】本実施の形態のゲーム装置の画面に表示されるゲーム画像を示す図である。
【図8】同図(A)、(B)は、1つの関節を持つ物体とそのモーションデータの説明図である。
【図9】本実施の形態にもちいられているモーションデータの構造を示す図である。
【図10】複数の関節によってリンクされた物体のモーションデータを説明するための図である。
【図11】本実施の形態のモーションデータ記憶部に格納されたモーションデータのデータ構造及び内容を示した図である。
【図12】本実施の形態のゲーム装置で、モーションデータを用いて画像合成を行う過程を示したフローチャート図である。
【図13】ゲーム装置のハードウェア構成の一例を示す図である。
【図14】人体の各部位を関節によって階層構造にリンクしたデータ構造を示す図である。
【符号の説明】
100 操作部
110 空間演算部
112 使用モーションデータ情報決定部
114 分離情報演算部
120 画像合成部
122 モーション演算部
130 表示部
140 空間情報記憶部
142 使用モーションデータ情報記憶部
150 モーションデータ記憶部
160 オブジェクト画像情報記憶部[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an image composition method and an image composition apparatus, and more particularly to an image composition method and an image composition apparatus that perform image composition using motion data of an object in which a plurality of parts are linked by joints.
[0002]
[Background technology]
2. Description of the Related Art Conventionally, the movement of a human body is displayed using computer graphics (hereinafter referred to as CG) in a video, a game device, or the like. If the object is not an ordinary object, the movement of the object can be displayed by obtaining the coordinates and direction of the object in the world coordinate system of the three-dimensional space in time series.
[0003]
However, limbs and heads are not fixed in the human body, etc., and exercise individually. In other words, the human body has a body coordinate system in which objects linked by joints such as the neck, shoulders, elbows, wrists, fingers, hips, and knees individually have a body coordinate system, forming one body in the world coordinate system. Can be considered.
[0004]
In order to display such a motion of an object linked by a joint by CG, it is necessary to create an object cut out by the joint and arrange each on three-dimensional coordinates.
[0005]
Therefore, not only the position in the world coordinate system of the object changing for each frame but also data representing the movement of each part of the object is required.
[0006]
In general, based on such a movement of each part, the relationship between adjacent parts in a joint is converted into data, and the coordinates are obtained by calculation based on the data when displayed. Such data is called motion data, and the relationship between each joint and each part in a series of movements is usually converted into time series data for each frame.
[0007]
By the way, when displaying a complex motion or the like of a human body or the like with CG, the complex motion of the human body is modeled in advance and converted into data as motion data. When modeling the movement of the human body, as shown in FIG. 14, each part 20-1 to 20-15 of the human body is linked by joints 10-1 to 10-15 having a hierarchical structure simulating the human body. One body is formed. This is because the most natural movement can be expressed by modeling by linking each part in a hierarchical structure having joints corresponding to the joints of the human body. Then, the position and direction of each part when the human body is caused to perform a series of movements can be specified as the amount of coordinate conversion in the body coordinate system with the corresponding joint of each part as the origin.
[0008]
That is, given the position and direction of the human body (origin 30) in the world coordinate system, the corresponding part is subjected to coordinate transformation from the body coordinate system to the world coordinate system, so that the world coordinate system of all parts constituting the human body is obtained. The position and direction at is determined.
[0009]
Conventionally, hierarchical data created during modeling in this way has been used as motion data during image composition.
[0010]
However, when a part that can be separated is added to a part of the human body, for example, when the right foot shoe (integrated with the right foot) is skipped, the human body and the right foot shoe are separated. Will become independent. That is, the shoes of the right foot that moved together with the right foot before separation also require position coordinates and direction information in the world coordinate system as one object arranged in the world coordinate system after separation.
[0011]
At this time, in the case of motion data having a hierarchical data structure as shown in FIG. 14, in order to obtain the position coordinates of the right foot in the world coordinate system, the joint (10-2) existing from the
[0012]
As described above, the motion data having the hierarchical data structure shown in FIG. 14 has a problem that the amount of calculation in the CPU is large when an object including a part that can be separated is displayed.
[0013]
[Problems to be solved by the invention]
Therefore, if image synthesis is performed using motion data having a data structure that requires less calculation amount up to each part while maintaining the contents of movement of each part constituting the object, the calculation amount is added by the CPU. It can be reduced.
[0014]
The present invention has been made in view of such problems, and provides an image composition method and an image composition apparatus that perform image composition using motion data having a data structure that requires a small amount of calculation up to each part. is there.
[0015]
[Means for Solving the Problems]
The invention of
A method of performing image composition of an object in which a plurality of parts are linked by joints,
Motion data of each part constituting the object is formed as relative position data from the reference point of the object, and image synthesis is performed.
[0016]
The invention of claim 4
An apparatus for synthesizing an image of an object in which a plurality of parts are linked by joints,
The motion data of each part constituting the object is formed as relative position data from the reference point of the object, and image synthesis is performed.
[0017]
When modeling an object in which parts that move individually are connected, a model in which each part is linked by a joint is created. The present invention relates to an image composition method and an image composition apparatus that perform image composition using motion data of an object modeled using a model linked by joints in this way.
[0018]
The plurality of parts of the object may be linked in a tree shape by joints, or may be linked without branching.
[0019]
Further, the reference point is a point having the position data in the world coordinate system of the object or a point determined based on the position data, and the position data is data necessary for determining the position coordinate and direction of each part. . The relative position data from the reference point refers to a case where the position data is given as position data in a body coordinate system having the reference point as an origin, for example.
[0020]
The motion data of each part of such an object is usually formed as position data in the body coordinate system with the joint to which each part is linked as the origin.
[0021]
Accordingly, when a plurality of parts are linked in a tree shape or the like by joints, in order to obtain position data in the world coordinate system of each part, the number of joints existing between the parts from the reference point is determined. Only coordinate transformation operations were required. In order to reduce the amount of calculation, in the present invention, the motion data of each part is formed as relative position data from the reference point, and image synthesis is performed. That is, the position data of each part is formed as position data in the body coordinate system with the reference position as the origin.
[0022]
In this way, position data in the world coordinate system of each part can be obtained only by calculating the coordinate transformation between the reference point and each part. Accordingly, it is possible to reduce the addition of computation when extracting position data of each part in the world coordinate system. In addition, since the position data of each part can be calculated independently of other parts even at the time of image synthesis, the processing time can be increased by parallel processing.
[0023]
The invention of
A method of performing image composition of an object in which a plurality of parts are linked by joints,
Forming motion data of at least separable parts constituting the object as relative position data from the reference point of the object;
At the time of separation of the separable part, position data of the separable part is calculated based on relative position data from the reference point, and image synthesis is performed.
[0024]
The invention of claim 5
An apparatus for synthesizing an image of an object in which a plurality of parts are linked by joints,
Forming motion data of at least separable parts constituting the object as relative position data from the reference point of the object;
At the time of separation of the separable part, position data of the separable part is calculated based on relative position data from the reference point, and image synthesis is performed.
[0025]
In the present invention, the motion data of each separable part is formed as relative position data from the reference point, and image synthesis is performed. That is, the position data of each separable part is formed as position data in the body coordinate system with the reference position as the origin.
[0026]
Each part that can be separated refers to a part that moves independently of the reference point of the object after separation, although it has moved depending on the reference point of the object before separation. For example, it may be a shoe when a person skips a shoe, or a motorcycle after a person who has been on a motorcycle falls from the motorcycle. Since the shoes and bikes were associated with humans before separation, if the position data of the human reference point in the world coordinate system is known, it is calculated in the world coordinate system of the shoes and bikes by using motion data. The position data could be obtained. However, since the movement is performed independently of the human after separation, the shoes and the motorcycle become independent objects, and position data in its own world coordinate system is required.
[0027]
Therefore, the position data in the world coordinate system of the shoe or bike must be given as position data in the world coordinate system of the shoe or bike that is an independent object at the time of separation.
[0028]
At this time, according to the present invention, position data in the world coordinate system of each part to be separated can be obtained only by calculation of coordinate conversion between the reference point and each part to be separated. Therefore, it is possible to reduce calculation addition when calculating position data of each part to be separated in the world coordinate system.
[0029]
The invention of
In either
The position data of the object in the three-dimensional space and the part constituting the object are set in the body coordinate system for the three-dimensional coordinates of the part in the body coordinate system with the reference point of the object as the origin, and for each part. A rotation angle in the body coordinate system of the part with respect to the reference direction.
[0030]
The invention of claim 7
In any one of Claims 4-6,
The position data of the object in the three-dimensional space and the part constituting the object are set in the body coordinate system for the three-dimensional coordinates of the part in the body coordinate system with the reference point of the object as the origin, and for each part. A rotation angle in the body coordinate system of the part with respect to the reference direction.
[0031]
In order to set each part in the three-dimensional world coordinate system, the position coordinates in the world coordinate system and the rotation angle of each part at that position may be given. According to the present invention, the position data of each part includes the three-dimensional coordinates of the part in the body coordinate system having the reference point of the object as an origin, and the reference direction set in the body coordinate system for each part. It is determined by the rotation angle in the body coordinate system of the part. Therefore, given the position coordinates of the object in the world coordinate system and the rotation angle of each part at that position, in order to set each part in the three-dimensional world coordinate system by coordinate transformation, The rotation angle of each part at that position is given.
[0032]
The reference direction set in the body coordinate system for each part may be any one of the directions of the part in the body coordinate system. For example, the direction of each part when the object is in a standard one state is set as the reference direction of the part. Then, how much the part has rotated with respect to the reference direction is set as the rotation angle of the part with respect to the reference position.
[0033]
In this way, according to the present invention, the calculation of the position and direction of each part in the world coordinate system based on the motion data can be easily performed with a small amount of calculation.
[0034]
The rotation angle is preferably expressed as a rotation angle in the three-axis direction of the part in the body coordinate system.
[0035]
The invention of claim 6
An apparatus for synthesizing an image of an object in which a plurality of parts are linked by joints,
Motion data storage means for storing motion data of each part constituting the object as relative position data from the reference point of the object, and spatial calculation means for calculating position data of the reference point of the object in the world coordinate system When,
Based on the position data in the world coordinate system of the reference point of the object calculated by the space calculation means and the motion data stored in the motion data storage means, the position data in the world coordinate system of each part constituting the object is calculated. Motion calculation means;
Object information storage means for storing image information of each part constituting the object,
Based on the position data in the world coordinate system of each part constituting the object calculated by the motion calculation means and the image information of each part stored in the object information storage means, the image of the object is synthesized. It is characterized by.
[0036]
If motion data is stored in advance in the motion data storage means in this way, the processing load can be reduced and the processing time can be shortened. This is particularly effective when the movement of an object can be expressed by a combination of routine movements or when the same movement is used multiple times.
[0037]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, preferred embodiments of the present invention will be described.
[0038]
FIG. 1 shows an example of a circuit race
[0039]
Each of the game apparatuses 10 is formed using a driver's seat of a racing motorcycle as a model. Then, the player 16 sitting on the seat 14 operates the
[0040]
FIG. 6 shows an example of the game screen 200-1 displayed on the display of the
[0041]
In a normal drive game or the like, since the player car itself does not deform, the form of the player car displayed on the game screen includes the position and direction in the game space of the player car and viewpoint information (viewpoint position, line-of-sight direction, Depends on viewing angle).
[0042]
However, the
[0043]
FIG. 2 is a block diagram showing the configuration of the
[0044]
The
[0045]
The
[0046]
Then, the
[0047]
The
[0048]
As a result, a game screen 200-1 as shown in FIG. 6 is displayed on the
[0049]
First, the function in which the
[0050]
FIG. 3 is a diagram showing the relationship between the position and posture of the
[0051]
Position information (X, Y, Z) and direction information (θ) of each display object (building around the racing course,
[0052]
Note that the object number OB is normally assigned to each display object, and has position information (X, Y, Z) and direction information (θ, φ, ρ) for each display object. Accordingly, the
[0053]
The player character 210 (which is actually divided into a plurality of parts as will be described later) is a display object that requires position and direction information independently (hereinafter referred to as an independent display object), or the
[0054]
Specifically, in the area of the dependent information, an idf flag indicating that the display object is an independent display object is set if the display object is an independent display object. The object number OB of the independent display object in which the dependent display object shares its position and direction information is stored.
[0055]
As will be described later, the display objects corresponding to the parts connected to the parent by the motion data are subordinate display objects, and the other display objects are independent display objects. In the present embodiment, the subordinate display object has an object number NO as an independent display object in the spatial
[0056]
It is a human body or the like that is configured by connecting each part by normal motion data. However, in this embodiment, the
[0057]
For this reason, a part including the reference position of the player character 210 (in this embodiment, it is a belly and the object number is OB0) is an independent display object, and each of the remaining
[0058]
The
[0059]
The spatial
[0060]
Therefore, the player bike 220 (assuming the object number is OB4) has the same position and direction information as OB0 as a subordinate display object before being separated from the
[0061]
As described above, the
[0062]
The spatial
[0063]
Next, the image composition function of the
[0064]
In the polygon
[0065]
Information indicating the shape of each display object is provided corresponding to the object number of each display object stored in the spatial
[0066]
The texture
[0067]
The
[0068]
By the way, since the
[0069]
To display the movement of an object linked by a joint as a human body with CG,
It is necessary to create an object such as a neck, shoulder, elbow, wrist, finger, waist, or knee that has been cut out by a joint, and to place each on three-dimensional coordinates. Therefore, motion data for displaying the movement of each part of the changing object in the body coordinate system is also required.
[0070]
Creating such motion data in real time adds an excessive burden on the CPU and increases the processing time. Therefore, in this embodiment, when compositing a complex motion of the human body or the like, the complex motion of the human body is previously detected. Modeling is performed so that motion data corresponding to each motion is created and stored in a motion
[0071]
In order to synthesize an image using motion data created in advance as described above, the following configuration is adopted. That is, as shown in FIG. 2, the game device according to the present embodiment further includes a motion
[0072]
In addition, the spatial
[0073]
As described above, the motion
[0074]
FIG. 11 is a diagram showing the data structure and contents of the
[0075]
Further, in one frame, the data of the
[0076]
Therefore, by specifying the
[0077]
In order to display the movement of the player character or the like based on such motion data, it is necessary to determine the motion data used for the image to be synthesized. That is, information about which position and direction information of each part should be calculated using the motion data of which motion number stored in the motion data storage unit 150 (hereinafter referred to as used motion data information) It is necessary to decide according to. In the game device according to the present embodiment, the used motion data
[0078]
The used motion data
[0079]
In addition, the separation
[0080]
When the part is separated, the separation
[0081]
Further, as described above, the spatial
[0082]
In the present embodiment, the position and direction information of the independent display object in the world coordinate system is calculated by the
[0083]
That is, when the
[0084]
The position information of the polygons constituting the display object is stored in the object image information storage unit 160 as coordinate information in the body coordinate system. The
[0085]
That is, the position data (X, Y, Z) and direction information (θ, φ, ρ) stored in the spatial
[0086]
Next, a simple example will be described regarding the relationship between the motion of an object in which a plurality of parts are linked by joints and motion data. FIG. 8A shows the
[0087]
Information necessary to display the
[0088]
Since the coordinates of the point B and the rotation angle of M2 necessary for placing the child part M2 in the world coordinate system depend on the position and rotation angle of the part M1, both values are relative to the parent. Generally, it is obtained by calculation after determining the position and rotation angle of the parent.
[0089]
Motion data is information on the position and direction (rotation) of a child relative to such a parent. In this case, the relative coordinates of the point B may be given by the distance between AB and the rotation angle of the part M1, or when the point B is in a predetermined positional relationship with the point A, the part M1 is in the reference state. The position coordinate in the body coordinate system (hereinafter referred to as B reference position coordinate) with the point A at the time of the reference state as the origin and the rotation angle of the part M1 with respect to the reference state may also be given. Here, since the distance between AB and the reference position coordinates of point B are always constant, it is not necessary to have each frame. In the latter case, the rotation angle of the part M1 is a three-axis rotation angle with respect to the reference state of the part M1, and the relative rotation angle of the part M2 is a body coordinate system having a point B with respect to the reference state of the part M2 as an origin. It is good to give as a rotation angle of 3 axis directions.
[0090]
Therefore, in FIG. 8, if the position and direction of the parent part M1 in the world coordinate system are given by the position of the point A and the rotation angle with respect to the reference state of the part M1, the motion data of the child part M2 is the point The reference position coordinates of B and the rotation angle of the part M2 are given. In this case, as described above, the reference position coordinates of the point B need not be provided for each frame, and the rotation angle of the part M2 is given for each frame.
[0091]
Although an example has been described in which an object has one joint, the same applies to an object having a plurality of joints such as a human body. By having the data for each joint, the world coordinate system of each part linked by the joint The position and direction at can be determined.
[0092]
Conventionally, as such motion data, in the case of a human body, data having a hierarchical joint created during modeling as shown in FIG. 14 has been used. As shown in FIG. 14, when the motion data is given as a single object to the
[0093]
However, if the
[0094]
Normally, in the case of motion data having a hierarchical joint as shown in FIG. 14, coordinate conversion is performed for each joint, and the position coordinates and direction of a part linked to the joint are calculated. Accordingly, in order to obtain the position coordinates and direction of the right foot of the
[0095]
In this way, when a part of the human body that can be separated, such as a motorcycle, is added, if the motion data has the hierarchical data structure shown in FIG. There was a problem that the addition of was large.
[0096]
In order to eliminate such problems, the game apparatus converts the motion data of the object into a structure in which the origin and each part are linked one-on-one by a joint as shown in FIG. Shaped to store. In this way, when calculating the position coordinates and direction of the separable part in the world coordinate system, it is only necessary to calculate for one joint.
[0097]
Such motion data will be described with a simple example.
[0098]
FIG. 10 shows an
[0099]
At this time, the position coordinates of K4 in the body coordinate system with O as the origin are different values for each frame, unlike the case of the hierarchical motion data.
[0100]
Also, N5 rotation information (θ N5 , Φ N5 , Ρ N5 ) Is determined as a rotation angle with respect to the reference state by determining the reference state of the part N5 before each joint of the
[0101]
Further, the position of the joint K5 itself may change as K5 ′, but at this time, the same applies if N7 is moved in equilibrium from K5 to K5 ′.
[0102]
That is, the motion data for each joint 12-N (N = 1 to 16) in FIG. 9 is the position coordinate (xn, N) of the body coordinate system with O as the origin of each part 22-N (N = 1 to 16). yn, zn) and rotation information (θn, φn, ρn) with respect to the reference state of each part. In the present embodiment, the reference of each part is based on the direction of the part (including the navel) of each part of the
[0103]
Therefore, when calculating the position and direction in the world coordinate system of each part constituting the
[0104]
The position information of each part is obtained by calculating from the position coordinates (xn, yn, zn) of the body coordinate system with O as the origin and the position coordinates of O in the world coordinate system. Here, the position coordinate (xn, yn, zn) of the body coordinate system with O as the origin is the position information (
[0105]
In addition, the direction information of each part includes rotation information (θn, φn, ρn) with respect to the reference state of each part, and direction coordinates (in the world coordinate system of the parent independent display object (the body including O)) in the world coordinate system ( Calculated from θ, φ, ρ). Here, the rotation information (θn, φn, ρn) with respect to the reference state of each part is the rotation information (
[0106]
In the motion
[0107]
In the game device according to the present embodiment, when creating such motion data, the motion data of the human body modeled with joints having a hierarchical structure is obtained as shown in FIG. The motion data is converted into motion data and stored in the motion
[0108]
By using such motion data, the position coordinates and direction in the world coordinate system at the time of separation of a part that can be separated can be obtained by calculation for one joint.
[0109]
Next, regarding the calculation for one joint, regarding the relationship between the calculation amount and the parameters when calculating the position and direction of each part in the world coordinate system, the difference between the two motion data in FIGS. 14 and 9 is simplified. Explained.
[0110]
The amount of calculation in one joint is the same for any type of motion data as described later. In any case, since the relative direction information (rotation angle) from the parent and the relative position from the parent are used as parameters, these are the relative rotation angle (θx, θy, θz) and the relative position (Dx, Dy, Dz, respectively). ).
[0111]
However, in the case of a hierarchical structure as shown in FIG. 14, as described above, the relative position from the parent is always constant, so one (Dx, Dy, Dz) is sufficient for the entire motion data. On the other hand, in the case of a data structure having a one-to-one correspondence as shown in FIG. Accordingly, the amount of parameters for one joint may be three relative rotation angles (θx, θy, θz) from the parent in the motion data in FIG. 14, whereas relative rotation from the parent is in the motion data in FIG. Six corners (θx, θy, θz) and relative positions (Dx, Dy, Dz) from the parent are required.
[0112]
The relative rotation angle (θx, θy, θz) from the parent is represented by a corresponding matrix M so that it can be easily handled by calculation. The matrix M at this time can be expressed by the following calculation formula.
[0113]
[Expression 1]
[0114]
At this time, if the rotation angle representing the direction in the parent world coordinate system is K, the rotation angle representing the direction in the child world coordinate system is M × K. In the case of a hierarchical structure, when a matrix N from a child to a grandchild is given at the next joint, the rotation angle representing the direction of the grandchild in the world coordinate system is N × M × K. That is, in the case of a hierarchical structure, when going to a lower joint, the matrix at that joint may be multiplied by the matrix that is the result of multiplication of the matrix at the upper joint.
[0115]
Therefore, in any motion data, the calculation shown in
[0116]
In addition, in order to obtain the rotation matrix of the child, a matrix operation such as M × K is required at each joint,
[0117]
[Expression 2]
[0118]
[Equation 3]
[0119]
Then,
[0120]
[Expression 4]
[0121]
It becomes. This calculation is also required for each joint in any motion data, and it can be seen that for this calculation, 27 multiplications and 18 additions / subtractions are required as shown in Equation 4.
[0122]
In addition, the display coordinates of each part are any of the position of the parent of each part (Px, Py, Pz), the relative position (Dx, Dy, Dz) from the parent to the child, and the parent rotation matrix K. The motion data can also be obtained by the following formula.
[0123]
[Equation 5]
[0124]
Here, when the rotation angle of the parent is (θx ′, θy ′, θz ′), and K is expressed in the same manner as M, the following equation is obtained.
[0125]
[Formula 6]
[0126]
Also, when calculating Equation 5,
[0127]
[Expression 7]
[0128]
As shown in Equation 7, 9 multiplications and 9 additions / subtractions are required to obtain the coordinates.
[0129]
In this way, the amount of calculation for one joint does not change in any motion data. Therefore, since the calculation load on the CPU depends on the number of joints, the motion data in FIG. 9 requires less calculation load when obtaining the position and direction of any part in the world coordinate system.
[0130]
However, when obtaining the positions and directions in the world coordinate system for all parts, the number of joints is the same in FIG. 14 and FIG. However, in the case of FIG. 9, the calculation processing of each joint is independent of the calculation processing of other joints, which is effective when the calculation time is reduced by parallel processing or the like. As described above, the motion data shown in FIG. 9 is effective in reducing calculation time when calculating the position and direction of one or a plurality of parts except for shortening the calculation time and obtaining the position and direction for all parts. It can be said that there is.
[0131]
Next, the operation when performing image composition using motion data in the game apparatus of the embodiment will be described. FIG. 12 is a flowchart showing a process of performing image composition using motion data in the game device of the present embodiment.
[0132]
As described above, in the game device of the present embodiment, one frame image is supplied every 1/60 seconds, so the following processing is repeated for each frame until the game is over (step 10).
[0133]
First, the
[0134]
At this time, if there is a game development in which the
[0135]
Next, when the
[0136]
When the position information (X, Y, Z) and the direction information (θ, φ, ρ) of the subordinate display object in the world coordinate system are determined in this way, the
[0137]
The present invention is not limited to the above embodiment, and various modifications can be made.
[0138]
For example, if the motion data has a one-to-one link with the parent, the content is not limited to the above-described content, and the direction information is converted into data as a function of a rotation angle in the three-axis direction, for example, a corresponding determinant. Also good.
[0139]
Further, the data structure for storing in the motion
[0140]
In the present embodiment, the
[0141]
Furthermore, although the case where motion data is obtained and stored in advance has been described in the present embodiment, motion data may be created in real time during a game.
[0142]
Furthermore, the present invention described above can be implemented using any hardware regardless of home use or business use. FIG. 13 is a diagram illustrating an example of a hardware configuration of a game device of a type that is currently widely used. In the game apparatus shown in the figure, a
[0143]
The
[0144]
The
[0145]
The
[0146]
Furthermore, this type of game apparatus is provided with a
[0147]
The
[0148]
The present invention can be easily implemented even by using the general game device described above. For example, the
[0149]
[Brief description of the drawings]
FIG. 1 is a diagram illustrating an example of a configuration of a game device according to an embodiment of the present invention.
FIG. 2 is a functional block diagram showing a configuration of a game device according to the present embodiment.
FIG. 3 is a diagram illustrating a relationship between positions and postures of player characters and player bikes, position information, and direction information;
FIG. 4 is a diagram showing information stored in a spatial information storage unit of the game device according to the present embodiment.
FIG. 5 is a diagram for explaining image composition processing of the game device according to the embodiment;
FIG. 6 is a diagram showing a game image displayed on the screen of the game device according to the present embodiment.
FIG. 7 is a diagram showing a game image displayed on the screen of the game device according to the present embodiment.
FIGS. 8A and 8B are explanatory diagrams of an object having one joint and its motion data.
FIG. 9 is a diagram showing a structure of motion data used in the present embodiment.
FIG. 10 is a diagram for explaining motion data of an object linked by a plurality of joints.
FIG. 11 is a diagram showing a data structure and contents of motion data stored in a motion data storage unit according to the present embodiment.
FIG. 12 is a flowchart showing a process of performing image composition using motion data in the game device of the present embodiment.
FIG. 13 is a diagram illustrating an example of a hardware configuration of a game device.
FIG. 14 is a diagram showing a data structure in which each part of a human body is linked to a hierarchical structure by joints.
[Explanation of symbols]
100 operation unit
110 Spatial operation unit
112 Used motion data information determination unit
114 Separation information calculation unit
120 Image composition unit
122 Motion calculation unit
130 Display
140 Spatial information storage
142 Used Motion Data Information Storage Unit
150 Motion data storage
160 Object Image Information Storage Unit
Claims (9)
モーションデータ形成手段が、複数の部位が関節によって3階層以上の階層構造にリンクされたオブジェクトのモーションデータを、隣り合う部位の位置関係をデータ化したデータ構造から、当該オブジェクトの基準点と各部位とが仮想的な関節によって一対一にリンクしたデータ構造に変換して、当該オブジェクトを構成する部位のモーションデータを当該オブジェクトの基準点からの相対的な位置データとして形成するモーションデータ形成ステップと、
モーション演算手段が、当該オブジェクトの基準点からの相対的な位置データとして形成されたモーションデータに基づき当該オブジェクトを構成する部位のワールド座標系における位置データを演算するステップと、
画像合成手段が、演算された当該オブジェクトを構成する部位のワールド座標系における位置データに基づき画像合成を行うステップと、
を含むことを特徴とする画像合成方法。A method of performing image composition of an object in which a plurality of parts are linked by joints,
From the data structure in which the motion data forming means converts the motion data of an object in which a plurality of parts are linked to a hierarchical structure of three or more layers by joints into a positional relationship between adjacent parts, the reference point of each object and each part Is converted into a data structure linked one-to-one by virtual joints, and a motion data forming step for forming motion data of a part constituting the object as relative position data from a reference point of the object;
A step of calculating a position data in a world coordinate system of a part constituting the object based on motion data formed as a relative position data from a reference point of the object;
Image synthesizing means performing image synthesis based on position data in the world coordinate system of the part constituting the calculated object;
An image composition method comprising:
モーションデータ形成手段が、当該オブジェクトを構成する部位の内少なくとも分離後は当該オブジェクトの基準点とは独立して運動し得る分離可能な部位のモーションデータを分離前は当該オブジェクトの基準点からの相対的な位置データとして形成するモーションデータ形成ステップと、
モーション演算手段が、前記分離可能な部位の分離前には、当該オブジェクトの基準点からの相対的な位置データとして形成されたモーションデータに基づき分離可能な部位のワールド座標系における位置データを演算するステップと、
空間演算手段が、前記分離可能な部位の分離後には、当該オブジェクトの基準点とは独立して分離可能な部位のワールド座標系における位置データを演算するステップと、
画像合成手段が、演算された分離可能な部位のワールド座標系における位置データに基づき画像合成を行うステップと、
を含むことを特徴とする画像合成方法。A method of performing image composition of an object in which a plurality of parts are linked by joints,
The motion data forming means can extract motion data of a separable part that can move independently of the reference point of the object at least after separation of the parts constituting the object. A motion data forming step for forming as general position data;
The motion calculation means calculates position data of the separable part in the world coordinate system based on the motion data formed as relative position data from the reference point of the object before the separable part is separated. Steps,
A step of calculating position data in a world coordinate system of a separable part independently of a reference point of the object, after the space part is separated from the separable part;
Image synthesizing means performing image synthesis based on position data in the world coordinate system of the calculated separable part;
An image composition method comprising:
前記モーションデータ形成ステップは、
モーションデータ形成手段が、当該オブジェクトのワールド座標系におけるデータを持っている点又はそれに基づき定められる点を基準点として、当該オブジェクトを構成する部位のモーションデータを前記基準点からの相対的な位置データとして形成することを特徴とする画像合成方法。In claim 1 or 2,
The motion data forming step includes
The motion data forming means uses the point having the data in the world coordinate system of the object or a point determined based on the point as the reference point, and the motion data of the part constituting the object is the relative position data from the reference point. An image composition method, characterized in that the image composition method is formed as:
前記モーションデータ形成ステップは、
モーションデータ形成手段が、当該オブジェクトを構成する部位のモーションデータを前記オブジェクトの基準点を原点とするボディ座標系における前記部位の3次元座標と、各部位ごとに前記ボディ座標系に設定された基準方向に対する当該部位の前記ボディ座標系における回転角を含む位置データとして形成することを特徴とする画像合成方法。In any one of Claims 1 thru | or 3,
The motion data forming step includes
The motion data forming means uses the three-dimensional coordinates of the part in the body coordinate system with the origin of the reference point of the object as the motion data of the part constituting the object, and the reference set in the body coordinate system for each part An image synthesizing method comprising forming the position data including a rotation angle of the part relative to a direction in the body coordinate system.
複数の部位が関節によって3階層以上の階層構造にリンクされたオブジェクトのモーションデータを、隣り合う部位の位置関係をデータ化したデータ構造から、当該オブジェクトの基準点と各部位とが仮想的な関節によって一対一にリンクしたデータ構造に変換して、当該オブジェクトを構成する部位のモーションデータを当該オブジェクトの基準点からの相対的な位置データとして記憶するモーションデータ記憶手段と、
当該オブジェクトの基準点からの相対的な位置データとして記憶されたモーションデータに基づき当該オブジェクトを構成する部位のワールド座標系における位置データを演算する手段と、
演算された当該オブジェクトを構成する部位のワールド座標系における位置データに基づき画像合成を行う手段と、
を含むことを特徴とする画像合成装置。An apparatus for synthesizing an image of an object in which a plurality of parts are linked by joints,
From the data structure in which the motion data of an object in which a plurality of parts are linked to a hierarchical structure of three or more layers by joints is converted into data of the positional relationship between adjacent parts, the reference point of each object and each part are virtual joints. A data structure linked to one-to-one by the motion data storage means for storing the motion data of the part constituting the object as relative position data from the reference point of the object;
Means for calculating position data in the world coordinate system of a part constituting the object based on motion data stored as relative position data from the reference point of the object;
Means for synthesizing an image based on position data in the world coordinate system of a part constituting the calculated object;
An image composition apparatus comprising:
当該オブジェクトを構成する部位の内少なくとも分離後は当該オブジェクトの基準点とは独立して運動し得る分離可能な部位のモーションデータを分離前は当該オブジェクトの基準点からの相対的な位置データとして記憶するモーションデータ記憶手段と、
前記分離可能な部位の分離前には、当該オブジェクトの基準点からの相対的な位置データとして記憶されたモーションデータに基づき分離可能な部位のワールド座標系における位置データを演算する手段と、
前記分離可能な部位の分離後には、当該オブジェクトの基準点とは独立して分離可能な部位のワールド座標系における位置データを演算する手段と、
演算された分離可能な部位のワールド座標系における位置データに基づき画像合成を行う手段と、
を含むことを特徴とする画像合成装置。An apparatus for synthesizing an image of an object in which a plurality of parts are linked by joints,
Motion data of a separable part that can move independently of the reference point of the object is stored as relative position data from the reference point of the object before separation. Motion data storage means for
Before the separation of the separable part, means for calculating position data in the world coordinate system of the separable part based on motion data stored as relative position data from the reference point of the object;
Means for calculating position data in the world coordinate system of the separable part independently of the reference point of the object after separation of the separable part;
Means for synthesizing images based on the calculated position data of the separable part in the world coordinate system;
An image composition apparatus comprising:
複数の部位が関節によって3階層以上の階層構造にリンクされたオブジェクトのモーションデータを、隣り合う部位の位置関係をデータ化したデータ構造から、当該オブジェクトの基準点と各部位とが仮想的な関節によって一対一にリンクしたデータ構造に変換して、当該オブジェクトを構成する部位のモーションデータを当該オブジェクトの基準点からの相対的な位置データとして記憶するモーションデータ記憶手段と、
当該オブジェクトの基準点のワールド座標系における位置データを演算する空間演算手段と、
前記空間演算手段が演算した当該オブジェクトの基準点のワールド座標系における位置データ及びモーションデータ記憶手段に記憶されたモーションデータに基づき、当該オブジェクトを構成する各部位のワールド座標系における位置データを演算するモーション演算手段と、
当該オブジェクトを構成する各部位の画像情報を記憶しているオブジェクト情報記憶手段とを含み、
前記モーション演算手段によって演算された当該オブジェクトを構成する各部位のワールド座標系における位置データ及び前記オブジェクト情報記憶手段に記憶されている各部位の画像情報とに基づき、当該オブジェクトの画像を合成することを特徴とする画像合成装置。An apparatus for synthesizing an image of an object in which a plurality of parts are linked by joints,
From the data structure in which the motion data of an object in which a plurality of parts are linked to a hierarchical structure of three or more layers by joints is converted into data of the positional relationship between adjacent parts, the reference point of each object and each part are virtual joints. A data structure linked to one-to-one by the motion data storage means for storing the motion data of the part constituting the object as relative position data from the reference point of the object;
Spatial calculation means for calculating position data of the reference point of the object in the world coordinate system;
Based on the position data in the world coordinate system of the reference point of the object calculated by the space calculation means and the motion data stored in the motion data storage means, the position data in the world coordinate system of each part constituting the object is calculated. Motion calculation means;
Object information storage means for storing image information of each part constituting the object,
Based on the position data in the world coordinate system of each part constituting the object calculated by the motion calculation means and the image information of each part stored in the object information storage means, the image of the object is synthesized. An image composition device characterized by the above.
前記モーションデータ記憶手段は、
当該オブジェクトのワールド座標系におけるデータを持っている点又はそれに基づき定められる点を基準点として、当該オブジェクトを構成する部位のモーションデータを前記基準点からの相対的な位置データとして記憶することを特徴とする画像合成装置。In any of claims 5 to 7,
The motion data storage means includes
A point having data in the world coordinate system of the object or a point determined based on the point is stored as a reference point, and motion data of a part constituting the object is stored as relative position data from the reference point. An image composition device.
前記モーションデータ記憶手段は、
当該オブジェクトを構成する部位のモーションデータを前記オブジェクトの基準点を原点とするボディ座標系における前記部位の3次元座標と、各部位ごとに前記ボディ座標系に設定された基準方向に対する当該部位の前記ボディ座標系における回転角を含む位置データとして記憶することを特徴とする画像合成装置。In any of claims 5 to 8,
The motion data storage means includes
The three-dimensional coordinates of the part in the body coordinate system whose origin is the reference point of the object, the motion data of the part constituting the object, and the part of the part relative to the reference direction set in the body coordinate system for each part An image synthesizing apparatus that stores position data including a rotation angle in a body coordinate system.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP03735796A JP3822929B2 (en) | 1996-01-31 | 1996-01-31 | Image composition method and image composition apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP03735796A JP3822929B2 (en) | 1996-01-31 | 1996-01-31 | Image composition method and image composition apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09212676A JPH09212676A (en) | 1997-08-15 |
JP3822929B2 true JP3822929B2 (en) | 2006-09-20 |
Family
ID=12495299
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP03735796A Expired - Fee Related JP3822929B2 (en) | 1996-01-31 | 1996-01-31 | Image composition method and image composition apparatus |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3822929B2 (en) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4042926B2 (en) * | 1997-11-07 | 2008-02-06 | 株式会社バンダイナムコゲームス | Image generating apparatus and information storage medium |
JPH11175706A (en) * | 1997-12-05 | 1999-07-02 | Namco Ltd | Image generating device and information storage medium |
JP4497690B2 (en) * | 2000-09-20 | 2010-07-07 | 株式会社バンダイナムコゲームス | GAME SYSTEM AND INFORMATION STORAGE MEDIUM |
JP2008234681A (en) * | 2008-04-30 | 2008-10-02 | Sega Corp | Video game device, image display device and method, moving image display device and method, and recording medium |
JP5241536B2 (en) * | 2009-01-26 | 2013-07-17 | 株式会社バンダイナムコゲームス | Program, information storage medium, and game system |
JP6372416B2 (en) * | 2015-04-10 | 2018-08-15 | 株式会社三洋物産 | Game machine |
-
1996
- 1996-01-31 JP JP03735796A patent/JP3822929B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH09212676A (en) | 1997-08-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4668655B2 (en) | Program, information storage medium, and image generation system | |
JP6362634B2 (en) | Image generation system, game device, and program | |
US20040095353A1 (en) | Image processing method | |
US8498849B1 (en) | Wrinkle simulation on fabric based on three arm joint angles | |
JP6370820B2 (en) | Image generation system, game device, and program. | |
JP2010033298A (en) | Program, information storage medium, and image generation system | |
JP3420870B2 (en) | Image composition method, image composition device, and game device | |
JP5002103B2 (en) | Image generation system, image generation method, and program | |
EP0797172A3 (en) | Image processor and game apparatus equipped with the same | |
JP3822929B2 (en) | Image composition method and image composition apparatus | |
JP4053078B2 (en) | 3D game device and information storage medium | |
JP3760341B2 (en) | Program, recording medium, image generation apparatus, and image generation method | |
JP3625201B2 (en) | Three-dimensional model transformation program, three-dimensional model transformation method, and video game apparatus | |
JP3957363B2 (en) | 3D game device and information storage medium | |
JP3830188B2 (en) | Game image synthesizer | |
JPH1021420A (en) | Picture composition device/method | |
JP4161613B2 (en) | Image processing method | |
JP4786389B2 (en) | Program, information storage medium, and image generation system | |
JP4042927B2 (en) | Image generating apparatus and information storage medium | |
JP3939444B2 (en) | Video display device | |
JP4229316B2 (en) | Image generation system, program, and information storage medium | |
JP3777211B2 (en) | Image composition method, image composition device, 3D game image composition method, and 3D game device | |
JP3727098B2 (en) | Image composition method and apparatus | |
JP3254091B2 (en) | Three-dimensional simulator device and image synthesizing method | |
JP4624527B2 (en) | GAME SYSTEM AND INFORMATION STORAGE MEDIUM |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051130 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060130 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060315 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060515 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060614 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060626 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090630 Year of fee payment: 3 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090630 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090630 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090630 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100630 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100630 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110630 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110630 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120630 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120630 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130630 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130630 Year of fee payment: 7 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |