JP3822929B2 - 画像合成方法及び画像合成装置 - Google Patents
画像合成方法及び画像合成装置 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
【発明の属する技術分野】
本発明は画像合成方法び画像合成装置に関し、特に複数の部位が関節によってリンクされているオブジェクトのモーションデータを用いて画像合成を行う画像合成方法及び画像合成装置に関する。
【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 オブジェクト画像情報記憶部
Claims (9)
- 複数の部位が関節によってリンクされているオブジェクトの画像合成を行う方法であって、
モーションデータ形成手段が、複数の部位が関節によって3階層以上の階層構造にリンクされたオブジェクトのモーションデータを、隣り合う部位の位置関係をデータ化したデータ構造から、当該オブジェクトの基準点と各部位とが仮想的な関節によって一対一にリンクしたデータ構造に変換して、当該オブジェクトを構成する部位のモーションデータを当該オブジェクトの基準点からの相対的な位置データとして形成するモーションデータ形成ステップと、
モーション演算手段が、当該オブジェクトの基準点からの相対的な位置データとして形成されたモーションデータに基づき当該オブジェクトを構成する部位のワールド座標系における位置データを演算するステップと、
画像合成手段が、演算された当該オブジェクトを構成する部位のワールド座標系における位置データに基づき画像合成を行うステップと、
を含むことを特徴とする画像合成方法。 - 複数の部位が関節によってリンクされているオブジェクトの画像合成を行う方法であって、
モーションデータ形成手段が、当該オブジェクトを構成する部位の内少なくとも分離後は当該オブジェクトの基準点とは独立して運動し得る分離可能な部位のモーションデータを分離前は当該オブジェクトの基準点からの相対的な位置データとして形成するモーションデータ形成ステップと、
モーション演算手段が、前記分離可能な部位の分離前には、当該オブジェクトの基準点からの相対的な位置データとして形成されたモーションデータに基づき分離可能な部位のワールド座標系における位置データを演算するステップと、
空間演算手段が、前記分離可能な部位の分離後には、当該オブジェクトの基準点とは独立して分離可能な部位のワールド座標系における位置データを演算するステップと、
画像合成手段が、演算された分離可能な部位のワールド座標系における位置データに基づき画像合成を行うステップと、
を含むことを特徴とする画像合成方法。 - 請求項1または2において、
前記モーションデータ形成ステップは、
モーションデータ形成手段が、当該オブジェクトのワールド座標系におけるデータを持っている点又はそれに基づき定められる点を基準点として、当該オブジェクトを構成する部位のモーションデータを前記基準点からの相対的な位置データとして形成することを特徴とする画像合成方法。 - 請求項1乃至3のいずれかにおいて、
前記モーションデータ形成ステップは、
モーションデータ形成手段が、当該オブジェクトを構成する部位のモーションデータを前記オブジェクトの基準点を原点とするボディ座標系における前記部位の3次元座標と、各部位ごとに前記ボディ座標系に設定された基準方向に対する当該部位の前記ボディ座標系における回転角を含む位置データとして形成することを特徴とする画像合成方法。 - 複数の部位が関節によってリンクされているオブジェクトの画像合成を行う装置であって、
複数の部位が関節によって3階層以上の階層構造にリンクされたオブジェクトのモーションデータを、隣り合う部位の位置関係をデータ化したデータ構造から、当該オブジェクトの基準点と各部位とが仮想的な関節によって一対一にリンクしたデータ構造に変換して、当該オブジェクトを構成する部位のモーションデータを当該オブジェクトの基準点からの相対的な位置データとして記憶するモーションデータ記憶手段と、
当該オブジェクトの基準点からの相対的な位置データとして記憶されたモーションデータに基づき当該オブジェクトを構成する部位のワールド座標系における位置データを演算する手段と、
演算された当該オブジェクトを構成する部位のワールド座標系における位置データに基づき画像合成を行う手段と、
を含むことを特徴とする画像合成装置。 - 複数の部位が関節によってリンクされているオブジェクトの画像合成を行う装置であって、
当該オブジェクトを構成する部位の内少なくとも分離後は当該オブジェクトの基準点とは独立して運動し得る分離可能な部位のモーションデータを分離前は当該オブジェクトの基準点からの相対的な位置データとして記憶するモーションデータ記憶手段と、
前記分離可能な部位の分離前には、当該オブジェクトの基準点からの相対的な位置データとして記憶されたモーションデータに基づき分離可能な部位のワールド座標系における位置データを演算する手段と、
前記分離可能な部位の分離後には、当該オブジェクトの基準点とは独立して分離可能な部位のワールド座標系における位置データを演算する手段と、
演算された分離可能な部位のワールド座標系における位置データに基づき画像合成を行う手段と、
を含むことを特徴とする画像合成装置。 - 複数の部位が関節によってリンクされているオブジェクトの画像合成を行う装置であって、
複数の部位が関節によって3階層以上の階層構造にリンクされたオブジェクトのモーションデータを、隣り合う部位の位置関係をデータ化したデータ構造から、当該オブジェクトの基準点と各部位とが仮想的な関節によって一対一にリンクしたデータ構造に変換して、当該オブジェクトを構成する部位のモーションデータを当該オブジェクトの基準点からの相対的な位置データとして記憶するモーションデータ記憶手段と、
当該オブジェクトの基準点のワールド座標系における位置データを演算する空間演算手段と、
前記空間演算手段が演算した当該オブジェクトの基準点のワールド座標系における位置データ及びモーションデータ記憶手段に記憶されたモーションデータに基づき、当該オブジェクトを構成する各部位のワールド座標系における位置データを演算するモーション演算手段と、
当該オブジェクトを構成する各部位の画像情報を記憶しているオブジェクト情報記憶手段とを含み、
前記モーション演算手段によって演算された当該オブジェクトを構成する各部位のワールド座標系における位置データ及び前記オブジェクト情報記憶手段に記憶されている各部位の画像情報とに基づき、当該オブジェクトの画像を合成することを特徴とする画像合成装置。 - 請求項5乃至7のいずれかにおいて、
前記モーションデータ記憶手段は、
当該オブジェクトのワールド座標系におけるデータを持っている点又はそれに基づき定められる点を基準点として、当該オブジェクトを構成する部位のモーションデータを前記基準点からの相対的な位置データとして記憶することを特徴とする画像合成装置。 - 請求項5乃至8のいずれかにおいて、
前記モーションデータ記憶手段は、
当該オブジェクトを構成する部位のモーションデータを前記オブジェクトの基準点を原点とするボディ座標系における前記部位の3次元座標と、各部位ごとに前記ボディ座標系に設定された基準方向に対する当該部位の前記ボディ座標系における回転角を含む位置データとして記憶することを特徴とする画像合成装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP03735796A JP3822929B2 (ja) | 1996-01-31 | 1996-01-31 | 画像合成方法及び画像合成装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP03735796A JP3822929B2 (ja) | 1996-01-31 | 1996-01-31 | 画像合成方法及び画像合成装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09212676A JPH09212676A (ja) | 1997-08-15 |
JP3822929B2 true JP3822929B2 (ja) | 2006-09-20 |
Family
ID=12495299
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP03735796A Expired - Fee Related JP3822929B2 (ja) | 1996-01-31 | 1996-01-31 | 画像合成方法及び画像合成装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3822929B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4042926B2 (ja) * | 1997-11-07 | 2008-02-06 | 株式会社バンダイナムコゲームス | 画像生成装置及び情報記憶媒体 |
JPH11175706A (ja) * | 1997-12-05 | 1999-07-02 | Namco Ltd | 画像生成装置及び情報記憶媒体 |
JP4497690B2 (ja) * | 2000-09-20 | 2010-07-07 | 株式会社バンダイナムコゲームス | ゲームシステム及び情報記憶媒体 |
JP2008234681A (ja) * | 2008-04-30 | 2008-10-02 | Sega Corp | ビデオゲーム装置、画像表示装置及び方法、動画表示装置及び方法並びに記録媒体 |
JP5241536B2 (ja) * | 2009-01-26 | 2013-07-17 | 株式会社バンダイナムコゲームス | プログラム、情報記憶媒体及びゲームシステム |
JP6372416B2 (ja) * | 2015-04-10 | 2018-08-15 | 株式会社三洋物産 | 遊技機 |
-
1996
- 1996-01-31 JP JP03735796A patent/JP3822929B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH09212676A (ja) | 1997-08-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4668655B2 (ja) | プログラム、情報記憶媒体及び画像生成システム | |
JP6362634B2 (ja) | 画像生成システム、ゲーム装置及びプログラム | |
US20040095353A1 (en) | Image processing method | |
US8498849B1 (en) | Wrinkle simulation on fabric based on three arm joint angles | |
JP6370820B2 (ja) | 画像生成システム、ゲーム装置及びプログラム。 | |
JP2010033298A (ja) | プログラム、情報記憶媒体及び画像生成システム | |
JP3420870B2 (ja) | 画像合成方法、画像合成装置及びゲーム装置 | |
JP5002103B2 (ja) | 画像生成システム、画像生成方法及びプログラム | |
EP0797172A3 (en) | Image processor and game apparatus equipped with the same | |
JP3822929B2 (ja) | 画像合成方法及び画像合成装置 | |
JP4053078B2 (ja) | 3次元ゲーム装置及び情報記憶媒体 | |
JP3760341B2 (ja) | プログラム、記録媒体、画像生成装置及び画像生成方法 | |
JP3625201B2 (ja) | 3次元モデル変形プログラム、3次元モデル変形方法及びビデオゲーム装置 | |
JP3957363B2 (ja) | 3次元ゲーム装置及び情報記憶媒体 | |
JP3830188B2 (ja) | ゲーム用画像合成装置 | |
JPH1021420A (ja) | 画像合成装置及び画像合成方法 | |
JP4161613B2 (ja) | 画像処理方法 | |
JP4786389B2 (ja) | プログラム、情報記憶媒体及び画像生成システム | |
JP4042927B2 (ja) | 画像生成装置及び情報記憶媒体 | |
JP3939444B2 (ja) | 映像表示装置 | |
JP4229316B2 (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP3777211B2 (ja) | 画像合成方法,画像合成装置,3次元ゲーム画像合成方法,及び3次元ゲーム装置 | |
JP3727098B2 (ja) | 画像合成方法及び装置 | |
JP3254091B2 (ja) | 3次元シミュレータ装置及び画像合成方法 | |
JP4624527B2 (ja) | ゲームシステム及び情報記憶媒体 |
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 |