説明

モーション生成装置、モーション生成方法、およびモーション生成プログラム

【課題】処理の高速性を保ち、且つモーションを自然に遷移させるモーションブレンディングを実現する。
【解決手段】二つのモーションデータを取り込むモーションデータ取得部10と、二つのモーションデータにおいてブレンド開始点およびブレンド終了点を指定する遷移点指定部20と、二つのモーションデータについて、ルート速度とルート角速度とを求める物理量変更処理部30と、ブレンド開始点以後のモーションデータとブレンド終了点以前のモーションデータとに含まれる関節方向を示す時系列情報に基づいてブレンディング区間を求めるブレンディング区間計算部40と、ルート角速度をブレンディング区間においてブレンド処理しブレンドルート方向を求めるルート方向処理部50と、ブレンドルート方向にしたがってルート速度を調整するルート位置調整部60と、調整されたルート速度をブレンド処理するルート位置処理部70とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、モーション生成装置、モーション生成方法、およびモーション生成プログラムに関する。
【背景技術】
【0002】
二つのモーションデータ(動きデータ)のブレンド処理を行って新たなモーションデータを生成するモーションブレンディング技術(Motion Blending)が知られている(例えば、非特許文献1〜非特許文献3参照)。このモーションブレンディング技術によれば、例えば、運動速度が異なる二つのモーションから中間の速度を有するモーションを生成することができる。
【0003】
一般的に、人体に関するモーションデータは、例えば、人体モデルにおける基準位置を示すルート位置の情報と、そのルート位置の方向を示すルート方向の情報と、人体モデルが有する関節の動きを示す関節方向の情報とを含む。非特許文献1には、四次元数(Quaternion)により二つの方向間を補間する球面線形補間(Spherical Linear intERPolation;SLERP)に関する技術が開示されている。また、非特許文献2および非特許文献3には、重み付き平均処理によって位置情報をブレンドする技術が開示されている。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Ken Shoemake, “Animating Rotation with Quaternion Curves”, SIGGRAPH 1985, Volume 19, Number 3, pp. 245-254, 1985.
【非特許文献2】Sang Il Park, Hyun Joon Shin, Sung Yong Shin, “On-line Locomotion Generation Based on Motion Blending”, In Proceedings of the 2002 ACM SIGGRAPH/Eurographics symposium on Computer animation (SCA '02), pp. 105-111, 2002.
【非特許文献3】Lucas Kovar, Michael Gleicher, “Flexible Automatic Motion Blending with Registration Curves”, In Proceedings of the 2003 ACM SIGGRAPH/Eurographics symposium on Computer animation (SCA '03), pp. 214-224, 2003.
【発明の概要】
【発明が解決しようとする課題】
【0005】
従来のモーションブレンディング技術は、ルート位置とルート方向とを互いに独立にブレンドする技術であり、高速処理が可能である。しかしながら、従来のモーションブレンディング技術によれば、ブレンド前のモーションからブレンド後のモーションへの遷移に不自然さが発生する場合がある。具体的に、人体モデルが観察者から見て右方向に歩く動作を示す第1のモーションと、人体モデルが定位置で観察者に正対する状態から後方倒立回転跳び(後転跳び)を行う動作を示す第2のモーションとを、ブレンド処理する例を挙げて説明する。従来のモーションブレンディング技術によって第1のモーションと第2のモーションとをブレンドさせると、ブレンド後のモーションは、人体モデルが観察者から見て右方向に移動しながら後転跳びを行うという、不自然な運動を示す動きとなる。
【0006】
そこで、本発明は、上記問題を解決するためになされたものであり、処理の高速性を保ち、且つモーションを自然に遷移させるモーションブレンディングを実現する、モーション生成装置、モーション生成方法、およびモーション生成プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
[1]上記の課題を解決するため、本発明の一態様であるモーション生成装置は、スケルトンモデルにおける複数のジョイントのうち、基準のジョイントであるルートの位置であるルート位置、前記ルートの方向であるルート方向、および前記ルートを除くジョイントの方向である関節方向を示す時系列情報をそれぞれ含む二つのモーションデータを、取り込むモーションデータ取得部と、前記二つのモーションデータのうち、第1モーションデータにおけるブレンド開始点および第2モーションデータにおけるブレンド終了点を指定する遷移点指定部と、前記二つのモーションデータそれぞれについて、前記ルート位置の時間変化であるルート速度と前記ルート方向の時間変化であるルート角速度とを求める物理量変更処理部と、前記第1モーションデータにおける前記ブレンド開始点以後のモーションデータと前記第2モーションデータにおける前記ブレンド終了点以前のモーションデータとに含まれる前記関節方向を示す時系列情報に基づいて、ブレンディング区間を求めるブレンディング区間計算部と、前記ルート角速度を前記ブレンディング区間においてブレンド処理しブレンドルート方向を求めるルート方向処理部と、前記ブレンドルート方向にしたがって前記ルート速度を調整するルート位置調整部と、前記調整されたルート速度をブレンド処理するルート位置処理部と、を備えることを特徴とする。
[2]上記[1]記載のモーション生成装置において、前記ルート位置調整部は、前記ブレンディング区間における最終フレームに対応するブレンドルート方向と、前記ブレンド終了点に対応するブレンド方向とに基づいて、前記第2モーションデータにおける前記ブレンディング区間の基点以後のモーションデータが有するルート速度を調整することを特徴とする。
[3]上記[1]または[2]記載のモーション生成装置において、前記ブレンディング区間計算部は、前記第1モーションデータおよび前記第2モーションデータにおけるビートフレームを推定し、前記第1モーションデータにおけるビート間隔と前記第2モーションデータにおけるビート間隔の比率に基づいて、ポーズを対応付けてブレンディング区間を求めることを特徴とする。
[4]上記の課題を解決するため、本発明の一態様であるモーション生成方法は、スケルトンモデルにおける複数のジョイントのうち、基準のジョイントであるルートの位置であるルート位置、前記ルートの方向であるルート方向、および前記ルートを除くジョイントの方向である関節方向を示す時系列情報をそれぞれ含む二つのモーションデータを、モーションデータ取得部が取り込むモーションデータ取得ステップと、遷移点指定部が、前記二つのモーションデータのうち、第1モーションデータにおけるブレンド開始点および第2モーションデータにおけるブレンド終了点を指定する遷移点指定ステップと、物理量変更処理部が、前記二つのモーションデータそれぞれについて、前記ルート位置の時間変化であるルート速度と前記ルート方向の時間変化であるルート角速度とを求める物理量変更ステップと、ブレンディング区間計算部が、前記第1モーションデータにおける前記ブレンド開始点以後のモーションデータと前記第2モーションデータにおける前記ブレンド終了点以前のモーションデータとに含まれる前記関節方向を示す時系列情報に基づいて、ブレンディング区間を求めるブレンディング区間計算ステップと、ルート方向処理部が、前記ルート角速度を前記ブレンディング区間においてブレンド処理しブレンドルート方向を求めるルート方向処理ステップと、ルート位置調整部が、前記ブレンドルート方向にしたがって前記ルート速度を調整するルート位置調整ステップと、ルート位置処理部が、前記調整されたルート速度をブレンド処理するルート位置処理ステップと、を有することを特徴とする。
[5]上記[4]記載のモーション生成方法において、前記ルート位置調整ステップは、前記ブレンディング区間における最終フレームに対応するブレンドルート方向と、前記ブレンド終了点に対応するブレンド方向とに基づいて、前記第2モーションデータにおける前記ブレンディング区間の基点以後のモーションデータが有するルート速度を調整することを特徴とする。
[6]上記[4]または[5]記載のモーション生成方法において、前記ブレンディング区間計算ステップは、前記ブレンディング区間計算部が、前記第1モーションデータおよび前記第2モーションデータにおけるビートフレームを推定し、前記第1モーションデータにおけるビート間隔と前記第2モーションデータにおけるビート間隔の比率に基づいて、ポーズを対応付けてブレンディング区間を求めることを特徴とする。
[7]上記[4]から[6]いずれか一項記載のモーション生成方法において、前記モーションデータ取得部が、第3モーションデータを取り込むステップと、前記物理量変更処理部が、前記第3モーションデータについて、前記ルート速度と前記ルート角速度とを求めるステップと、前記ルート方向処理部が、前記ルート角速度を前記ブレンディング区間において所定の重みによりブレンド処理しブレンドルート方向を求めるステップと、をさらに有することを特徴とする。
[8]上記の課題を解決するため、本発明の一態様であるモーション生成プログラムは、コンピュータを、スケルトンモデルにおける複数のジョイントのうち、基準のジョイントであるルートの位置であるルート位置、前記ルートの方向であるルート方向、および前記ルートを除くジョイントの方向である関節方向を示す時系列情報をそれぞれ含む二つのモーションデータを、取り込むモーションデータ取得部と、前記二つのモーションデータのうち、第1モーションデータにおけるブレンド開始点および第2モーションデータにおけるブレンド終了点を指定する遷移点指定部と、前記二つのモーションデータそれぞれについて、前記ルート位置の時間変化であるルート速度と前記ルート方向の時間変化であるルート角速度とを求める物理量変更処理部と、前記第1モーションデータにおける前記ブレンド開始点以後のモーションデータと前記第2モーションデータにおける前記ブレンド終了点以前のモーションデータとに含まれる前記関節方向を示す時系列情報に基づいて、ブレンディング区間を求めるブレンディング区間計算部と、前記ルート角速度を前記ブレンディング区間においてブレンド処理しブレンドルート方向を求めるルート方向処理部と、前記ブレンドルート方向にしたがって前記ルート速度を調整するルート位置調整部と、前記調整されたルート速度をブレンド処理するルート位置処理部と、として機能させる。
[9]上記[8]記載のモーション生成プログラムにおいて、前記ルート位置調整部は、前記ブレンディング区間における最終フレームに対応するブレンドルート方向と、前記ブレンド終了点に対応するブレンド方向とに基づいて、前記第2モーションデータにおける前記ブレンディング区間の基点以後のモーションデータが有するルート速度を調整することを特徴とする。
[10]上記[8]または[9]記載のモーション生成プログラムにおいて、前記ブレンディング区間計算部は、前記第1モーションデータおよび前記第2モーションデータにおけるビートフレームを推定し、前記第1モーションデータにおけるビート間隔と前記第2モーションデータにおけるビート間隔の比率に基づいて、ポーズを対応付けてブレンディング区間を求めることを特徴とする。
[11]上記[8]から[10]いずれか一項記載のモーション生成プログラムにおいて、前記モーションデータ取得部が、第3モーションデータをさらに取り込み、前記物理量変更処理部が、前記第3モーションデータについて、前記ルート速度と前記ルート角速度とを求め、前記ルート方向処理部が、前記ルート角速度を前記ブレンディング区間において所定の重みによりブレンド処理しブレンドルート方向を求めることを特徴とする。
【発明の効果】
【0008】
本発明によれば、処理の高速性を保ち、且つモーションを自然に遷移させるモーションブレンディングを実現することができる。
【図面の簡単な説明】
【0009】
【図1】人体スケルトンモデルを模式的に示す正面図である。
【図2】本発明の一実施形態であるモーション生成装置の機能構成を示すブロック図である。
【図3】第1モーションデータ、第2モーションデータ、およびそれぞれの部分データから生成されるブレンドモーションデータとの関係を示す図である。
【図4】同実施形態であるモーション生成装置による、ルートに関するブレンドモーションデータを生成する処理の手順を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下、本発明を実施するための形態について、図面を参照して詳細に説明する。
まず、本発明の一実施形態において用いられるモーションデータについて説明する。本実施形態において、モーションデータは、人体スケルトンモデルの人体スケルトン型動きデータにより表される。
図1は、人体スケルトンモデルを模式的に示す正面図である。人体スケルトンモデルは、人体の骨格をもとに、骨および骨の連結点(ジョイント)を用い、特定の一つのジョイントを根(ルート)、ルートからジョイント経由で順次連結される骨の構造を木(ツリー)として定義される。同図において、ジョイント500は人体の腰部分であり、ルートとして定義される。ジョイント501は左腕の肘部分、ジョイント502は左腕の手首部分、ジョイント503は右腕の肘部分、ジョイント504は右腕の手首部分、ジョイント505は左足の膝部分、ジョイント506は左足の足首部分、ジョイント507は右足の膝部分、ジョイント508は右足の足首部分、ジョイント509は鎖骨部分、ジョイント510は左肩部分、ジョイント511は右肩部分、ジョイント512は首部分、ジョイント513は左股関節部分、ジョイント514は右股関節部分として定義される。
【0011】
人体スケルトン型動きデータは、人体スケルトンモデルの各ジョイントの動きを示すデータである。人体スケルトン型動きデータは、各ジョイントの位置情報、角度情報、速度情報、加速度情報等を含む。
【0012】
次に、角度情報と加速度情報とを例として、人体スケルトン型動きデータについて説明する。
角度情報は、人体の一連の動きを複数の姿勢(ポーズ)によって表すものであり、人体の基本ポーズ(Neutral Pose)を表す基本ポーズデータと、人体の動きにおける各ポーズを表すフレームデータとを有する。基本ポーズデータは、基本ポーズにおけるルートの位置および各ジョイントの位置、ならびに各骨の長さ等の情報を有する。フレームデータは、基本ポーズからの移動量をジョイントごとに表す。例えば、移動量は角度情報として表される。各フレームデータにより、基本ポーズに対して移動量が加味された各ポーズが特定される。これにより、各フレームデータによって特定される各ポーズの連続により、人体の一連の動きが特定される。角度情報は、人体の動きを撮影した映像をモーションキャプチャ処理することによって取得されたり、キーフレームアニメーションの手作業にしたがって取得されたりする。
【0013】
加速度情報は、人体の各ジョイントの加速度を、ポーズごとのフレームデータと複数のポーズとによって表すものである。加速度情報は、加速度計で取得されたり、映像の動きに基づいて算出されたりする。
【0014】
なお、スケルトンモデルとして、人体の他に、動物、ロボット等が適用できる。
【0015】
次に、本実施形態であるモーション生成装置の構成を説明する。
本実施形態であるモーション生成装置は、二つのモーションデータを外部から取り込み、これら二つのモーションデータそれぞれの、時間方向における任意の一部または全部のデータをブレンド処理してブレンドモーションデータを生成し、このブレンドモーションデータを出力する装置である。
【0016】
図2は、本実施形態であるモーション生成装置の機能構成を示すブロック図である。同図に示すように、モーション生成装置1は、モーションデータ取得部10と、遷移点指定部20と、物理量変更処理部30と、ブレンディング区間計算部40と、ルート方向処理部50と、ルート位置調整部60と、ルート位置処理部70と、関節処理部80と、ブレンドモーションデータ出力部90とを備える。
【0017】
モーションデータ取得部10は、外部装置ら供給される、二つのモーションデータ(第1モーションデータおよび第2モーションデータ)を取り込み、これら二つのモーションデータを遷移点指定部20に供給する。外部装置は、例えば、モーションデータを記憶したコンピュータ装置である。
【0018】
遷移点指定部20は、モーションデータ取得部10から供給される第1モーションデータおよび第2モーションデータを取り込み、第1モーションデータにおけるブレンド開始点および第2モーションデータにおけるブレンド終了点を指定する。ブレンド開始点は、第1モーションデータにおいてブレンド処理の開始位置を示す情報である。ブレンド終了点は、第2モーションデータにおいてブレンド処理の終了位置を示す情報である。つまり、第1モーションデータにおけるブレンド開始点以後のデータと、第2モーションデータにおけるブレンド終了点以前のデータとに基づいて、ブレンドモーションデータは生成される。ブレンド開始点およびブレンド終了点は、利用者によって任意に設定される遷移点であり、フレーム、時刻等により特定される。
【0019】
モーションデータは、スケルトンモデル(例えば、人体スケルトンモデル)における複数のジョイントのうち、基準のジョイントであるルートの位置であるルート位置、ルートの方向であるルート方向、およびルートを除くジョイントの方向である関節方向を示す時系列情報を含むデータである。モーションデータは、下記の式(1)により表される。ただし、tはフレーム番号、kはジョイント(関節)の番号である。p(ボールド体)root(t)は、第tフレームのルート位置である。なお、“(ボールド体)”は、その直前の文字がボールド体で表されることを示し、当該文字がベクトルまたは行列であることを示す。Θroot(t)は、第tフレームのルート方向を示す。また、Θ(t)は、第tフレームの第kジョイントの関節方向を示す。
【0020】
【数1】

【0021】
物理量変更処理部30は、第1モーションデータおよび第2モーションデータそれぞれについて、下記の式(2)により、フレームごとの各ジョイントのオイラ(Euler)角度を四次元数(Quaternion)に変換する。
【0022】
【数2】

【0023】
よって、第1モーションデータおよび第2モーションデータは、四次元数を用いた表現形式である下記の式(3)により表現形式で表される。
【0024】
【数3】

【0025】
また、物理量変更処理部30は、第1モーションデータおよび第2モーションデータそれぞれについて、ルート位置の時間変化であるルート速度を、下記の式(4)により計算する。
【0026】
【数4】

【0027】
また、物理量変更処理部30は、第1モーションデータおよび第2モーションデータそれぞれについて、ルート方向の時間変化であるルート角速度を、下記の式(5)により計算する。
【0028】
【数5】

【0029】
よって、物理量変更処理部30が出力する第1モーションデータおよび第2モーションデータは、下記の式(6)により表される。
【0030】
【数6】

【0031】
なお、物理量変更処理部30は、ルート速度およびルート角速度を、例えば2フレーム間での差分等、複数フレーム間での差分により計算してもよい。
【0032】
ブレンディング区間計算部40は、第1モーションデータにおけるブレンド開始点以後のモーションデータと、第2モーションデータにおけるブレンド終了点以前のモーションデータとに含まれる関節方向を示す時系列情報に基づいて、ブレンディング区間を計算する。
【0033】
具体的には、ブレンディング区間計算部40は、まず、第1モーションデータと第2モーションデータとの対応関係を求める。つまり、ブレンディング区間計算部40は、第1モーションデータおよび第2モーションデータにおけるビートフレームを推定し、第1モーションデータにおけるビート間隔と第2モーションデータにおけるビート間隔との比率に基づいて、ポーズを対応付ける。ビートフレームは、各モーションデータにおいて、動きのリズムを表すとともに動きの突然的な変化が生じているフレームである。ビートフレームを推定する技術については、例えば、下記の参考文献1に詳細が記載されている。
【0034】
次に、ブレンディング区間計算部40は、下記の式(7)に示すように任意の区間長bに対応するコスト関数を用いることにより、コストが最も低くなる区間長bを、ブレンディング区間とする。ただし、D(t1s,t2s,b)はコスト関数、t1sはブレンド開始点に対応するフレーム番号、t2sはブレンド終了点に対応するフレーム番号、uはブレンディング区間におけるフレーム番号である。また、wは、第kジョイントにおける重みである。この重みwは、あらかじめ設定される値である。
【0035】
【数7】

【0036】
ブレンディング区間の計算方法の例については、例えば、下記の参考文献1および参考文献2に開示されている。
[参考文献1]Jianfeng Xu, Koichi Takagi, and Akio Yoneyama,””Beat induction from motion capture data using short-term principal component analysis,” The Journal of The Institute of Image Information and Television Engineers, vol. 64, no. 4, pp. 577-583, 2010.
[参考文献2]Jing Wang and Bobby Bodenheimer, “Computing the Duration of Motion Transitions: an Empirical Approach”, In Proceedings of the 2004 ACM SIGGRAPH/Eurographics symposium on Computer animation (SCA '04), pp. 335-344, 2004.
【0037】
ルート方向処理部50は、ブレンディング区間においてルート角速度をブレンド処理してブレンドルート方向を計算する。ブレンド処理は、下記の式(8)に示す球面線形補間(Spherical Linear intERPolation;SLERP)の式を適用して、二つの方向間を補間する。なお、このSLERPによる計算については、前記の非特許文献1に詳細が開示されている。
【0038】
【数8】

【0039】
具体的には、ルート方向処理部50は、下記の式(9)によりルート角速度のブレンド処理を実行する。ただし、Δq(ボールド体)root(t1s+u)は第1モーションデータにおけるルート角速度、Δq(ボールド体)root(t2s+u)は第2モーションデータにおけるルート角速度、w(u)は0(ゼロ)から1までの間においてとり得る重みである。bは、ブレンドモーションデータを構成するフレームの総数であり、前述したブレンディング区間長である。uは、ブレンディング区間におけるフレーム番号(0≦u≦b−1)である。
【0040】
【数9】

【0041】
そして、ルート方向処理部50は、下記の式(10)によりブレンド処理されたフレームのルート方向であるブレンドルート方向を計算する。
【0042】
【数10】

【0043】
ルート位置調整部60は、ブレンドルート方向にしたがってルート速度を調整する。ルート位置調整部60は、例えば、第2モーションデータのブレンド終了点におけるルート方向を、ブレンディング区間における最後のフレームのルート方向に合わせて調整する。具体的には、まずルート位置調整部60は、下記の式(11)により回転角を計算する
【0044】
【数11】

【0045】
そして、ルート位置調整部60は、各フレームのルート速度を調整する。まず、ルート位置調整部60は、下記の式(12)により、調整前のルート速度Δp(ボールド体)root(t)から四次元数を計算する。
【0046】
【数12】

【0047】
そして、ルート位置調整部60は、下記の式(13)により、ルート速度を調整する。
【0048】
【数13】

【0049】
式(13)の左辺は、四次元数として下記の式(14)により表される。
【0050】
【数14】

【0051】
なお、ルート位置調整部60は、例えば、ブレンディング区間における最後のフレームのルート方向を、第2モーションデータのブレンド終了点におけるルート方向に合わせて調整してもよい。
【0052】
ルート位置処理部70は、調整されたルート速度をブレンド処理する。例えば、ルート位置処理部70は、下記の式(15)に示すように、重み付き平均によりルート速度のブレンド処理を行う。
【0053】
【数15】

【0054】
そして、ルート位置処理部70は、下記の式(16)により、ルート速度からルート位置を計算する。
【0055】
【数16】

【0056】
関節処理部80は、ブレンディング区間において、ルートを除くジョイントの関節方向のブレンド処理を行う。具体的には、関節処理部80は、例えば、下記の式(17)に示すLERPの式を適用して、二つの方向間を補間する。
【0057】
【数17】

【0058】
ブレンドモーションデータ出力部90は、ルートおよび関節のブレンド処理されたモーションデータについて、角度情報を下記の式(18)により四次元数からオイラ角度に変換する。
【0059】
【数18】

【0060】
そして、ブレンドモーションデータ出力部90は、ブレンドモーションデータを、入力データである第1モーションデータおよび第2モーションデータと同一のフォーマットにより出力する。
【0061】
図3は、第1モーションデータ、第2モーションデータ、およびそれぞれの部分データから生成されるブレンドモーションデータとの関係を示す図である。同図は、第1モーションデータ100に設けられたブレンド開始点101以後であり、且つ第2モーションデータ200に設けられたブレンド終了点202以前の所定区間において、ブレンドモーションデータ300が生成される様子を示している。
【0062】
図3において、ブレンドモーションデータ出力部90は、ブレンドモーションデータ300のみを出力することができる。また、ブレンドモーションデータ出力部90は、第1モーションデータの先頭からブレンド開始点101までのモーションデータとブレンドモーションデータ300とを出力することができる。また、ブレンドモーションデータ出力部90は、ブレンドモーションデータ300とブレンド終了点202から第2モーションデータ200の最後までのモーションデータとを出力することができる。また、ブレンドモーションデータ出力部90は、第1モーションデータの先頭からブレンド開始点101までのモーションデータとブレンドモーションデータ300とブレンド終了点202から第2モーションデータ200の最後までのモーションデータとを出力することができる。
【0063】
次に、モーション生成装置1がルートに関するブレンドモーションデータを生成する処理について説明する。
図4は、本実施形態であるモーション生成装置1による、ルートに関するブレンドモーションデータを生成する処理の手順を示すフローチャートである。
ステップS1において、モーションデータ取得部10は、外部装置ら供給される、二つのモーションデータ(第1モーションデータおよび第2モーションデータ)を取り込み、これら二つのモーションデータを遷移点指定部20に供給する。
【0064】
次に、ステップS2において、遷移点指定部20は、モーションデータ取得部10から供給される第1モーションデータおよび第2モーションデータを取り込み、第1モーションデータにおけるブレンド開始点および第2モーションデータにおけるブレンド終了点を指定する。
【0065】
次に、ステップS3において、物理量変更処理部30は、二つのモーションデータについて、物理量変更処理を実行する。具体的には、例えば、物理量変更処理部30は、第1モーションデータおよび第2モーションデータそれぞれについて、フレームごとの各ジョイントのオイラ角度を前記の式(2)の計算によって四次元数に変換する。
【0066】
次に、物理量変更処理部30は、第1モーションデータおよび第2モーションデータそれぞれについて、ルート位置の時間変化であるルート速度を、前記の式(4)により計算する。
次に、物理量変更処理部30は、第1モーションデータおよび第2モーションデータそれぞれについて、ルート方向の時間変化であるルート角速度を、前記の式(5)により計算する。
【0067】
次に、ステップS4において、ブレンディング区間計算部40は、第1モーションデータにおけるブレンド開始点以後のモーションデータと、第2モーションデータにおけるブレンド終了点以前のモーションデータとに含まれる関節方向を示す時系列情報に基づいて、ブレンディング区間を計算する。具体的には、前記の式(7)に示すように、ブレンディング区間計算部40は、任意の区間長bに対応するコスト関数を用いることにより、コストが最も低くなる区間長bを、ブレンディング区間にする。
【0068】
次に、ステップS5において、ルート方向処理部50は、ブレンディング区間において、例えば、前記の式(9)に示すSLERPを適用し、ルート角速度のブレンド処理を実行する。
次に、ルート方向処理部50は、前記の式(10)によりブレンド処理されたフレームのルート方向であるブレンドルート方向を計算する。
【0069】
次に、ステップS6において、ルート位置調整部60は、ブレンドルート方向にしたがってルート速度を調整する。ルート位置調整部60は、例えば、第2モーションデータのブレンド終了点におけるルート方向を、ブレンディング区間における最後のフレームのルート方向に合わせて調整する。
または、ルート位置調整部60は、例えば、ブレンディング区間における最後のフレームのルート方向を、第2モーションデータのブレンド終了点におけるルート方向に合わせて調整する。
【0070】
次に、ステップS7において、ルート位置処理部70は、調整されたルート速度をブレンド処理する。例えば、ルート位置処理部70は、前記の式(15)に示すように、重み付き平均によりルート速度のブレンド処理を行う。
次に、ルート位置処理部70は、前記の式(16)により、ルート速度からルート位置を計算する。
【0071】
以上、説明したとおり、本発明の一実施形態であるモーション生成装置1は、スケルトンモデルにおける複数のジョイントのうち、基準のジョイント、すなわちルートのルート位置、ルート方向、およびルートを除くジョイントの関節方向を示す時系列情報をそれぞれ含む二つのモーションデータを、取り込むモーションデータ取得部10を備えた。
そして、モーション生成装置1は、第1モーションデータにおけるブレンド開始点および第2モーションデータにおけるブレンド終了点を指定する遷移点指定部20と、二つのモーションデータそれぞれについて、ルート位置の時間変化であるルート速度とルート方向の時間変化であるルート角速度とを求める物理量変更処理部30と、第1モーションデータにおけるブレンド開始点以後のモーションデータと第2モーションデータにおけるブレンド終了点以前のモーションデータとに含まれる関節方向を示す時系列情報に基づいて、ブレンディング区間を求めるブレンディング区間計算部40とを備えた。
そして、モーション生成装置1は、ルート角速度をブレンディング区間においてブレンド処理しブレンドルート方向を求めるルート方向処理部50と、ブレンドルート方向にしたがってルート速度を調整するルート位置調整部60と、調整されたルート速度をブレンド処理するルート位置処理部70とを備えた。
【0072】
さらに、ルート位置調整部60は、ブレンディング区間における最終フレームに対応するブレンドルート方向と、ブレンド終了点に対応するブレンド方向とに基づいて、第2モーションデータにおけるブレンディング区間の基点以後のモーションデータが有するルート速度を調整するようにした。
【0073】
さらに、ブレンディング区間計算部40は、第1モーションデータおよび第2モーションデータにおけるビートフレームを推定し、第1モーションデータにおけるビート間隔と第2モーションデータにおけるビート間隔の比率に基づいて、ポーズを対応付けてブレンディング区間を求めるようにした。
【0074】
このように構成したことにより、本実施形態であるモーション生成装置1は、ルート位置とルート方向とを関係付けて高速にブレンド処理することができる。よって、モーション生成装置1によれば、ブレンド前のモーションからブレンド後のモーションへの遷移に不自然さが発生しない。例えば、人体モデルが観察者から見て右方向に歩く動作を示す第1のモーションと、人体モデルが定位置で観察者に正対する状態から後方倒立回転跳び(後転跳び)を行う動作を示す第2のモーションとを、ブレンド処理する例を挙げて説明する。従来のモーションブレンディング技術によって第1のモーションと第2のモーションとをブレンドさせると、ブレンド後のモーションは、人体モデルが観察者から見て右方向に移動しながら後転跳びを行うという、不自然な運動を示す動きとなる。しかし、本実施形態によれば、ブレンド後のモーションは、人体モデルが観察者から見て定位置に留まった状態で後転跳びを行うという、自然な運動を示す動きとなる。
【0075】
したがって、本実施形態によれば、処理の高速性を保ち、且つモーションを自然に遷移させるモーションブレンディングを実現することができる。
【0076】
なお、モーション生成装置1は、第1モーションデータと第2モーションデータとをブレンド処理してブレンドモーションデータを生成したのち、第3モーションデータを取り込み、前記のブレンドモーションデータと第3モーションデータとをさらにブレンド処理してもよい。この場合、モーションデータ取得部10が第3モーションデータを取り込み、物理量変更処理部30が第3モーションデータについて、ルート速度とルート角速度とを計算し、ブレンディング区間計算部40が前記のブレンドモーションデータを生成したときのブレンディング区間を適用し、ルート方向処理部50が、ルート角速度を前記のブレンディング区間において半分ずつの重みによりポーズごとにブレンド処理しブレンドルート方向を求める。
【0077】
また、上述した実施形態であるモーション生成装置1の一部の機能をコンピュータで実現するようにしてもよい。この場合、その機能を実現するためのモーション生成プログラムをコンピュータ読み取り可能な記録媒体に記録し、この記録媒体に記録されたモーション生成プログラムをコンピュータシステムに読み込ませて、このコンピュータシステムが実行することによって実現してもよい。なお、このコンピュータシステムとは、オペレーティング・システム(Operating System;OS)や周辺装置のハードウェアを含むものである。また、コンピュータ読み取り可能な記録媒体とは、フレキシブルディスク、光磁気ディスク、光ディスク、メモリカード等の可搬型記録媒体、コンピュータシステムに備えられる磁気ハードディスクやソリッドステートドライブ等の記憶装置のことをいう。さらに、コンピュータ読み取り可能な記録媒体とは、インターネット等のコンピュータネットワーク、および電話回線や携帯電話網を介してプログラムを送信する場合の通信回線のように、短時間の間、動的にプログラムを保持するもの、さらには、その場合のサーバ装置やクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持するものを含んでもよい。また上記のモーション生成プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせにより実現するものであってもよい。
【0078】
以上、本発明の実施の形態について図面を参照して詳述したが、具体的な構成はその実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【0079】
1 モーション生成装置
10 モーションデータ取得部
20 遷移点指定部
30 物理量変更処理部
40 ブレンディング区間計算部
50 ルート方向処理部
60 ルート位置調整部
70 ルート位置処理部
80 関節処理部
90 ブレンドモーションデータ出力部

【特許請求の範囲】
【請求項1】
スケルトンモデルにおける複数のジョイントのうち、基準のジョイントであるルートの位置であるルート位置、前記ルートの方向であるルート方向、および前記ルートを除くジョイントの方向である関節方向を示す時系列情報をそれぞれ含む二つのモーションデータを、取り込むモーションデータ取得部と、
前記二つのモーションデータのうち、第1モーションデータにおけるブレンド開始点および第2モーションデータにおけるブレンド終了点を指定する遷移点指定部と、
前記二つのモーションデータそれぞれについて、前記ルート位置の時間変化であるルート速度と前記ルート方向の時間変化であるルート角速度とを求める物理量変更処理部と、
前記第1モーションデータにおける前記ブレンド開始点以後のモーションデータと前記第2モーションデータにおける前記ブレンド終了点以前のモーションデータとに含まれる前記関節方向を示す時系列情報に基づいて、ブレンディング区間を求めるブレンディング区間計算部と、
前記ルート角速度を前記ブレンディング区間においてブレンド処理しブレンドルート方向を求めるルート方向処理部と、
前記ブレンドルート方向にしたがって前記ルート速度を調整するルート位置調整部と、
前記調整されたルート速度をブレンド処理するルート位置処理部と、
を備えることを特徴とするモーション生成装置。
【請求項2】
前記ルート位置調整部は、前記ブレンディング区間における最終フレームに対応するブレンドルート方向と、前記ブレンド終了点に対応するブレンド方向とに基づいて、前記第2モーションデータにおける前記ブレンディング区間の基点以後のモーションデータが有するルート速度を調整する
ことを特徴とする請求項1記載のモーション生成装置。
【請求項3】
前記ブレンディング区間計算部は、前記第1モーションデータおよび前記第2モーションデータにおけるビートフレームを推定し、前記第1モーションデータにおけるビート間隔と前記第2モーションデータにおけるビート間隔の比率に基づいて、ポーズを対応付けてブレンディング区間を求める
ことを特徴とする請求項1または2記載のモーション生成装置。
【請求項4】
スケルトンモデルにおける複数のジョイントのうち、基準のジョイントであるルートの位置であるルート位置、前記ルートの方向であるルート方向、および前記ルートを除くジョイントの方向である関節方向を示す時系列情報をそれぞれ含む二つのモーションデータを、モーションデータ取得部が取り込むモーションデータ取得ステップと、
遷移点指定部が、前記二つのモーションデータのうち、第1モーションデータにおけるブレンド開始点および第2モーションデータにおけるブレンド終了点を指定する遷移点指定ステップと、
物理量変更処理部が、前記二つのモーションデータそれぞれについて、前記ルート位置の時間変化であるルート速度と前記ルート方向の時間変化であるルート角速度とを求める物理量変更ステップと、
ブレンディング区間計算部が、前記第1モーションデータにおける前記ブレンド開始点以後のモーションデータと前記第2モーションデータにおける前記ブレンド終了点以前のモーションデータとに含まれる前記関節方向を示す時系列情報に基づいて、ブレンディング区間を求めるブレンディング区間計算ステップと、
ルート方向処理部が、前記ルート角速度を前記ブレンディング区間においてブレンド処理しブレンドルート方向を求めるルート方向処理ステップと、
ルート位置調整部が、前記ブレンドルート方向にしたがって前記ルート速度を調整するルート位置調整ステップと、
ルート位置処理部が、前記調整されたルート速度をブレンド処理するルート位置処理ステップと、
を有することを特徴とするモーション生成方法。
【請求項5】
前記ルート位置調整ステップは、前記ルート位置調整部が、前記ブレンディング区間における最終フレームに対応するブレンドルート方向と、前記ブレンド終了点に対応するブレンド方向とに基づいて、前記第2モーションデータにおける前記ブレンディング区間の基点以後のモーションデータが有するルート速度を調整する
ことを特徴とする請求項4記載のモーション生成方法。
【請求項6】
前記ブレンディング区間計算ステップは、前記ブレンディング区間計算部が、前記第1モーションデータおよび前記第2モーションデータにおけるビートフレームを推定し、前記第1モーションデータにおけるビート間隔と前記第2モーションデータにおけるビート間隔の比率に基づいて、ポーズを対応付けてブレンディング区間を求める
ことを特徴とする請求項4または5記載のモーション生成方法。
【請求項7】
前記モーションデータ取得部が、第3モーションデータを取り込むステップと、
前記物理量変更処理部が、前記第3モーションデータについて、前記ルート速度と前記ルート角速度とを求めるステップと、
前記ルート方向処理部が、前記ルート角速度を前記ブレンディング区間において所定の重みによりブレンド処理しブレンドルート方向を求めるステップと、
をさらに有することを特徴とする請求項4から6いずれか一項記載のモーション生成方法。
【請求項8】
コンピュータを、
スケルトンモデルにおける複数のジョイントのうち、基準のジョイントであるルートの位置であるルート位置、前記ルートの方向であるルート方向、および前記ルートを除くジョイントの方向である関節方向を示す時系列情報をそれぞれ含む二つのモーションデータを、取り込むモーションデータ取得部と、
前記二つのモーションデータのうち、第1モーションデータにおけるブレンド開始点および第2モーションデータにおけるブレンド終了点を指定する遷移点指定部と、
前記二つのモーションデータそれぞれについて、前記ルート位置の時間変化であるルート速度と前記ルート方向の時間変化であるルート角速度とを求める物理量変更処理部と、
前記第1モーションデータにおける前記ブレンド開始点以後のモーションデータと前記第2モーションデータにおける前記ブレンド終了点以前のモーションデータとに含まれる前記関節方向を示す時系列情報に基づいて、ブレンディング区間を求めるブレンディング区間計算部と、
前記ルート角速度を前記ブレンディング区間においてブレンド処理しブレンドルート方向を求めるルート方向処理部と、
前記ブレンドルート方向にしたがって前記ルート速度を調整するルート位置調整部と、
前記調整されたルート速度をブレンド処理するルート位置処理部と、
として機能させるためのモーション生成プログラム。
【請求項9】
前記ルート位置調整部は、前記ブレンディング区間における最終フレームに対応するブレンドルート方向と、前記ブレンド終了点に対応するブレンド方向とに基づいて、前記第2モーションデータにおける前記ブレンディング区間の基点以後のモーションデータが有するルート速度を調整する
ことを特徴とする請求項8記載のモーション生成プログラム。
【請求項10】
前記ブレンディング区間計算部は、前記第1モーションデータおよび前記第2モーションデータにおけるビートフレームを推定し、前記第1モーションデータにおけるビート間隔と前記第2モーションデータにおけるビート間隔の比率に基づいて、ポーズを対応付けてブレンディング区間を求める
ことを特徴とする請求項8または9記載のモーション生成プログラム。
【請求項11】
前記モーションデータ取得部が、第3モーションデータをさらに取り込み、
前記物理量変更処理部が、前記第3モーションデータについて、前記ルート速度と前記ルート角速度とを求め、
前記ルート方向処理部が、前記ルート角速度を前記ブレンディング区間において所定の重みによりブレンド処理しブレンドルート方向を求める
ことを特徴とする請求項8から10いずれか一項記載のモーション生成プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate