(57)【特許請求の範囲】
【請求項１】
スケルトンモデルにおける複数のジョイントのうち、基準のジョイントであるルートの位置であるルート位置、前記ルートの方向であるルート方向、および前記ルートを除くジョイントの方向である関節方向を示す時系列情報をそれぞれ含む二つのモーションデータを、取り込むモーションデータ取得部と、
前記二つのモーションデータのうち、第１モーションデータにおけるブレンド開始点および第２モーションデータにおけるブレンド終了点を指定する遷移点指定部と、
前記二つのモーションデータそれぞれについて、前記ルート位置の時間変化であるルート速度と前記ルート方向の時間変化であるルート角速度とを求める物理量変更処理部と、
前記第１モーションデータにおける前記ブレンド開始点以後のモーションデータと前記第２モーションデータにおける前記ブレンド終了点以前のモーションデータとに含まれる前記関節方向を示す時系列情報に基づいて、ブレンディング区間を求めるブレンディング区間計算部と、
前記ルート角速度を前記ブレンディング区間においてブレンド処理しブレンドルート方向を求めるルート方向処理部と、
前記第２モーションデータの前記ブレンド終了点における前記ルート方向を、前記ブレンディング区間における最後のフレームの前記ルート方向に合わせて調整すること、または前記ブレンディング区間における前記最後の前記フレームの前記ルート方向を、前記第２モーションデータの前記ブレンド終了点における前記ルート方向に合わせて調整することによって、前記ルート速度を調整するルート位置調整部と、
前記調整されたルート速度をブレンド処理するルート位置処理部と、
を備えることを特徴とするモーション生成装置。
【請求項２】
前記ブレンディング区間計算部は、前記第１モーションデータおよび前記第２モーションデータにおけるビートフレームを推定し、前記第１モーションデータにおけるビート間隔と前記第２モーションデータにおけるビート間隔の比率に基づいて、ポーズを対応付けてブレンディング区間を求める
ことを特徴とする請求項１記載のモーション生成装置。
【請求項３】
スケルトンモデルにおける複数のジョイントのうち、基準のジョイントであるルートの位置であるルート位置、前記ルートの方向であるルート方向、および前記ルートを除くジョイントの方向である関節方向を示す時系列情報をそれぞれ含む二つのモーションデータを、モーションデータ取得部が取り込むモーションデータ取得ステップと、
遷移点指定部が、前記二つのモーションデータのうち、第１モーションデータにおけるブレンド開始点および第２モーションデータにおけるブレンド終了点を指定する遷移点指定ステップと、
物理量変更処理部が、前記二つのモーションデータそれぞれについて、前記ルート位置の時間変化であるルート速度と前記ルート方向の時間変化であるルート角速度とを求める物理量変更ステップと、
ブレンディング区間計算部が、前記第１モーションデータにおける前記ブレンド開始点以後のモーションデータと前記第２モーションデータにおける前記ブレンド終了点以前のモーションデータとに含まれる前記関節方向を示す時系列情報に基づいて、ブレンディング区間を求めるブレンディング区間計算ステップと、
ルート方向処理部が、前記ルート角速度を前記ブレンディング区間においてブレンド処理しブレンドルート方向を求めるルート方向処理ステップと、
ルート位置調整部が、前記第２モーションデータの前記ブレンド終了点における前記ルート方向を、前記ブレンディング区間における最後のフレームの前記ルート方向に合わせて調整すること、または前記ブレンディング区間における前記最後の前記フレームの前記ルート方向を、前記第２モーションデータの前記ブレンド終了点における前記ルート方向に合わせて調整することによって、前記ルート速度を調整するルート位置調整ステップと、
ルート位置処理部が、前記調整されたルート速度をブレンド処理するルート位置処理ステップと、
を有することを特徴とするモーション生成方法。
【請求項４】
前記ブレンディング区間計算ステップは、前記ブレンディング区間計算部が、前記第１モーションデータおよび前記第２モーションデータにおけるビートフレームを推定し、前記第１モーションデータにおけるビート間隔と前記第２モーションデータにおけるビート間隔の比率に基づいて、ポーズを対応付けてブレンディング区間を求める
ことを特徴とする請求項３記載のモーション生成方法。
【請求項５】
前記モーションデータ取得部が、第３モーションデータを取り込むステップと、
前記物理量変更処理部が、前記第３モーションデータについて、前記ルート速度と前記ルート角速度とを求めるステップと、
前記ルート方向処理部が、前記ルート角速度を前記ブレンディング区間において所定の重みによりブレンド処理しブレンドルート方向を求めるステップと、
をさらに有することを特徴とする請求項３または４記載のモーション生成方法。
【請求項６】
コンピュータを、
スケルトンモデルにおける複数のジョイントのうち、基準のジョイントであるルートの位置であるルート位置、前記ルートの方向であるルート方向、および前記ルートを除くジョイントの方向である関節方向を示す時系列情報をそれぞれ含む二つのモーションデータを、取り込むモーションデータ取得部と、
前記二つのモーションデータのうち、第１モーションデータにおけるブレンド開始点および第２モーションデータにおけるブレンド終了点を指定する遷移点指定部と、
前記二つのモーションデータそれぞれについて、前記ルート位置の時間変化であるルート速度と前記ルート方向の時間変化であるルート角速度とを求める物理量変更処理部と、
前記第１モーションデータにおける前記ブレンド開始点以後のモーションデータと前記第２モーションデータにおける前記ブレンド終了点以前のモーションデータとに含まれる前記関節方向を示す時系列情報に基づいて、ブレンディング区間を求めるブレンディング区間計算部と、
前記ルート角速度を前記ブレンディング区間においてブレンド処理しブレンドルート方向を求めるルート方向処理部と、
前記第２モーションデータの前記ブレンド終了点における前記ルート方向を、前記ブレンディング区間における最後のフレームの前記ルート方向に合わせて調整すること、または前記ブレンディング区間における前記最後の前記フレームの前記ルート方向を、前記第２モーションデータの前記ブレンド終了点における前記ルート方向に合わせて調整することによって、前記ルート速度を調整するルート位置調整部と、
前記調整されたルート速度をブレンド処理するルート位置処理部と、
として機能させるためのモーション生成プログラム。
【請求項７】
前記ブレンディング区間計算部は、前記第１モーションデータおよび前記第２モーションデータにおけるビートフレームを推定し、前記第１モーションデータにおけるビート間隔と前記第２モーションデータにおけるビート間隔の比率に基づいて、ポーズを対応付けてブレンディング区間を求める
ことを特徴とする請求項６記載のモーション生成プログラム。
【請求項８】
前記モーションデータ取得部が、第３モーションデータをさらに取り込み、
前記物理量変更処理部が、前記第３モーションデータについて、前記ルート速度と前記ルート角速度とを求め、
前記ルート方向処理部が、前記ルート角速度を前記ブレンディング区間において所定の重みによりブレンド処理しブレンドルート方向を求める
ことを特徴とする請求項６または７記載のモーション生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モーション生成装置、モーション生成方法、およびモーション生成プログラムに関する。
【背景技術】
【０００２】
二つのモーションデータ（動きデータ）のブレンド処理を行って新たなモーションデータを生成するモーションブレンディング技術（Ｍｏｔｉｏｎ  Ｂｌｅｎｄｉｎｇ）が知られている（例えば、非特許文献１〜非特許文献３参照）。このモーションブレンディング技術によれば、例えば、運動速度が異なる二つのモーションから中間の速度を有するモーションを生成することができる。
【０００３】
一般的に、人体に関するモーションデータは、例えば、人体モデルにおける基準位置を示すルート位置の情報と、そのルート位置の方向を示すルート方向の情報と、人体モデルが有する関節の動きを示す関節方向の情報とを含む。非特許文献１には、四次元数（Ｑｕａｔｅｒｎｉｏｎ）により二つの方向間を補間する球面線形補間（Ｓｐｈｅｒｉｃａｌ  Ｌｉｎｅａｒ  ｉｎｔＥＲＰｏｌａｔｉｏｎ；ＳＬＥＲＰ）に関する技術が開示されている。また、非特許文献２および非特許文献３には、重み付き平均処理によって位置情報をブレンドする技術が開示されている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Ken Shoemake, “Animating Rotation with Quaternion Curves”, SIGGRAPH 1985, Volume 19, Number 3, pp. 245-254, 1985.
【非特許文献２】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.
【非特許文献３】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.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来のモーションブレンディング技術は、ルート位置とルート方向とを互いに独立にブレンドする技術であり、高速処理が可能である。しかしながら、従来のモーションブレンディング技術によれば、ブレンド前のモーションからブレンド後のモーションへの遷移に不自然さが発生する場合がある。具体的に、人体モデルが観察者から見て右方向に歩く動作を示す第１のモーションと、人体モデルが定位置で観察者に正対する状態から後方倒立回転跳び（後転跳び）を行う動作を示す第２のモーションとを、ブレンド処理する例を挙げて説明する。従来のモーションブレンディング技術によって第１のモーションと第２のモーションとをブレンドさせると、ブレンド後のモーションは、人体モデルが観察者から見て右方向に移動しながら後転跳びを行うという、不自然な運動を示す動きとなる。
【０００６】
そこで、本発明は、上記問題を解決するためになされたものであり、処理の高速性を保ち、且つモーションを自然に遷移させるモーションブレンディングを実現する、モーション生成装置、モーション生成方法、およびモーション生成プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
［１］上記の課題を解決するため、本発明の一態様であるモーション生成装置は、スケルトンモデルにおける複数のジョイントのうち、基準のジョイントであるルートの位置であるルート位置、前記ルートの方向であるルート方向、および前記ルートを除くジョイントの方向である関節方向を示す時系列情報をそれぞれ含む二つのモーションデータを、取り込むモーションデータ取得部と、前記二つのモーションデータのうち、第１モーションデータにおけるブレンド開始点および第２モーションデータにおけるブレンド終了点を指定する遷移点指定部と、前記二つのモーションデータそれぞれについて、前記ルート位置の時間変化であるルート速度と前記ルート方向の時間変化であるルート角速度とを求める物理量変更処理部と、前記第１モーションデータにおける前記ブレンド開始点以後のモーションデータと前記第２モーションデータにおける前記ブレンド終了点以前のモーションデータとに含まれる前記関節方向を示す時系列情報に基づいて、ブレンディング区間を求めるブレンディング区間計算部と、前記ルート角速度を前記ブレンディング区間においてブレンド処理しブレンドルート方向を求めるルート方向処理部と、前記第２モーションデータの前記ブレンド終了点における前記ルート方向を、前記ブレンディング区間における最後のフレームの前記ルート方向に合わせて調整すること、または前記ブレンディング区間における前記最後の前記フレームの前記ルート方向を、前記第２モーションデータの前記ブレンド終了点における前記ルート方向に合わせて調整することによって、前記ルート速度を調整するルート位置調整部と、前記調整されたルート速度をブレンド処理するルート位置処理部と、を備えることを特徴とする。
［２］上記［１］記載のモーション生成装置において、前記ブレンディング区間計算部は、前記第１モーションデータおよび前記第２モーションデータにおけるビートフレームを推定し、前記第１モーションデータにおけるビート間隔と前記第２モーションデータにおけるビート間隔の比率に基づいて、ポーズを対応付けてブレンディング区間を求めることを特徴とする。
［３］上記の課題を解決するため、本発明の一態様であるモーション生成方法は、スケルトンモデルにおける複数のジョイントのうち、基準のジョイントであるルートの位置であるルート位置、前記ルートの方向であるルート方向、および前記ルートを除くジョイントの方向である関節方向を示す時系列情報をそれぞれ含む二つのモーションデータを、モーションデータ取得部が取り込むモーションデータ取得ステップと、遷移点指定部が、前記二つのモーションデータのうち、第１モーションデータにおけるブレンド開始点および第２モーションデータにおけるブレンド終了点を指定する遷移点指定ステップと、物理量変更処理部が、前記二つのモーションデータそれぞれについて、前記ルート位置の時間変化であるルート速度と前記ルート方向の時間変化であるルート角速度とを求める物理量変更ステップと、ブレンディング区間計算部が、前記第１モーションデータにおける前記ブレンド開始点以後のモーションデータと前記第２モーションデータにおける前記ブレンド終了点以前のモーションデータとに含まれる前記関節方向を示す時系列情報に基づいて、ブレンディング区間を求めるブレンディング区間計算ステップと、ルート方向処理部が、前記ルート角速度を前記ブレンディング区間においてブレンド処理しブレンドルート方向を求めるルート方向処理ステップと、ルート位置調整部が、前記第２モーションデータの前記ブレンド終了点における前記ルート方向を、前記ブレンディング区間における最後のフレームの前記ルート方向に合わせて調整すること、または前記ブレンディング区間における前記最後の前記フレームの前記ルート方向を、前記第２モーションデータの前記ブレンド終了点における前記ルート方向に合わせて調整することによって、前記ルート速度を調整するルート位置調整ステップと、ルート位置処理部が、前記調整されたルート速度をブレンド処理するルート位置処理ステップと、を有することを特徴とする。
［４］上記［３］記載のモーション生成方法において、前記ブレンディング区間計算ステップは、前記ブレンディング区間計算部が、前記第１モーションデータおよび前記第２モーションデータにおけるビートフレームを推定し、前記第１モーションデータにおけるビート間隔と前記第２モーションデータにおけるビート間隔の比率に基づいて、ポーズを対応付けてブレンディング区間を求めることを特徴とする。
［５］上記［３］または［４］記載のモーション生成方法において、前記モーションデータ取得部が、第３モーションデータを取り込むステップと、前記物理量変更処理部が、前記第３モーションデータについて、前記ルート速度と前記ルート角速度とを求めるステップと、前記ルート方向処理部が、前記ルート角速度を前記ブレンディング区間において所定の重みによりブレンド処理しブレンドルート方向を求めるステップと、をさらに有することを特徴とする。
［６］上記の課題を解決するため、本発明の一態様であるモーション生成プログラムは、コンピュータを、スケルトンモデルにおける複数のジョイントのうち、基準のジョイントであるルートの位置であるルート位置、前記ルートの方向であるルート方向、および前記ルートを除くジョイントの方向である関節方向を示す時系列情報をそれぞれ含む二つのモーションデータを、取り込むモーションデータ取得部と、前記二つのモーションデータのうち、第１モーションデータにおけるブレンド開始点および第２モーションデータにおけるブレンド終了点を指定する遷移点指定部と、前記二つのモーションデータそれぞれについて、前記ルート位置の時間変化であるルート速度と前記ルート方向の時間変化であるルート角速度とを求める物理量変更処理部と、前記第１モーションデータにおける前記ブレンド開始点以後のモーションデータと前記第２モーションデータにおける前記ブレンド終了点以前のモーションデータとに含まれる前記関節方向を示す時系列情報に基づいて、ブレンディング区間を求めるブレンディング区間計算部と、前記ルート角速度を前記ブレンディング区間においてブレンド処理しブレンドルート方向を求めるルート方向処理部と、前記第２モーションデータの前記ブレンド終了点における前記ルート方向を、前記ブレンディング区間における最後のフレームの前記ルート方向に合わせて調整すること、または前記ブレンディング区間における前記最後の前記フレームの前記ルート方向を、前記第２モーションデータの前記ブレンド終了点における前記ルート方向に合わせて調整することによって、前記ルート速度を調整するルート位置調整部と、前記調整されたルート速度をブレンド処理するルート位置処理部と、として機能させる。
［７］上記［６］記載のモーション生成プログラムにおいて、前記ブレンディング区間計算部は、前記第１モーションデータおよび前記第２モーションデータにおけるビートフレームを推定し、前記第１モーションデータにおけるビート間隔と前記第２モーションデータにおけるビート間隔の比率に基づいて、ポーズを対応付けてブレンディング区間を求めることを特徴とする。
［８］上記［６］または［７］記載のモーション生成プログラムにおいて、前記モーションデータ取得部が、第３モーションデータをさらに取り込み、前記物理量変更処理部が、前記第３モーションデータについて、前記ルート速度と前記ルート角速度とを求め、前記ルート方向処理部が、前記ルート角速度を前記ブレンディング区間において所定の重みによりブレンド処理しブレンドルート方向を求めることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、処理の高速性を保ち、且つモーションを自然に遷移させるモーションブレンディングを実現することができる。
【図面の簡単な説明】
【０００９】
【図１】人体スケルトンモデルを模式的に示す正面図である。
【図２】本発明の一実施形態であるモーション生成装置の機能構成を示すブロック図である。
【図３】第１モーションデータ、第２モーションデータ、およびそれぞれの部分データから生成されるブレンドモーションデータとの関係を示す図である。
【図４】同実施形態であるモーション生成装置による、ルートに関するブレンドモーションデータを生成する処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための形態について、図面を参照して詳細に説明する。
まず、本発明の一実施形態において用いられるモーションデータについて説明する。本実施形態において、モーションデータは、人体スケルトンモデルの人体スケルトン型動きデータにより表される。
図１は、人体スケルトンモデルを模式的に示す正面図である。人体スケルトンモデルは、人体の骨格をもとに、骨および骨の連結点（ジョイント）を用い、特定の一つのジョイントを根（ルート）、ルートからジョイント経由で順次連結される骨の構造を木（ツリー）として定義される。同図において、ジョイント５００は人体の腰部分であり、ルートとして定義される。ジョイント５０１は左腕の肘部分、ジョイント５０２は左腕の手首部分、ジョイント５０３は右腕の肘部分、ジョイント５０４は右腕の手首部分、ジョイント５０５は左足の膝部分、ジョイント５０６は左足の足首部分、ジョイント５０７は右足の膝部分、ジョイント５０８は右足の足首部分、ジョイント５０９は鎖骨部分、ジョイント５１０は左肩部分、ジョイント５１１は右肩部分、ジョイント５１２は首部分、ジョイント５１３は左股関節部分、ジョイント５１４は右股関節部分として定義される。
【００１１】
人体スケルトン型動きデータは、人体スケルトンモデルの各ジョイントの動きを示すデータである。人体スケルトン型動きデータは、各ジョイントの位置情報、角度情報、速度情報、加速度情報等を含む。
【００１２】
次に、角度情報と加速度情報とを例として、人体スケルトン型動きデータについて説明する。
角度情報は、人体の一連の動きを複数の姿勢（ポーズ）によって表すものであり、人体の基本ポーズ（Ｎｅｕｔｒａｌ  Ｐｏｓｅ）を表す基本ポーズデータと、人体の動きにおける各ポーズを表すフレームデータとを有する。基本ポーズデータは、基本ポーズにおけるルートの位置および各ジョイントの位置、ならびに各骨の長さ等の情報を有する。フレームデータは、基本ポーズからの移動量をジョイントごとに表す。例えば、移動量は角度情報として表される。各フレームデータにより、基本ポーズに対して移動量が加味された各ポーズが特定される。これにより、各フレームデータによって特定される各ポーズの連続により、人体の一連の動きが特定される。角度情報は、人体の動きを撮影した映像をモーションキャプチャ処理することによって取得されたり、キーフレームアニメーションの手作業にしたがって取得されたりする。
【００１３】
加速度情報は、人体の各ジョイントの加速度を、ポーズごとのフレームデータと複数のポーズとによって表すものである。加速度情報は、加速度計で取得されたり、映像の動きに基づいて算出されたりする。
【００１４】
なお、スケルトンモデルとして、人体の他に、動物、ロボット等が適用できる。
【００１５】
次に、本実施形態であるモーション生成装置の構成を説明する。
本実施形態であるモーション生成装置は、二つのモーションデータを外部から取り込み、これら二つのモーションデータそれぞれの、時間方向における任意の一部または全部のデータをブレンド処理してブレンドモーションデータを生成し、このブレンドモーションデータを出力する装置である。
【００１６】
図２は、本実施形態であるモーション生成装置の機能構成を示すブロック図である。同図に示すように、モーション生成装置１は、モーションデータ取得部１０と、遷移点指定部２０と、物理量変更処理部３０と、ブレンディング区間計算部４０と、ルート方向処理部５０と、ルート位置調整部６０と、ルート位置処理部７０と、関節処理部８０と、ブレンドモーションデータ出力部９０とを備える。
【００１７】
モーションデータ取得部１０は、外部装置ら供給される、二つのモーションデータ（第１モーションデータおよび第２モーションデータ）を取り込み、これら二つのモーションデータを遷移点指定部２０に供給する。外部装置は、例えば、モーションデータを記憶したコンピュータ装置である。
【００１８】
遷移点指定部２０は、モーションデータ取得部１０から供給される第１モーションデータおよび第２モーションデータを取り込み、第１モーションデータにおけるブレンド開始点および第２モーションデータにおけるブレンド終了点を指定する。ブレンド開始点は、第１モーションデータにおいてブレンド処理の開始位置を示す情報である。ブレンド終了点は、第２モーションデータにおいてブレンド処理の終了位置を示す情報である。つまり、第１モーションデータにおけるブレンド開始点以後のデータと、第２モーションデータにおけるブレンド終了点以前のデータとに基づいて、ブレンドモーションデータは生成される。ブレンド開始点およびブレンド終了点は、利用者によって任意に設定される遷移点であり、フレーム、時刻等により特定される。
【００１９】
モーションデータは、スケルトンモデル（例えば、人体スケルトンモデル）における複数のジョイントのうち、基準のジョイントであるルートの位置であるルート位置、ルートの方向であるルート方向、およびルートを除くジョイントの方向である関節方向を示す時系列情報を含むデータである。モーションデータは、下記の式（１）により表される。ただし、ｔはフレーム番号、ｋはジョイント（関節）の番号である。ｐ（ボールド体）ｒｏｏｔ（ｔ）は、第ｔフレームのルート位置である。なお、“（ボールド体）”は、その直前の文字がボールド体で表されることを示し、当該文字がベクトルまたは行列であることを示す。Θｒｏｏｔ（ｔ）は、第ｔフレームのルート方向を示す。また、Θｋ（ｔ）は、第ｔフレームの第ｋジョイントの関節方向を示す。
【００２０】
【数１】
0005798000.tif 000002
【００２１】
物理量変更処理部３０は、第１モーションデータおよび第２モーションデータそれぞれについて、下記の式（２）により、フレームごとの各ジョイントのオイラ（Ｅｕｌｅｒ）角度を四次元数（Ｑｕａｔｅｒｎｉｏｎ）に変換する。
【００２２】
【数２】
0005798000.tif 000003
【００２３】
よって、第１モーションデータおよび第２モーションデータは、四次元数を用いた表現形式である下記の式（３）により表現形式で表される。
【００２４】
【数３】
0005798000.tif 000004
【００２５】
また、物理量変更処理部３０は、第１モーションデータおよび第２モーションデータそれぞれについて、ルート位置の時間変化であるルート速度を、下記の式（４）により計算する。
【００２６】
【数４】
0005798000.tif 000005
【００２７】
また、物理量変更処理部３０は、第１モーションデータおよび第２モーションデータそれぞれについて、ルート方向の時間変化であるルート角速度を、下記の式（５）により計算する。
【００２８】
【数５】
0005798000.tif 000006
【００２９】
よって、物理量変更処理部３０が出力する第１モーションデータおよび第２モーションデータは、下記の式（６）により表される。
【００３０】
【数６】
0005798000.tif 000007
【００３１】
なお、物理量変更処理部３０は、ルート速度およびルート角速度を、例えば２フレーム間での差分等、複数フレーム間での差分により計算してもよい。
【００３２】
ブレンディング区間計算部４０は、第１モーションデータにおけるブレンド開始点以後のモーションデータと、第２モーションデータにおけるブレンド終了点以前のモーションデータとに含まれる関節方向を示す時系列情報に基づいて、ブレンディング区間を計算する。
【００３３】
具体的には、ブレンディング区間計算部４０は、まず、第１モーションデータと第２モーションデータとの対応関係を求める。つまり、ブレンディング区間計算部４０は、第１モーションデータおよび第２モーションデータにおけるビートフレームを推定し、第１モーションデータにおけるビート間隔と第２モーションデータにおけるビート間隔との比率に基づいて、ポーズを対応付ける。ビートフレームは、各モーションデータにおいて、動きのリズムを表すとともに動きの突然的な変化が生じているフレームである。ビートフレームを推定する技術については、例えば、下記の参考文献１に詳細が記載されている。
【００３４】
次に、ブレンディング区間計算部４０は、下記の式（７）に示すように任意の区間長ｂに対応するコスト関数を用いることにより、コストが最も低くなる区間長ｂ＊を、ブレンディング区間とする。ただし、Ｄ（ｔ１ｓ，ｔ２ｓ，ｂ）はコスト関数、ｔ１ｓはブレンド開始点に対応するフレーム番号、ｔ２ｓはブレンド終了点に対応するフレーム番号、ｕはブレンディング区間におけるフレーム番号である。また、ｗｋは、第ｋジョイントにおける重みである。この重みｗｋは、あらかじめ設定される値である。
【００３５】
【数７】
0005798000.tif 000008
【００３６】
ブレンディング区間の計算方法の例については、例えば、下記の参考文献１および参考文献２に開示されている。
［参考文献１］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.
［参考文献２］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.
【００３７】
ルート方向処理部５０は、ブレンディング区間においてルート角速度をブレンド処理してブレンドルート方向を計算する。ブレンド処理は、下記の式（８）に示す球面線形補間（Ｓｐｈｅｒｉｃａｌ  Ｌｉｎｅａｒ  ｉｎｔＥＲＰｏｌａｔｉｏｎ；ＳＬＥＲＰ）の式を適用して、二つの方向間を補間する。なお、このＳＬＥＲＰによる計算については、前記の非特許文献１に詳細が開示されている。
【００３８】
【数８】
0005798000.tif 000009
【００３９】
具体的には、ルート方向処理部５０は、下記の式（９）によりルート角速度のブレンド処理を実行する。ただし、Δｑ（ボールド体）Ａｒｏｏｔ（ｔ１ｓ＋ｕ）は第１モーションデータにおけるルート角速度、Δｑ（ボールド体）Ｂｒｏｏｔ（ｔ２ｓ＋ｕ）は第２モーションデータにおけるルート角速度、ｗ（ｕ）は０（ゼロ）から１までの間においてとり得る重みである。ｂ＊は、ブレンドモーションデータを構成するフレームの総数であり、前述したブレンディング区間長である。ｕは、ブレンディング区間におけるフレーム番号（０≦ｕ≦ｂ＊−１）である。
【００４０】
【数９】
0005798000.tif 000010
【００４１】
そして、ルート方向処理部５０は、下記の式（１０）によりブレンド処理されたフレームのルート方向であるブレンドルート方向を計算する。
【００４２】
【数１０】
0005798000.tif 000011
【００４３】
ルート位置調整部６０は、ブレンドルート方向にしたがってルート速度を調整する。ルート位置調整部６０は、例えば、第２モーションデータのブレンド終了点におけるルート方向を、ブレンディング区間における最後のフレームのルート方向に合わせて調整する。具体的には、まずルート位置調整部６０は、下記の式（１１）により回転角を計算する
【００４４】
【数１１】
0005798000.tif 000012
【００４５】
そして、ルート位置調整部６０は、各フレームのルート速度を調整する。まず、ルート位置調整部６０は、下記の式（１２）により、調整前のルート速度Δｐ（ボールド体）ｒｏｏｔ（ｔ）から四次元数を計算する。
【００４６】
【数１２】
0005798000.tif 000013
【００４７】
そして、ルート位置調整部６０は、下記の式（１３）により、ルート速度を調整する。
【００４８】
【数１３】
0005798000.tif 000014
【００４９】
式（１３）の左辺は、四次元数として下記の式（１４）により表される。
【００５０】
【数１４】
0005798000.tif 000015
【００５１】
なお、ルート位置調整部６０は、例えば、ブレンディング区間における最後のフレームのルート方向を、第２モーションデータのブレンド終了点におけるルート方向に合わせて調整してもよい。
【００５２】
ルート位置処理部７０は、調整されたルート速度をブレンド処理する。例えば、ルート位置処理部７０は、下記の式（１５）に示すように、重み付き平均によりルート速度のブレンド処理を行う。
【００５３】
【数１５】
0005798000.tif 000016
【００５４】
そして、ルート位置処理部７０は、下記の式（１６）により、ルート速度からルート位置を計算する。
【００５５】
【数１６】
0005798000.tif 000017
【００５６】
関節処理部８０は、ブレンディング区間において、ルートを除くジョイントの関節方向のブレンド処理を行う。具体的には、関節処理部８０は、例えば、下記の式（１７）に示すＬＥＲＰの式を適用して、二つの方向間を補間する。
【００５７】
【数１７】
0005798000.tif 000018
【００５８】
ブレンドモーションデータ出力部９０は、ルートおよび関節のブレンド処理されたモーションデータについて、角度情報を下記の式（１８）により四次元数からオイラ角度に変換する。
【００５９】
【数１８】
0005798000.tif 000019
【００６０】
そして、ブレンドモーションデータ出力部９０は、ブレンドモーションデータを、入力データである第１モーションデータおよび第２モーションデータと同一のフォーマットにより出力する。
【００６１】
図３は、第１モーションデータ、第２モーションデータ、およびそれぞれの部分データから生成されるブレンドモーションデータとの関係を示す図である。同図は、第１モーションデータ１００に設けられたブレンド開始点１０１以後であり、且つ第２モーションデータ２００に設けられたブレンド終了点２０２以前の所定区間において、ブレンドモーションデータ３００が生成される様子を示している。
【００６２】
図３において、ブレンドモーションデータ出力部９０は、ブレンドモーションデータ３００のみを出力することができる。また、ブレンドモーションデータ出力部９０は、第１モーションデータの先頭からブレンド開始点１０１までのモーションデータとブレンドモーションデータ３００とを出力することができる。また、ブレンドモーションデータ出力部９０は、ブレンドモーションデータ３００とブレンド終了点２０２から第２モーションデータ２００の最後までのモーションデータとを出力することができる。また、ブレンドモーションデータ出力部９０は、第１モーションデータの先頭からブレンド開始点１０１までのモーションデータとブレンドモーションデータ３００とブレンド終了点２０２から第２モーションデータ２００の最後までのモーションデータとを出力することができる。
【００６３】
次に、モーション生成装置１がルートに関するブレンドモーションデータを生成する処理について説明する。
図４は、本実施形態であるモーション生成装置１による、ルートに関するブレンドモーションデータを生成する処理の手順を示すフローチャートである。
ステップＳ１において、モーションデータ取得部１０は、外部装置ら供給される、二つのモーションデータ（第１モーションデータおよび第２モーションデータ）を取り込み、これら二つのモーションデータを遷移点指定部２０に供給する。
【００６４】
次に、ステップＳ２において、遷移点指定部２０は、モーションデータ取得部１０から供給される第１モーションデータおよび第２モーションデータを取り込み、第１モーションデータにおけるブレンド開始点および第２モーションデータにおけるブレンド終了点を指定する。
【００６５】
次に、ステップＳ３において、物理量変更処理部３０は、二つのモーションデータについて、物理量変更処理を実行する。具体的には、例えば、物理量変更処理部３０は、第１モーションデータおよび第２モーションデータそれぞれについて、フレームごとの各ジョイントのオイラ角度を前記の式（２）の計算によって四次元数に変換する。
【００６６】
次に、物理量変更処理部３０は、第１モーションデータおよび第２モーションデータそれぞれについて、ルート位置の時間変化であるルート速度を、前記の式（４）により計算する。
次に、物理量変更処理部３０は、第１モーションデータおよび第２モーションデータそれぞれについて、ルート方向の時間変化であるルート角速度を、前記の式（５）により計算する。
【００６７】
次に、ステップＳ４において、ブレンディング区間計算部４０は、第１モーションデータにおけるブレンド開始点以後のモーションデータと、第２モーションデータにおけるブレンド終了点以前のモーションデータとに含まれる関節方向を示す時系列情報に基づいて、ブレンディング区間を計算する。具体的には、前記の式（７）に示すように、ブレンディング区間計算部４０は、任意の区間長ｂに対応するコスト関数を用いることにより、コストが最も低くなる区間長ｂ＊を、ブレンディング区間にする。
【００６８】
次に、ステップＳ５において、ルート方向処理部５０は、ブレンディング区間において、例えば、前記の式（９）に示すＳＬＥＲＰを適用し、ルート角速度のブレンド処理を実行する。
次に、ルート方向処理部５０は、前記の式（１０）によりブレンド処理されたフレームのルート方向であるブレンドルート方向を計算する。
【００６９】
次に、ステップＳ６において、ルート位置調整部６０は、ブレンドルート方向にしたがってルート速度を調整する。ルート位置調整部６０は、例えば、第２モーションデータのブレンド終了点におけるルート方向を、ブレンディング区間における最後のフレームのルート方向に合わせて調整する。
または、ルート位置調整部６０は、例えば、ブレンディング区間における最後のフレームのルート方向を、第２モーションデータのブレンド終了点におけるルート方向に合わせて調整する。
【００７０】
次に、ステップＳ７において、ルート位置処理部７０は、調整されたルート速度をブレンド処理する。例えば、ルート位置処理部７０は、前記の式（１５）に示すように、重み付き平均によりルート速度のブレンド処理を行う。
次に、ルート位置処理部７０は、前記の式（１６）により、ルート速度からルート位置を計算する。
【００７１】
以上、説明したとおり、本発明の一実施形態であるモーション生成装置１は、スケルトンモデルにおける複数のジョイントのうち、基準のジョイント、すなわちルートのルート位置、ルート方向、およびルートを除くジョイントの関節方向を示す時系列情報をそれぞれ含む二つのモーションデータを、取り込むモーションデータ取得部１０を備えた。
そして、モーション生成装置１は、第１モーションデータにおけるブレンド開始点および第２モーションデータにおけるブレンド終了点を指定する遷移点指定部２０と、二つのモーションデータそれぞれについて、ルート位置の時間変化であるルート速度とルート方向の時間変化であるルート角速度とを求める物理量変更処理部３０と、第１モーションデータにおけるブレンド開始点以後のモーションデータと第２モーションデータにおけるブレンド終了点以前のモーションデータとに含まれる関節方向を示す時系列情報に基づいて、ブレンディング区間を求めるブレンディング区間計算部４０とを備えた。
そして、モーション生成装置１は、ルート角速度をブレンディング区間においてブレンド処理しブレンドルート方向を求めるルート方向処理部５０と、ブレンドルート方向にしたがってルート速度を調整するルート位置調整部６０と、調整されたルート速度をブレンド処理するルート位置処理部７０とを備えた。
【００７２】
さらに、ルート位置調整部６０は、ブレンディング区間における最終フレームに対応するブレンドルート方向と、ブレンド終了点に対応するブレンド方向とに基づいて、第２モーションデータにおけるブレンディング区間の基点以後のモーションデータが有するルート速度を調整するようにした。
【００７３】
さらに、ブレンディング区間計算部４０は、第１モーションデータおよび第２モーションデータにおけるビートフレームを推定し、第１モーションデータにおけるビート間隔と第２モーションデータにおけるビート間隔の比率に基づいて、ポーズを対応付けてブレンディング区間を求めるようにした。
【００７４】
このように構成したことにより、本実施形態であるモーション生成装置１は、ルート位置とルート方向とを関係付けて高速にブレンド処理することができる。よって、モーション生成装置１によれば、ブレンド前のモーションからブレンド後のモーションへの遷移に不自然さが発生しない。例えば、人体モデルが観察者から見て右方向に歩く動作を示す第１のモーションと、人体モデルが定位置で観察者に正対する状態から後方倒立回転跳び（後転跳び）を行う動作を示す第２のモーションとを、ブレンド処理する例を挙げて説明する。従来のモーションブレンディング技術によって第１のモーションと第２のモーションとをブレンドさせると、ブレンド後のモーションは、人体モデルが観察者から見て右方向に移動しながら後転跳びを行うという、不自然な運動を示す動きとなる。しかし、本実施形態によれば、ブレンド後のモーションは、人体モデルが観察者から見て定位置に留まった状態で後転跳びを行うという、自然な運動を示す動きとなる。
【００７５】
したがって、本実施形態によれば、処理の高速性を保ち、且つモーションを自然に遷移させるモーションブレンディングを実現することができる。
【００７６】
なお、モーション生成装置１は、第１モーションデータと第２モーションデータとをブレンド処理してブレンドモーションデータを生成したのち、第３モーションデータを取り込み、前記のブレンドモーションデータと第３モーションデータとをさらにブレンド処理してもよい。この場合、モーションデータ取得部１０が第３モーションデータを取り込み、物理量変更処理部３０が第３モーションデータについて、ルート速度とルート角速度とを計算し、ブレンディング区間計算部４０が前記のブレンドモーションデータを生成したときのブレンディング区間を適用し、ルート方向処理部５０が、ルート角速度を前記のブレンディング区間において半分ずつの重みによりポーズごとにブレンド処理しブレンドルート方向を求める。
【００７７】
また、上述した実施形態であるモーション生成装置１の一部の機能をコンピュータで実現するようにしてもよい。この場合、その機能を実現するためのモーション生成プログラムをコンピュータ読み取り可能な記録媒体に記録し、この記録媒体に記録されたモーション生成プログラムをコンピュータシステムに読み込ませて、このコンピュータシステムが実行することによって実現してもよい。なお、このコンピュータシステムとは、オペレーティング・システム（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ；ＯＳ）や周辺装置のハードウェアを含むものである。また、コンピュータ読み取り可能な記録媒体とは、フレキシブルディスク、光磁気ディスク、光ディスク、メモリカード等の可搬型記録媒体、コンピュータシステムに備えられる磁気ハードディスクやソリッドステートドライブ等の記憶装置のことをいう。さらに、コンピュータ読み取り可能な記録媒体とは、インターネット等のコンピュータネットワーク、および電話回線や携帯電話網を介してプログラムを送信する場合の通信回線のように、短時間の間、動的にプログラムを保持するもの、さらには、その場合のサーバ装置やクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持するものを含んでもよい。また上記のモーション生成プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせにより実現するものであってもよい。
【００７８】
以上、本発明の実施の形態について図面を参照して詳述したが、具体的な構成はその実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【００７９】
１  モーション生成装置
１０  モーションデータ取得部
２０  遷移点指定部
３０  物理量変更処理部
４０  ブレンディング区間計算部
５０  ルート方向処理部
６０  ルート位置調整部
７０  ルート位置処理部
８０  関節処理部
９０  ブレンドモーションデータ出力部
【図１】
0005798000.tif 000020
【図２】
0005798000.tif 000021
【図３】
0005798000.tif 000022
【図４】
0005798000.tif 000023