(57)【特許請求の範囲】
【請求項１】
動きデータベースに格納される動きデータについてのモーショングラフと、
映像コンテンツ生成対象の楽曲の音楽データから取得されたビート間隔およびビート時刻から成る音楽特徴量と、
ユーザが、前記音楽データが再生された音楽の再生している時間的な位置を示す再生時刻と、前記動きデータベース内の動きデータの中から該再生時刻に対応付ける動きデータとを、指定する操作部と、
前記操作部により指定された再生時刻から一定時間までの前記音楽データの区間に対して前記操作部により指定された動きデータの予め準備された属性値を設定する属性値設定部と、
前記モーショングラフ及び前記音楽特徴量を使用して前記音楽データに対応付ける動きデータの順列を探索するコンテンツ生成部と、を備え、
前記モーショングラフは、
前記動きデータベース内の各動きデータの各ビートフレームに対応するノードと、
一の動きデータの中で連続するビートフレーム間に関する時間的に前のビートフレームのノードから後のビートフレームのノードへ向かう単方向エッジであって当該一の動きデータの予め準備された属性値を重みに有する単方向エッジと、
ビートフレーム間の連結性に基づいて設けられた当該ビートフレーム間に対応するノード間の双方向エッジであって当該ビートフレーム間の連結性を重みに有する双方向エッジと、を有し、
前記コンテンツ生成部は、前記モーショングラフにおいて、単方向エッジの重みと前記音楽データの連続するビート間の属性値とが一致しているかどうかと、双方向エッジを選択する時の該双方向エッジの重みと、を用いて定義されたコスト関数が最小となるパスを最適パスとする、
映像コンテンツ生成装置。
【請求項２】
前記動きデータベース内の動きデータ毎にビート時刻を検出し、検出したビート時刻に基づいて各ビートフレーム間に当該ビートフレームの動きデータの予め準備された属性値を設定し、検出したビート時刻と設定した属性値と前記動きデータベース内の動きデータとを使用して前記モーショングラフを生成する動き解析部、
を備えた請求項１に記載の映像コンテンツ生成装置。
【請求項３】
前記音楽データを再生する再生部と、
動きデータを区別なく扱う第１の動きデータベースと動きデータ毎にラベルを付与している第２の動きデータベースとのうち前記第２の動きデータベース内の動きデータをユーザに提示する動き候補提示部と、
を備え、
前記操作部は、ユーザが、前記音楽データが再生された音楽の再生している時間的な位置を示す再生時刻を指定する再生時刻指定手段と、ユーザが、前記動き候補提示部で提示された動きデータの中から前記再生時刻指定手段により指定された再生時刻に対応付ける動きデータを指定する動きデータ指定手段と、を有し、
前記動き解析部は、前記第１の動きデータベースの動きデータに対しては全てのビートフレーム間に属性値「０」を設定し、前記第２の動きデータベースの動きデータに対してはラベルに応じた所定の属性値をビートフレーム間に設定し、
前記属性値設定部は、前記再生時刻指定手段により指定された再生時刻から一定時間までの前記音楽データの区間に対して前記動きデータ指定手段により指定された動きデータのラベルに対応する属性値を設定し、属性値を設定しなかった区間に対して属性値「０」を設定する、
請求項２に記載の映像コンテンツ生成装置。
【請求項４】
前記音楽データからビート間隔およびビート時刻を取得する音楽解析部、
を備えた請求項１から３のいずれか１項に記載の映像コンテンツ生成装置。
【請求項５】
前記コンテンツ生成部の探索結果の最適パスに対応する動きデータを用いて、前記音楽データとともに再生される映像データを生成する映像データ生成部と、
前記生成された映像データを前記音楽データとともに再生するコンテンツ表示部と、
を備えた請求項１から４のいずれか１項に記載の映像コンテンツ生成装置。
【請求項６】
映像コンテンツ生成装置が、動きデータベースに格納される動きデータについてのモーショングラフと、映像コンテンツ生成対象の楽曲の音楽データから取得されたビート間隔およびビート時刻から成る音楽特徴量と、を備え、
ユーザが、前記音楽データが再生された音楽の再生している時間的な位置を示す再生時刻と、前記動きデータベース内の動きデータの中から該再生時刻に対応付ける動きデータとを、指定する操作ステップと、
前記映像コンテンツ生成装置が、前記操作ステップにより指定された再生時刻から一定時間までの前記音楽データの区間に対して前記操作ステップにより指定された動きデータの予め準備された属性値を設定する属性値設定ステップと、
前記映像コンテンツ生成装置が、前記モーショングラフ及び前記音楽特徴量を使用して前記音楽データに対応付ける動きデータの順列を探索するコンテンツ生成ステップと、を含む映像コンテンツ生成方法であり、
前記モーショングラフは、
前記動きデータベース内の各動きデータの各ビートフレームに対応するノードと、
一の動きデータの中で連続するビートフレーム間に関する時間的に前のビートフレームのノードから後のビートフレームのノードへ向かう単方向エッジであって当該一の動きデータの予め準備された属性値を重みに有する単方向エッジと、
ビートフレーム間の連結性に基づいて設けられた当該ビートフレーム間に対応するノード間の双方向エッジであって当該ビートフレーム間の連結性を重みに有する双方向エッジと、を有し、
前記コンテンツ生成ステップにおいて、前記映像コンテンツ生成装置は、前記モーショングラフにおいて、単方向エッジの重みと前記音楽データの連続するビート間の属性値とが一致しているかどうかと、双方向エッジを選択する時の該双方向エッジの重みと、を用いて定義されたコスト関数が最小となるパスを最適パスとする、
映像コンテンツ生成方法。
【請求項７】
動きデータベースに格納される動きデータについてのモーショングラフと、映像コンテンツ生成対象の楽曲の音楽データから取得されたビート間隔およびビート時刻から成る音楽特徴量と、を有するコンピュータに、
ユーザが、前記音楽データが再生された音楽の再生している時間的な位置を示す再生時刻と、前記動きデータベース内の動きデータの中から該再生時刻に対応付ける動きデータとを、指定する操作ステップと、
前記操作ステップにより指定された再生時刻から一定時間までの前記音楽データの区間に対して前記操作ステップにより指定された動きデータの予め準備された属性値を設定する属性値設定ステップと、
前記モーショングラフ及び前記音楽特徴量を使用して前記音楽データに対応付ける動きデータの順列を探索するコンテンツ生成ステップと、を実行させるためのコンピュータプログラムであり、
前記モーショングラフは、
前記動きデータベース内の各動きデータの各ビートフレームに対応するノードと、
一の動きデータの中で連続するビートフレーム間に関する時間的に前のビートフレームのノードから後のビートフレームのノードへ向かう単方向エッジであって当該一の動きデータの予め準備された属性値を重みに有する単方向エッジと、
ビートフレーム間の連結性に基づいて設けられた当該ビートフレーム間に対応するノード間の双方向エッジであって当該ビートフレーム間の連結性を重みに有する双方向エッジと、を有し、
前記コンテンツ生成ステップは、前記モーショングラフにおいて、単方向エッジの重みと前記音楽データの連続するビート間の属性値とが一致しているかどうかと、双方向エッジを選択する時の該双方向エッジの重みと、を用いて定義されたコスト関数が最小となるパスを最適パスとする、
コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、映像コンテンツ生成装置、映像コンテンツ生成方法及びコンピュータプログラムに関する。
【背景技術】
【０００２】
近年、音楽に合わせてコンピュータ・グラフィックス（ＣＧ）オブジェクトを表示させる技術として、例えば、演奏家が音楽を演奏すると、音楽との所定のマッピングのパタンに従って、ＣＧモデルが動くようにする技術が提案されている。特許文献１では、ＣＧオブジェクトの時系列に対して、音楽データの静的属性または動的属性をもとにして描画情報（視点情報、光源情報）を再設定する。そして、音楽データをＣＧオブジェクト表示と同期して再生している。又、特許文献２に記載のモーション作成装置では、複数のモーションにおいて人体姿勢が類似する２つのフレーム間を連結した有向性グラフとしてモーションデータベースを構築し、その複数のモーションの中から、音楽データから取得したビート特徴成分と相関を有する動き特徴成分をもつモーションを選択している。また、特許文献３に記載の技術では、事前に独自なデータ構造を生成し、音楽を入力すると、ダイナミックプログラミング（Dynamic Programming：動的計画法）を用いてより高速な同期を行っている。
【０００３】
音楽解析手法としては、非特許文献１に記載の技術が知られている。非特許文献１の技術によれば、発音成分、コードの変化、打楽器の発音時刻などを推定してビート間隔及びビート構造を取得している。動き解析手法としては、特許文献４に記載の技術が知られている。特許文献４の技術によれば、動きビートの変化や発生時刻を推定してビート間隔及びビート構造を取得している。
非特許文献２には、モーショングラフ（Motion Graphs）を用いて新たな動きデータを生成する技術が開示されている。
非特許文献３には、パス探索技術として、ある始点からダイナミックプログラミングで最適なパスを探索する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−５６１０１号公報
【特許文献２】特開２００７−１８３８８号公報
【特許文献３】特開２０１０−２６７０６９号公報
【特許文献４】特開２０１０−１５７０６１号公報
【非特許文献】
【０００５】
【非特許文献１】M.Goto，“An Audio-based Real-time Beat Tracking System for Music With or Without Drum-sounds”，Journal of New Music Research，Vol．30，No．2，pp．159-171，2001
【非特許文献２】L.Kovar，M.Gleicher，and F.Pighin，“Motion Graphs”，ACM Transaction on Graphics，Vol.21，Issue 3，2002（SIGGRAPH 2002），pp．473-482
【非特許文献３】Cormen，Thomas H.; Leiserson，Charles E.，Rivest，Ronald L. (1990). Introduction to Algorithms (2st ed.). MIT Press and McGraw-Hill. ISBN 0-262-03141-8. pp. 323-69
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来技術では、全自動でＣＧオブジェクトの動きを決定するので、ユーザが希望する動きをＣＧオブジェクトの動きに反映させることができない。
【０００７】
本発明は、このような事情を考慮してなされたもので、楽曲に合わせた映像コンテンツを生成する際に、ユーザが希望する動きをＣＧオブジェクトの動きに反映させることができる、映像コンテンツ生成装置、映像コンテンツ生成方法及びコンピュータプログラムを提供することを課題とする。
【課題を解決するための手段】
【０００８】
上記の課題を解決するために、本発明に係る映像コンテンツ生成装置は、動きデータベースに格納される動きデータについてのモーショングラフと、映像コンテンツ生成対象の楽曲の音楽データから取得されたビート間隔およびビート時刻から成る音楽特徴量と、ユーザが、前記音楽データが再生された音楽の再生している時間的な位置を示す再生時刻と、前記動きデータベース内の動きデータの中から該再生時刻に対応付ける動きデータとを、指定する操作部と、前記操作部により指定された再生時刻から一定時間までの前記音楽データの区間に対して前記操作部により指定された動きデータの予め準備された属性値を設定する属性値設定部と、前記モーショングラフ及び前記音楽特徴量を使用して前記音楽データに対応付ける動きデータの順列を探索するコンテンツ生成部と、を備え、前記モーショングラフは、前記動きデータベース内の各動きデータの各ビートフレームに対応するノードと、一の動きデータの中で連続するビートフレーム間に関する時間的に前のビートフレームのノードから後のビートフレームのノードへ向かう単方向エッジであって当該一の動きデータの予め準備された属性値を重みに有する単方向エッジと、ビートフレーム間の連結性に基づいて設けられた当該ビートフレーム間に対応するノード間の双方向エッジであって当該ビートフレーム間の連結性を重みに有する双方向エッジと、を有し、前記コンテンツ生成部は、前記モーショングラフにおいて、単方向エッジの重みと前記音楽データの連続するビート間の属性値とが一致しているかどうかと、双方向エッジを選択する時の該双方向エッジの重みと、を用いて定義されたコスト関数が最小となるパスを最適パスとする、映像コンテンツ生成装置である。
【０００９】
本発明に係る映像コンテンツ生成装置においては、前記動きデータベース内の動きデータ毎にビート時刻を検出し、検出したビート時刻に基づいて各ビートフレーム間に当該ビートフレームの動きデータの予め準備された属性値を設定し、検出したビート時刻と設定した属性値と前記動きデータベース内の動きデータとを使用して前記モーショングラフを生成する動き解析部、を備えたことを特徴とする。
【００１０】
本発明に係る映像コンテンツ生成装置において、前記音楽データを再生する再生部と、動きデータを区別なく扱う第１の動きデータベースと動きデータ毎にラベルを付与している第２の動きデータベースとのうち前記第２の動きデータベース内の動きデータをユーザに提示する動き候補提示部と、を備え、前記操作部は、ユーザが、前記音楽データが再生された音楽の再生している時間的な位置を示す再生時刻を指定する再生時刻指定手段と、ユーザが、前記動き候補提示部で提示された動きデータの中から前記再生時刻指定手段により指定された再生時刻に対応付ける動きデータを指定する動きデータ指定手段と、を有し、前記動き解析部は、前記第１の動きデータベースの動きデータに対しては全てのビートフレーム間に属性値「０」を設定し、前記第２の動きデータベースの動きデータに対してはラベルに応じた所定の属性値をビートフレーム間に設定し、前記属性値設定部は、前記再生時刻指定手段により指定された再生時刻から一定時間までの前記音楽データの区間に対して前記動きデータ指定手段により指定された動きデータのラベルに対応する属性値を設定し、属性値を設定しなかった区間に対して属性値「０」を設定する、ことを特徴とする。
【００１１】
本発明に係る映像コンテンツ生成装置において、前記音楽データからビート間隔およびビート時刻を取得する音楽解析部、を備えたことを特徴とする。
【００１２】
本発明に係る映像コンテンツ生成装置において、前記コンテンツ生成部の探索結果の最適パスに対応する動きデータを用いて、前記音楽データとともに再生される映像データを生成する映像データ生成部と、前記生成された映像データを前記音楽データとともに再生するコンテンツ表示部と、を備えたことを特徴とする。
【００１６】
本発明に係る映像コンテンツ生成方法は、映像コンテンツ生成装置が、動きデータベースに格納される動きデータについてのモーショングラフと、映像コンテンツ生成対象の楽曲の音楽データから取得されたビート間隔およびビート時刻から成る音楽特徴量と、を備え、ユーザが、前記音楽データが再生された音楽の再生している時間的な位置を示す再生時刻と、前記動きデータベース内の動きデータの中から該再生時刻に対応付ける動きデータとを、指定する操作ステップと、前記映像コンテンツ生成装置が、前記操作ステップにより指定された再生時刻から一定時間までの前記音楽データの区間に対して前記操作ステップにより指定された動きデータの予め準備された属性値を設定する属性値設定ステップと、前記映像コンテンツ生成装置が、前記モーショングラフ及び前記音楽特徴量を使用して前記音楽データに対応付ける動きデータの順列を探索するコンテンツ生成ステップと、を含む映像コンテンツ生成方法であり、前記モーショングラフは、前記動きデータベース内の各動きデータの各ビートフレームに対応するノードと、一の動きデータの中で連続するビートフレーム間に関する時間的に前のビートフレームのノードから後のビートフレームのノードへ向かう単方向エッジであって当該一の動きデータの予め準備された属性値を重みに有する単方向エッジと、ビートフレーム間の連結性に基づいて設けられた当該ビートフレーム間に対応するノード間の双方向エッジであって当該ビートフレーム間の連結性を重みに有する双方向エッジと、を有し、前記コンテンツ生成ステップにおいて、前記映像コンテンツ生成装置は、前記モーショングラフにおいて、単方向エッジの重みと前記音楽データの連続するビート間の属性値とが一致しているかどうかと、双方向エッジを選択する時の該双方向エッジの重みと、を用いて定義されたコスト関数が最小となるパスを最適パスとする、映像コンテンツ生成方法である。
【００１７】
本発明に係るコンピュータプログラムは、動きデータベースに格納される動きデータについてのモーショングラフと、映像コンテンツ生成対象の楽曲の音楽データから取得されたビート間隔およびビート時刻から成る音楽特徴量と、を有するコンピュータに、ユーザが、前記音楽データが再生された音楽の再生している時間的な位置を示す再生時刻と、前記動きデータベース内の動きデータの中から該再生時刻に対応付ける動きデータとを、指定する操作ステップと、前記操作ステップにより指定された再生時刻から一定時間までの前記音楽データの区間に対して前記操作ステップにより指定された動きデータの予め準備された属性値を設定する属性値設定ステップと、前記モーショングラフ及び前記音楽特徴量を使用して前記音楽データに対応付ける動きデータの順列を探索するコンテンツ生成ステップと、を実行させるためのコンピュータプログラムであり、前記モーショングラフは、前記動きデータベース内の各動きデータの各ビートフレームに対応するノードと、一の動きデータの中で連続するビートフレーム間に関する時間的に前のビートフレームのノードから後のビートフレームのノードへ向かう単方向エッジであって当該一の動きデータの予め準備された属性値を重みに有する単方向エッジと、ビートフレーム間の連結性に基づいて設けられた当該ビートフレーム間に対応するノード間の双方向エッジであって当該ビートフレーム間の連結性を重みに有する双方向エッジと、を有し、前記コンテンツ生成ステップは、前記モーショングラフにおいて、単方向エッジの重みと前記音楽データの連続するビート間の属性値とが一致しているかどうかと、双方向エッジを選択する時の該双方向エッジの重みと、を用いて定義されたコスト関数が最小となるパスを最適パスとする、コンピュータプログラムである。
これにより、前述の映像コンテンツ生成装置がコンピュータを利用して実現できるようになる。
【発明の効果】
【００１８】
本発明によれば、楽曲に合わせた映像コンテンツを生成する際に、ユーザが希望する動きをＣＧオブジェクトの動きに反映させることができる。これにより、ユーザが所望する魅力的かつ希望通りの映像コンテンツを制作することができるという、格別の効果が得られる。
【図面の簡単な説明】
【００１９】
【図１】本発明の一実施形態に係る映像コンテンツ生成装置１の構成を示すブロック図である。
【図２】人体スケルトン型動きデータの定義例である。
【図３】図１に示す動き解析部１１の構成を示すブロック図である。
【図４】図３に示すビート抽出部１１１に係るデータ分割処理の概念図である。
【図５】図３に示すビート抽出部１１１に係るデータ分割処理の概念図である。
【図６】図３に示すビート抽出部１１１に係る主成分座標連結処理を説明するための概念図である。
【図７】図３に示すビート抽出部１１１に係る正弦近似処理の概念図である。
【図８】本発明の一実施形態に係る動きデータに付与されているラベルに対応する属性値の例である。
【図９】本発明の一実施形態に係るモーショングラフ生成方法の流れを示す概念図である。
【図１０】本発明の一実施形態の双方向エッジに係るブレンディング処理の概念図である。
【図１１】本発明の一実施形態に係るブレンディング処理を説明する概念図である。
【図１２】図１に示す入力部１２の構成を示すブロック図である。
【図１３】本発明の一実施形態に係る、動きデータのラベルに対応する音楽データの再生時刻の属性値の例である。
【図１４】本発明の一実施形態に係る動きのフレームレートを調整する処理の概念図である。
【発明を実施するための形態】
【００２０】
以下、図面を参照し、本発明の実施形態について説明する。
図１は、本発明の一実施形態に係る映像コンテンツ生成装置１の構成を示すブロック図である。図１において、映像コンテンツ生成装置１は、動き解析部１１、入力部１２、音楽解析部１３、コンテンツ生成部１４、映像データ生成部１５及びコンテンツ表示部１６を有する。
【００２１】
映像コンテンツ生成装置１には、映像コンテンツ生成対象の楽曲の音楽データが楽曲ファイル３から入力される。又、映像コンテンツ生成装置１には、動きデータが動きデータベース２−１，２−２から入力される。動きデータベース２−１，２−２は、一般に利用可能な動きデータを多数蓄積している。本実施形態では、人の動きデータを扱い、人の動きデータとして、図２に例示されるように定義された人体スケルトン型動きデータを用いる。
【００２２】
図２は、人の動きデータの定義例の概略図であり、人のスケルトン型動きデータ（人体スケルトン型動きデータ）の定義例である。人体スケルトン型動きデータは、人の骨格を基に、骨及び骨の連結点（ジョイント）を用い、一ジョイントを根（ルート）とし、ルートからジョイント経由で順次連結される骨の構造を木（ツリー）構造として定義される。図２には、人体スケルトン型動きデータの定義の一部分のみを示している。図２において、ジョイント１００は腰の部分であり、ルートとして定義される。ジョイント１０１は左腕の肘の部分、ジョイント１０２は左腕の手首の部分、ジョイント１０３は右腕の肘の部分、ジョイント１０４は右腕の手首の部分、ジョイント１０５は左足の膝の部分、ジョイント１０６は左足の足首の部分、ジョイント１０７は右足の膝の部分、ジョイント１０８は右足の足首の部分、である。
【００２３】
スケルトン型動きデータは、スケルトン型対象物の各ジョイントの動きを記録したデータであり、スケルトン型対象物としては人体や動物、ロボットなどが適用可能である。スケルトン型動きデータとしては、各ジョイントの位置情報や角度情報、速度情報、加速度情報などが利用可能である。ここでは、人体スケルトン型動きデータとして、人体スケルトンの角度情報と加速度情報を例に挙げて説明する。
【００２４】
人体スケルトン型角度情報データは、人の一連の動きを複数の姿勢（ポーズ）の連続により表すものであり、人の基本ポーズ（neutral pose）を表す基本ポーズデータと、実際の人の動きの中の各ポーズを表すポーズ毎のフレームデータとを有する。基本ポーズデータは、基本ポーズのときのルートの位置及び各ジョイントの位置、並びに各骨の長さなどの情報を有する。基本ポーズデータにより基本ポーズが特定される。フレームデータは、基本ポーズからの移動量をジョイント毎に表す。ここでは、移動量として角度情報を利用する。各フレームデータにより、基本ポーズに対して各移動量が加味された各ポーズが特定される。これにより、各フレームデータによって特定される各ポーズの連続により、人の一連の動きが特定される。なお、人体スケルトン型角度情報データは、人の動きをカメラ撮影した映像からモーションキャプチャ処理によって作成したり、或いは、キーフレームアニメーションの手作業によって作成したりすることができる。
人体スケルトン型加速度情報データは、人の各ジョイントの加速度をポーズ毎のフレームデータと複数のポーズの連続により表すものである。なお、人体スケルトン型加速度情報データは、加速度計で記録したり、映像や動きデータから算出したりすることができる。
【００２５】
なお、本実施形態に係る以下の説明においては、人体スケルトン型動きデータのことを単に「動きデータ」と称する。
【００２６】
以下、図１に示される映像コンテンツ生成装置１の各部について順次説明する。
【００２７】
［動き解析部］
動き解析部１１は、動きデータベース２−１，２−２から動きデータを取得し、取得した動きデータを解析して動き特徴量を取得し、取得した動き特徴量をモーショングラフに格納する。動き解析部１１は、動きデータベース２−１，２−２に蓄積される全ての動きデータを対象にする。但し、動きデータベース２−１の動きデータには全て同じラベルが付与されている。一方、動きデータベース２−２の動きデータに対しては、動きデータ毎に、独自のラベルが付与されている。動き解析部１１の処理は、実際に映像コンテンツを生成する段階の前に、事前の準備段階として行われる。
【００２８】
図３は、図１に示す動き解析部１１の構成を示すブロック図である。図３において、動き解析部１１は、ビート抽出部１１１、属性指定部１１２及びモーショングラフ生成部１１３を有する。
【００２９】
［ビート抽出部］
ビート抽出部１１１は、入力された動きデータからビート時刻を検出する。ここで、動きデータのビート時刻は反復的な動きの方向又は強度が変化する時刻である、と定義する。例えば、ダンスなどの動きでは拍子を打つタイミングが相当する。ビート抽出部１１１は、入力された動きデータを短時間の動きデータに分割し、分割した動き区間から主成分分析によってビート時刻を検出する。
【００３０】
以下、本実施形態に係るビート時刻検出方法を説明する。
【００３１】
［物理量変換ステップ］
物理量変換ステップでは、入力された動きデータにおいて、時刻ｔにおけるジョイント相対位置を算出する。ジョイント相対位置は、ルートに対するジョイントの相対的な位置である。
【００３２】
ここで、ジョイント相対位置の算出方法を説明する。
まず、人体スケルトン型角度情報データ内の基本ポーズデータとフレームデータを用いて、ジョイント位置を算出する。基本ポーズデータは、基本ポーズのときのルートの位置及び各ジョイントの位置、並びに各骨の長さなど、基本ポーズを特定する情報を有する。フレームデータは、ジョイント毎に、基本ポーズからの移動量の情報を有する。ここでは、移動量として角度情報を利用する。この場合、時刻ｔにおけるｋ番目のジョイントの位置ｐｋ（ｔ）は、（１）式および（２）式により算出される。ｐｋ（ｔ）は３次元座標で表される。なお、時刻ｔはフレームデータの時刻である。本実施形態では、時刻ｔを単に「フレームインデックス」として扱う。これにより、時刻ｔは、０，１，２，・・・，Ｔ−１の値をとる。Ｔは、動きデータに含まれるフレームの個数である。
【００３３】
【数１】
0005778523.tif 000002
【００３４】
【数２】
0005778523.tif 000003
【００３５】
但し、０番目（ｉ＝０）のジョイントはルートである。Ｒａｘｉｓｉ−１，ｉ（ｔ）は、ｉ番目のジョイントとその親ジョイント（「ｉ−１」番目のジョイント）間の座標回転マトリックスであり、基本ポーズデータに含まれる。各ジョイントにはローカル座標系が定義されており、座標回転マトリックスは親子関係にあるジョイント間のローカル座標系の対応関係を表す。Ｒｉ（ｔ）は、ｉ番目のジョイントのローカル座標系におけるｉ番目のジョイントの回転マトリックスであり、フレームデータに含まれる角度情報である。Ｔｉ（ｔ）は、ｉ番目のジョイントとその親ジョイント間の遷移マトリックスであり、基本ポーズデータに含まれる。遷移マトリックスは、ｉ番目のジョイントとその親ジョイント間の骨の長さを表す。
【００３６】
次いで、時刻ｔにおける、ルートに対するｋ番目のジョイントの相対位置（ジョイント相対位置）ｐ’ｋ（ｔ）を（３）式により算出する。
【００３７】
【数３】
0005778523.tif 000004
【００３８】
但し、ｐｒｏｏｔ（ｔ）は時刻ｔにおけるルート（０番目のジョイント）の位置（ｐ０（ｔ））である。
【００３９】
これにより、時刻ｔのフレーム「ｘ（ｔ）」は、「ｘ（ｔ）＝｛ｐ’１（ｔ），ｐ’２（ｔ），・・・，ｐ’Ｋ（ｔ）｝」と表される。但し、Ｋは、ルートを除いたジョイントの個数である。
【００４０】
［データ分割ステップ］
データ分割ステップでは、ジョイント相対位置データを、一定時間の区間に分割する。データ分割ステップでは、各ジョイントのジョイント相対位置データ「ｐ’ｋ（ｔ）」に対して、それぞれデータ分割処理を行う。図４，図５にデータ分割処理の概念を示す。データ分割処理では、ジョイント相対位置データを一定時間（一定数のフレーム分に対応）の区間に分割する。分割区間の長さは、適宜、設定可能である。分割区間の長さは、例えば、１フレーム当たりの時間の６０倍である。このとき、図４に示されるように、各区間が重複しないようにしてもよく、或いは、図５に示されるように、各区間が重複区間（オーバーラップ）を有するようにしてもよい。重複区間の長さは、適宜、設定可能である。重複区間の長さは、例えば、分割区間の長さの半分である。
【００４１】
［主成分分析ステップ］
主成分分析ステップでは、データ分割ステップによって分割されたジョイント相対位置データに対し、各区間で主成分分析処理を行う。ここで、時刻ｔのフレーム「ｘ（ｔ）」を用いて、一区間のデータ「Ｘ」を「Ｘ＝｛ｘ（ｔ１），ｘ（ｔ２），・・・，ｘ（ｔＮ）｝と表す。但し、Ｎは区間長（区間内に含まれるフレームの個数）である。Ｘは、Ｍ行Ｎ列の行列である（但し、Ｍ＝３×Ｋ）。
【００４２】
主成分分析処理では、Ｘに対して主成分分析処理を行い、Ｘを主成分空間へ変換する。
【００４３】
ここで、主成分分析方法を説明する。
まず、（４）式により、Ｘから平均値を除いたＮ行Ｍ列の行列Ｄを算出する。
【００４４】
【数４】
0005778523.tif 000005
【００４５】
次いで、（５）式により、Ｎ行Ｍ列の行列Ｄに対して特異値分解（Singular Value Decomposition）を行う。
【００４６】
【数５】
0005778523.tif 000006
【００４７】
但し、Ｕは、Ｎ行Ｎ列のユニタリ行列である。Σは、Ｎ行Ｍ列の負でない対角要素を降順にもつ対角行列であり、主成分空間の座標の分散を表す。Ｖは、Ｍ行Ｍ列のユニタリ行列であり、主成分に対する係数（principal component）である。
【００４８】
次いで、（６）式により、Ｎ行Ｍ列の行列Ｄを主成分空間へ変換する。Ｍ行Ｎ列の行列Ｙは、主成分空間の座標を表す。
【００４９】
【数６】
0005778523.tif 000007
【００５０】
主成分分析ステップでは、区間毎に、主成分空間の座標を表す行列（主成分座標行列）Ｙと、主成分に対する係数の行列（主成分係数行列）Ｖをメモリに保存する。
【００５１】
なお、元空間の座標を表す行列Ｘと主成分座標行列Ｙは、（６）式と（７）式により相互に変換することができる。
【００５２】
【数７】
0005778523.tif 000008
【００５３】
また、上位のｒ個の主成分によって、（８）式により変換することができる。
【００５４】
【数８】
0005778523.tif 000009
【００５５】
但し、Ｖｒは、主成分係数行列Ｖ内の上位のｒ個の行から成るＭ行ｒ列の行列である。Ｙｒは、主成分座標行列Ｙ内の上位のｒ個の列から成るｒ行Ｎ列の行列である。Ｘ〜は、復元されたＭ行Ｎ列の行列である。
【００５６】
なお、元空間の一部の自由度だけを主成分分析処理することも可能である。例えば、足の動きだけでビートを表現することができる場合には、足に関するジョイント相対位置データのみから生成したＭ’行Ｎ列の行列Ｘ’に対して、（４）式、（５）式及び（６）式により主成分分析処理を行う。
【００５７】
［主成分選択ステップ］
主成分選択ステップでは、各区間において、主成分座標行列Ｙから主成分を一つ選択する。
【００５８】
ここで、主成分選択方法を説明する。
（ユーザからの指定がない場合）
ユーザからの指定がない場合には、主成分座標行列Ｙ内の第１主成分（主成分座標行列Ｙの第１行）を選択する。第１主成分は、一区間における時間関連性がより強いために、動きの変化を表現しており、一般的に、ビート時刻に関する十分な情報を有する。
【００５９】
（ユーザからの指定がある場合）
ユーザによって主成分が指定されている場合には、その指定された主成分（第ｋ主成分（主成分座標行列Ｙの第ｋ行）、１≦ｋ≦Ｋ）を選択する。この場合、映像コンテンツ生成装置１には、動きデータと共に、主成分の指定情報が入力される。若しくは、予め主成分の指定情報を固定的に設定しておいてもよい。
なお、第１主成分以外の第ｎ主成分（１＜ｎ≦Ｋ）が選択される場合の例としては、体の一部分の動きがビートを表現しているものなどが挙げられる。例えば、最も大きい動きが体の回転である場合において、足の着地がビートをよく表現しているとする。すると、足の動きを表す第ｋ主成分がビート時刻に関する十分な情報を有する。
【００６０】
主成分選択ステップでは、区間毎に、選択した主成分を示す情報（例えば、主成分番号「ｋ（ｋは１からＫまでの自然数）」をメモリに保存する。
【００６１】
［主成分座標連結ステップ］
主成分座標連結ステップでは、主成分選択ステップによって選択された各区間の主成分の座標を、時系列に沿って連結する。この主成分座標連結処理では、連続する２つの区間の境界部分において、主成分の座標が滑らかに連結されるように、主成分の座標を調整する。
【００６２】
図６に、本実施形態に係る主成分座標連結処理を説明するための概念図を示す。本実施形態では、時系列に従って、先頭の区間から順番に主成分座標連結処理を行ってゆく。図６において、ある区間（前区間）までの主成分座標連結処理が終了している。そして、その前区間に対して、次の区間（当区間）を連結するための主成分座標連結処理を行う。この主成分座標連結処理では、前区間の主成分座標に対し、当区間の主成分座標が滑らかに連結されるように、当区間の主成分座標を調整する。この主成分座標の調整処理では、主成分選択ステップによって選択された当区間の主成分座標（元座標）に対し、符号反転又は座標シフトを行う。
【００６３】
ここで、主成分座標連結処理を説明する。
【００６４】
主成分座標連結ステップＳ１１：主成分選択ステップによって選択された当区間の主成分の座標（第ｋ主成分の元座標）Ｙｋに対し、当区間の主成分係数行列Ｖから、第ｋ主成分に対する係数Ｖｋを取得する。さらに、メモリに保存されている前区間の主成分係数行列Ｖから、第ｋ主成分に対する係数Ｖｋｐｒｅを取得する。
【００６５】
主成分座標連結ステップＳ１２：当区間に係る第ｋ主成分に対する係数Ｖｋと前区間に係る第ｋ主成分に対する係数Ｖｋｐｒｅとの関係に基づいて、当区間に係る第ｋ主成分の元座標を符号反転するか否かを判定する。この符号反転の判定は、（９）式により行う。（９）式による判定の結果、符号反転する場合には、当区間の第ｋ主成分の元座標Ｙｋに対して符号反転を行うと共に、当区間の主成分係数行列Ｖに対しても符号反転を行う。一方、（９）式による判定の結果、符号反転しない場合には、当区間の第ｋ主成分の元座標Ｙｋ及び当区間の主成分係数行列Ｖともに、そのままの値を主成分座標連結ステップＳ１２の処理結果とする。
【００６６】
【数９】
0005778523.tif 000010
【００６７】
但し、Ｙｋは、当区間で選択された主成分の座標（第ｋ主成分の元座標）である。Ｖは、当区間の主成分係数行列である。Ｖｋは、当区間に係る第ｋ主成分に対する係数である。Ｖｋｐｒｅは、前区間に係る第ｋ主成分に対する係数である。（Ｖｋ・Ｖｋｐｒｅ）は、ＶｋとＶｋｐｒｅの内積である。Ｙｋ’は、当区間で選択された主成分の座標（第ｋ主成分の元座標）Ｙｋに対する主成分座標連結ステップＳ１２の処理結果である。Ｖ’は、当区間の主成分係数行列Ｖに対する主成分座標連結ステップＳ１２の処理結果である。
【００６８】
主成分座標連結ステップＳ１３：主成分座標連結ステップＳ１２の処理結果の主成分座標Ｙｋ’に対し、座標シフトを行う。
（区間のオーバーラップがない場合）
区間のオーバーラップがない場合（図４に対応）には、（１０）式により座標シフトを行う。この場合、前区間の主成分座標行列Ｙから、前区間の第ｔＮフレームにおける第ｋ主成分の座標Ｙｋｐｒｅ（ｔＮ）を取得する。
【００６９】
【数１０】
0005778523.tif 000011
【００７０】
但し、Ｙｋ’（ｔ１）は、ステップＳ１２の処理結果の主成分座標Ｙｋ’のうち、第ｔ１フレームの座標である。Ｙｋ”（ｔ２）は、（１０）式の最初の計算式の計算結果の座標Ｙｋ”のうち、第ｔ２フレームの座標である。
（１０）式の最初の計算式の計算結果の座標Ｙｋ”に対し、第ｔ１フレームの座標Ｙｋ”（ｔ１）をＹｋｏｐｔ（ｔ１）に置き換える。この置き換え後の座標Ｙｋ”が、座標シフト結果の座標である。
【００７１】
（区間のオーバーラップがある場合）
区間のオーバーラップがある場合（図５に対応）には、（１１）式により座標シフトを行う。この場合、前区間の主成分座標行列Ｙから、前区間の第（ｔＮ−Ｌｏｌ＋１）フレームにおける第ｋ主成分の座標Ｙｋｐｒｅ（ｔＮ−Ｌｏｌ＋１）と、前区間の第（ｔＮ−Ｌｏｌ＋１＋ｉ）フレームにおける第ｋ主成分の座標Ｙｋｐｒｅ（ｔＮ−Ｌｏｌ＋１＋ｉ）とを取得する。但し、ｉ＝１，２，・・・，Ｌｏｌである。Ｌｏｌは、前区間と当区間で重複している区間（オーバーラップ）の長さである。
【００７２】
【数１１】
0005778523.tif 000012
【００７３】
但し、Ｙｋ’（ｔ１）は、ステップＳ１２の処理結果の主成分座標Ｙｋ’のうち、第ｔ１フレームの座標である。Ｙｋ”（ｔ１＋ｉ）は、（１１）式の最初の計算式の計算結果の座標Ｙｋ”のうち、第（ｔ１＋ｉ）フレームの座標である。
（１１）式の最初の計算式の計算結果の座標Ｙｋ”に対し、第（ｔ１＋ｉ）フレームの座標Ｙｋ”（ｔ１＋ｉ）をＹｋｏｐｔ（ｔ１＋ｉ）に置き換える。この置き換え後の座標Ｙｋ”が、座標シフト結果の座標である。
【００７４】
主成分座標連結ステップＳ１４：当区間において、主成分座標連結ステップＳ１２の処理結果の座標Ｙｋ’に対して、主成分座標連結ステップＳ１３の処理結果の座標Ｙｋｏｐｔ（ｔ１）又はＹｋｏｐｔ（ｔ１＋ｉ）を反映する。これにより、当区間の主成分座標は、前区間の主成分座標に対して滑らかに連結されるものとなる。
【００７５】
主成分座標連結ステップでは、上記した主成分座標連結処理を最初の区間から最後の区間まで行う。これにより、連結後の全区間の主成分座標「ｙ（ｔ）、ｔ＝０，１，２，・・・，Ｔ−１」が求まる。但し、Ｔは、動きデータに含まれるフレームの個数である。
【００７６】
［ビート抽出ステップ］
ビート抽出ステップでは、主成分座標連結ステップによって算出された連結後の全区間の主成分座標ｙ（ｔ）から、極値ｂ（ｊ）を算出する。この算出結果の極値ｂ（ｊ）がビートに対応する。ビートの集合Ｂは、（１２）式で表される。
【００７７】
【数１２】
0005778523.tif 000013
【００７８】
但し、Ｊは、ビートの個数である。
【００７９】
なお、ビートの集合の算出は、上記した方法以外の方法でも可能である。
例えば、ビート抽出ステップでは、主成分座標連結ステップによって算出された連結後の全区間の主成分座標から自己相関値を算出し、該自己相関値の極値ｂ（ｊ）をビートに対応するものとして算出することができる。
また、ビート抽出ステップでは、主成分座標連結ステップによって、連結後の隣区間の主成分係数から算出した内積（（９）式によるもの）の自己相関値を算出し、該自己相関値の極値ｂ（ｊ）をビートに対応するものとして算出することができる。
【００８０】
［後処理ステップ］
後処理ステップでは、ビート抽出ステップによって算出されたビート集合Ｂから、ビート時刻を検出する。
【００８１】
ここで、ビート時刻検出処理を説明する。
まず、ビート集合Ｂ内の各極値間を、（１３）式により正弦曲線（sinusoid）で近似する。
【００８２】
【数１３】
0005778523.tif 000014
【００８３】
但し、ｓｊ−１（ｔ）は、（ｊ−１）番目の極値ｂ（ｊ−１）からｊ番目の極値ｂ（ｊ）までの区間の正弦近似値である。ｔはフレームに対応する時刻であり、「ｔ＝０，１，２，・・・，Ｔ−１」である。Ｔは、動きデータに含まれるフレームの個数である。
【００８４】
図７に、（１３）式による正弦近似処理の概念図を示す。図７において、１番目の極値ｂ（１）から２番目の極値ｂ（２）までの区間ａ１（ｊ＝２の場合の区間）は、ｓ１（ｔ）で近似される。同様に、２番目の極値ｂ（２）から３番目の極値ｂ（３）までの区間ａ２（ｊ＝３の場合の区間）はｓ２（ｔ）で近似され、３番目の極値ｂ（３）から４番目の極値ｂ（４）までの区間ａ３（ｊ＝４の場合の区間）はｓ３（ｔ）で近似され、４番目の極値ｂ（４）から５番目の極値ｂ（５）までの区間ａ４（ｊ＝５の場合の区間）はｓ４（ｔ）で近似される。
【００８５】
次いで、正弦近似値「ｓｊ−１（ｔ）、ｊ＝２，３，・・・，Ｊ」に対してフーリエ変換を行う。そのフーリエ変換処理には、所定のＦＦＴポイント数Ｌのハン窓を用いたＦＦＴ（Fast Fourier Transform）演算器を使用する。そして、そのフーリエ変換の結果に基づいて、該フーリエ変換に係る周波数範囲のうちから最大の成分を有する周波数（最大成分周波数）ｆｍａｘを検出する。そして、ビート間隔ＴＢを「ＴＢ＝Ｆｓ÷ｆｍａｘ」なる計算式により算出する。但し、Ｆｓは、１秒当たりのフレーム数である。
【００８６】
次いで、正弦近似値「ｓｊ−１（ｔ）、ｊ＝２，３，・・・，Ｊ」と、（１４）式で定義される基準値「ｓ’（ｔ）」との間の最大相関初期位相を（１５）式により算出する。
【００８７】
【数１４】
0005778523.tif 000015
【００８８】
【数１５】
0005778523.tif 000016
【００８９】
次いで、（１６）式により、ビート時刻ｅｂ（ｊ）の集合ＥＢを算出する。但し、ＥＪは、ビート時刻ｅｂ（ｊ）の個数である。
【００９０】
【数１６】
0005778523.tif 000017
【００９１】
以上が本実施形態に係るビート時刻検出方法の説明である。
【００９２】
ビート抽出部１１１は、各動きデータについて、ビート時刻ｅｂ（ｊ）の集合ＥＢを属性指定部１１２へ出力する。このとき、ビート抽出部１１１が主成分分析処理を行った区間（主成分分析区間）とビート時刻ｅｂ（ｊ）の対応関係を表す情報も属性指定部１１２へ出力する。これにより、あるビート時刻がどの主成分分析区間に属するのかが分かる。
【００９３】
［属性指定部］
属性指定部は、各動きデータについて、ビート抽出部１１１が算出した集合ＥＢに含まれるビート時刻ｅｂ（ｊ）に基づいて各ビート間に属性値を設定する。
まず、動きデータベース２−１の動きデータに対しては、全てのビート間に属性値「０」を設定する。一方、動きデータベース２−２の動きデータに対しては、ラベルに応じた所定の属性値を設定する。図８には、動きデータベース２−２の動きデータに付与されているラベルに対応する属性値が例示されている。図８の例では、ラベル「Ａ」，「Ｂ」，「Ｃ」，・・・に対応する適切な属性値「１０」，「２０」，「３０］・・・が予め準備されている。
【００９４】
［モーショングラフ生成部］
モーショングラフ生成部１１３は、各動きデータの、ビート時刻ｅｂ（ｊ）の集合ＥＢ及び属性値を用いて、モーショングラフを生成する。モーショングラフについては非特許文献２に開示されている。モーショングラフは、ノード（頂点）群とノード間の連結関係を表すエッジ（枝）群とエッジの重みから構成される。エッジには双方向と単方向の２種類がある。
【００９５】
図９は、本実施形態に係るモーショングラフ生成方法の流れを示す概念図である。以下、図９を参照して、モーショングラフを生成する手順を説明する。
【００９６】
［ビートフレーム抽出ステップ］
まず、ビートフレーム抽出ステップでは、全ての動きデータから、ビート時刻に該当するフレーム（ビートフレーム）を全て抽出する。この抽出されたビートフレームの集合をＦｉＡＬＬＢと表す。
【００９７】
［連結性算出ステップ］
次いで、連結性算出ステップでは、集合ＦｉＡＬＬＢに含まれる全ビートフレームを対象とした全てのペアについて、（１７）式又は（１８）式により距離を算出する。あるビートフレームＦｉＢとあるビートフレームＦｊＢとの距離をｄ（ＦｉＢ，ＦｊＢ）と表す。
【００９８】
【数１７】
0005778523.tif 000018
【００９９】
但し、ｑｉ，ｋはビートフレームＦｉＢのｋ番目のジョイントの四元数（quaternion）である。ｗｋはｋ番目のジョイントに係る重みである。重みｗｋは予め設定される。
【０１００】
【数１８】
0005778523.tif 000019
【０１０１】
但し、ｐｉ，ｋはビートフレームＦｉＢのｋ番目のジョイントのルートに対する相対位置のベクトルである。つまり、ｐｉ，ｋは、ルートの位置と方向は考えずに算出したビートフレームＦｉＢのｋ番目のジョイントの位置のベクトルである。
【０１０２】
なお、ビートフレーム間の距離は、対象ビートフレームにおけるポーズを構成する各ジョイントの位置、速度、加速度、角度、角速度、角加速度などの物理量の差分の重み付き平均として算出することができる。
【０１０３】
次いで、連結性算出ステップでは、（１９）式により、連結性を算出する。あるビートフレームＦｉＢとあるビートフレームＦｊＢとの連結性をｃ（ＦｉＢ，ＦｊＢ）と表す。
【０１０４】
【数１９】
0005778523.tif 000020
【０１０５】
但し、ｄ（ＦｉＢ）はビートフレームＦｉＢの前フレームと後フレームの間の距離である（（１７）式又は（１８）式と同様の計算式で算出する）。ＴＨは予め設定される閾値である。
【０１０６】
連結性ｃ（ＦｉＢ，ＦｊＢ）が１である場合、ビートフレームＦｉＢのポーズとビートフレームＦｊＢのポーズは似ていると判断できる。連結性ｃ（ＦｉＢ，ＦｊＢ）が０である場合、ビートフレームＦｉＢのポーズとビートフレームＦｊＢのポーズは似ているとは判断できない。
【０１０７】
［モーショングラフ構築ステップ］
次いで、モーショングラフ構築ステップでは、まず、集合ＦｉＡＬＬＢに含まれる全ビートフレームをそれぞれ、モーショングラフのノードに設定する。従って、モーショングラフのノード数の初期値は、集合ＦｉＡＬＬＢに含まれるビートフレームの個数に一致する。
【０１０８】
次いで、連結性ｃ（ＦｉＢ，ＦｊＢ）が１である場合、ビートフレームＦｉＢのノードとビートフレームＦｊＢのノードの間に双方向のエッジを設ける。連結性ｃ（ＦｉＢ，ＦｊＢ）が０である場合には、ビートフレームＦｉＢのノードとビートフレームＦｊＢのノードの間に双方向のエッジを設けない。
【０１０９】
次いで、同じ動きデータの中で隣接するビートフレーム間には、単方向のエッジを設ける。単方向のエッジは、時間的に前のビートフレームのノードから後のビートフレームのノードへ向かう。
【０１１０】
次いで、双方向のエッジに対する重みを算出する。ビートフレームＦｉＢのノードとビートフレームＦｊＢのノードの間の双方向エッジに対する重みは、（２０）式により算出する。
【０１１１】
【数２０】
0005778523.tif 000021
【０１１２】
次いで、単方向のエッジに対する重みを算出する。ビートフレームＦｉＢのノードとビートフレームＦｊＢのノードの間の単方向エッジに対する重みには、該当する動きデータの属性値を使用する。
【０１１３】
次いで、双方向エッジの両端のノード（ビートフレーム）に係る動きデータに対して、ブレンディング（blending）処理を行う。ブレンディング処理は、双方向エッジの方向ごとに、それぞれ行う。従って、一つの双方向エッジに対して、図１０（１），（２）に示されるように、２つのブレンディング処理を行うことになる。図１０は、ビートフレームｉのノードとビートフレームｊのノードの間の双方向エッジに係るブレンディング処理の概念図である。図１０（１）はビートフレームｉのノードからビートフレームｊのノードへ向かう方向に係るブレンディング処理を表し、図１０（２）はビートフレームｊのノードからビートフレームｉのノードへ向かう方向に係るブレンディング処理を表す。
【０１１４】
図１１は、ブレンディング処理を説明する概念図であり、図１０（１）に対応している。ここでは、図１１を参照し、図１０（１）に示されるビートフレームｉのノードからビートフレームｊのノードへ向かう方向に係るブレンディング処理を例に挙げて説明する。
【０１１５】
ブレンディング処理では、ビートフレームｉを有する動きデータ１とビートフレームｊを有する動きデータ２に対して、動きのつながりが不自然にならないように、両者の動きデータの接続部分を混合した補間データ（ブレンディング動きデータ）１＿２を生成する。本実施形態では、一定時間分のフレームを使用しクォータニオンによる球面線形補間を利用して連結部分を補間する。具体的には、動きデータ１と動きデータ２を接続する接続区間（区間長ｍ、但し、ｍは所定値）のブレンディング動きデータ１＿２を、動きデータ１のうち最後の区間長ｍのデータ１＿ｍと動きデータ２のうち最初の区間長ｍのデータ２＿ｍを用いて生成する。このとき、接続区間の区間長ｍに対する接続区間の先頭からの距離ｕの比（ｕ／ｍ）に応じて、データ１＿ｍのうち距離ｕに対応するフレームｉとデータ２＿ｍのうち距離ｕに対応するフレームｊを混合する。具体的には、（２１）式および（２２）式により、ブレンディング動きデータ１＿２を構成する各フレームを生成する。なお、（２１）式は、ある一つの骨についての式となっている。
【０１１６】
【数２１】
0005778523.tif 000022
【０１１７】
【数２２】
0005778523.tif 000023
【０１１８】
但し、ｍはブレンディング動きデータ１＿２を構成するフレーム（ブレンディングフレーム）の総数（所定値）、ｕはブレンディングフレームの先頭からの順番（１≦ｕ≦ｍ）、ｑ（ｋ，ｕ）はｕ番目のブレンディングフレームにおける第ｋ骨の四元数、ｑ（ｋ，ｉ）はフレームｉにおける第ｋ骨の四元数、ｑ（ｊ）はフレームｊにおける第k骨の四元数、である。但し、ルートにはブレンディングを行わない。なお、（２２）式はslerp（spherical linear interpolation）の算出式である。
【０１１９】
ブレンディング動きデータ１＿２は、動きデータ１と動きデータ２の接続部分のデータとする。
【０１２０】
次いで、モーショングラフからデッドエンド（Dead end）を除去する。デッドエンドとは次数が１であるノードのことである。なお、モーショングラフにおいて、ノードに接続するエッジの数のことを次数という。また、ノードに入ってくるエッジの数のことを入次数、ノードから出て行くエッジの数のことを出次数という。
【０１２１】
モーショングラフからデッドエンドを除去すると、新たなデッドエンドが発生する可能性があるが、デッドエンドがなくなるまでデッドエンド除去を繰り返す。
【０１２２】
以上のモーショングラフ構築ステップによって、モーショングラフのデータが生成される。モーショングラフデータは、モーショングラフが有するノード（ビートフレーム）の情報と、ノード間のエッジ（双方向エッジまたは単方向エッジ）の情報（エッジの重みを含む）と、双方向エッジに対応する２方向分のブレンディング動きデータとを有する。
【０１２３】
モーショングラフ生成部１１３は、生成したモーショングラフデータをコンテンツ生成部１４へ出力する。
【０１２４】
以上が動き解析部１１に係る説明である。
【０１２５】
［音楽解析部］
映像コンテンツ生成装置１には、映像コンテンツ生成対象の楽曲の音楽データが楽曲ファイル３から入力される。音楽解析部１３は、映像コンテンツ生成対象の楽曲の音楽データを解析して音楽特徴量を取得する。本実施形態では、非特許文献１に記載の技術を用いて、音楽データから、ビート間隔およびビート時刻を音楽特徴量として取得する。音楽解析部１３は、音楽特徴量（ビート間隔およびビート時刻）をコンテンツ生成部１４へ出力する。
【０１２６】
［入力部］
入力部１２には、楽曲ファイル３からの映像コンテンツ生成対象の楽曲の音楽データと、動きデータベース２−２からの動きデータとが入力される。動きデータベース２−２から入力される各動きデータにはラベルが付与されている。図１２は、図１に示す入力部１２の構成を示すブロック図である。入力部１２は、再生部１２１と動き候補提示部１２２と操作部１２３と属性値設定部１２４を有する。
【０１２７】
再生部１２１は、映像コンテンツ生成対象の楽曲の音楽データを再生する。動き候補提示部１２２は、動きデータベース２−２の動きデータをユーザに提示する。操作部１２３は、ユーザが、音楽データが再生された音楽を聴きながら、該音楽の再生している時間的な位置を示す再生時刻と、動き候補提示部１２２で提示された動きデータの中から再生時刻に対応付ける動きデータとを、指定するための手段を有する。
【０１２８】
属性値設定部１２４は、ある再生時刻に対応付けられた動きデータに付与されているラベルに応じて、当該再生時刻の属性値を設定する。まず、ユーザが、再生された音楽を聴きながら、任意のタイミングで操作部１２３の再生時刻指定手段を操作すると、属性値設定部１２４は、該操作時刻を再生時刻とする。次いで、ユーザが、動き候補提示部１２２で提示された動きデータの中から、任意の動きデータを操作部１２３の動きデータ指定手段で指定すると、属性値設定部１２４は、該指定された動きデータを該再生時刻に対応付ける。次いで、属性値設定部１２４は、該再生時刻に対応付けられた動きデータに付与されているラベルに対応する所定の属性値を、当該再生時刻から一定時間までの区間に対する属性値とする。図１３には、動きデータに付与されているラベルに対応する、音楽データの再生時刻の属性値が例示されている。図１３の例では、ラベル「指定なし」，「Ａ」，「Ｂ」，「Ｃ」，・・・に対応する属性値「０」，「１０」，「２０」，「３０］・・・が予め準備されている。属性値設定部１２４は、音楽データにおいて、属性値を設定しなかった区間に対して、属性値「０」を設定する（これは、ラベル「指定なし」に対応する処理である）。
【０１２９】
入力部１２は、映像コンテンツ生成対象の楽曲の音楽データに関し、再生時刻と動きデータと属性値の組合せを示す情報をコンテンツ生成部１４に出力する。
【０１３０】
［コンテンツ生成部］
まず、コンテンツ生成部１４は、モーショングラフデータの中から、映像コンテンツ生成対象の楽曲とユーザの指定に合ったモーショングラフデータを選択する。具体的には、コンテンツ生成部１４は、モーショングラフデータを用いて、動きデータと音楽データを対応付ける同期情報を生成する。以下、同期情報生成方法を説明する。
【０１３１】
［始点選択ステップ］
始点選択ステップでは、モーショングラフ内のノードから、映像コンテンツの動きの始点となるノードの候補（始点候補ノード）を選択する。始点候補ノードには、モーショングラフ内のノードであって、各動きデータの最初のビートフレームに対応するノードを全て抽出する。従って、始点候補ノードは、通常、複数ある。
【０１３２】
［最適パス探索ステップ］
次いで、最適パス探索ステップでは、モーショングラフ上の始点候補ノードからの最適パスを始点候補ノード毎に探索し、各始点候補ノードに係る最適パスの中から最小コストのパスを選択する。このパス探索方法には、非特許文献３に記載されるパス探索技術を用いる。非特許文献３に記載されるパス探索技術は、ある始点からダイナミックプログラミングで最適なパスを探索するものである。以下、最適パス探索ステップの詳細を説明する。
【０１３３】
まず、ある始点候補ノードｕからモーショングラフ上の全てのノードｉまでの各パスのコストを（２３）式により算出する。始点候補ノードｕに係る最初の最短パス算出操作は第１回の操作である。
【０１３４】
【数２３】
0005778523.tif 000024
【０１３５】
但し、ｓｈｏｒｔｅｓｔＰａｔｈ（ｉ，１）は、第１回の最短パス算出操作による、始点候補ノードｕからノードｉまでのパスのコストである。ｅｄｇｅＣｏｓｔ（ｕ，ｉ）はノードｕからノードｉまでのエッジコストである。エッジコストの計算式は（２４）式である。エッジコストは毎回計算される。
【０１３６】
【数２４】
0005778523.tif 000025
【０１３７】
但し、ｗ（ｉ，ｊ）はエッジの重みであり、Ｉ（ｋ）は音楽のビートｋとビートｋ＋１間の属性値であり、ｗｂｉは双方向エッジの重みであり、Ｅ１は単方向エッジの集合であり、Ｅ２は双方向エッジの集合である。
【０１３８】
次いで、第２回目以降の第ｋ回の最短パス算出操作では、（２５）式により、始点候補ノードｕからモーショングラフ上の全てのノードｖまでの最適パスのコストを算出する。
【０１３９】
【数２５】
0005778523.tif 000026
【０１４０】
但し、Ｖはモーショングラフ上のノードの集合である。ｓｈｏｒｔｅｓｔＰａｔｈ（ｖ，ｋ）は、第ｋ回の最短パス算出操作による、始点候補ノードｕからノードｖまでの最適パスのコストである。ｅｄｇｅＣｏｓｔ（ｉ，ｖ）はノードｉからノードｖまでのエッジコストである。
【０１４１】
この（２５）式を用いた第２回目以降の最短パス算出操作は、第Ｋ回まで繰り返し行う。但し、Ｋは映像コンテンツ生成対象の楽曲のビート数である。映像コンテンツ生成対象の楽曲のビート数Ｋは、映像コンテンツ生成対象の楽曲のビート時刻の総数に等しい。映像コンテンツ生成対象の楽曲のビート時刻は、音楽解析部１３からコンテンツ生成部１４に入力されるので、その入力された数を数えることによってビート数Ｋを求めることができる。
【０１４２】
上記（２３）式および（２５）式を用いた最短パス算出操作を、全ての始点候補ノードに対してそれぞれに行う。次いで、全ての始点候補ノードに係る第Ｋ回の最短パス算出操作結果から、（２６）式により、最小コストのパスを選択する。
【０１４３】
【数２６】
0005778523.tif 000027
【０１４４】
但し、ｓｈｏｒｔｅｓｔＰａｔｈ（ｖ，Ｋ）は、第Ｋ回の最短パス算出操作による、始点候補ノードｕからノードｖまでの最適パスのコストである。ｓｈｏｒｔｅｓｔＰａｔｈ（Ｋ）は、最小コストのパス（始点ノードｕから終点ノードｖまでのパス）のコストである。
【０１４５】
最適パス探索ステップでは、上記（２６）式によって選択された最小コストのパスを探索結果の最適パスとする。この最適パスに含まれるＫ個のノードは、１個の始点ノードｕと、（Ｋ−２）個の経由ノードｉと、１個の終点ノードｖである。ここで、始点候補ノードは、通常、複数あるので、上記探索結果の最適パスは始点候補ノードの数と同じ数だけある。それら最適パスの中から、コストが一番小さいパスとその始点を最終結果の最適パスとして選択する。この最終結果の最適パスに含まれるＫ個のノードは、１個の最適始点ノードｕｏｐｔと、（Ｋ−２）個の経由ノードｉｏｐｔと、１個の終点ノードｖｏｐｔである。
【０１４６】
［同期情報生成ステップ］
同期情報生成ステップでは、最適パス探索ステップの最終結果の最適パスに従って、動きデータと音楽データを対応付ける同期情報を生成する。以下、同期情報生成ステップの詳細を説明する。
【０１４７】
まず、最適パス探索ステップの最終結果の最適パスに含まれるＫ個のノード（１個の始点ノードｕｏｐｔと、（Ｋ−２）個の経由ノードｉｏｐｔと、１個の終点ノードｖｏｐｔ）に対応するＫ個のビートフレーム（１個の始点ビートフレームと、（Ｋ−２）個の経由ビートフレームと、１個の終点ビートフレーム）について、最適パスの順番で隣り合うビートフレーム間の時間を求める。さらに、各隣接ビートフレーム間のフレームレートを求める。また、映像コンテンツ生成対象の楽曲のＫ個のビートについて、時間的に隣り合うビート間の時間を求める。
【０１４８】
次いで、楽曲のビート間隔に動きのビート間隔を等しくするように、（２７）式により、動きのフレームレートを増減させる調整を行う。図１４に、動きのフレームレートを調整する処理の概念図を示す。（２７）式は、ｎ番目のビートフレームと（ｎ＋１）番目のビートフレームの間のフレームレートを算出するための計算式である（但し、ｎは１から（Ｋ−１）までの自然数である）。
【０１４９】
【数２７】
0005778523.tif 000028
【０１５０】
但し、ｔｍｏｔｉｏｎｎｏｄｅ２は隣接ビートフレームのうち先のビートフレームの時刻、ｔｍｏｔｉｏｎｎｏｄｅ１は該隣接ビートフレームのうち後のビートフレームの時刻である。ｔｍｕｓｉｃｎｏｄｅ２は楽曲の隣接ビートのうち先のビートの時刻、ｔｍｕｓｉｃｎｏｄｅ１は該隣接ビートのうち後のビートの時刻である。ｒａｔｅ＿ｏｌｄは元のフレームレートである。ｒａｔｅ＿ｎｅｗは調整後のフレームレートである。
【０１５１】
コンテンツ生成部１４は、上記した同期情報生成方法によって、映像コンテンツの動きの始点となる１個の始点ビートフレームと、映像コンテンツの動きの終点となる１個の終点ビートフレームと、始点ビートフレームから終点ビートフレームに至るまでに経由する（Ｋ−２）個の経由ビートフレームと、各隣接ビートフレーム間の調整後のフレームレートとを得る。コンテンツ生成部１４は、始点ビートフレームの情報と経由ビートフレームの情報と終点ビートフレームの情報と調整後のフレームレートの情報と該ビートフレーム間のブレンディング動きデータを同期情報として映像データ生成部１５に出力する。なお、ブレンディング動きデータは、最適パス探索ステップの探索結果の最適パスに沿った方向のデータのみでよい。
【０１５２】
［映像データ生成部］
映像データ生成部１５は、コンテンツ生成部１４から入力された同期情報に基づいて、映像コンテンツ生成対象の楽曲の音楽データとともに再生される映像データを生成する。具体的には、始点ビートフレームから経由ビートフレームを経由して終点ビートフレームに至るまでに必要な動きデータを動きデータベース２−１，２−２から取得する。
【０１５３】
次いで、取得した動きデータ間を連結する部分（双方向エッジに対応する部分）に対してブレンディング動きデータで置換する。このとき、動きデータの連結部分において、動きデータのルート座標と方向の平行移動を行う。動きデータが連結される際に各動きデータのルート座標は、各動きデータに独自のローカル座標のままである。このままでは、連結後の動きデータの再生画像は、ルート座標が整合されていないために、スムーズな動きにならない。このため、動きデータの連結部分において、後の動きデータのルート座標を前の動きデータの最後のフレームで表現している位置へオフセットする。これにより、動きデータの連結部分における補間処理を行い、連結後の動きデータの再生画像がスムーズな動きとなるようにする。同様に、動きデータが連結される際に各動きデータのルート方向は、後の動きデータのルート方向を前の動きデータの最後のフレームで表現している方向へオフセットする。
【０１５４】
次いで、連結された動きデータに対して、各隣接ビートフレーム間の調整後のフレームレートの情報を付加する。映像データ生成部１５は、この生成した映像データをコンテンツ表示部１６に出力する。
【０１５５】
［コンテンツ表示部］
コンテンツ表示部１６は、映像データ生成部１５から入力された映像データを、映像コンテンツ生成対象の楽曲の音楽データとともに再生する。このとき、コンテンツ表示部１６は、映像データに付加されたフレームレートの情報に従って、隣接ビートフレーム間のフレームレートを設定する。これにより、映像データと音楽データは、互いのビートが同期して再生される。
【０１５６】
なお、コンテンツ表示部１６は、映像コンテンツ生成装置１とは独立した装置であってもよい。
【０１５７】
なお、本実施形態に係る映像コンテンツ生成装置１は、専用のハードウェアにより実現されるものであってもよく、あるいはパーソナルコンピュータ等のコンピュータシステムにより構成され、図１に示される映像コンテンツ生成装置１の各部の機能を実現するためのプログラムを実行することによりその機能を実現させるものであってもよい。
【０１５８】
また、その映像コンテンツ生成装置１には、周辺機器として入力装置、表示装置等が接続されるものとする。ここで、入力装置とはキーボード、マウス等の入力デバイスのことをいう。表示装置とはＣＲＴ（Cathode Ray Tube）や液晶表示装置等のことをいう。
また、上記周辺機器については、映像コンテンツ生成装置１に直接接続するものであってもよく、あるいは通信回線を介して接続するようにしてもよい。
【０１５９】
また、図１に示す映像コンテンツ生成装置１が行う各ステップを実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、映像コンテンツ生成処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、フラッシュメモリ等の書き込み可能な不揮発性メモリ、ＤＶＤ（Digital Versatile Disk）等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【０１６０】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（例えばＤＲＡＭ（Dynamic Random Access Memory））のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【０１６１】
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
例えば、上述した実施形態では人の動きデータを扱ったが、本発明は各種の物体の動きデータに適用することができる。ここで、物体とは、人、動物、植物その他の生物、及び、生物以外の物（ロボット等）を含む。
【０１６２】
また、本発明は、３次元コンテンツの生成に利用することができる。
【符号の説明】
【０１６３】
１…映像コンテンツ生成装置、１１…動き解析部、１２…入力部、１３…音楽解析部、１４…コンテンツ生成部、１５…映像データ生成部、１６…コンテンツ表示部、１１１…ビート抽出部、１１２…属性指定部、１１３…モーショングラフ生成部、１２１…再生部、１２２…動き候補提示部、１２３…操作部、１２４…属性値設定部
【図１】
0005778523.tif 000029
【図２】
0005778523.tif 000030
【図３】
0005778523.tif 000031
【図４】
0005778523.tif 000032
【図５】
0005778523.tif 000033
【図６】
0005778523.tif 000034
【図７】
0005778523.tif 000035
【図８】
0005778523.tif 000036
【図９】
0005778523.tif 000037
【図１０】
0005778523.tif 000038
【図１１】
0005778523.tif 000039
【図１２】
0005778523.tif 000040
【図１３】
0005778523.tif 000041
【図１４】
0005778523.tif 000042