(57)【特許請求の範囲】
【請求項１】
少なくとも２つの足を有するキャラクタが移動するオブジェクト空間内の所与の視点での画像を生成する画像生成装置であって、
前記オブジェクト空間内での前記キャラクタの基準モーションを特定するためのモーションデータを記憶するモーション記憶手段と、
キャラクタをオブジェクト空間内のゲームフィールド面上で移動させる演算を行う移動演算手段と、
前記モーションデータに基づき前記キャラクタのモーションを再生するモーション再生手段と、
オブジェクト空間内の所与の視点において見える画像を生成する画像生成手段と、を含み、
前記モーション再生手段は、
ゲームフィールド面上で移動する前記キャラクタの前記基準モーションに基づき、ゲームフィールド面上で移動するキャラクタの足の位置を算出し、算出された足の位置がゲームフィールド面に接地している条件でモーション制御を行なう接地モードか、接地していない条件でモーション制御を行なう通常モードかを判断し、
接地モードと判断した場合には、前記キャラクタの足を接地位置に固定した状態で、前記基準モーションを基準にしてキャラクタの関節の位置制御をインバース・キネマティクスにより実行するキャラクタのモーションの変形処理を行い、
その後、接地モードから通常モードに移行したと判断された場合には、前記モーションデータで特定される基準モーションに前記変形されたキャラクタのモーションを近づけるモーション補間処理を行うことを特徴とする画像生成装置。
【請求項２】
請求項１において、
前記モーションデータは、
キャラクタの足、膝、股の付け根に対応付けた第１、第２、第３の関節を少なくとも有するキャラクタの基準モーションを特定し、
前記モーション再生手段による前記インバース・キネマティクスの処理では、
前記第１の関節の位置を固定するとともに、
第１、第３の関節を結ぶベクトルの向きをワールド座標系のＸ軸に向けるためのＹロール角及びＺロール角とモーションデータに含まれるＸロール角とに基づき変換マトリクスを求め、
第１、第３の関節を結ぶベクトルの向きに設定されるＸ’軸と、Ｘ’Ｙ’平面内に第２の関節が位置するように設定されるＹ’軸と、Ｘ’Ｙ’平面に直交するＺ’軸とからなるローカル座標系での第２の関節の位置を求め、
該位置と前記変換マトリクスとに基づきＸ軸、Ｙ軸、Ｚ軸からなるワールド座標系での第２の関節の位置を求める処理を行なうことを特徴とする画像生成装置。
【請求項３】
少なくとも２つの足を有するキャラクタが移動するオブジェクト空間内の所与の視点での画像を生成するための、コンピュータ読み取り可能な情報記憶媒体であって、
前記オブジェクト空間内での前記キャラクタの基準モーションを特定するためのモーションデータを記憶するモーション記憶手段と、
キャラクタをオブジェクト空間内のゲームフィールド面上で移動させる演算を行う移動演算手段と、
前記モーションデータに基づき前記キャラクタのモーションを再生するモーション再生手段と、
オブジェクト空間内の所与の視点において見える画像を生成する画像生成手段として、
コンピュータを機能させるプログラムを記憶し、
前記モーション再生手段は、
ゲームフィールド面上で移動する前記キャラクタの前記基準モーションに基づき、ゲームフィールド面上で移動するキャラクタの足の位置を算出し、算出された足の位置がゲームフィールド面に接地している条件でモーション制御を行なう接地モードか、接地していない条件でモーション制御を行なう通常モードかを判断し、
接地モードと判断した場合には、前記キャラクタの足を接地位置に固定した状態で、前記基準モーションを基準にしてキャラクタの関節の位置制御をインバース・キネマティクスにより実行するキャラクタのモーションの変形処理を行い、
その後、接地モードから通常モードに移行したと判断された場合には、前記モーションデータで特定される基準モーションに前記変形されたキャラクタのモーションを近づけるモーション補間処理を行うことを特徴とする情報記憶媒体。
【請求項４】
請求項３において、
前記モーションデータは、
キャラクタの足、膝、股の付け根に対応付けた第１、第２、第３の関節を少なくとも有するキャラクタの基準モーションを特定し、
前記モーション再生手段による前記インバース・キネマティクスの処理では、
前記第１の関節の位置を固定するとともに、
第１、第３の関節を結ぶベクトルの向きをワールド座標系のＸ軸に向けるためのＹロール角及びＺロール角とモーションデータに含まれるＸロール角とに基づき変換マトリクスを求め、
第１、第３の関節を結ぶベクトルの向きに設定されるＸ’軸と、Ｘ’Ｙ’平面内に第２の関節が位置するように設定されるＹ’軸と、Ｘ’Ｙ’平面に直交するＺ’軸とからなるローカル座標系での第２の関節の位置を求め、
該位置と前記変換マトリクスとに基づきＸ軸、Ｙ軸、Ｚ軸からなるワールド座標系での第２の関節の位置を求める処理を行なうことを特徴とする情報記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、オブジェクト空間内の所与の視点での画像を生成する画像生成装置及び情報記憶媒体に関する。
【０００２】
【背景技術及び発明が解決しようとする課題】
従来より、仮想的な３次元空間であるオブジェクト空間内に複数のオブジェクトを配置し、オブジェクト空間内の所与の視点から見える画像を生成する画像生成装置が開発、実用化されており、いわゆる仮想現実を体験できるものとして人気が高い。格闘技ゲームを楽しむことができる画像生成装置を例にとれば、プレーヤは、キャラクタを操作し、他のプレーヤ又はコンピュータが操作するキャラクタと対戦させてゲームを楽しむ。
【０００３】
さて、このような格闘技ゲームでは、予め用意されたモーションを再生することにより、キャラクタの手足等の動きを表現している。例えばキャラクタを前に歩かせる操作をプレーヤが行った場合には、前歩き用に用意されたモーションが再生され、キャラクタをジャンプさせる操作を行った場合には、ジャンプ用に用意されたモーションが再生される。
【０００４】
しかしながら、このように、予め用意されたモーションを単に再生することのみでキャラクタの動きを表現しようとすると、キャラクタの動きが、現実世界とは異なる不自然なものになってしまう場合がある。特に、キャラクタが相手キャラクタの方を向くようにする軸合わせや、複雑なモーション補間などの特殊なモーション制御を行うと、この不自然さは更に顕著になる。
【０００５】
また、画像生成装置のハードウェアの小規模化を図るためには、キャラクタのモーションデータのデータ量をなるべく少なくすることが望ましい。
【０００６】
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、キャラクタの複雑なモーション制御を行いながら、キャラクタの自然な動きを実現できる画像生成装置及び情報記憶媒体を提供することにある。
【０００７】
また本発明の他の目的は、少ないモーションデータ量で、キャラクタのリアルな動きを実現できる画像生成装置及び情報記憶媒体を提供することにある。
【０００８】
【課題を解決するための手段】
上記課題を解決するために、本発明は、オブジェクト空間内の所与の視点での画像を生成する画像生成装置であって、少なくとも２つの足を有するキャラクタをオブジェクト空間内のゲームフィールド面上で移動させる演算を行う手段と、前記キャラクタのモーションを再生するモーション再生手段と、オブジェクト空間内の所与の視点において見える画像を生成する手段とを含み、前記モーション再生手段が、キャラクタの足がゲームフィールド面に接地している場合には、該足のゲームフィールド面内での移動を制限しながらキャラクタのモーションを再生することを特徴とする。
【０００９】
本発明によれば、キャラクタは、モーション再生により手足などを動かしながらゲームフィールド面上を移動する。そして、キャラクタの例えば右足がゲームフィールド面に接地すると、ゲームフィールド面内での右足の移動が制限されながら（右足が接地位置に固定されたり、接地位置に強く拘束される）、モーションが再生される。左足がゲームフィールド面に接地した場合にも、同様に、ゲームフィールド面内での左足の移動が制限されながらモーションが再生される。したがって、キャラクタの移動と足のモーションとの間に矛盾が生じキャラクタの足が滑ってしまうという現象を効果的に防止できるようになる。
【００１０】
また本発明は、前記キャラクタのモーションデータを記憶するモーション記憶手段を含み、前記モーション再生手段が、前記モーションデータに基づき特定される基準モーションにおいてキャラクタの足がゲームフィールド面に接地している場合には、該足のゲームフィールド面内での移動が制限されるようにキャラクタのモーションを変形し、前記基準モーションにおいて該足がゲームフィールド面から浮いている場合には、変形されたキャラクタのモーションを基準モーションに近づけるモーション補間を行うことを特徴とする。このようにすることで、ゲームフィールド面内での足の移動を制限したことにより変形したモーションを、足が浮いている間に、元の基準モーションに戻すことが可能になる。
【００１１】
また本発明は、キャラクタの足がゲームフィールド面に接地している場合には足を接地位置に固定し、キャラクタの関節の位置をインバース・キネマティクスにより求めることを特徴とする。このようにすれば、足を接地位置に固定したことによる影響を、キャラクタの関節の位置の調整により相殺することが可能になる。
【００１２】
また本発明は、オブジェクト空間内の所与の視点での画像を生成する画像生成装置であって、第１、第２、第３の関節を少なくとも有するキャラクタのモーションデータを記憶するモーション記憶手段と、第１、第３の関節を結ぶベクトルの向きをワールド座標系のＸ軸に向けるためのＹロール角及びＺロール角とモーションデータに含まれるＸロール角とに基づき変換マトリクスを求め、第１、第３の関節を結ぶベクトルの向きに設定されるＸ’軸と、Ｘ’Ｙ’平面内に第２の関節が位置するように設定されるＹ’軸と、Ｘ’Ｙ’平面に直交するＺ’軸とからなるローカル座標系での第２の関節の位置を求め、該位置と前記変換マトリクスとに基づきＸ軸、Ｙ軸、Ｚ軸からなるワールド座標系での第２の関節の位置を求める手段と、求められた第２の関節の位置と、前記モーションデータにより特定される第１、第３の関節の位置とに基づき、前記キャラクタのモーションを再生するモーション再生手段と、オブジェクト空間内の所与の視点において見える画像を生成する手段とを含むことを特徴とする。
【００１３】
本発明によれば、モーションデータとして例えば第１、第３の関節の位置とＸロール角とを用意するだけで、第２の関節の位置をインバース・キネマティクスにより求めることができるようになる。したがって、少ないモーションデータ量で、リアルなキャラクタのモーション再生を実現できるようになる。
【００１４】
【発明の実施の形態】
以下、本発明の好適な実施形態について図面を用いて説明する。なお以下では、本発明を格闘技ゲームに適用した場合を例にとり説明するが、本発明が適用されるものはこれに限られるものではない。
【００１５】
図１に、本実施形態の画像生成装置の機能ブロック図の一例を示す。
【００１６】
ここで操作部１０は、プレーヤが、レバーやボタンを操作することで操作データを入力するためのものであり、操作部１０にて得られた操作データは処理部１００に入力される。
【００１７】
処理部１００は、上記操作データと所与のプログラムなどに基づいて、オブジェクト空間にオブジェクトを配置する処理や、このオブジェクト空間の所与の視点での画像を生成する処理を行うものである。この処理部１００の機能は、ＣＰＵ（ＣＩＳＣ型、ＲＩＳＣ型）、ＤＳＰ、ＡＳＩＣ（ゲートアレイ等）、メモリなどのハードウェアにより実現できる。
【００１８】
情報記憶媒体１９０は、プログラムやデータを記憶するものである。この情報記憶媒体１９０の機能は、ＣＤ−ＲＯＭ、ゲームカセット、ＩＣカード、ＭＯ、ＦＤ、ＤＶＤ、ハードディスク、ＲＯＭなどのハードウェアにより実現できる。処理部１００は、この情報記憶媒体１９０からのプログラム、データに基づいて種々の処理を行うことになる。
【００１９】
処理部１００は、ゲーム演算部１１０とモーション記憶部１２０と画像生成部１５０を含む。
【００２０】
ここでゲーム演算部１１０は、ゲームモードの設定処理、ゲームの進行処理、キャラクタなどの移動体の位置や方向を決める処理、視点位置や視線方向を決める処理、オブジェクト空間へオブジェクトを配置する処理等を行う。
【００２１】
モーション記憶部１２０は種々のモーションデータを記憶するものである。このモーションデータは、初期状態では情報記憶媒体１９０に格納されており、電源投入後等に情報記憶媒体１９０からモーション記憶部１２０に転送される。
【００２２】
また画像生成部１５０は、ゲーム演算部１１０により設定されたオブジェクト空間での所与の視点での画像を生成する処理を行う。画像生成部１５０により生成された画像は表示部１２において表示される。
【００２３】
ゲーム演算部１１０は移動体演算部１１２とモーション再生部１１６を含む。
【００２４】
ここで移動体演算部１１２は、操作部１０から入力される操作データや所与のプログラムに基づき、プレーヤが操作するキャラクタ（移動体）や所与の制御プログラム（コンピュータ）により動きが制御されるキャラクタを、オブジェクト空間内で移動させるための演算を行う。より具体的には、キャラクタの位置や方向を例えば１フレーム（１／６０秒）毎に求める演算を行う。
【００２５】
モーション再生部１１６は、モーション記憶部１２０に記憶されるモーションデータに基づいて、キャラクタのモーションを再生する処理を行う。またモーション再生部１１６は、接地モード時にキャラクタの足を接地位置に固定したり、インバース・キネマティクスによりキャラクタの関節の位置を求めたりする等の処理も行う。
【００２６】
さて、本発明者は、これまでのものに比べて、キャラクタの移動の自由度が高く、キャラクタの特殊なモーション制御が可能な画像生成装置の開発を行っている。例えば、この画像生成装置では、キャラクタと相手キャラクタとを含む面内でキャラクタが移動可能な２Ｄモード（キャラクタを前進、後退、ジャンプさせることが可能）のみならず、ゲームフィールド面上でキャラクタが自由に動き回れるフリー・ランモードが用意される。そして、２Ｄモードからフリー・ランモードへは、レバー等を用いて所与の操作を行うことで切り替えることができる。またこの画像生成装置では、モーションの再生速度をリアルタイムに変化させたり、複雑なモーション補間を行うなどの特殊なモーション制御を行っている。
【００２７】
しかしながら、このような画像生成装置を開発する過程において、本発明者は、キャラクタのモーション再生の際にキャラクタの足が滑ってしまう事態が生じることを見いだした。例えば図２のＦ１、Ｆ２、Ｆ３、Ｆ４では、ゲームフィールド面１８上で前方向に歩くキャラクタ２０の右足２２が滑っている。
【００２８】
即ち、この種の画像生成装置では、プレーヤからの操作データに基づいてキャラクタを前後左右、上下に移動させると共に（正確にはキャラクタの代表点を移動させる）、予め用意されたモーションデータに基づいてキャラクタの手足等を動かしている。したがって、キャラクタが通常に前歩きする場合には、前歩き用に用意されたモーションデータによりキャラクタの足を動かせば、足が滑る事態は生じない。
【００２９】
しかしながら、例えばキャラクタが体を徐々に左に回転しながら前歩きする場合（以下、左回転前歩きと呼ぶ）などに、前歩き用に用意されたモーションデータによりキャラクタの足を動かすと、キャラクタの移動と足のモーションとの間に矛盾が生じ、図２のＦ１〜Ｆ４に示すような足が滑る事態が生じてしまう。
【００３０】
このような事態を防止する１つの手法として、左回転前歩き用のモーションデータを別に用意する手法も考えられる。しかしながら、この手法によると、キャラクタのあらゆる移動パターンに対応した多くのモーションデータを用意しなければならなくなり、モーション記憶部１２０が大容量化し、画像生成装置の大規模化、高コスト化を招く。
【００３１】
そこで本実施形態では、図１のモーション再生部１１６が、キャラクタの足がゲームフィールド面に接地している場合には、この足のゲームフィールド面内での移動を制限しながらキャラクタのモーションを再生するようにしている。即ち図２のＧ１に示すように、キャラクタ２０の右足２２がゲームフィールド面１８に接地すると、Ｇ２、Ｇ３に示すように右足（右足首）２２の移動を制限する。即ち、右足２２を接地位置に固定する、或いは右足２２が接地位置から動かないように強く拘束する。そして、Ｇ４に示すように右足２２が浮いた場合には、この移動制限を解除し、今度は、ゲームフィールド面１８に接地した左足２４の移動を制限する。このような本実施形態の特徴により、足が滑る事態を効果的に防止できる。この結果、キャラクタの移動の自由度の増加や特殊なモーション制御を実現しながら、不自然さのない画像をプレーヤに提供できるようになる。
【００３２】
次に、キャラクタが相手キャラクタの方を向くようにする軸合わせの際の足の滑りについて説明する。例えばモーションデータとして、図３（Ａ）に示すようにキャラクタ２０が横歩きする場合のモーションデータが用意されていたとする。図３（Ａ）において、矢印３０はキャラクタ２０の向く方向を表している。
【００３３】
一方、図３（Ｂ）では、キャラクタ２０は横歩きしながら、相手キャラクタ２１との軸合わせを行っている。即ち、キャラクタ２０は横歩きしながら相手キャラクタ２０の方に向くように体を右に回転させている（以下、右回転横歩きと呼ぶ）。ハードウェアが大規模化するため、このような右回転横歩きに専用のモーションデータを用意することはできない。したがって、図３（Ｂ）のキャラクタ２０のモーション再生は、横歩き用のモーションデータを用いて行うことになる。
【００３４】
図４（Ａ）、（Ｂ）、図５（Ａ）、（Ｂ）、図６（Ａ）、（Ｂ）、図７（Ａ）、（Ｂ）に、右回転横歩きを行う際に、横歩き用のモーションデータによりキャラクタ２０の足を動かした場合の画像の例を示す。
【００３５】
ここで図４（Ａ）〜図５（Ｂ）は、足滑り防止のための対策を何ら施していない場合の例である。この場合には、右足２２とゲームフィールド面１８の模様との位置関係に着目すれば明らかなように、ゲームフィールド面１８上で右足２２が滑ってしまっている。
【００３６】
一方、図６（Ａ）〜図７（Ｂ）は、本実施形態の足滑り防止手法を施した場合の例である。この場合には、右足２２とゲームフィールド面１８の模様との位置関係に着目すれば明らかなように、ゲームフィールド面１８内での右足２２の移動が制限されており（右足２２が接地位置に固定されている）、ゲームフィールド面１８上で右足２２は滑らない。このように本実施形態によれば、軸合わせという複雑なモーション制御を行いながら、プレーヤが不自然さを感じないリアルな画像が生成できるようになる。
【００３７】
さて、本実施形態の足滑り防止手法では、より具体的には以下のような処理を行っている。
【００３８】
即ち、図２のＧ１において右足２２がゲームフィールド面１８に接地しているか否かを、図１のモーション記憶部１２０に記憶されるモーションデータにより特定される基準モーションにより判断する。そして、基準モーションにおいて右足２２がゲームフィールド面１８に接地している場合には、右足２２のモードが通常モードから接地モードに切り替わる。そして、この接地モードにおいては、図２のＧ２、Ｇ３に示すように、ゲームフィールド面１８内での右足２２の移動（右足２２の上下の移動は制限する必要はない）が制限されるようにキャラクタ２０のモーションを変形する。即ち、右足２２の移動が制限されたことによる影響を、モーションを変形する（他の関節の位置などを調整する）ことで相殺し、キャラクタ２０のスケルトンが矛盾の無い形に保たれるようにする。より具体的には、右足２２の移動が制限されるように例えば膝２６の位置を調整する。
【００３９】
一方、基準モーションにおいて右足２２がゲームフィールド面１８から浮いている場合には、右足２２のモードが接地モードから通常モードに切り替わり、右足２２の移動の制限が解除される。そして、接地モードにおいて変形されたキャラクタ２０のモーションを基準モーションに近づけるためのモーション補間を行う。
【００４０】
ここでモーション補間とは、２以上のモーション（関節の位置などにより規定される）を所与の補間率で補間して、新たなモーションを生成することを言う。例えば図８では、基準モーションＲＭと変形モーションＴＭとを補間することで、モーションＣＭが生成されている。より具体的には図９に示すような処理を行う。即ち、基準モーションに対する補間率をα、変形モーションに対する補間率をβとすると、ＣＭ＝ＲＭ×α＋ＴＭ×βとなるモーションＣＭを新たに生成し、再生する。このモーション補間は各フレーム毎に行われる。
【００４１】
通常モードにおいてこのようなモーション補間を行うことで、接地モードにおいて変形してしまったモーションを基準モーションに戻すことが可能になる。即ち、図２のＧ１、Ｇ２、Ｇ３に示すように右足２２が接地している間に変形してしまったモーションを、Ｇ４に示すように右足２２が浮いている間に基準モーションに戻す。このようにすることで、ゲームフィールド面１８内での右足２２の移動を制限する処理を行っても、結果的に矛盾のないモーションを再生できるようになる。
【００４２】
さて、前述のように本実施形態では、接地モードにおいて右足の移動を制限することによる影響を、モーションを変形することで相殺している。このようなモーション変形を自在に行うために、本実施形態ではインバース・キネマティクスを利用している。
【００４３】
即ち図１０において、本実施形態では、モーションデータとして右足（足首）２２の位置と股の付け根２８の位置とポリシーデータとが用意される。ここで、ポリシーデータとは、膝２６の位置を一意的に特定するためのデータであり、股４０とすね４２を含む平面を特定するためのデータを含む。例えば、ゲームフィールド面１８内での右足２２の移動を制限する場合には、右足２２の位置についてはモーションデータを用いずに、右足２２の位置を接地位置に固定してしまう。そして、この固定された右足２２の位置と股４０の付け根２８の位置とポリシーデータとに基づいて、インバース・キネマティクスにより膝２６の位置を求める。このようにすれば、接地モードにおいて右足２２の移動を制限することによる影響を、膝２６の位置の調整により相殺できるようになる。
【００４４】
次に本実施形態の詳細な処理例について、図１１、図１２のフローチャートを用いて説明する。
【００４５】
まず、基準モーションでの当該フレームにおける足の位置を算出する（ステップＳ１）。この基準モーションは、図１のモーション記憶部１２０に記憶されるモーションデータにより特定されるモーションである。
【００４６】
次に、処理対象となる足が接地モードにあるか、通常モードにあるかを判断する（ステップＳ２）。そして、接地モードにある場合には、図２のＧ２、Ｇ３に示すようにその足を接地位置に固定し、図１０に示すようにインバース・キネマティクスにより膝の位置を算出する（ステップＳ３）。
【００４７】
次に、基準モーションにおいて足が浮いているか否かを判断する（ステップＳ４）。この判断は、ステップＳ１で算出された足の位置に基づいて行う。そして、足が浮いている場合には、接地モードから通常モードに切り替える（ステップＳ５）。そして、図９で説明した補間率αを０に設定する（ステップＳ６）。
【００４８】
ステップＳ２で通常モードと判断された場合には、１フレーム前のモーション（変形モーション）と基準モーションとを補間率αに基づきモーション補間して（図８、図９参照）、当該フレームのモーションを求める（ステップＳ７）。なお、接地モードから通常モードに切り替わった直後では、補間率αはステップＳ６により０に設定されている。
【００４９】
次に、基準モーションにおいて足は接地しているか否かを判断する（ステップＳ８）。この判断は、ステップＳ１で算出された足の位置に基づいて行う。そして、足が接地している場合には、通常モードから接地モードに切り替える（ステップＳ９）。そして、当該フレームでの足の位置を接地位置にする（ステップＳ１０）。前述のステップＳ３において、足は、このステップＳ１０での接地位置に固定されることになる。
【００５０】
ステップＳ８で足が接地していないと判断された場合には、補間率αが１．０以下か否かを判断し、補間率が１．０になるまで補間率αを０から徐々に増加させる（ステップＳ１１、Ｓ１２）。このようにすることで、接地モードにおいて変形したモーションを、通常モードにおいて基準モーションに戻すことが可能になる。
【００５１】
次に、本実施形態のインバース・キネマティクスについて図１２のフローチャートを用いて説明する。
【００５２】
まず、ベース（例えば股の付け根）とエフェクタ（例えば足）とを結ぶベクトルＶＢＥを求める（ステップＴ１）。この場合、ベース及びエフェクタの位置は、図１のモーション記憶部１２０に記憶されるモーションデータにより特定される。但し、図２のＧ２、Ｇ３に示すように処理対象となる足（足首）を接地位置に固定する場合には、モーションデータによりエフェクタの位置を特定せずに、足の接地位置をエフェクタの位置にする。
【００５３】
次に、上記のベクトルＶＢＥの向きをワールド座標系のＸ軸に向けるためのＹロール角θ及びＺロール角φに基づいて、変換マトリクスＭ１を求める（ステップＴ２）。
【００５４】
例えば図１３において、ベースの位置を原点Ｏにした場合のエフェクタの位置がＰ（ＰＸ、ＰＹ、ＰＺ）と表せるとする。すると、ＰをＸＺ平面に移す回転角であるＺロール角φは、
φ＝ｔａｎ-1（ＰＹ／ＰＸ）  （ＰＸが０でない場合）
φ＝  π／２                （ＰＸ＝０、ＰＹ＞０）
φ＝−π／２                （ＰＸ＝０、ＰＹ＜０）        （１）
φ＝  ０                    （ＰＸ＝ＰＹ＝０）
と表せる。この回転移動により、Ｐは、Ｐ’（（ＰＸ2＋ＰＹ2）1/2、０、ＰＺ）に移る。また、ＯＰ’をＸ軸の向きに向ける回転角であるＹロール角θは、
0004169222.tif 000002
となる。但し、（ＰＸ2＋ＰＹ2）1/2＝０、ＰＺ＝０になることはないこととする。
【００５５】
上式（１）、（２）のＺロール角φ、Ｙロール角θに基づき、下式（３）のような変換マトリクスＭ１を求める。この変換マトリクスＭ１は、ワールド座標系のＸ軸をベクトルＶＢＥの向きに向けるマトリクスである。
【数１】
0004169222.tif 000003
次にモーションデータに含まれるＸロール角ψ（ポリシーデータに相当）に基づき下式（４）のような変換マトリクスＭ２を求める（ステップＴ３）。この変換マトリクスＭ２は、Ｘ軸周りの回転を表すマトリクスである。
【数２】
0004169222.tif 000004
以上のようにして求められた変換マトリクスＭ１、Ｍ２に基づいて、下式（５）に示すような変換マトリクスＭ（＝Ｍ１×Ｍ２）を求める（ステップＴ４）。
【数３】
0004169222.tif 000005
次に、図１４に示すようなローカル座標系Ｘ’Ｙ’Ｚ’での中間点（例えば膝）ＭＰ（ＸＭ、ＹＭ、０）の位置を求める（ステップＴ５）。ここで、このローカル座標系Ｘ’Ｙ’Ｚ’は、ベースＢとエフェクタＥを結ぶベクトルＶＢＥの向きに設定されるＸ’軸と、Ｘ’Ｙ’平面に中間点ＭＰが位置するように設定されるＹ’軸と、Ｘ’軸及びＹ’軸に直交するＺ’軸とからなる。
【００５６】
なお、上式（５）の変換マトリクスＭは、この図１４のローカル座標系Ｘ’Ｙ’Ｚ’の座標をワールド座標系ＸＹＺの座標に変換するマトリクスに相当する。即ち、上式（５）の変換マトリクスＭの１列目はＸ’軸の方向を向く単位ベクトルを表し、２列目はＹ’軸の方向を向く単位ベクトルを表し、３列目はＺ’軸の方向を向く単位ベクトルを表す。
【００５７】
図１４のローカル座標系Ｘ’Ｙ’Ｚ’において、ベースＢは原点に、エフェクタＥはＸ’軸上に位置する。また中間点ＭＰ（ＸＭ、ＹＭ、０）はＸ’Ｙ’平面上に位置すると共に、ＹＭ≧０となる。またベースＢから中間点ＭＰまでの長さＬ１と、中間点ＭＰからエフェクタＥまでの長さＬ２は、キャラクタの骨格から決まる定数である。またベースＢからエフェクタＥまでの長さＸＥは、モーションデータに含まれるベースＢ及びエフェクタＥの位置より計算により求めることができる。なお、Ｌ１＋Ｌ２≦ＸＥの場合には、ＸＥをＬ１＋Ｌ２に置き換えることにする。
【００５８】
三角形Ｂ−ＭＰ−Ｅは、３辺の長さＬ１、Ｌ２、ＸＥが既知であり、且つ２つの頂点の座標（Ｂ、Ｅの座標）が既知であるため、残りの頂点である中間点ＭＰの座標ＸＭ、ＹＭは下式（６）のように求めることができる。
ＸＭ＝（ＸＥ2＋Ｌ１2−Ｌ２2）／（２×ＸＥ）
ＹＭ＝（Ｌ１2−ＸＭ2）1/2                                   （６）
最後に、上記のようにして求められたローカル座標系Ｘ’Ｙ’Ｚ’での中間点ＭＰの座標（ＸＭ、ＹＭ、０）を、上式（５）の変換マトリクスＭで座標変換することで（変換マトリクスＭと（Ｘ、ＹＭ、０）の積を求める）、ワールド座標系ＸＹＺでの中間点の位置を求める（ステップＴ６）。
【００５９】
以上のようにすることで、膝などの中間点の位置をインバース・キネマティクスにより求めることができる。そして、図１２のインバース・キネマティクスの最大の特徴は、モーションデータに含ませるポリシーデータ（中間点の位置を一意的に決めるためのデータ）が、Ｘロール角ψだけでよい点にある。
【００６０】
即ち、通常の手法では、モーションデータに含ませるポリシーデータとして、図１４のＸ’Ｙ’平面の法線ベクトルのデータと、中間点がＭＰなのかＭＰ’なのかを判別するためのデータとが必要になる。したがって、多くのモーションデータが必要になり図１のモーション記憶部１２０が大容量化し、画像生成装置の大規模化、高コスト化を招く。
【００６１】
本実施形態のインバース・キネマティクスによれば、モーションデータに含ませるポリシーデータがＸロール角だけでよいため、モーション記憶部１２０の大容量化を防止でき、画像生成装置の小規模化、低コスト化を図れる。
【００６２】
次に、本実施形態を実現できるハードウェアの構成の一例について図１５を用いて説明する。同図に示す装置では、ＣＰＵ１０００、ＲＯＭ１００２、ＲＡＭ１００４、情報記憶媒体１００６、音生成ＩＣ１００８、画像生成ＩＣ１０１０、Ｉ／Ｏポート１０１２、１０１４が、システムバス１０１６により相互にデータ送受信可能に接続されている。そして前記画像生成ＩＣ１０１０にはディスプレイ１０１８が接続され、音生成ＩＣ１００８にはスピーカ１０２０が接続され、Ｉ／Ｏポート１０１２にはコントロール装置１０２２が接続され、Ｉ／Ｏポート１０１４には通信装置１０２４が接続されている。
【００６３】
情報記憶媒体１００６は、プログラム、表示物を表現するための画像データ、音データ等が主に格納されるものである。例えば家庭用ゲーム装置ではゲームプログラム等を格納する情報記憶媒体としてＣＤ−ＲＯＭ、ゲームカセット、ＤＶＤ等が用いられる。また業務用ゲーム装置ではＲＯＭ等のメモリが用いられ、この場合には情報記憶媒体１００６はＲＯＭ１００２になる。
【００６４】
コントロール装置１０２２はゲームコントローラ、操作パネル等に相当するものであり、プレーヤがゲーム進行に応じて行う判断の結果を装置本体に入力するための装置である。
【００６５】
情報記憶媒体１００６に格納されるプログラム、ＲＯＭ１００２に格納されるシステムプログラム（装置本体の初期化情報等）、コントロール装置１０２２によって入力される信号等に従って、ＣＰＵ１０００は装置全体の制御や各種データ処理を行う。ＲＡＭ１００４はこのＣＰＵ１０００の作業領域等として用いられる記憶手段であり、情報記憶媒体１００６やＲＯＭ１００２の所与の内容、あるいはＣＰＵ１０００の演算結果等が格納される。また本実施形態を実現するための論理的な構成を持つデータ構造（例えばモーションデータの構造）は、このＲＡＭ又は情報記憶媒体上に構築されることになる。
【００６６】
更に、この種の装置には音生成ＩＣ１００８と画像生成ＩＣ１０１０とが設けられていてゲーム音やゲーム画像の好適な出力が行えるようになっている。音生成ＩＣ１００８は情報記憶媒体１００６やＲＯＭ１００２に記憶される情報に基づいて効果音やバックグラウンド音楽等のゲーム音を生成する集積回路であり、生成されたゲーム音はスピーカ１０２０によって出力される。また、画像生成ＩＣ１０１０は、ＲＡＭ１００４、ＲＯＭ１００２、情報記憶媒体１００６等から送られる画像情報に基づいてディスプレイ１０１８に出力するための画素情報を生成する集積回路である。なおディスプレイ１０１８として、いわゆるヘッドマウントディスプレイ（ＨＭＤ）と呼ばれるものを使用することもできる。
【００６７】
また、通信装置１０２４はゲーム装置内部で利用される各種の情報を外部とやりとりするものであり、他のゲーム装置と接続されてゲームプログラムに応じた所与の情報を送受したり、通信回線を介してゲームプログラム等の情報を送受することなどに利用される。
【００６８】
そして図１〜図１０、図１３、１４で説明した種々の処理は、図１１、図１２のフローチャートに示した処理等を行うプログラムを格納した情報記憶媒体１００６と、該プログラムに従って動作するＣＰＵ１０００、画像生成ＩＣ１０１０、音生成ＩＣ１００８等によって実現される。なお画像生成ＩＣ１０１０、音生成ＩＣ１００８等で行われる処理は、ＣＰＵ１０００あるいは汎用のＤＳＰ等によりソフトウェア的に行ってもよい。
【００６９】
図１６（Ａ）に、本実施形態を業務用ゲーム装置に適用した場合の例を示す。プレーヤは、ディスプレイ１１００上に映し出されたゲーム画像を見ながら、レバー１１０２、ボタン１１０４を操作してゲームを楽しむ。装置に内蔵されるＩＣ基板１１０６には、ＣＰＵ、画像生成ＩＣ、音処理ＩＣ等が実装されている。そして、少なくとも２つの足を有するキャラクタをオブジェクト空間内のゲームフィールド面上で移動させる演算を行うための情報、前記キャラクタのモーションを再生するための情報、オブジェクト空間内の所与の視点において見える画像を生成するための情報、キャラクタの足がゲームフィールド面に接地している場合には該足のゲームフィールド面内での移動を制限しながらキャラクタのモーションを再生するための情報等は、ＩＣ基板１１０６上の情報記憶媒体であるメモリ１１０８に格納される。以下、これらの情報を格納情報と呼ぶ。これらの格納情報は、上記の種々の処理を行うためのプログラムコード、画像情報、音情報、表示物の形状情報、テーブルデータ、リストデータ、プレーヤ情報等の少なくとも１つを含むものである。
【００７０】
図１６（Ｂ）に、本実施形態を家庭用のゲーム装置に適用した場合の例を示す。プレーヤはディスプレイ１２００に映し出されたゲーム画像を見ながら、ゲームコントローラ１２０２、１２０４を操作してゲームを楽しむ。この場合、上記格納情報は、本体装置に着脱自在な情報記憶媒体であるＣＤ−ＲＯＭ１２０６、ＩＣカード１２０８、１２０９等に格納されている。
【００７１】
図１６（Ｃ）に、ホスト装置１３００と、このホスト装置１３００と通信回線１３０２を介して接続される端末１３０４-1〜１３０４-nとを含むゲーム装置に本実施形態を適用した場合の例を示す。この場合、上記格納情報は、例えばホスト装置１３００が制御可能な磁気ディスク装置、磁気テープ装置、メモリ等の情報記憶媒体１３０６に格納されている。端末１３０４-1〜１３０４-nが、ＣＰＵ、画像生成ＩＣ、音処理ＩＣを有し、スタンドアロンでゲーム画像、ゲーム音を生成できるものである場合には、ホスト装置１３００からは、ゲーム画像、ゲーム音を生成するためのゲームプログラム等が端末１３０４-1〜１３０４-nに配送される。一方、スタンドアロンで生成できない場合には、ホスト装置１３００がゲーム画像、ゲーム音を生成し、これを端末１３０４-1〜１３０４-nに伝送し端末において出力することになる。
【００７２】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【００７３】
例えば、本実施形態では、足の移動が制限されたことによる影響を、膝の位置を調整することで相殺したが、膝以外の他の関節の位置を調整することで相殺してもよい。
【００７４】
また、関節の位置を求めるためのインバース・キネマティクスの手法も本実施形態で説明したものが特に好ましいが、本発明では、これ以外の種々のインバース・キネマティクス手法を採用できる。
【００７５】
また本発明のインバース・キネマティクス手法は、図１２で説明したものに限定されず、数学的に等価な種々の手法も本発明の範囲に含まれる。
【００７６】
また本発明のキャラクタは人間に限定されず、本発明は、ゲームに登場する種々のキャラクタ（ロボット等）に適用できる。また３本以上の足を有するキャラクタにも本発明は適用できる。
【００７７】
また本実施形態では本発明を格闘技ゲームに適用した場合について説明したが、本発明はこれに限らず種々のゲーム（ロボット対戦ゲーム、ロールプレイングゲーム、シューティングゲーム、スポーツゲーム、競争ゲーム等）に適用できる。
【００７８】
また本発明は、家庭用、業務用のゲーム装置のみならず、シミュレータ、多数のプレーヤが参加する大型アトラクション装置、パーソナルコンピュータ、マルチメディア端末、ゲーム画像を生成するシステム基板等の種々の画像生成装置にも適用できる。
【００７９】
【図面の簡単な説明】
【図１】本実施形態の画像生成装置の機能ブロック図の一例である。
【図２】足の滑りを防止する本実施形態の手法について説明するための図である。
【図３】図３（Ａ）、（Ｂ）は、軸合わせについて説明するための図である。
【図４】図４（Ａ）、（Ｂ）は、足滑り防止のための対策を何ら施していない場合に生成される画像の例である。
【図５】図５（Ａ）、（Ｂ）も、足滑り防止のための対策を何ら施していない場合に生成される画像の例である。
【図６】図６（Ａ）、（Ｂ）は、本実施形態の足滑り防止手法を施した場合に生成される画像の例である。
【図７】図７（Ａ）、（Ｂ）も、本実施形態の足滑り防止手法を施した場合に生成される画像の例である。
【図８】モーション補間について説明するための図である。
【図９】モーション補間について説明するための図である。
【図１０】インバース・キネマティクスにより膝の位置を算出する手法について説明するための図である。
【図１１】本実施形態の詳細な処理例を説明するためのフローチャートである。
【図１２】本実施形態の詳細な処理例を説明するためのフローチャートである。
【図１３】変換マトリクスの求め方について説明するための図である。
【図１４】ローカル座標系での中間点の位置の求め方について説明するための図である。
【図１５】本実施形態を実現できるハードウェアの構成の一例を示す図である。
【図１６】図１６（Ａ）、（Ｂ）、（Ｃ）は、本実施形態が適用される種々の形態の装置の例を示す図である。
【符号の説明】
１０    操作部
１２    表示部
１８    ゲームフィールド面
２０    キャラクタ
２１    相手キャラクタ
２２    右足
２４    左足
２６    膝
２８    股の付け根
４０    股
４２    すね
１００  処理部
１１０  ゲーム演算部
１１２  移動体演算部
１１６  モーション再生部
１２０  モーション記憶部
１５０  画像生成部
１９０  情報記憶媒体
【図１】
0004169222.tif 000006
【図２】
0004169222.tif 000007
【図３】
0004169222.tif 000008
【図４】
0004169222.tif 000009
【図５】
0004169222.tif 000010
【図６】
0004169222.tif 000011
【図７】
0004169222.tif 000012
【図８】
0004169222.tif 000013
【図９】
0004169222.tif 000014
【図１０】
0004169222.tif 000015
【図１１】
0004169222.tif 000016
【図１２】
0004169222.tif 000017
【図１３】
0004169222.tif 000018
【図１４】
0004169222.tif 000019
【図１５】
0004169222.tif 000020
【図１６】
0004169222.tif 000021