JP3822929B2 - Image composition method and image composition apparatus - Google Patents

Image composition method and image composition apparatus Download PDF

Info

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
Application number
JP03735796A
Other languages
Japanese (ja)
Other versions
JPH09212676A (en
Inventor
直人 花井
正英 田中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Namco Ltd
Bandai Namco Entertainment Inc
Original Assignee
Namco Ltd
Namco Bandai Games Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Namco Ltd, Namco Bandai Games Inc filed Critical Namco Ltd
Priority to JP03735796A priority Critical patent/JP3822929B2/en
Publication of JPH09212676A publication Critical patent/JPH09212676A/en
Application granted granted Critical
Publication of JP3822929B2 publication Critical patent/JP3822929B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features 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/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images
    • A63F2300/6607Methods 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】

Figure 0003822929
【0114】
このとき、親自身のワールド座標系における方向を表す回転角をKとすると、子のワールド座標系における方向を表す回転角はM×Kとなる。また、階層構造の場合、次の関節で子から孫への行列Nが与えられると、孫のワールド座標系における方向を表す回転角はN×M×Kとなる。すなわち階層構造の場合、下位の関節に行くときは、その関節における行列を、上位の関節における行列のかけ算の演算結果である行列に掛ければよい。
【0115】
従っていずれのモーションデータにおいても、その関節における回転角を行列に直す数1に示す演算が1回必要となる。数1より、行列を求めるために、16回のかけ算と、4回の加減算と、6回の3角関数計算が、必要となることがわかる。
【0116】
また、子の回転行列を求めるためには、各関節でM×Kのように行列演算が必要で、
【0117】
【数2】
Figure 0003822929
【0118】
【数3】
Figure 0003822929
【0119】
とすると、
【0120】
【数4】
Figure 0003822929
【0121】
となる。この演算もいずれのモーションデータにおいても、関節ごとに必要となり、この演算のために、数4に示すように、27回のかけ算と、18回の加減算が必要となることがわかる。
【0122】
また各部位の表示座標は、各部位の親の位置(Px、Py、Pz)と、前述した親から子への相対位置(Dx、Dy、Dz)と、親の回転行列Kから、いずれのモーションデータにおいても、次の式で求められる。
【0123】
【数5】
Figure 0003822929
【0124】
ここにおいて親の回転角を(θx’,θy’,θz’)として、KをMと同様に表すと、次式のようになる。
【0125】
【数6】
Figure 0003822929
【0126】
また、数5を計算すると、
【0127】
【数7】
Figure 0003822929
【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 origin 30 indicating the center of the human body to the right foot. 10−6, 10−8, and 10−12) operations are required.
[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 claim 1
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 claim 2
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 claim 3
In either claim 1 or claim 2,
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 type game apparatus 10 to which the present invention is applied.
[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 handle 20, the accelerator, the brake, etc. while watching the game screen displayed on the front display 18, and controls the player motorcycle 220 displayed on the display 18. It is designed to compete with other racing bikes that appear in the game space.
[0040]
FIG. 6 shows an example of the game screen 200-1 displayed on the display of the game apparatus 10. In this game screen 200-1, a player character 210 that moves according to the player's maneuvering and game situation and a player motorcycle 220 that is running together with the player are displayed realistically.
[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 player character 210 on the game screen not only changes the position and direction in the game space, but also moves the limbs and head of the player character 210 itself. In other words, the player character 210 moves imitating a human body in accordance with other game situations at the time of starting or falling. The game apparatus 10 employs the following configuration in order to realistically reproduce such a human body movement.
[0043]
FIG. 2 is a block diagram showing the configuration of the game apparatus 10.
[0044]
The game device 10 according to the embodiment includes an operation unit 100, a space calculation unit 110, an image composition unit 120, a display unit 130, a space information storage unit 140, a motion data storage unit 150, and an object image information storage unit 160.
[0045]
The operation unit 100 is used to input a signal for the player to control the operation of the player bike 220 to the space calculation unit 110. The operation unit 100 includes various controls such as a handle 20, an accelerator, and a brake that the player 16 controls the racing bike. An operation unit is included.
[0046]
Then, the space calculation unit 110 transfers the player bike 220 operated by the player to another racing bike on a racing course set in a predetermined game space based on an operation signal from the operation unit 100 and a predetermined game program. The position and state in the game space of the player bike 220 and other racing bikes operated by the player are calculated, and the calculation results are output to the image composition unit 120.
[0047]
The image composition unit 120 calculates the image data of the game screen based on the calculation result and displays it on the display 18 that is the display unit 130.
[0048]
As a result, a game screen 200-1 as shown in FIG. 6 is displayed on the display 18, for example. This game screen 200-1 represents a state where the racing motorcycle 220 operated by the player character 210 is running on the racing course 230.
[0049]
First, the function in which the space calculation unit 110 and the space information storage unit 140 calculate the position and state of the display object in the game space will be described in detail.
[0050]
FIG. 3 is a diagram showing the relationship between the position and posture of the player character 210 and the player motorcycle 220 that moves together with the position information (X, Y, Z) and direction information (θ, φ, ρ). . In this game apparatus, each display object is position information (X, Y, Z) and direction information (θ, φ, ρ) in the world coordinate system (Xw, Yw, Zw) provided in the game space (object space). Is set in the game space.
[0051]
Position information (X, Y, Z) and direction information (θ) of each display object (building around the racing course, player character 210 and player bike 220, other racing bikes, etc.) arranged in such a game space. , Φ, ρ) and subordinate information described later is stored in the spatial information storage unit 140. That is, in the spatial information storage unit 140, as shown in FIG. 4, position information (X, Y, Z) and direction information (θ, φ, ρ) of i + 1 display objects are allocated to each display object. Stored together with the object number OB.
[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 player character 210 and the player motorcycle 220 are assigned different object numbers OB as different display objects, and have position information (X, Y, Z) and direction information (θ, φ, ρ) separately. It is a principle. However, in this game apparatus, the player character 210 and the player bike 220 move together until they are separated due to a collision or the like, so that the player bike 220 has position information (X, Y, Z) and direction information (θ, (φ, ρ) is configured to be shared with the player character 210.
[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 player bike 220. As shown in the table below, the distinction between display items that share position and direction information with other independent display items (hereinafter referred to as subordinate display items), and which independent display items are subordinated with respect to subordinate display items Information is stored in the subordinate information area shown in FIG.
[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 information storage unit 140, but its position information (X, Y, Z) and direction information ( In θ, φ, ρ), the same values as the position information (X, Y, Z) and direction information (θ, φ, ρ) of the independent display object corresponding to the parent are set. The object number NO is set.
[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 player character 210 and the player motorcycle 220 move together until they are separated by a collision or the like. The player bike 220 is connected to the reference position 210 by motion data. Furthermore, in the present embodiment, the player character 210 is also configured by connecting each part such as the neck, shoulder, elbow, wrist, finger, waist, and knee to the reference position of the player character 210 using motion data.
[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 player characters 210 subordinate to the part is displayed. The parts and the player bike 220 (assuming object numbers OB1 to OB10) are subordinate display objects. Therefore, in the spatial information storage unit 140 shown in FIG. 4, the idf flag is stored in the subordinate information area corresponding to the object number OB0, and the subordinate information areas corresponding to the object numbers OB1 to OB10 are OB0. Is stored. Further, the same values as OB0 are set in the areas of position information (X, Y, Z) and direction information (θ, φ, ρ) corresponding to OB1 to OB10.
[0058]
The space calculation unit 110 receives the position information (X, Y, Z) and direction information (θ, φ, ρ) of each display object on the game stage stored as described above by the operation unit 100. In accordance with an operation signal, a game program, and the like, it is rewritten and updated every predetermined time, for example, every 1/60 seconds. For example, the manner in which the player bike 220 moves in the game space without changing its posture in the X-axis direction of the world coordinate system is based on the position information stored together with the corresponding object number stored in the space information storage unit 140. The X coordinate is expressed by changing and storing the X coordinate in a predetermined increment corresponding to the moving speed. In this way, it is possible to easily produce a situation where each display object changes its position and direction (posture) every moment in the game space.
[0059]
The spatial information calculation unit 110 calculates position and direction information in the world coordinate system for the independent display object, updates the area in the spatial information storage unit 140, and the dependent display object is stored in the dependency information. The same value as the position and direction information of the independent display object is set and updated.
[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 player character 210 due to a collision or the like. Since it becomes an independent display object, the space calculation unit 110 is configured to calculate the position information (X, Y, Z) and the direction information (θ, φ, ρ) of OB4 independently of the information of OB0. Has been.
[0061]
As described above, the player bike 220 moves as a subordinate display object because it moves together with each part of the player character 210 until it is separated due to a collision or the like. Although being handled, such switching of attributes (specifically, setting the idf flag in the dependent information of the spatial information storage unit 142) is performed by the separation information calculation unit 114 described later. Therefore, the space calculation unit 110 can determine whether the display object is an independent display object or a dependent display object based on the dependency information in the space information storage unit 140.
[0062]
The spatial information storage unit 140 stores frame information. The frame information includes viewpoint information (player's viewpoint position, viewing direction, viewing angle) and the like. This frame information is also updated by the space calculation unit 110 every predetermined time. In this game apparatus, when the third person viewpoint display is selected, the viewpoint 20 is arranged behind the player bike 220 and the line-of-sight direction faces the front direction of the player bike 220. Therefore, the position information and direction information of the player bike 220 are included. Based on this, the viewpoint position and the line-of-sight direction included in the frame information are changed and stored.
[0063]
Next, the image composition function of the image composition unit 120 and the object image information storage unit 160 will be described in detail. The object image information storage unit 160 stores information regarding the shape and appearance of each display object in the game space, and includes a polygon information storage unit 162 and a texture information storage unit 164. That is, in the game device, each display object is modeled by a combination of polygons, and a texture representing the appearance of each display object is mapped to each polygon.
[0064]
In the polygon information storage unit 162, as information representing the shape of each display object, vertex coordinates of each polygon constituting the display object and texture mapped to each polygon are stored correspondingly. The vertex coordinates are stored as position coordinates of each vertex in a coordinate system (body coordinate system) provided for each display object.
[0065]
Information indicating the shape of each display object is provided corresponding to the object number of each display object stored in the spatial information storage unit 140. Therefore, when a plurality of parts are connected by motion data, for example, each part such as a neck, a shoulder, an elbow, a wrist, a finger, a waist, and a knee of the player character 210 according to the present embodiment has information separately. Is stored.
[0066]
The texture information storage unit 164 stores texture information of textures mapped to these polygons. Here, the texture information means information such as the color and pattern of the display object.
[0067]
The image composition unit 120 synthesizes an image representing a scene of the game space according to information stored in the space information storage unit 140 and the object image information storage unit 160. Specifically, first, as shown in FIG. 5, calculation is performed for arranging the polygons constituting the display object 300 on the game stage expressed in the world coordinate system (Xw, Yw, Zw). That is, the object image information storage unit 160 stores position information of polygons constituting the display object as coordinate information in the body coordinate system. The image composition unit 120 translates, rotates, inverts, and enlarges the image based on position information (X, Y, Z) and direction information (θ, φ, ρ) stored in the spatial information storage unit 140. 3D coordinate conversion such as reduction is performed to convert the coordinates into position coordinates in the world coordinate system (Xw, Yw, Zw). Next, for each display object, a process of performing coordinate conversion of the polygons constituting the display object to a viewpoint coordinate system (Xv, Yv, Zv) with a given viewpoint as a reference is performed. Thereafter, clipping processing or the like is performed, and projection conversion processing to the screen coordinate system (Xs, Ys) is performed. Based on the image information in the screen coordinate system (Xs, Ys) thus obtained, the display unit 130 displays and outputs a predetermined range of the game space.
[0068]
By the way, since the player character 210 is displayed imitating the movement of the human body as described above, the limbs, the head, and the like are not fixed and exercise individually. In other words, the human body has an object linked by joints such as the neck, shoulders, elbows, wrists, fingers, hips, knees, etc., and has a body coordinate system, and forms one body in the world coordinate system. Can be considered.
[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 data storage unit 150 described later. Then, when the images are combined, the position and direction in the world coordinate system of each part of the human body are calculated by calculation based on the corresponding motion data.
[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 data storage unit 150 that stores motion data created in advance.
[0072]
In addition, the spatial information calculation unit 110 includes a use motion data information determination unit 112 that determines the motion data to be used, and a separation information calculation unit 114 that performs processing when the parts connected by the motion data are separated. The spatial information storage unit 140 includes a use motion data information storage unit 142 that stores information about the motion data to be used determined by the use motion data information determination unit 112. In addition, the image composition unit 120 includes a motion calculation unit 122 that calculates position and direction information of each part, which is a subordinate display object, in the world coordinate system using motion data. The function of each part will be described in detail below.
[0073]
As described above, the motion data storage unit 150 preliminarily models various movements predicted according to the game development, for example, movement at the start, movement at the time of falling, movement at the time of collision, and the like, and has been converted into data beforehand. Motion data is stored. In the present embodiment, motion data necessary for displaying various parts of the player character and various movements of the player bike that moves together is stored. Since the normal screen is formed so as to be synthesized and displayed every 1/60 seconds, the motion data is also stored as time-series data for each frame.
[0074]
FIG. 11 is a diagram showing the data structure and contents of the motion data 400 stored in the motion data storage unit 150 of the present embodiment. The motion number 410 is a number corresponding to various movements predicted according to the game development, for example, movement at the start, movement at the time of fall, movement at the time of collision, etc. It functions as an index when searching for motion data. Also, since motion data is provided for each frame, it is stored in an array structure for each frame 420.
[0075]
Further, in one frame, the data of the part 430 linked by each joint has an array structure. For one part 430, position information (xn, yn, zn) 440 and rotation information (θn, φn, ρn) 450 is stored. As will be described later, the position information (xn, yn, zn) 440 stores the position coordinates of the reference point of the part linked by the joint in the body coordinate system with the reference position of the parent independent display object as the origin. Has been. In addition, rotation information (θn, φn, ρn) 450 stores rotation angles in three axial directions with respect to a reference state (to be described later) of a portion linked by the joint.
[0076]
Therefore, by specifying the motion number 410, the array number of the frame, and the array number of the part, the position information (xn, yn, zn) 440 of the corresponding part of the corresponding frame of the corresponding motion and the rotation information (θn, φn, ρn) 450 can be taken out.
[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 information determining unit 112 of the space calculation unit 110 determines the used motion data information according to the game development, and the used motion data information of the space information storage unit 140 is used. The used motion data information stored in the storage unit 142 is updated.
[0078]
The used motion data information storage unit 142 stores data including a motion number for indicating which motion data and an array number of a frame of motion data for indicating which frame.
[0079]
In addition, the separation information calculation unit 114 of the space calculation unit 110 is a position at the time of separation independence when the parts connected by the motion data are separated and have position and direction information on the game stage independently. Then, setting of direction information, and setting that the position and direction information are necessary for the part independently thereafter.
[0080]
When the part is separated, the separation information calculation unit 114 displays the position and direction information of the part at the time of separation independence, the position information (X, Y, Z) of the part stored in the spatial information storage unit 140, and Based on direction information (θ, φ, ρ) and position information (xn, yn, zn) 440 that is motion data of the part specified by the used motion data information, and rotation information (θn, φn, ρn) 450 The position information (X, Y, Z) and the direction information (θ, φ, ρ) stored in the spatial information storage unit 140 are updated.
[0081]
Further, as described above, the spatial information storage unit 110 has identification information as to whether it is an independent display object or a dependent display object in the area of the dependent information. The part connected to the parent by the motion data is a subordinate display object, but when the part is separated, the part changes from the subordinate display object to the independent display object. Accordingly, when the part is separated, the separation information calculation unit 114 updates the dependent information of the part in the spatial information storage unit 140.
[0082]
In the present embodiment, the position and direction information of the independent display object in the world coordinate system is calculated by the space calculation unit 110, and the position and direction information of the subordinate display object in the world coordinate system is calculated by the motion calculation unit 122 of the image composition unit 120. Is configured to do.
[0083]
That is, when the image composition unit 120 places the polygons constituting the display object 300 on the game stage expressed by the world coordinate system (Xw, Yw, Zw) as shown in FIG. The position and direction information of the subordinate display object in the world coordinate system is calculated.
[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 image composition unit 120 translates, rotates, and inverts this based on position information (X, Y, Z) and direction information (θ, φ, ρ) of the display object stored in the spatial information storage unit 140. Then, three-dimensional coordinate conversion such as enlargement and reduction is performed to convert the coordinates into position coordinates in the world coordinate system (Xw, Yw, Zw). At this time, the position information (X, Y, Z) and the direction information (θ, φ, ρ) of the display object stored in the spatial information storage unit 140 may be used for the independent display object. Must be used after specifying position and direction information in the world coordinate system based on the information and the motion data specified by the used motion data information.
[0085]
That is, the position data (X, Y, Z) and direction information (θ, φ, ρ) stored in the spatial information storage unit 140 and the motion data of the part specified by the used motion data information Based on some position information (xn, yn, zn) 440 and rotation information (θn, φn, ρn) 450, the position and direction information of the subordinate display object in the world coordinate system is calculated. In this way, the motion calculation unit 122 specifies the position and direction information of the subordinate display object in the world coordinate system at the time of image synthesis.
[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 object 400 having one joint K, and FIG. 8B shows the data structure of the motion data. The part M1 and the part M2 are linked by the joint K. At this time, when the position and direction in the world coordinate system are given to the part M1, the part M1 is a parent, the part M2 is linked to the part M1 by a joint, and moves depending on the part M1, so the part M2 is a child. Call. When it becomes a complex object, a child (so-called grandchild) is further connected under the child, a parent has a plurality of joints, and a plurality of children are connected.
[0087]
Information necessary to display the object 400 includes, for the part M1, the position in the world coordinate system (in this case, the coordinates of the point A that is the representative point of M1 (three-dimensional)) and the direction of the part M1 (in this case, 3 The rotation angle with respect to the axis) and the part M2 are also the position in the world coordinate system (in this case, the coordinates of the point B that is the representative point of M2 (three-dimensional)) and the direction of the part M2 (in this case, the rotation angle with respect to the three axes). . Among these, the coordinates (three-dimensional) of the point A indicating the position and direction in the world coordinate system of the parent M1 and the rotation angle (three axes) of the part M1 are spatial information for the game machine of the present embodiment. It is given by position information (X, Y, Z) and direction information (θ, φ, ρ) stored in the storage unit 140, and changes according to the game development during the game.
[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 player character 220 and the player bike 220 that moves together with the player character 210 as shown in this example, the part 20-16 for displaying the bike has a right foot. Is linked by a joint 10-16 to a region 20-13 for displaying the. By doing so, a state in which the player motorcycle 220 moves depending on the player character 210 is displayed. For example, as shown in FIG. 6, when the player character 210 tilts the body with a curve, the player bike 220 is displayed so as to tilt together with the player character 210.
[0093]
However, if the player character 210 and the player motorcycle 220 that were traveling together collide with the obstacle 250 ahead and are separated as shown in FIG. 7, the player character 210 and the player motorcycle 220 are separated from each other. After separation, it will move independently. That is, the player bike 220 that was moving together with the player character 210 before the separation also requires position coordinates in the world coordinate system as one object arranged in the world coordinate system after the separation.
[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 player motorcycle 220 in the world coordinate system, the joints (10-1, 10-4, 10-9, 10-9, 10-9, 10-9, As many as 10-13 and 10-16) are required.
[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 object 410 linked by a plurality of joints. Each part N2 to N7, which is a child with N1 as a parent, is linked to the hierarchical structure by joints K1 to K5. In the conventional motion data, the positional relationship between adjacent parts for each of the joints K1 to K5 is converted into data. The joints are set and converted into data. In order to convert such a relationship into data, a relative positional relationship between N1 and each of the portions N2 to N7 may be obtained. That is, the position coordinates and rotation information of each part N2 to N7 in the body coordinate system with O as the origin may be obtained. For example, taking N5 as an example, the position coordinate of K4 in the body coordinate system with O as the origin, and rotation information (θ of N5) N5 , Φ N5 , Ρ N5 )
[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 object 410 rotates. That is, the state indicated by the solid line of each part N2 to N7 of the object 410 in FIG. 10 is set as the reference state, and the state indicated by the broken line is a state when each joint is rotated by the movement. At this time, rotation information (θ indicating how much N5 ′ after rotation is rotated in the three-axis direction with respect to N5 before rotation. N5 , Φ N5 , Ρ N5 )
[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 player character 210 when the player character 210 gets on the player motorcycle 220 in a normal posture. The state is defined. That is, the position of each part when riding in a normal posture is the reference state of the part.
[0103]
Therefore, when calculating the position and direction in the world coordinate system of each part constituting the player character 210 using the motion data in the present embodiment, the following is performed.
[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 (position information 440 in FIG. 11) of the corresponding motion data, and the position coordinate of O in the world coordinate system is the spatial information. The position information (X, Y, Z) of the corresponding part in the storage unit 140 (as described above, the position information of the subordinate display object as the child stores the position information of the independent display object as the parent). .
[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 (rotation information 450 in FIG. 11) of the corresponding motion data, and the world coordinate system of the parent independent display object. Is the direction coordinates (θ, φ, ρ) of the corresponding part of the spatial information storage unit 140 (as described above, the position information of the subordinate display object that is a child is independent Display direction information is stored).
[0106]
In the motion data storage unit 150 of the game device according to the present embodiment, the motion data created in this way is stored in the format shown in FIG. 11 for a given time for each motion and for each frame. Stored in a series.
[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 data storage unit 150.
[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]
Figure 0003822929
[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 Equation 1 is necessary once to convert the rotation angle at the joint into a matrix. From Equation 1, it is understood that 16 multiplications, 4 additions / subtractions, and 6 trigonometric function calculations are required to obtain a matrix.
[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]
Figure 0003822929
[0118]
[Equation 3]
Figure 0003822929
[0119]
Then,
[0120]
[Expression 4]
Figure 0003822929
[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]
Figure 0003822929
[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]
Figure 0003822929
[0126]
Also, when calculating Equation 5,
[0127]
[Expression 7]
Figure 0003822929
[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 space calculation unit 110 calculates position information of a display object in the game space according to an operation signal input from the operation unit 100, a game program, or the like, and updates a corresponding portion of the space information storage unit 140. Also, the used motion data information determining unit 112 determines used motion data information representing the movement of the player character according to the game development, and updates the motion number and the corresponding frame array number in the used motion data information storage unit 142. (Step 20). That is, the motion of the player character 210 is calculated as to which of the predetermined motions, such as the motion at the start, the motion at the fall, and the motion at the time of collision, and corresponding motion data data is set. To do.
[0134]
At this time, if there is a game development in which the player character 210 and the player bike 220 are separated (step 30), the player bike 220 that was the subordinate display object before the separation becomes an independent display object after the separation in the world coordinate system. Position information (X, Y, Z) and direction information (θ, φ, ρ) are required. Therefore, the separation information calculation unit 114, based on the use motion data information, the joint motion data corresponding to the corresponding part (in this case, the player motorcycle 220) of the corresponding frame of the motion number 410 corresponding to the motion data, and the spatial information. Based on the position information (X, Y, Z) and the direction information (θ, φ, ρ) of the player bike 220 stored in the unit 140, the position information (X, Y, Z) and direction information (θ, φ, ρ) are calculated (step 40). Since the player bike 220 becomes an independent display object after the separation, the separation information calculation unit 114 sets the idf flag in the subordinate information area corresponding to the player bike 220 in the spatial information storage unit 140 (step 50).
[0135]
Next, when the image composition unit 120 performs image composition based on the position information of each display unit set by the space calculation unit 110, the position information (X, Y, Z) and direction information in the world coordinate system for the subordinate display object. (Θ, φ, ρ) is required. Therefore, the motion calculation unit 122 selects these subordinate display objects based on the position stored in the spatial information storage unit 140 and the motion data stored in the motion data storage unit 150 specified by the used motion data information storage unit 142. Position information (X, Y, Z) and direction information (θ, φ, ρ) in the world coordinate system are calculated (step 60). This calculation is performed for all joints of the frame 420 corresponding to the motion number 410 of the used motion data information stored in the used motion data information storage unit 142.
[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 image composition unit 120 performs the above-described image composition and performs one frame. Is supplied (step 70).
[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 data storage unit 150 is not limited to that described above.
[0140]
In the present embodiment, the motion calculation unit 122 calculates position information (X, Y, Z) and direction information (θ, φ, ρ) of the subordinate display object in the world coordinate system based on the motion data during image composition. However, the present invention is not limited to this, and it may be performed in a space information storage unit, for example, other than during image synthesis.
[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 CPU 1000, a ROM 1002, a RAM 1004, an information storage medium 1006, a voice synthesis IC 1008, an image synthesis IC 1010, and I / O ports 1012, 1014 are connected to each other via a system bus 1016 so that data can be transmitted and received. A display 1018 is connected to the image synthesis IC 1010, a speaker 1020 is connected to the voice synthesis IC 1008, a control device 1022 is connected to the I / O port 1012, and a communication device 1024 is connected to the I / O port 1014. It is connected.
[0143]
The information storage medium 1006 means storage means that is detachably provided on a game apparatus main body such as a CD-ROM, game ROM, memory card, etc., and a type capable of writing and storing predetermined information according to game contents. Used. The ROM 1002 is storage means provided fixed to the game apparatus main body. These are means for storing information not related to the game title, such as initialization information of the game apparatus main body, in addition to information related to the game title, such as game program and game stage space information.
[0144]
The control device 1022 is a device for inputting a result of a determination made by a player in accordance with the progress of the game to the game device main body. The control device 1022 is used for a pad-type device widely used for home use or a commercial drive game. The handle, accelerator, etc. used are mentioned.
[0145]
The CPU 1000 controls the entire game device and performs various data processing in accordance with a game program or system program stored in the information storage medium 1006 or the ROM 1002, or a signal input by the control device 1022. The RAM 1004 is a storage means used as a work area of the CPU 1000, and stores predetermined contents of the information storage medium 1006 and the ROM 1002, a calculation result of the CPU 1000, and the like.
[0146]
Furthermore, this type of game apparatus is provided with a voice synthesis IC 1008 and an image synthesis IC 1010 so that audio and images can be suitably output. The voice synthesis IC 1008 is a circuit that synthesizes sound effects, game music, and the like based on information stored in the information storage medium 1006 and the ROM 1002, and the synthesized music and the like are output by a speaker 1020. The image synthesis IC 1010 is a circuit that synthesizes pixel information to be output to the display 1018 based on image information sent from the RAM 1004, the ROM 1002, the information storage medium 1006, and the like.
[0147]
The communication device 1024 exchanges various types of information used inside the game device with the outside. The communication device 1024 is connected to other game devices to send and receive predetermined information according to the game program, and to connect a communication line. It is used for sending and receiving information such as game programs.
[0148]
The present invention can be easily implemented even by using the general game device described above. For example, the operation unit 100 corresponds to the control device 1022, and the space calculation unit 110 is realized by software stored in the CPU 1000 and the ROM 1002 or the information storage medium 1006. The spatial information storage unit 140, the motion data storage unit 150, and the object image information storage unit 160 can be provided in any of the RAM 1004, the ROM 1002, and the information storage medium 1006. Further, the image composition unit 120 is realized by the image composition IC 1010 or by the CPU 1000 and predetermined software. The display unit 130 corresponds to the display 1018.
[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:
請求項1または2において、
前記モーションデータ形成ステップは、
モーションデータ形成手段が、当該オブジェクトのワールド座標系におけるデータを持っている点又はそれに基づき定められる点を基準点として、当該オブジェクトを構成する部位のモーションデータを前記基準点からの相対的な位置データとして形成することを特徴とする画像合成方法。
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:
請求項1乃至3のいずれかにおいて、
前記モーションデータ形成ステップは、
モーションデータ形成手段が、当該オブジェクトを構成する部位のモーションデータを前記オブジェクトの基準点を原点とするボディ座標系における前記部位の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.
請求項5乃至7のいずれかにおいて、
前記モーションデータ記憶手段は、
当該オブジェクトのワールド座標系におけるデータを持っている点又はそれに基づき定められる点を基準点として、当該オブジェクトを構成する部位のモーションデータを前記基準点からの相対的な位置データとして記憶することを特徴とする画像合成装置。
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.
請求項5乃至8のいずれかにおいて、
前記モーションデータ記憶手段は、
当該オブジェクトを構成する部位のモーションデータを前記オブジェクトの基準点を原点とするボディ座標系における前記部位の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.
JP03735796A 1996-01-31 1996-01-31 Image composition method and image composition apparatus Expired - Fee Related JP3822929B2 (en)

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)

* Cited by examiner, † Cited by third party
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

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