(57)【特許請求の範囲】
【請求項１】
仮想３次元空間に存在するオブジェクトに第１の動作をさせた後に、該第１の動作とは異なる第２の動作をさせ、該第１の動作と該第２の動作の少なくとも一方に３次元回転動作を含ませて前記オブジェクトを動作させるオブジェクト動作装置であって、
前記第１の動作を規定する複数単位時間分のデータからなる第１モーションデータと、前記第２の動作を規定する複数単位時間分のデータからなる第２モーションデータとを記憶するモーションデータ記憶手段と、
前記第１モーションデータを構成する複数単位時間分のデータのうちの前記オブジェクトを前記第１モーションデータに従って動作させる終端のデータを設定する第１モーションデータ設定手段と、
前記第２モーションデータを構成する複数単位時間分のデータのうちの前記オブジェクトを前記第２モーションデータに従って動作させる始端のデータを設定する第２モーションデータ設定手段と、
前記オブジェクトを前記第１モーションデータに従って動作させる終端と前記第２モーションデータに従って動作させる始端との間に介在させる複数単位時間分のデータをモーションデータとして生成する補間モーションデータ生成手段と、
前記第１モーションデータの前記終端までの各単位時間のデータ、前記補間モーションデータ生成手段により生成された各単位時間のデータ、前記第２モーションデータの前記始端からの各単位時間のデータを用いて、前記オブジェクトを動作させるオブジェクト動作手段とを備え、
前記補間モーションデータ生成手段は、
前記終端と前記始端との間に介在させる複数単位時間での各単位時間において、前記第１モーションデータに従う場合における前記オブジェクトの３次元回転動作の回転量と、前記第２モーションデータに従う場合における前記オブジェクトの３次元回転動作の回転量とを、それぞれ特定する回転量特定手段と、
前記回転量特定手段が特定した前記第１モーションデータに従う場合の前記オブジェクトの３次元回転動作の各単位時間における回転量と、前記第２モーションデータに従う場合の前記オブジェクトの３次元回転動作の各単位時間における回転量とを、それぞれスカラー回転量に分解する回転量分解手段と、
前記回転量分解手段が分解した前記第１モーションデータに従う場合の各単位時間におけるスカラー回転量と、前記第２モーションデータに従う場合の各単位時間におけるスカラー回転量とに基づいて、前記第１モーションデータに従う場合の前記オブジェクトの３次元回転動作の各単位時間におけるスカラー速度と、前記第２モーションデータに従う場合の前記オブジェクトの３次元回転動作の各単位時間におけるスカラー速度とを算出するスカラー速度算出手段と、
前記スカラー速度算出手段が算出した前記第１モーションデータに従う場合の各単位時間におけるスカラー速度と、前記第２モーションデータに従う場合の各単位時間におけるスカラー速度とに基づいて、前記終端と前記始端との間に介在させる複数単位時間において適用させるべき前記オブジェクトの３次元回転動作の各単位時間におけるスカラー速度を特定するスカラー速度特定手段と、
前記スカラー速度特定手段が特定した各単位時間におけるスカラー速度に対して、所定の演算を行って、前記終端と前記始端との間に介在させる複数単位時間での各単位時間で適用させるべき前記オブジェクトの３次元回転動作についてのスカラー回転量を算出するスカラー回転量算出手段と、
前記スカラー回転量算出手段が算出したスカラー回転量に基づいて、前記終端と前記始端との間に介在させる複数単位時間での各単位時間で適用させるべき前記オブジェクトの回転量を再生する回転量再生手段とを含む
ことを特徴とするオブジェクト動作装置。
【請求項２】
前記スカラー回転量算出手段は、前記所定の演算として、所定の行列を用いた行列演算を行う
ことを特徴とする請求項１に記載のオブジェクト動作装置。
【請求項３】
前記所定の行列を用いた行列演算は、ポアソン方程式による演算である
ことを特徴とする請求項２に記載のオブジェクト動作装置。
【請求項４】
前記スカラー回転量算出手段は、前記終端と前記始端との間に介在させる複数単位時間での各単位時間で適用させるべきスカラー回転量を算出する際に、前記スカラー速度のＸ番目の要素に対して前記所定の行列のＸ行のみを用いて演算を行う
ことを特徴とする請求項３に記載のオブジェクト動作装置。
【請求項５】
前記回転量分解手段は、指数マップにより前記オブジェクトの３次元回転動作の回転量をスカラー回転量に分解し、
前記回転量再生手段は、対数マップにより前記スカラー回転量に基づいて前記オブジェクトの回転量を再生する
ことを特徴とする請求項１乃至４のいずれか１項に記載のオブジェクト動作装置。
【請求項６】
前記第１の動作と前記第２の動作とは、何れも３次元回転動作が含まれるものであり、
前記スカラー速度特定手段は、前記スカラー速度算出手段が算出した前記第１モーションデータに従う場合の各単位時間におけるスカラー速度と、前記第２モーションデータに従う場合の各単位時間におけるスカラー速度とを対応する単位時間毎に比較し、各単位時間において絶対値の大きい方のスカラー速度を、前記終端と前記始端との間に介在させる複数単位時間において適用させるべき前記オブジェクトの３次元回転動作の各単位時間におけるスカラー速度として特定する
ことを特徴とする請求項１乃至５のいずれか１項に記載のオブジェクト動作装置。
【請求項７】
前記第１モーションデータを構成する複数単位時間分のデータのうちの前記終端よりも後の単位時間のデータと、前記第２モーションデータを構成する複数単位時間分のデータのうちの前記始端よりも前の単位時間のデータとをそれぞれ比較し、各々について互いに最も近似する単位時間のデータを特定する近似データ特定手段と、
前記第１モーションデータと前記第２モーションデータとを、前記近似データ特定手段が特定した単位時間のデータを一致させるようにタイムシフトするタイムシフト手段とを備え、
前記補間モーションデータ生成手段は、前記オブジェクトを前記第１モーションデータに従って動作させる終端と前記第２モーションデータに従って動作させる始端との間に介在させる複数単位時間分のデータを、前記タイムシフト手段によりタイムシフトされた前記第１モーションデータと前記第２モーションデータとに基づいて生成する
ことを特徴とする請求項１乃至６のいずれか１項に記載のオブジェクト動作装置。
【請求項８】
コンピュータ装置において、仮想３次元空間に存在するオブジェクトに第１の動作をさせた後に、該第１の動作とは異なる第２の動作をさせ、該第１の動作と該第２の動作の少なくとも一方に３次元回転動作を含ませて前記オブジェクトを動作させる方法であって、
前記第１の動作を規定する複数単位時間分のデータからなる第１モーションデータと、前記第２の動作を規定する複数単位時間分のデータからなる第２モーションデータとを前記コンピュータ装置に予め記憶させる第１のステップと、
前記第１モーションデータを構成する複数単位時間分のデータのうちの前記オブジェクトを前記第１モーションデータに従って動作させる終端のデータを設定する第２のステップと、
前記第２モーションデータを構成する複数単位時間分のデータのうちの前記オブジェクトを前記第２モーションデータに従って動作させる始端のデータを設定する第３のステップと、
前記オブジェクトを前記第１モーションデータに従って動作させる終端と前記第２モーションデータに従って動作させる始端との間に介在させる複数単位時間分のデータをモーションデータとして生成する第４のステップと、
前記第１モーションデータの前記終端までの各単位時間のデータ、前記生成された各単位時間のデータ、前記第２モーションデータの前記始端からの各単位時間のデータを用いて、前記オブジェクトを動作させる第５のステップとを含み、
前記第４のステップは、
前記終端と前記始端との間に介在させる複数単位時間での各単位時間において、前記第１モーションデータに従う場合における前記オブジェクトの３次元回転動作の回転量と、前記第２モーションデータに従う場合における前記オブジェクトの３次元回転動作の回転量とを、それぞれ特定するステップと、
前記第１モーションデータに従う場合の前記オブジェクトの３次元回転動作の各単位時間における回転量と、前記第２モーションデータに従う場合の前記オブジェクトの３次元回転動作の各単位時間における回転量とを、それぞれスカラー回転量に分解するステップと、
前記第１モーションデータに従う場合の各単位時間におけるスカラー回転量と、前記第２モーションデータに従う場合の各単位時間におけるスカラー回転量とに基づいて、前記第１モーションデータに従う場合の前記オブジェクトの３次元回転動作の各単位時間におけるスカラー速度と、前記第２モーションデータに従う場合の前記オブジェクトの３次元回転動作の各単位時間におけるスカラー速度とを算出するステップと、
前記第１モーションデータに従う場合の各単位時間におけるスカラー速度と、前記第２モーションデータに従う場合の各単位時間におけるスカラー速度とに基づいて、前記終端と前記始端との間に介在させる複数単位時間において適用させるべき前記オブジェクトの３次元回転動作の各単位時間におけるスカラー速度を特定するステップと、
前記各単位時間におけるスカラー速度に対して、所定の演算を行って、前記終端と前記始端との間に介在させる複数単位時間での各単位時間で適用させるべき前記オブジェクトの３次元回転動作についてのスカラー回転量を算出するステップと、
前記スカラー回転量に基づいて、前記終端と前記始端との間に介在させる複数単位時間での各単位時間で適用させるべき前記オブジェクトの回転量を再生するステップとを含む
ことを特徴とするオブジェクト動作方法。
【請求項９】
コンピュータ装置において、仮想３次元空間に存在するオブジェクトに第１の動作をさせた後に、該第１の動作とは異なる第２の動作をさせ、該第１の動作と該第２の動作の少なくとも一方に３次元回転動作を含ませて前記オブジェクトを動作させるためのプログラムであって、
前記第１の動作を規定する複数単位時間分のデータからなる第１モーションデータと、前記第２の動作を規定する複数単位時間分のデータからなる第２モーションデータとを前記コンピュータ装置に予め記憶させるモーションデータ記憶手段、
前記第１モーションデータを構成する複数単位時間分のデータのうちの前記オブジェクトを前記第１モーションデータに従って動作させる終端のデータを設定する第１モーションデータ設定手段、
前記第２モーションデータを構成する複数単位時間分のデータのうちの前記オブジェクトを前記第２モーションデータに従って動作させる始端のデータを設定する第２モーションデータ設定手段、
前記オブジェクトを前記第１モーションデータに従って動作させる終端と前記第２モーションデータに従って動作させる始端との間に介在させる複数単位時間分のデータをモーションデータとして生成する補間モーションデータ生成手段、及び、
前記第１モーションデータの前記終端までの各単位時間のデータ、前記補間モーションデータ生成手段により生成された各単位時間のデータ、前記第２モーションデータの前記始端からの各単位時間のデータを用いて、前記オブジェクトを動作させるオブジェクト動作手段として前記コンピュータ装置を機能させるためのプログラムであって、
前記補間モーションデータ生成手段は、
前記終端と前記始端との間に介在させる複数単位時間での各単位時間において、前記第１モーションデータに従う場合における前記オブジェクトの３次元回転動作の回転量と、前記第２モーションデータに従う場合における前記オブジェクトの３次元回転動作の回転量とを、それぞれ特定する回転量特定手段と、
前記回転量特定手段が特定した前記第１モーションデータに従う場合の前記オブジェクトの３次元回転動作の各単位時間における回転量と、前記第２モーションデータに従う場合の前記オブジェクトの３次元回転動作の各単位時間における回転量とを、それぞれスカラー回転量に分解する回転量分解手段と、
前記回転量分解手段が分解した前記第１モーションデータに従う場合の各単位時間におけるスカラー回転量と、前記第２モーションデータに従う場合の各単位時間におけるスカラー回転量とに基づいて、前記第１モーションデータに従う場合の前記オブジェクトの３次元回転動作の各単位時間におけるスカラー速度と、前記第２モーションデータに従う場合の前記オブジェクトの３次元回転動作の各単位時間におけるスカラー速度とを算出するスカラー速度算出手段と、
前記スカラー速度算出手段が算出した前記第１モーションデータに従う場合の各単位時間におけるスカラー速度と、前記第２モーションデータに従う場合の各単位時間におけるスカラー速度とに基づいて、前記終端と前記始端との間に介在させる複数単位時間において適用させるべき前記オブジェクトの３次元回転動作の各単位時間におけるスカラー速度を特定するスカラー速度特定手段と、
前記スカラー速度特定手段が特定した各単位時間におけるスカラー速度に対して、所定の演算を行って、前記終端と前記始端との間に介在させる複数単位時間での各単位時間で適用させるべき前記オブジェクトの３次元回転動作についてのスカラー回転量を算出するスカラー回転量算出手段と、
前記スカラー回転量算出手段が算出したスカラー回転量に基づいて、前記終端と前記始端との間に介在させる複数単位時間での各単位時間で適用させるべき前記オブジェクトの回転量を再生する回転量再生手段とを含む
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、連続して実行されるオブジェクトの２つの異なる動作を違和感なく接続するためにモーションデータをブレンドするオブジェクト動作装置に関する。
【背景技術】
【０００２】
従来より、仮想３次元空間に存在するキャラクタなどのオブジェクトを動作させ、これらのオブジェクトが動作する様子を仮想カメラにより透視変換して生成する手法が、３次元ビデオゲームにおいて広く適用されている。ここで、オブジェクトの動作を忠実に再現するため、２つの異なる動作が連続して実行される場合には、その前の動作と後の動作の移行期間について、それらの異なる動作のモーションデータのブレンドを行い、そのブレンドしたモーションデータに基づいてオブジェクトを動作させることによって、その動作の移行を違和感なく表現しているものがある。
【０００３】
このようなモーションデータのブレンドによく使われる技法としては、連続する前後の動作に係るモーションデータにおいて、その前の動作と後の動作の重複する期間において、徐々にそれらの動作に係るモーションデータの混合率を変えながらブレンドするものがある。詳細には、Ｘ軸回り、Ｙ軸回りでの回転角度によりモーション合成率（モーションブレンド率）を求め、求められたモーション合成率で基準動作を合成することで、キャラクタのモーションデータを生成し、生成されたモーションデータでキャラクタを動作させるものがある（特許文献１）。また、スプライン補間によって、２つの異なる動作の移行を違和感なく表現するものもある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−２３７８８２号公報（段落０１１８等）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に開示された技術は、その回転角度等によって定められるモデルの形状を特徴とした合成を行うものであり、前後それぞれの動作に係るモーションデータにおいて異なる移動や回転の速度の特徴を有する場合には、その速度の特徴を無視することになってしまう。また、前後それぞれのモーションデータのブレンドを行う重複する複数フレーム期間において、徐々に変化するモーションデータの混合率を算出する方法を設定する必要もあり、また、このようなモーションデータのブレンドは、モーションデータの重複する複数フレーム期間が短いと適用が困難となる。
【０００６】
一方、スプライン補間によって、、２つの異なる動作の移行を表現する場合には、上記した混合率を徐々に変えて移行させる場合に要する、モーションデータにおける複数フレーム期間の重複について、その重複が短い場合や、重複が無い場合でも適用が可能となる。しかしながら、前後の動作に係る位置や角度のデータに対してスプライン曲線の当てはめを行うに際し、その曲線の種類の選択や、曲線パラメータの最適化は手間を要することになる。また、スプライン補間においても、前後それぞれの異なる動作における移動や回転の速度の特徴を無視するものであり、いずれの場合もモーションの境目を平滑化して隠すことによって動作の移行を実行するものとなっている。
【０００７】
本発明は、回転動作を含む連続して実行されるオブジェクトの２つの異なる動作が滑らかに接続されるように、該２つの動作間に介在させるモーションデータを生成するオブジェクト動作装置等を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明の第１の観点にかかるオブジェクト動作装置は、仮想３次元空間に存在するオブジェクトに第１の動作をさせた後に、該第１の動作とは異なる第２の動作をさせ、該第１の動作と該第２の動作の少なくとも一方に３次元回転動作を含ませて前記オブジェクトを動作させるオブジェクト動作装置であって、前記第１の動作を規定する複数単位時間分のデータからなる第１モーションデータと、前記第２の動作を規定する複数単位時間分のデータからなる第２モーションデータとを記憶するモーションデータ記憶手段と、前記第１モーションデータを構成する複数単位時間分のデータのうちの前記オブジェクトを前記第１モーションデータに従って動作させる終端のデータを設定する第１モーションデータ設定手段と、前記第２モーションデータを構成する複数単位時間分のデータのうちの前記オブジェクトを前記第２モーションデータに従って動作させる始端のデータを設定する第２モーションデータ設定手段と、前記オブジェクトを前記第１モーションデータに従って動作させる終端と前記第２モーションデータに従って動作させる始端との間に介在させる複数単位時間分のデータをモーションデータとして生成する補間モーションデータ生成手段と、前記第１モーションデータの前記終端までの各単位時間のデータ、前記補間モーションデータ生成手段により生成された各単位時間のデータ、前記第２モーションデータの前記始端からの各単位時間のデータを用いて、前記オブジェクトを動作させるオブジェクト動作手段とを備え、前記補間モーションデータ生成手段は、前記終端と前記始端との間に介在させる複数単位時間での各単位時間において、前記第１モーションデータに従う場合における前記オブジェクトの３次元回転動作の回転量と、前記第２モーションデータに従う場合における前記オブジェクトの３次元回転動作の回転量とを、それぞれ特定する回転量特定手段と、前記回転量特定手段が特定した前記第１モーションデータに従う場合の前記オブジェクトの３次元回転動作の各単位時間における回転量と、前記第２モーションデータに従う場合の前記オブジェクトの３次元回転動作の各単位時間における回転量とを、それぞれスカラー回転量に分解する回転量分解手段と、前記回転量分解手段が分解した前記第１モーションデータに従う場合の各単位時間におけるスカラー回転量と、前記第２モーションデータに従う場合の各単位時間におけるスカラー回転量とに基づいて、前記第１モーションデータに従う場合の前記オブジェクトの３次元回転動作の各単位時間におけるスカラー速度と、前記第２モーションデータに従う場合の前記オブジェクトの３次元回転動作の各単位時間におけるスカラー速度とを算出するスカラー速度算出手段と、前記スカラー速度算出手段が算出した前記第１モーションデータに従う場合の各単位時間におけるスカラー速度と、前記第２モーションデータに従う場合の各単位時間におけるスカラー速度とに基づいて、前記終端と前記始端との間に介在させる複数単位時間において適用させるべき前記オブジェクトの３次元回転動作の各単位時間におけるスカラー速度を特定するスカラー速度特定手段と、前記スカラー速度特定手段が特定した各単位時間におけるスカラー速度に対して、所定の演算を行って、前記終端と前記始端との間に介在させる複数単位時間での各単位時間で適用させるべき前記オブジェクトの３次元回転動作についてのスカラー回転量を算出するスカラー回転量算出手段と、前記スカラー回転量算出手段が算出したスカラー回転量に基づいて、前記終端と前記始端との間に介在させる複数単位時間での各単位時間で適用させるべき前記オブジェクトの回転量を再生する回転量再生手段とを含むことを特徴とする。
【０００９】
上記第１の観点にかかるオブジェクト動作装置において、前記スカラー回転量算出手段は、前記所定の演算として、所定の行列を用いた行列演算を行うこととすることができる。ここで、前記所定の行列を用いた行列演算は、ポアソン方程式による演算であってもよい。
【００１０】
上記第１の観点にかかるオブジェクト動作装置において、前記スカラー回転量算出手段は、前記終端と前記始端との間に介在させる複数単位時間での各単位時間で適用させるべきスカラー回転量を算出する際に、前記スカラー速度のＸ番目の要素に対して前記所定の行列のＸ行のみを用いて演算を行うこととしてもよい。
【００１１】
上記第１の観点にかかるオブジェクト動作装置において、前記回転量分解手段は、指数マップにより前記オブジェクトの３次元回転動作の回転量をスカラー回転量に分解し、前記回転量再生手段は、対数マップにより前記スカラー回転量に基づいて前記オブジェクトの回転量を再生することとしてもよい。
【００１２】
上記オブジェクト動作装置では、仮想３次元空間に存在するオブジェクトに対して、第１モーションデータにより規定される第１の動作を設定された終端のデータとなるまでさせた後に、第２のモーションデータにより規定される第２の動作を設定された始端のデータからさせるものとなっている。ここで、第１の動作から第２の動作に移行されるまでには、補間モーションデータ生成手段によって生成される複数単位時間分のデータがモーションデータとして介在することとなる。
【００１３】
ところで、第１の動作と第２の動作の少なくとも一方には、３次元回転動作が含まれている。３次元回転動作のデータは非線形なデータであり、少なくとも一方がこのような非線形なデータを含む第１のモーションデータと第２のモーションデータが違和感なく滑らかに接続されるように第１の動作から第２の動作に移行されるまでのモーションデータを生成するのは、単純なことではない。
【００１４】
もっとも、上記オブジェクト動作装置では、３次元回転動作の回転量を単位時間毎に特定し、それぞれスカラー回転量に分解している。そして、分解した各単位時間におけるスカラー回転量からスカラー速度を特定し、さらにスカラー回転量を算出するものとしている。そして、算出したスカラー回転量に基づいて、第１の動作から第２の動作に移行されるまでのモーションデータにおいて、第１モーションデータに従って動作させる終端と第２モーションデータに従って動作させる始端との間に介在させる複数単位時間での各単位時間で適用させるべきオブジェクトの回転量を再生させるものとしている。
【００１５】
このような手法により線形なデータでの計算として第１モーションデータに従って動作させる終端と第２モーションデータに従って動作させる始端との間に介在させる複数単位時間分のモーションデータが生成されるので、第１モーションデータと第２モーションデータが違和感なく滑らかに接続されるように少なくとも一方に回転動作が含まれる第１の動作から第２の動作に移行されるまでのモーションデータを生成することが、比較的単純なものとなる。
【００１６】
また、スカラー回転量の算出のための所定の演算を、所定の行列を用いた行列演算、例えば、ポアソン方程式による演算で行うものとすることで、演算が単純なものとなる。しかも、スカラー速度のＸ番目の要素に対して所定の行列のＸ行のみを用いてスカラー回転量を算出するための演算を行うものとすることで、その演算のための処理量を軽減することができる。さらに、スカラー回転量への分解に指数マップを、オブジェクトの回転量の再生に対数マップを適用することで、スカラー回転量への分解やオブジェクトの回転量の再生を、比較的単純なものとすることができる。
【００１７】
上記第１の観点にかかるオブジェクト動作装置において、前記第１の動作と前記第２の動作とは、何れも３次元回転動作が含まれるものであり、前記スカラー速度特定手段は、前記スカラー速度算出手段が算出した前記第１モーションデータに従う場合の各単位時間におけるスカラー速度と、前記第２モーションデータに従う場合の各単位時間におけるスカラー速度とを対応する単位時間毎に比較し、各単位時間において絶対値の大きい方のスカラー速度を、前記終端と前記始端との間に介在させる複数単位時間において適用させるべき前記オブジェクトの３次元回転動作の各単位時間におけるスカラー速度として特定することとしてもよい。
【００１８】
このように、各単位時間において絶対値の大きい方のスカラー速度を、第１モーションデータに従って動作させる終端と第２モーションデータに従って動作させる始端との間に介在させる複数単位時間の各単位時間におけるスカラー速度として特定することで、第１モーションデータと第２モーションデータが違和感なく滑らかに接続されるような第１の動作から第２の動作に移行されるまでのモーションデータを生成することが可能となる。
【００１９】
上記第１の観点にかかるオブジェクト動作装置において、前記第１モーションデータを構成する複数単位時間分のデータのうちの前記終端よりも後の単位時間のデータと、前記第２モーションデータを構成する複数単位時間分のデータのうちの前記始端よりも前の単位時間のデータとをそれぞれ比較し、各々について互いに最も近似する単位時間のデータを特定する近似データ特定手段と、前記第１モーションデータと前記第２モーションデータとを、前記近似データ特定手段が特定した単位時間のデータを一致させるようにタイムシフトするタイムシフト手段とを備え、前記補間モーションデータ生成手段は、前記オブジェクトを前記第１モーションデータに従って動作させる終端と前記第２モーションデータに従って動作させる始端との間に介在させる複数単位時間分のデータを、前記タイムシフト手段によりタイムシフトされた前記第１モーションデータと前記第２モーションデータとに基づいて生成することとしてもよい。
【００２０】
この場合、第１モーションデータに従って動作させる終端と第２モーションデータに従って動作させる始端との間に介在させる複数単位時間の各単位時間におけるデータには、第１モーションデータに含まれる各単位時間のデータと第２モーションデータに含まれる各単位時間のデータとのうちで最も近似したもの同士に基づいて生成されたデータ、つまり、第１モーションデータと第２モーションデータとも差が最も少ないデータが含まれる。これにより、第１モーションデータと第２モーションデータが違和感なく滑らかに接続されるような第１の動作から第２の動作に移行されるまでのモーションデータを生成することが可能となる。
【００２１】
上記目的を達成するため、本発明の第２の観点にかかるオブジェクト動作方法は、コンピュータ装置において、仮想３次元空間に存在するオブジェクトに第１の動作をさせた後に、該第１の動作とは異なる第２の動作をさせ、該第１の動作と該第２の動作の少なくとも一方に３次元回転動作を含ませて前記オブジェクトを動作させる方法であって、前記第１の動作を規定する複数単位時間分のデータからなる第１モーションデータと、前記第２の動作を規定する複数単位時間分のデータからなる第２モーションデータとを前記コンピュータ装置に予め記憶させる第１のステップと、前記第１モーションデータを構成する複数単位時間分のデータのうちの前記オブジェクトを前記第１モーションデータに従って動作させる終端のデータを設定する第２のステップと、前記第２モーションデータを構成する複数単位時間分のデータのうちの前記オブジェクトを前記第２モーションデータに従って動作させる始端のデータを設定する第３のステップと、前記オブジェクトを前記第１モーションデータに従って動作させる終端と前記第２モーションデータに従って動作させる始端との間に介在させる複数単位時間分のデータをモーションデータとして生成する第４のステップと、前記第１モーションデータの前記終端までの各単位時間のデータ、前記生成された各単位時間のデータ、前記第２モーションデータの前記始端からの各単位時間のデータを用いて、前記オブジェクトを動作させる第５のステップとを含み、前記第４のステップは、前記終端と前記始端との間に介在させる複数単位時間での各単位時間において、前記第１モーションデータに従う場合における前記オブジェクトの３次元回転動作の回転量と、前記第２モーションデータに従う場合における前記オブジェクトの３次元回転動作の回転量とを、それぞれ特定するステップと、前記第１モーションデータに従う場合の前記オブジェクトの３次元回転動作の各単位時間における回転量と、前記第２モーションデータに従う場合の前記オブジェクトの３次元回転動作の各単位時間における回転量とを、それぞれスカラー回転量に分解するステップと、前記第１モーションデータに従う場合の各単位時間におけるスカラー回転量と、前記第２モーションデータに従う場合の各単位時間におけるスカラー回転量とに基づいて、前記第１モーションデータに従う場合の前記オブジェクトの３次元回転動作の各単位時間におけるスカラー速度と、前記第２モーションデータに従う場合の前記オブジェクトの３次元回転動作の各単位時間におけるスカラー速度とを算出するステップと、前記第１モーションデータに従う場合の各単位時間におけるスカラー速度と、前記第２モーションデータに従う場合の各単位時間におけるスカラー速度とに基づいて、前記終端と前記始端との間に介在させる複数単位時間において適用させるべき前記オブジェクトの３次元回転動作の各単位時間におけるスカラー速度を特定するステップと、前記各単位時間におけるスカラー速度に対して、所定の演算を行って、前記終端と前記始端との間に介在させる複数単位時間での各単位時間で適用させるべき前記オブジェクトの３次元回転動作についてのスカラー回転量を算出するステップと、前記スカラー回転量に基づいて、前記終端と前記始端との間に介在させる複数単位時間での各単位時間で適用させるべき前記オブジェクトの回転量を再生するステップとを含むことを特徴とする。
【００２２】
上記目的を達成するため、本発明の第３の観点にかかるプログラムは、コンピュータ装置において、仮想３次元空間に存在するオブジェクトに第１の動作をさせた後に、該第１の動作とは異なる第２の動作をさせ、該第１の動作と該第２の動作の少なくとも一方に３次元回転動作を含ませて前記オブジェクトを動作させるためのプログラムであって、前記第１の動作を規定する複数単位時間分のデータからなる第１モーションデータと、前記第２の動作を規定する複数単位時間分のデータからなる第２モーションデータとを前記コンピュータ装置に予め記憶させるモーションデータ記憶手段、前記第１モーションデータを構成する複数単位時間分のデータのうちの前記オブジェクトを前記第１モーションデータに従って動作させる終端のデータを設定する第１モーションデータ設定手段、前記第２モーションデータを構成する複数単位時間分のデータのうちの前記オブジェクトを前記第２モーションデータに従って動作させる始端のデータを設定する第２モーションデータ設定手段、前記オブジェクトを前記第１モーションデータに従って動作させる終端と前記第２モーションデータに従って動作させる始端との間に介在させる複数単位時間分のデータをモーションデータとして生成する補間モーションデータ生成手段、及び、前記第１モーションデータの前記終端までの各単位時間のデータ、前記補間モーションデータ生成手段により生成された各単位時間のデータ、前記第２モーションデータの前記始端からの各単位時間のデータを用いて、前記オブジェクトを動作させるオブジェクト動作手段として前記コンピュータ装置を機能させるためのプログラムであって、前記補間モーションデータ生成手段は、前記終端と前記始端との間に介在させる複数単位時間での各単位時間において、前記第１モーションデータに従う場合における前記オブジェクトの３次元回転動作の回転量と、前記第２モーションデータに従う場合における前記オブジェクトの３次元回転動作の回転量とを、それぞれ特定する回転量特定手段と、前記回転量特定手段が特定した前記第１モーションデータに従う場合の前記オブジェクトの３次元回転動作の各単位時間における回転量と、前記第２モーションデータに従う場合の前記オブジェクトの３次元回転動作の各単位時間における回転量とを、それぞれスカラー回転量に分解する回転量分解手段と、前記回転量分解手段が分解した前記第１モーションデータに従う場合の各単位時間におけるスカラー回転量と、前記第２モーションデータに従う場合の各単位時間におけるスカラー回転量とに基づいて、前記第１モーションデータに従う場合の前記オブジェクトの３次元回転動作の各単位時間におけるスカラー速度と、前記第２モーションデータに従う場合の前記オブジェクトの３次元回転動作の各単位時間におけるスカラー速度とを算出するスカラー速度算出手段と、前記スカラー速度算出手段が算出した前記第１モーションデータに従う場合の各単位時間におけるスカラー速度と、前記第２モーションデータに従う場合の各単位時間におけるスカラー速度とに基づいて、前記終端と前記始端との間に介在させる複数単位時間において適用させるべき前記オブジェクトの３次元回転動作の各単位時間におけるスカラー速度を特定するスカラー速度特定手段と、前記スカラー速度特定手段が特定した各単位時間におけるスカラー速度に対して、所定の演算を行って、前記終端と前記始端との間に介在させる複数単位時間での各単位時間で適用させるべき前記オブジェクトの３次元回転動作についてのスカラー回転量を算出するスカラー回転量算出手段と、前記スカラー回転量算出手段が算出したスカラー回転量に基づいて、前記終端と前記始端との間に介在させる複数単位時間での各単位時間で適用させるべき前記オブジェクトの回転量を再生する回転量再生手段とを含むことを特徴とする。
【００２３】
上記第３の観点にかかるプログラムは、コンピュータ読み取り可能な記録媒体に記録して提供することができる。このコンピュータ読み取り可能な記録媒体は、上記コンピュータ装置に着脱可能に構成され、上記コンピュータ装置とは別個に提供される記録媒体としてもよい。このコンピュータ読み取り可能な記録媒体は、上記コンピュータ装置内に設けられ、上記コンピュータ装置と共に提供される固定ディスク装置などの記録媒体としてもよい。上記第３の観点にかかるプログラムは、ネットワーク上に存在するサーバ装置から、そのデータ信号を搬送波に重畳して、ネットワークを通じて上記コンピュータ装置に配信することもできる。
【００２４】
また、上記第３の観点にかかるプログラムに含まれる各手段の実行する処理を各ステップの処理として実行する方法も、本発明の範囲に含まれる。
【図面の簡単な説明】
【００２５】
【図１】本発明の実施の形態に適用されるビデオゲーム装置の構成を示すブロック図である。
【図２】移行動作がブレンドされる場合の、実行される動作の流れを模式的に表した図である。
【図３】終端後フレームと始端前フレームのタイミングの設定を模式的に表した図である。
【図４】補間速度の抽出を模式的に表した図である。
【図５】移行モーションに適用される補間速度カーブを模式的に表した図である。
【図６】ポアソン方程式を適用した移行モーションに係るモーションデータの生成を模式的に表した図である。
【発明を実施するための形態】
【００２６】
図１は、この実施の形態に適用されるビデオゲーム装置の構成を示すブロック図である。図示するように、ビデオゲーム装置１００は、装置本体１０１を中心として構築される。この装置本体１０１は、その内部バス１１９に接続された制御部１０３、ＲＡＭ（Random Access Memory）１０５、ハードディスク・ドライブ（ＨＤＤ）１０７、サウンド処理部１０９、グラフィック処理部１１１、ＤＶＤ／ＣＤ−ＲＯＭドライブ１１３、通信インターフェイス１１５、及びインターフェイス部１１７を含む。
【００２７】
この装置本体１０１のサウンド処理部１０９は、スピーカーであるサウンド出力装置１２５に、グラフィック処理部１１１は、表示画面１２２を有する表示装置１２１に接続されている。ＤＶＤ／ＣＤ−ＲＯＭドライブ１１３には、記録媒体（本実施の形態では、ＤＶＤ−ＲＯＭまたはＣＤ−ＲＯＭ）１３１を装着し得る。通信インターフェイス１１５は、ネットワーク１５１に接続される。インターフェイス部１１７には、入力部（コントローラ）１６１とメモリーカード１６２とが接続されている。
【００２８】
制御部１０３は、ＣＰＵ（Central Processing Unit）やＲＯＭ（Read Only Memory）などを含み、ＨＤＤ１０７や記録媒体１３１上に格納されたプログラムを実行し、装置本体１０１の制御を行う。制御部１０３は、内部タイマを備えている。ＲＡＭ１０５は、制御部１０３のワークエリアであり、後述する、プレイヤキャラクタの基本動作などに関する情報は、ＲＡＭ１０５に一時記憶される。ＨＤＤ１０７は、プログラムやプレイヤキャラクタの基本動作などに関するデータを保存するための記憶領域である。サウンド処理部１０９は、制御部１０３により実行されているプログラムがサウンド出力を行うよう指示している場合に、その指示を解釈して、サウンド出力装置１２５にサウンド信号を出力する。
【００２９】
グラフィック処理部１１１は、制御部１０３から出力される描画命令に従って、フレームメモリ１１２（図では、グラフィック処理部１１１の外側に描かれているが、グラフィック処理部１１１を構成するチップに含まれるＲＡＭ内に設けられる）に画像データを展開し、表示装置１２１の表示画面１２２上に画像を表示するビデオ信号を出力する。グラフィック処理部１１１から出力されるビデオ信号に含まれる画像の１フレーム時間は、例えば６０分の１秒である。フレームメモリ１１２は、２セット設けられており、データの書き込み用と読み出し用とがフレーム期間毎に切り替えられる。
【００３０】
グラフィック処理部１１１は、仮想３次元空間に存在するオブジェクト（プレイヤキャラクタ、ノンプレイヤキャラクタ、及びキャラクタ以外のオブジェクト）を仮想カメラにより透視変換した２次元画像の画像データを生成して、フレームメモリ１１２に書き込む。
【００３１】
ＤＶＤ／ＣＤ−ＲＯＭドライブ１１３は、記録媒体１３１に対しプログラム及びデータの読み出しを行う。通信インターフェイス１１５は、ネットワーク１５１に接続され、他のコンピュータとの通信を行う。入力部１６１は、方向キー及び複数の操作ボタンを備えている。仮想３次元空間におけるプレイヤキャラクタの位置は、入力部１６１の方向キーから入力される指示によって移動させられる。
【００３２】
インターフェイス部１１７は、入力部１６１からの入力データをＲＡＭ１０５に出力し、制御部１０３がそれを解釈して演算処理を実施する。インターフェイス部１１７は、また、制御部１０３からの指示に基づいて、ＲＡＭ１０５に記憶されているゲームの進行状況を示すデータをメモリーカード１６２に保存させ、メモリーカード１６２に保存されている中断時のゲームのデータを読み出して、ＲＡＭ１０５に転送する。
【００３３】
ビデオゲーム装置１００でゲームを行うためのプログラム及びデータは、最初例えば記録媒体１３１に記憶されている。記録媒体１３１に記憶されているデータとしては、ゲーム空間（仮想３次元空間）に存在するオブジェクトを構成するためのグラフィックデータ、プレイヤキャラクタの基本動作などに関するデータを含んでいる。記録媒体１３１に記憶されたプログラム及びデータは、実行時にＤＶＤ／ＣＤ−ＲＯＭドライブ１１３により読み出されて、ＲＡＭ１０５にロードされる。制御部１０３は、ＲＡＭ１０５にロードされたプログラム及びデータを処理し、描画命令をグラフィック処理部１１１に出力し、サウンド出力の指示をサウンド処理部１０９に出力する。制御部１０３が処理を行っている間の中間的なデータは、ＲＡＭ１０５に記憶される。
【００３４】
この実施の形態にかかるビデオゲームでは、ゲーム空間となる仮想３次元空間に複数の３次元オブジェクトが存在し、これらのオブジェクトを仮想カメラにより透視変換した画像がゲームの画像として表示装置１２１の表示画面１２２に表示される。仮想３次元空間に存在するオブジェクトとしては、プレイヤの入力部１６１からの入力により動作させられるプレイヤキャラクタ、プレイヤキャラクタ以外のキャラクタであるノンプレイヤキャラクタ（制御部１０３により動作させられる）、キャラクタ以外の地形、建物などの仮想３次元空間内における位置の移動しないオブジェクトが含まれている。
【００３５】
プレイヤは、このプレイヤキャラクタの基本動作として歩く、走る、座る、立ち上がる、投げる等、そのプレイヤキャラクタの腕の動きや脚の動きなどに関して異なる様々な動作を実行させることができるものとなっている。そして、これらの基本動作は、各フレーム毎の姿勢を定める３次元位置Ｐ（ｔ）および３次元回転Ｒ（ｔ）に係るデータによってそれぞれ定義されている。これらの３次元位置Ｐ（ｔ）および３次元回転Ｒ（ｔ）に係るデータがゲームのプログラムの一部を構成するモーションデータとして、記録媒体１３１に記憶され、ＨＤＤ１０７等に転送されている。
【００３６】
そして、この基本動作だけでは表現できないような動作については、次に説明する複合動作、移行動作としてこれらの基本動作をブレンドして生成することになる。複合動作は、同時に実行される２つの異なる基本動作に係るデータをブレンドして生成するものであり、また、複合動作は、例えば、走る動作と投げる動作、或いは歩く動作と投げる動作といった、同時に実行される異なる２つの基本動作に係るデータをブレンドする、或いはゆっくり走る動作と速く走る動作から中間の速度で走る動作のデータをモーションブレンドにより生成するものである。このブレンドについては、本発明と直接の関わりがないため、詳細な説明は省略する。
【００３７】
一方、移行動作は、２つの異なる基本動作が連続して実行される場合において、動作が移行される間のつなぎの動作であって、先の基本動作から後の基本動作への移行が違和感なくされるように生成するものである。また、移行動作は、例えば、プレイヤキャラクタが歩いている状態から、走ったり、走っている状態から、歩いたりという具合に、ゲーム進行において、２つの異なる基本動作が一連の流れで連続して行われる場合に、その２つの異なる基本動作を接続するために生成されるものである。
【００３８】
このように、一連の流れで連続して実行される、２つの異なる動作を接続するための前の動作に続けて実行される移行動作については、図２に示すように、後の動作への遷移における不自然さを無くすため、急な動作の変更とはならないように、その前後の動作（モーション）のブレンド（モーションブレンド）をして生成した移行モーションを、前の動作に続けて実行し、次の動作へ遷移させるようにする。以下、この実施の形態に用いられる移行動作のモーションブレンドについて説明をする。
【００３９】
まず、図３において図示するように、ＨＤＤ１０７等に記憶される２つの異なる基本動作（以下、単にモーションとする）は、連続して実行される２つのモーションについて、前のモーション（以下、モーションＡとする）に対して、終端姿勢となるフレーム（以下、終端フレームという）と、後のモーション（以下、モーションＢとする）に対して、始端姿勢となるフレーム（以下、始端フレームという）とをそれぞれ設定する。
【００４０】
なお、モーションＡの終端姿勢、およびモーションＢの始端姿勢の設定については、従来の手法を用いればよく、例えば、連続して実行されるモーションの組み合わせ毎に前のモーションの終端姿勢と後のモーションの始端姿勢とをプログラム設計者が予め決めておき、この予め決められた終端姿勢と始端姿勢とが、連続して実行される２つのモーションが定まるのと同時に自動的に設定されるものとしてもよい。
【００４１】
そして、モーションブレンドの際、まずは、このモーションＡに係るモーションデータのうちの終端姿勢となるフレームよりも後の各フレーム（以下、終端後フレームという）のデータと、このモーションＢに係るモーションデータのうちの始端姿勢となるフレームよりも前の各フレーム（以下、始端前フレームという）のデータとからそれぞれで互いに一番似ているフレームを総当たりで検索する。なお、フレームの総当たりの検索についてはパターンマッチングなどの従来の手法を用いればよいので、詳細な説明は省略する。
【００４２】
終端後フレーム及び始端前フレームにおいて一番似ているフレーム（図３におけるモーションＡの終端後フレームの網掛け部分とモーションＢの始端前フレームの網掛け部分）を検索できれば、図３において図示するように、始端前フレーム中における当該フレームが、終端後フレーム中の当該フレームのタイミングと重なるように、モーションＡに対して、モーションＢの実行タイミングを設定する。このように設定されたモーションＡ、モーションＢの終端姿勢から始端姿勢のフレーム期間において、終端後フレームと始端前フレームとに係るモーションをブレンドし移行モーションに係るモーションデータを生成することになる。なお、モーションＡの終端フレームからモーションＢの始端フレームの間に介在するモーションのブレンドについて詳細は後述する。
【００４３】
このように、プレイヤキャラクタはモーションＡの動作をさせた後に、モーションＢの動作をさせる場合には、上記のように設定した終端姿勢まではモーションＡに係るモーションデータ、ブレンドにより生成した移行モーションに係るモーションデータ、上記のように設定した始端姿勢からはモーションＢに係るモーションデータを用いて、その間の各フレームにおいて動作させる。
【００４４】
この実施の形態に係るモーションブレンドでは、連続して実行される２つのモーションを定める終端後フレームと始端前フレームにおける姿勢を定める３次元位置Ｐ（ｔ）および３次元回転Ｒ（ｔ）に係るデータから速度成分を算出し、算出した各モーションの速度成分を基にモーションブレンドを行うものである。
【００４５】
そして、そのブレンドされたモーションの速度成分に対してポアソン方程式を適用することで、そのブレンドされたモーションの各フレームにおけるプレイヤキャラクタの姿勢を定める３次元位置Ｐ（ｔ）および３次元回転Ｒ（ｔ）に係るデータを求める。そこで、まず、モーションブレンド前の、モーションＡに係る終端後フレーム、およびモーションＢに係る始端前フレームの各フレーム毎のプレイヤキャラクタの姿勢を定める３次元位置Ｐ（ｔ）および３次元回転Ｒ（ｔ）の速度成分を算出する。
【００４６】
ここで、３次元位置Ｐ（ｔ）は仮想３次元空間上の位置を表すために、それぞれが独立して線形な値として、ｐｘ（ｔ）、ｐｙ（ｔ）、ｐｚ（ｔ）を有する。この３次元位置Ｐ（ｔ）に対しては、そのままポアソン方程式を適用可能であるが、非線形である３次元回転Ｒ（ｔ）は絶対量を表せず、そのままポアソン方程式を適用できない。そこで、ポアソン方程式を適用させるために、プレイヤキャラクタの姿勢を定める３次元回転Ｒ（ｔ）に指数マップ（Exponential maps）を適用することで、線形な数値へと近似する。
【００４７】
ここで、指数マップの３次元回転Ｒ（ｔ）への適用を説明する。３次元回転Ｒ（ｔ）では絶対量を表せないため、指数マップを適用して、基準回転からの相対回転を求める。ここで、３次元回転Ｒ（ｔ）の相対量ｐｘ（ｔ）、ｐｙ（ｔ）、ｐｚ（ｔ）を表すため、基準回転として、前後のモーションにおけるブレンドの対象となるそれぞれのフレーム期間において、平均回転Ｒｍを算出する。例えば、２つのフレームにおける３次元回転Ｒ１、Ｒ２において、平均回転Ｒｍ、およびｐｘ（ｔ）、ｐｙ（ｔ）、ｐｚ（ｔ）は以下のように表現される。
【００４８】
【数１】
0005190524.tif 000002
【００４９】
また、この平均回転Ｒｍに関しては、対数マップ（Logarithmic maps）を適用してブレンドしたモーションに係るｐｘ（ｔ）、ｐｙ（ｔ）、ｐｚ（ｔ）を再度３次元回転Ｒ（ｔ）に変換するために用いるものとなる。なお、平均回転Ｒｍの算出、並びに指数マップ、および対数マップを用いた詳細な算出方法については、この発明において直接的には関係しないので説明を省略する。
【００５０】
そして、このように指数マップ表現において求められた３次元回転Ｒ（ｔ）に係るｒｘ（ｔ）、ｒｙ（ｔ）、ｒｚ（ｔ）と、３次元位置Ｐ（ｔ）に係るｐｘ（ｔ）、ｐｙ（ｔ）、ｐｚ（ｔ）とから、それぞれ微分方程式を適用することで、それぞれの速度成分を算出する。このようにして、求めた３次元位置Ｐ（ｔ）および３次元回転Ｒ（ｔ）の各速度成分について、図４に示すように先に実行のタイミングを設定した、ブレンドする２つの異なるモーションに係るモーションデータの終端後フレームと始端前フレームとから、各フレームにおける各速度成分の絶対値の最大値を抽出する。
【００５１】
これを、補間用速度ｖ（ｔ）（ここでは、３次元位置Ｐ（ｔ）および３次元回転Ｒ（ｔ）の各要素の速度成分毎に区別しない）として、図５に示すように、モーションＡの終端姿勢から、モーションＢの始端姿勢までに実行される移行モーションに適用する３次元位置Ｐ（ｔ）および３次元回転Ｒ（ｔ）の各要素の速度成分とする。そして、補間用速度ｖ（ｔ）に対して、ポアソン方程式を適用することで、ブレンドされたモーションにおける各フレームの３次元位置Ｐ（ｔ）および３次元回転Ｒ（ｔ）に係る各要素ｐｘ（ｔ）、ｐｙ（ｔ）、ｐｚ（ｔ）、ｒｘ（ｔ）、ｒｙ（ｔ）、ｒｚ（ｔ）（以下、まとめて要素ｄ（ｔ）とする）を求める。なお、３次元回転Ｒ（ｔ）に関してはポアソン方程式によって求めた、ｒｘ（ｔ）、ｒｙ（ｔ）、ｒｚ（ｔ）に対して上記した対数マップを適用する必要がある。
【００５２】
そして、ポアソン方程式を適用した要素ｄ（ｉ）とこの補間用速度ｖ（ｉ）との関係は以下のように表すことができる。
【００５３】
【数２】
0005190524.tif 000003
【００５４】
そして、この式から連立方程式の反復解法（Gauss-Seidel法などを用いる）により、要素ｄ（ｉ）について以下のように表せる。
【００５５】
【数３】
0005190524.tif 000004
【００５６】
このように表されることによって、行列の各要素ｄが規則正しく決定され、解析的に逆行列を算出することができるようになる（以下、数式５）。また、要素ｄ（ｉ）を計算するためには、逆行列のｉ行目だけが必要となる。そして、数式２で適用した行列は以下のように一般化することができ、そこから、数式３で適用する逆行列の一般式も以下のように求めることができる。
【００５７】
【数４】
0005190524.tif 000005
【００５８】
【数５】
0005190524.tif 000006
【００５９】
このように、求められた一般式（数式５）から、要素ｄ（ｉ）は四則演算のみで計算することができ、また、各要素ｄ毎に独立して計算することもできる。
【００６０】
このように、ポアソン方程式を適用してモーションＡに係るモーションデータの終端後フレームとモーションＢに係るモーションデータの始端前フレームとから、終端姿勢から始端姿勢までの移行モーションに係るモーションデータをブレンドして生成するまでの流れを模式的に表したものを図５に示す。図示するように、ブレンド前のモーションＡとモーションＢのそれぞれのモーションデータにおいて、３次元位置Ｐ（ｔ）に係るデータは線形な数値であるため、そのままポアソン方程式を適用することができる。
【００６１】
一方、３次元回転Ｒ（ｔ）は非線形な数値であるため、そのままポアソン方程式を適用できない。そこで、指数マップをその３次元回転Ｒ（ｔ）に適用することで、独立した線形な回転量を表すｒｘ（ｔ）、ｒｙ（ｔ）、ｒｚ（ｔ）にそれぞれ分解し、それらを基にポアソン方程式を適用する。ポアソン方程式を適用することで得られたｒｘ（ｔ）、ｒｙ（ｔ）、ｒｚ（ｔ）については、移行モーションのモーションデータに係る３次元回転Ｒ（ｔ）として表現するために、線形な回転量に分解するために用いた平均回転Ｒｍを再度用いることで、３次元回転の再合成をする。
【００６２】
以上説明したように、仮想３次元空間に存在するプレイヤキャラクタに対して、モーションＡに係るモーションデータにより定義される動作を、終端姿勢となるまでさせた後に、モーションＢに係るモーションデータにより定義される動作を設定された始端姿勢からさせるものとなっている。ここで、モーションＡからモーションＢに移行されるまでには、ブレンドにより生成した移行モーションに係るモーションデータにより動作させる。
【００６３】
ところで、モーションＡの動作とモーションＢの動作の少なくとも一方には、３次元回転Ｒに係る動作が含まれている。３次元回転Ｒに係る動作のデータは非線形なデータであり、このような非線形なデータを含むモーションＡに係るモーションデータとモーションＢに係るモーションデータが違和感なく滑らかに接続されるようにモーションＡからモーションＢに移行されるまでのモーションデータを生成するのは、単純なことではない。
【００６４】
もっとも、この実施の形態では、モーションＡに係る終端後フレームとモーションＢに係る始端前フレームにおいて、指数マップを適用することで、３次元回転Ｒ（ｔ）をｒｘ（ｔ）、ｒｙ（ｔ）、ｒｚ（ｔ）と算出している。そして、算出した終端後フレームと始端前フレームのそれぞれのフレーム期間毎におけるｒｘ（ｔ）、ｒｙ（ｔ）、ｒｚ（ｔ）から速度成分を算出し、モーションＡの終端後フレーム、実行のタイミングが設定されたモーションＢの始端前フレームにおけるそれぞれの速度成分の絶対値の最大値を、移行モーションの期間における補間用速度ｖ（ｔ）として抽出する。そして、移行モーションに係る、ブレンドしたモーションデータのフレーム毎のｒｘ（ｔ）、ｒｙ（ｔ）、ｒｚ（ｔ）は、抽出した補間用速度ｖ（ｔ）とにおいてポアソン方程式を適用することで求めることができるようになる。
【００６５】
このような手法により線形なデータでの計算としてモーションＡに係るモーションデータに従って動作させる終端姿勢の後と、モーションＢに係るモーションデータに従って動作させる始端姿勢の前との間に介在させる複数フレーム期間のモーションデータが生成されるので、モーションＡのモーションデータとモーションＢのモーションデータが違和感なく滑らかに接続されるように、３次元回転動作が含まれるモーションＡからモーションＢに移行されるまでのモーションデータを生成することが、比較的単純なものとなる。
【００６６】
また、移行モーションに係る、ブレンドしたモーションデータのフレーム毎のｒｘ（ｔ）、ｒｙ（ｔ）、ｒｚ（ｔ）を求める演算を、ポアソン方程式による演算で行うものとすることで、演算が単純なものとなる。しかも、ｉ番目の速度成分ｖ（ｔ）に対して所定の行列のｉ行のみを用いて、ブレンドしたモーションデータのフレーム毎のｒｘ（ｔ）、ｒｙ（ｔ）、ｒｚ（ｔ）を算出するための演算を行うものとすることで、その演算のための処理量を軽減することができる。さらに、非線形な３次元回転Ｒ（ｔ）から、線形なｒｘ（ｔ）、ｒｙ（ｔ）、ｒｚ（ｔ）への変換に指数マップを、３次元回転Ｒ（ｔ）の再生に対数マップを適用することで、ｒｘ（ｔ）、ｒｙ（ｔ）、ｒｚ（ｔ）への変換や３次元回転Ｒ（ｔ）の再生を、比較的単純なものとすることができる。
【００６７】
また、各フレームにおいて絶対値の大きい方の要素ｄ（ｉ）のそれぞれの速度成分を、モーションＡに係るモーションデータに従って動作させる終端姿勢の後と、モーションＢに係るモーションデータに従って動作させる始端姿勢の前との間に介在させる複数フレーム期間の各フレームにおける補間用速度ｖ（ｉ）として特定することで、モーションＡに係るモーションデータとモーションＢに係るモーションデータが違和感なく滑らかに接続されるようなモーションＡからモーションＢに移行されるまでのモーションデータを生成することが可能となる。
【００６８】
また、モーションＡに係るモーションデータに従って動作させる終端姿勢の後と、モーションＢに係るモーションデータに従って動作させる始端姿勢の前との間に介在させる複数フレーム期間の各フレームにおけるデータには、モーションＡに係るモーションデータに含まれる各フレームのデータとモーションＢに係るモーションデータに含まれる各フレームのデータとのうちで最も近似したもの同士に基づいて生成されたデータ、つまり、モーションＡに係るモーションデータとモーションＢに係るモーションデータとも差が最も少ないデータが含まれる。これにより、モーションＡに係るモーションデータとモーションＢに係るモーションデータが違和感なく滑らかに接続されるようなモーションＡからモーションＢに移行されるまでのモーションデータを生成することが可能となる。
【００６９】
本発明は、上記の実施の形態に限られず、種々の変形、応用が可能である。以下、本発明に適用可能な上記の実施の形態の変形態様について説明する。
【００７０】
上記の実施の形態において、移行モーションを生成する前後の動作であるモーションＡ、モーションＢについては基本動作であったが、これを、基本動作から生成された異なる２つの複合動作間の動作の移行に対して、移行動作を生成するものであってもよい。例えば、モーションＡとモーションＣとを複合したモーションＡ＋Ｃから、モーションＢとモーションＤとを複合したモーションＢ＋Ｄに移行する場合の移行モーションの生成に、本発明を適用することもできる。
【００７１】
また、移行モーションを生成する前後の動作のうち、一方が複合動作、他方が基本動作として移行動作を生成するものであってもよい。これによって、移行モーションは基本動作からのみ生成されるものではなくなるので、多様化した移行モーションが実行できるとともに、予め記録媒体１３１等に記憶した動作でなくても前後の動作の遷移に応じた違和感なく滑らかな移行モーションが実行できるようになる。
【００７２】
さらには、モーションＡからモーションＢに移行させる際の移行モーションと、モーションＣからモーションＤに移行させる際の移行モーションとを生成し、モーションＡとモーションＣを複合したモーション、各々の移行モーションを複合したモーション、モーションＢとモーションＤを複合したモーションへと、モーションを変化させるものにも本発明は適用できる。
【００７３】
もっとも、この場合は、モーションＡからモーションＢに移行させる際の移行モーションの生成と、モーションＣからモーションＤに移行させる際の移行モーションの生成とのそれぞれで別個に、上記の実施の形態における似ているフレームのタイミングを一致させることをそのまま適用するのではなく、モーションＡからモーションＢに移行させる際の移行モーションと、モーションＣからモーションＤに移行させる際の移行モーションとのタイミングが一致されるようにする必要がある。
【００７４】
上記の実施の形態では、モーションＡのモーションデータ、モーションＢのモーションデータのそれぞれにおいて、３次元回転Ｒ（ｔ）に係る動作が含まれるものとして、移行モーションを生成するものとしていたが、このような３次元回転Ｒ（ｔ）にかかる動作は何れか一方のモーションに含まれていればよく、何れか一方において、そのような回転動作が含まれていないものであってもよい。
【００７５】
上記の実施の形態では、２つの異なるモーションに係るモーションデータの終端後フレームと始端前フレームとから、各フレームにおける各速度成分の絶対値の最大値を抽出し、これを補間用速度ｖ（ｔ）として移行モーションに適用する各要素の速度成分としていたが、加重平均や重み付け平均を用いて各要素の速度成分としたり、それぞれの最大値を用いて各要素の速度成分とするものとしてもよい。
【００７６】
上記の実施の形態では、補間用速度ｖ（ｔ）に対してポアソン方程式を適用することで、３次元位置Ｐ（ｔ）および３次元回転Ｒ（ｔ）に係る各要素ｐｘ（ｔ）、ｐｙ（ｔ）、ｐｚ（ｔ）、ｒｘ（ｔ）、ｒｙ（ｔ）、ｒｚ（ｔ）の計算を行っていたが、ポアソン方程式のような好ましい結果が得られる演算であれば、他の行列演算でもよく、行列演算以外の演算であってもよい。もっとも、ポアソン方程式による演算が本発明に好ましい手法として適用されるものであることは、いうまでもない。また、要素ｄ（ｉ）を計算するためには逆行列のｉ行目だけで演算を簡素化させていたが、このような演算の簡素化がされないものであってもよい。
【００７７】
上記の実施の形態では、指数マップをその３次元回転Ｒ（ｔ）に適用することで、独立した線形な回転量を表すｒｘ（ｔ）、ｒｙ（ｔ）、ｒｚ（ｔ）にそれぞれ分解し、ポアソン方程式を適用することで得られたｒｘ（ｔ）、ｒｙ（ｔ）、ｒｚ（ｔ）に対して対数マップを適用することで３次元回転の再合成をしていたが、線形な値としてポアソン方程式による演算を行い得るものとするのであれば、これ以外の手法を適用してもよい。もっとも、指数マップや対数マップの適用が本発明に好ましい手法であることは、いうまでもない。
【００７８】
上記の実施の形態では、３次元ビデオゲームにおけるプレイヤキャラクタの動作に対して本発明を適用した場合を例として説明したが、プレイヤの操作によって動作されるのではなく、プレイヤの操作とは無関係に所定の処理ルーチンの実行により動作させられるノンプレイヤキャラクタの動作に対して本発明を適用するものとしてもよい。また、キャラクタでなくても、３次元回転動作を含む動作をするものであれば機械類や構造物などの他のオブジェクトの動作に対しても本発明を適用することができる。
【００７９】
上記の実施の形態では、本発明をビデオゲームでする場合に適用し、各プレイヤがゲームを進めるために用いる端末装置としてゲーム専用機であるビデオゲーム装置１００を適用していた。これに対して、本発明は、３次元コンピュータグラフィックスによるモーションブレンドであれば、ビデオゲーム以外でオブジェクトの動作のブレンドをする場合にも適用することができる。リアルタイムコンピュータグラフィックスでなければ、モーションＡの終端姿勢とモーションＢの始端姿勢とは、ユーザがその都度個別に手動で設定することも可能である。
【００８０】
また、本発明にかかる手法でモーションブレンドの処理を行う装置は、ビデオゲーム装置１００と同様の構成要素を備えるものであれば、汎用のパーソナルコンピュータなどを適用してもよい。３次元コンピュータグラフィックスを処理できる能力があれば、表示装置１２１及びサウンド出力装置１２５を装置本体１０１と同一の筐体内に納めた構成を有する携帯ゲーム機（アプリケーションの実行機能を有する携帯電話機を含む）を適用するものとしてもよい。
【００８１】
記録媒体１３１としては、ＤＶＤ−ＲＯＭやＣＤ−ＲＯＭの代わりに半導体メモリーカードを適用することができる。このメモリーカードを挿入するためのカードスロットをＤＶＤ／ＣＤ−ＲＯＭドライブ１１３の代わりに設けることができる。汎用のパーソナルコンピュータの場合には、本発明に係るプログラム及びデータを記録媒体１３１に格納して提供するのではなく、ＨＤＤ１０７に予め格納して提供してもよい。本発明にかかるプログラム及びデータを格納して提供するための記録媒体は、ハードウェアの物理的形態及び流通形態に応じて任意のものを適用することができる。
【００８２】
上記の実施の形態では、ビデオゲーム装置１００のプログラム及びデータは、記録媒体１３１に格納されて配布されるものとしていた。これに対して、これらのプログラム及びデータをネットワーク１５１上に存在するサーバ装置が有する固定ディスク装置に格納しておき、装置本体１０１にネットワーク１５１を介して配信するものとしてもよい。ビデオゲーム装置１００において、通信インターフェイス１１５がサーバ装置から受信したプログラム及びデータは、ＨＤＤ１０７に保存し、実行時にＲＡＭ１０５にロードすることができる。
【符号の説明】
【００８３】
１００  ビデオゲーム装置
１０１  ビデオゲーム装置本体
１０３  制御部
１０５  ＲＡＭ
１０７  ＨＤＤ
１０９  サウンド処理部
１１１  グラフィック処理部
１１２  フレームメモリ
１１３  ＤＶＤ／ＣＤ−ＲＯＭドライブ
１１５  通信インターフェイス
１１７  インターフェイス部
１１９  内部バス
１２１  表示装置
１２２  表示画面
１２５  サウンド出力装置
１３１  記録媒体
１５１  ネットワーク
１６１  入力部
１６２  メモリーカード
【図１】
0005190524.tif 000007
【図２】
0005190524.tif 000008
【図３】
0005190524.tif 000009
【図４】
0005190524.tif 000010
【図５】
0005190524.tif 000011
【図６】
0005190524.tif 000012