映像コンテンツ生成装置及びコンピュータプログラム
【課題】楽曲に合わせた映像コンテンツを生成する際に、適切な動きデータ間を連結すること、さらには計算量の削減を図る。
【解決手段】映像コンテンツに利用可能な動きデータから動き特徴量を取得する動き解析部11と、動きの種類ごとに分類された動き特徴量群を格納するデータベース12と、映像コンテンツ生成対象楽曲の音楽データから音楽特徴量を取得する音楽解析部13と、映像コンテンツ生成対象楽曲の種類に合った動き特徴量群を用いて前記音楽データと該音楽データに合った前記動きデータとを対応付ける同期情報を生成する同期部15と、前記同期情報に基づいて前記音楽データとともに再生される映像データを生成する映像データ生成部17と、を備える。
【解決手段】映像コンテンツに利用可能な動きデータから動き特徴量を取得する動き解析部11と、動きの種類ごとに分類された動き特徴量群を格納するデータベース12と、映像コンテンツ生成対象楽曲の音楽データから音楽特徴量を取得する音楽解析部13と、映像コンテンツ生成対象楽曲の種類に合った動き特徴量群を用いて前記音楽データと該音楽データに合った前記動きデータとを対応付ける同期情報を生成する同期部15と、前記同期情報に基づいて前記音楽データとともに再生される映像データを生成する映像データ生成部17と、を備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、映像コンテンツ生成装置及びコンピュータプログラムに関する。
【背景技術】
【0002】
従来、音楽に合わせてコンピュータ・グラフィックス(CG)オブジェクトを表示させる技術として、非特許文献1が知られている。非特許文献1では、演奏家が音楽を演奏すると、音楽との所定のマッピングのパタンに従って、CGモデルが動くようになっている。又、特許文献1では、CGオブジェクトの時系列に対して、音楽データの静的属性または動的属性をもとにして描画情報(視点情報、光源情報)を再設定する。そして、音楽データをCGオブジェクト表示と同期して再生している。又、特許文献2に記載のモーション作成装置では、複数のモーションにおいて人体姿勢が類似する2つのフレーム間を連結した有向性グラフとしてモーションデータベースを構築し、その複数のモーションの中から、音楽データから取得したビート特徴成分と相関を有する動き特徴成分をもつモーションを選択している。
【0003】
音楽解析手法としては、非特許文献2に記載の技術が知られている。非特許文献2の技術によれば、発音成分、コードの変化、打楽器の発音時刻などを推定してビート間隔及びビート構造を取得している。
動き解析手法としては、非特許文献3に記載の技術が知られている。非特許文献3の技術によれば、動きビートの変化や発生時刻を推定してビート間隔及びビート構造を取得している。
非特許文献4には、モーショングラフ(Motion Graphs)を用いて新たな動きデータを生成する技術が開示されている。
非特許文献5,6には、動きデータ全体を主成分分析し、寄与率の高い主成分を取得する技術が開示されている。
非特許文献7には、パス探索技術として、ある始点からダイナミックプログラミング(dynamic programming)で最適なパスを探索する技術が開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2005−56101号公報
【特許文献2】特開2007−18388号公報
【非特許文献】
【0005】
【非特許文献1】後藤 真孝,村岡 洋一、“音楽に踊らされるCGダンサーによるインタラクティブパフォーマンス”,コンピュータソフトウェア(日本ソフトウェア科学会論文誌),Vol.14,No.3,pp.20-29,May 1997
【非特許文献2】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
【非特許文献3】T.Kim,S.I.Park,S.Y.Shin,“Rhythmic-Motion Synthesis Based on Motion-Beat Analysis”,ACM Transaction on Graphics,Vol.22,Issue 3,2003(SIGGRAPH 2003),pp.392-401
【非特許文献4】L.Kovar,M.Gleicher,and F.Pighin,“Motion Graphs”,ACM Transaction on Graphics,Vol.21,Issue 3,2002(SIGGRAPH 2002),pp.473-482
【非特許文献5】L.M.Tanco and A.Hilton,“Realistic synthesis of novel human movements from a database of motion capture examples”,In IEEE Workshop on Human Motion,pp.137-142,2000
【非特許文献6】P.Glardon,R.Boulic,D.Thalmann,“PCA-based Walking Engine Using Motion Capture Data”,In Computer Graphics International,pp.292-298,2004
【非特許文献7】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
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかし、上述した非特許文献1記載の従来技術では、CGモデルの動き数が限定される点、音楽とのマッピングのパタンが予め設定される点などから、自由に豊かな動きを生成することが困難である。しかも、それを使いこなすには専門的な知識が必要なので、一般のユーザには利用することが難しい。又、特許文献1記載の従来技術では、ある楽曲に対してCGアニメーションを作成する際、CGオブジェクトの時系列がその楽曲にそぐわない場合には、楽曲に合致したCGアニメーションを作成することが難しいという問題がある。又、特許文献2記載の従来技術では、一般に利用可能な膨大な数の動きデータに対して、人体姿勢が類似する2つのフレーム間を連結した有向性グラフとしてモーションデータベースを構築することは、現実的に難しいという問題がある。このため、実際のモーション作成対象の楽曲に基づいて選択された動きデータを対象にして、動きデータ間を連結することが望ましい。非特許文献4記載の従来技術では、モーショングラフの構築と最適なパスの探索に要する計算量が膨大である。また、元々のモーション構造を考慮しないで構築されたモーショングラフを使用すると、元々のモーション構造が壊れる可能性がある。例えば、激しい動きとゆっくりの動き間で遷移すると、動きの突然の変化のために、不自然な動き又は不一致な動きが生まれる可能性がある。
【0007】
本発明は、このような事情を考慮してなされたもので、その目的は、大規模な動きデータベースを利用して楽曲に合わせた映像コンテンツを生成する際に、適切な動きデータ間を連結すること、さらには計算量の削減を図ることのできる映像コンテンツ生成装置及びコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【0008】
上記の課題を解決するために、本発明に係る映像コンテンツ生成装置は、楽曲に合わせた映像コンテンツを生成する映像コンテンツ生成装置において、映像コンテンツに利用可能な動きデータから動き特徴量を取得する動き解析部と、動きの種類ごとに分類された動き特徴量群を格納するデータベースと、映像コンテンツ生成対象楽曲の音楽データから音楽特徴量を取得する音楽解析部と、前記映像コンテンツ生成対象楽曲の種類に合った動き特徴量群を用いて、前記音楽データと該音楽データに合った前記動きデータとを対応付ける同期情報を生成する同期部と、前記同期情報に基づいて、前記音楽データとともに再生される映像データを生成する映像データ生成部と、を備えたことを特徴とする。
【0009】
本発明に係る映像コンテンツ生成装置において、前記動き解析部は、前記動きデータからビートを抽出し、テンポを算出するビート抽出部と、複数の前記動きデータに係るビート及びテンポの情報を記憶するビート情報記憶部と、前記動きデータから盛り上がりを算出する盛り上がり算出部と、複数の前記動きデータに係る盛り上がりの情報を記憶する盛り上がり情報記憶部と、複数の前記動きデータに係るビート、テンポ及び盛り上がりの情報を用いて、モーショングラフを生成するモーショングラフ生成部と、を有し、前記データベースは、動きのテンポの種類ごとに生成されたモーショングラフのデータを格納し、前記音楽解析部は、前記音楽データからビート、テンポ及び盛り上がりの情報を取得し、前記同期部は、前記映像コンテンツ生成対象楽曲のテンポに合ったモーショングラフを用いて、前記音楽データに合う前記動きデータと前記音楽データとを対応付ける同期情報を生成する、ことを特徴とする。
【0010】
本発明に係る映像コンテンツ生成装置において、前記ビート抽出部は、前記動きデータに対して一定時間の区間毎に主成分分析を行い、該区間毎に主成分座標を一つ選択し、各区間の主成分座標に基づいてビート時刻を検出することを特徴とする。
【0011】
本発明に係る映像コンテンツ生成装置において、前記盛り上がり算出部は、前記区間毎に、主成分分析による負でない固有値の和を計算することを特徴とする。
【0012】
本発明に係る映像コンテンツ生成装置において、前記モーショングラフ生成部は、動きのテンポの種類が同じである前記動きデータからビートフレームを抽出するビートフレーム抽出手段と、前記抽出されたビートフレーム間の連結性を算出する連結性算出手段と、前記抽出されたビートフレームの各々をモーショングラフのノードに設定し、前記連結性に基づいてノード間にエッジを設けるモーショングラフ構築手段と、を有することを特徴とする。
本発明に係る映像コンテンツ生成装置において、前記モーショングラフ生成部は、前記動きデータに付加されたジャンル情報によって前記動きデータのジャンルを判別し、同じジャンルの前記動きデータをさらにテンポで分類することを特徴とする。
【0013】
本発明に係る映像コンテンツ生成装置において、前記モーショングラフ構築手段は、連結性が高いノード間に双方向エッジを設け、各動きデータ内の全隣接ビートフレーム間に単方向エッジを設けることを特徴とする。
【0014】
本発明に係る映像コンテンツ生成装置においては、一定時間分のフレームを使用しクォータニオンによる球面線形補間を利用して、前記連結性が高いノード間の連結部分を補間するブレンディング動きデータを生成するブレンディング動きデータ生成手段を備えたことを特徴とする。
【0015】
本発明に係る映像コンテンツ生成装置において、前記単方向エッジは、隣接ビートフレーム間に連続フレームの動きデータを定義することを特徴とする。
【0016】
本発明に係る映像コンテンツ生成装置において、前記モーショングラフ構築手段は、前記動きデータに係る盛り上がりに基づいて、エッジの重みを算出することを特徴とする。
【0017】
本発明に係る映像コンテンツ生成装置において、前記連結性算出手段は、対象ビートフレームにおいて、ポーズの類似度を算出することを特徴とする。
【0018】
本発明に係る映像コンテンツ生成装置において、前記連結性算出手段は、対象ビートフレームにおけるポーズを構成する各ジョイントの物理量の差分の重み付き平均を算出することを特徴とする。
【0019】
本発明に係る映像コンテンツ生成装置において、前記同期部は、モーショングラフ上で、前記音楽データの音楽特徴量に相当する動き特徴量を有するパスを探索する最適パス探索手段を有することを特徴とする。
【0020】
本発明に係る映像コンテンツ生成装置において、前記最適パス探索手段は、前記映像コンテンツ生成対象楽曲が有するビートの個数分の連続するパスを探索することを特徴とする。
【0021】
本発明に係る映像コンテンツ生成装置において、前記最適パス探索手段は、前記音楽データの盛り上がりと前記動きデータの盛り上がりに基づいてパスのコストを算出することを特徴とする。
【0022】
本発明に係る映像コンテンツ生成装置において、前記同期部は、前記映像コンテンツ生成対象楽曲のビート間隔に動きのビート間隔を等しくするように調整した、動きのフレームレートの情報を前記同期情報に含めることを特徴とする。
【0023】
本発明に係る映像コンテンツ生成装置において、前記映像データ生成部は、動きデータの連結部分において、動きデータのルート座標と方向の平行移動を行うことを特徴とする。
【0024】
本発明に係る映像コンテンツ生成装置において、前記データベースの構築処理は、前記映像データを生成する処理とは独立して行われることを特徴とする。
【0025】
本発明に係るコンピュータプログラムは、楽曲に合わせた映像コンテンツを生成する映像コンテンツ生成処理を行うためのコンピュータプログラムであって、映像コンテンツに利用可能な動きデータから動き特徴量を取得する動き解析ステップと、動きの種類ごとに分類された動き特徴量群をデータベースに格納するステップと、映像コンテンツ生成対象楽曲の音楽データから音楽特徴量を取得する音楽解析ステップと、前記映像コンテンツ生成対象楽曲の種類に合った動き特徴量群を用いて、前記音楽データと該音楽データに合った前記動きデータとを対応付ける同期情報を生成する同期情報生成ステップと、前記同期情報に基づいて、前記音楽データとともに再生される映像データを生成する映像データ生成ステップと、をコンピュータに実行させるためのコンピュータプログラムであることを特徴とする。
これにより、前述の映像コンテンツ生成装置がコンピュータを利用して実現できるようになる。
【発明の効果】
【0026】
本発明によれば、楽曲に合わせた映像コンテンツを生成する際に、楽曲の種類に合った動き特徴量群を用いて該楽曲の音楽データと該音楽データに合った動きデータとを対応付ける同期情報を生成することにより、適切な動きデータ間を連結することができるという効果が得られる。さらに、動きの種類ごとに分類された動き特徴量群をデータベースに格納しておくことにより、計算量の削減を図ることができるという効果が得られる。
【図面の簡単な説明】
【0027】
【図1】本発明の一実施形態に係る映像コンテンツ生成装置1の構成を示すブロック図である。
【図2】人体スケルトン型動きデータの定義例である。
【図3】図1に示す動き解析部11の構成を示すブロック図である。
【図4】図3に示すビート抽出部31に係るデータ分割処理の概念図である。
【図5】図3に示すビート抽出部31に係るデータ分割処理の概念図である。
【図6】図3に示すビート抽出部31に係る主成分座標連結処理を説明するための概念図である。
【図7】図3に示すビート抽出部31に係る正弦近似処理の概念図である。
【図8】本発明の一実施形態に係るモーショングラフの構成方法の全体の流れを示す概念図である。
【図9】本発明の一実施形態に係るモーショングラフ生成方法の流れを示す概念図である。
【図10】本発明の一実施形態の双方向エッジに係るブレンディング処理の概念図である。
【図11】本発明の一実施形態に係るブレンディング処理を説明する概念図である。
【図12】本発明の一実施形態に係る動きのフレームレートを調整する処理の概念図である。
【発明を実施するための形態】
【0028】
以下、図面を参照し、本発明の実施形態について説明する。
図1は、本発明の一実施形態に係る映像コンテンツ生成装置1の構成を示すブロック図である。図1において、映像コンテンツ生成装置1は、動き解析部11、データベース12、音楽解析部13、音楽解析データ記憶部14、同期部15、同期情報記憶部16、映像データ生成部17、映像データ記憶部18及び再生部19を有する。
【0029】
映像コンテンツ生成装置1には、映像コンテンツ生成対象の楽曲の音楽データが楽曲ファイル3から入力される。
【0030】
動きデータベース2は、一般に利用可能な動きデータを多数蓄積している。映像コンテンツ生成装置1は、動きデータベース2から動きデータを入力する。本実施形態では、人の動きデータを扱い、人の動きデータとして、図2に例示されるように定義された人体スケルトン型動きデータを用いる。
【0031】
図2は、人の動きデータの定義例の概略図であり、人のスケルトン型動きデータ(人体スケルトン型動きデータ)の定義例である。人体スケルトン型動きデータは、人の骨格を基に、骨及び骨の連結点(ジョイント)を用い、一ジョイントを根(ルート)とし、ルートからジョイント経由で順次連結される骨の構造を木(ツリー)構造として定義される。図2には、人体スケルトン型動きデータの定義の一部分のみを示している。図2において、ジョイント100は腰の部分であり、ルートとして定義される。ジョイント101は左腕の肘の部分、ジョイント102は左腕の手首の部分、ジョイント103は右腕の肘の部分、ジョイント104は右腕の手首の部分、ジョイント105は左足の膝の部分、ジョイント106は左足の足首の部分、ジョイント107は右足の膝の部分、ジョイント108は右足の足首の部分、である。
【0032】
スケルトン型動きデータは、スケルトン型対象物の各ジョイントの動きを記録したデータであり、スケルトン型対象物としては人体や動物、ロボットなどが適用可能である。スケルトン型動きデータとしては、各ジョイントの位置情報や角度情報、速度情報、加速度情報などが利用可能である。ここでは、人体スケルトン型動きデータとして、人体スケルトンの角度情報と加速度情報を例に挙げて説明する。
【0033】
人体スケルトン型角度情報データは、人の一連の動きを複数の姿勢(ポーズ)の連続により表すものであり、人の基本ポーズ(neutral pose)を表す基本ポーズデータと、実際の人の動きの中の各ポーズを表すポーズ毎のフレームデータとを有する。基本ポーズデータは、基本ポーズのときのルートの位置及び各ジョイントの位置、並びに各骨の長さなどの情報を有する。基本ポーズデータにより基本ポーズが特定される。フレームデータは、基本ポーズからの移動量をジョイント毎に表す。ここでは、移動量として角度情報を利用する。各フレームデータにより、基本ポーズに対して各移動量が加味された各ポーズが特定される。これにより、各フレームデータによって特定される各ポーズの連続により、人の一連の動きが特定される。なお、人体スケルトン型角度情報データは、人の動きをカメラ撮影した映像からモーションキャプチャ処理によって作成したり、或いは、キーフレームアニメーションの手作業によって作成したりすることができる。
人体スケルトン型加速度情報データは、人の各ジョイントの加速度をポーズ毎のフレームデータと複数のポーズの連続により表すものである。なお、人体スケルトン型加速度情報データは、加速度計で記録したり、映像や動きデータから算出したりすることができる。
【0034】
なお、本実施形態に係る以下の説明においては、人体スケルトン型動きデータのことを単に「動きデータ」と称する。
【0035】
以下、図1に示される映像コンテンツ生成装置1の各部について順次説明する。
【0036】
[動き解析部]
動き解析部11は、動きデータベース2から動きデータを取得し、取得した動きデータを解析して動き特徴量を取得し、取得した動き特徴量をデータベース12に格納する。動き解析部11は、動きデータベース2に蓄積される全ての動きデータを対象にする。この動き解析部11の処理は、実際に映像コンテンツを生成する段階の前に、事前の準備段階として行われる。
【0037】
図3は、図1に示す動き解析部11の構成を示すブロック図である。図3において、動き解析部11は、ビート抽出部31、ビート情報記憶部32、盛り上がり算出部33、盛り上がり情報記憶部34及びモーショングラフ生成部35を有する。
【0038】
[ビート抽出部]
ビート抽出部31は、入力された動きデータからビート時刻を検出する。ここで、動きデータのビート時刻は反復的な動きの方向又は強度が変化する時刻である、と定義する。例えば、ダンスなどの動きでは拍子を打つタイミングが相当する。ビート抽出部31は、入力された動きデータを短時間の動きデータに分割し、分割した動き区間から主成分分析によってビート時刻を検出する。
【0039】
以下、本実施形態に係るビート時刻検出方法を説明する。
【0040】
[物理量変換ステップ]
物理量変換ステップでは、入力された動きデータにおいて、時刻tにおけるジョイント相対位置を算出する。ジョイント相対位置は、ルートに対するジョイントの相対的な位置である。
【0041】
ここで、ジョイント相対位置の算出方法を説明する。
まず、人体スケルトン型角度情報データ内の基本ポーズデータとフレームデータを用いて、ジョイント位置を算出する。基本ポーズデータは、基本ポーズのときのルートの位置及び各ジョイントの位置、並びに各骨の長さなど、基本ポーズを特定する情報を有する。フレームデータは、ジョイント毎に、基本ポーズからの移動量の情報を有する。ここでは、移動量として角度情報を利用する。この場合、時刻tにおけるk番目のジョイントの位置pk(t)は、(1)式および(2)式により算出される。pk(t)は3次元座標で表される。なお、時刻tはフレームデータの時刻である。本実施形態では、時刻tを単に「フレームインデックス」として扱う。これにより、時刻tは、0,1,2,・・・,T−1の値をとる。Tは、動きデータに含まれるフレームの個数である。
【0042】
【数1】
【0043】
【数2】
【0044】
但し、0番目(i=0)のジョイントはルートである。Raxisi−1,i(t)は、i番目のジョイントとその親ジョイント(「i−1」番目のジョイント)間の座標回転マトリックスであり、基本ポーズデータに含まれる。各ジョイントにはローカル座標系が定義されており、座標回転マトリックスは親子関係にあるジョイント間のローカル座標系の対応関係を表す。Ri(t)は、i番目のジョイントのローカル座標系におけるi番目のジョイントの回転マトリックスであり、フレームデータに含まれる角度情報である。Ti(t)は、i番目のジョイントとその親ジョイント間の遷移マトリックスであり、基本ポーズデータに含まれる。遷移マトリックスは、i番目のジョイントとその親ジョイント間の骨の長さを表す。
【0045】
次いで、時刻tにおける、ルートに対するk番目のジョイントの相対位置(ジョイント相対位置)p’k(t)を(3)式により算出する。
【0046】
【数3】
【0047】
但し、proot(t)は時刻tにおけるルート(0番目のジョイント)の位置(p0(t))である。
【0048】
これにより、時刻tのフレーム「x(t)」は、「x(t)={p’1(t),p’2(t),・・・,p’K(t)}」と表される。但し、Kは、ルートを除いたジョイントの個数である。
【0049】
[データ分割ステップ]
データ分割ステップでは、ジョイント相対位置データを、一定時間の区間に分割する。データ分割ステップでは、各ジョイントのジョイント相対位置データ「p’k(t)」に対して、それぞれデータ分割処理を行う。図4,図5にデータ分割処理の概念を示す。データ分割処理では、ジョイント相対位置データを一定時間(一定数のフレーム分に対応)の区間に分割する。分割区間の長さは、適宜、設定可能である。分割区間の長さは、例えば、1フレーム当たりの時間の60倍である。このとき、図4に示されるように、各区間が重複しないようにしてもよく、或いは、図5に示されるように、各区間が重複区間(オーバーラップ)を有するようにしてもよい。重複区間の長さは、適宜、設定可能である。重複区間の長さは、例えば、分割区間の長さの半分である。
【0050】
[主成分分析ステップ]
主成分分析ステップでは、データ分割ステップによって分割されたジョイント相対位置データに対し、各区間で主成分分析処理を行う。ここで、時刻tのフレーム「x(t)」を用いて、一区間のデータ「X」を「X={x(t1),x(t2),・・・,x(tN)}と表す。但し、Nは区間長(区間内に含まれるフレームの個数)である。Xは、M行N列の行列である(但し、M=3×K)。
【0051】
主成分分析処理では、Xに対して主成分分析処理を行い、Xを主成分空間へ変換する。
【0052】
ここで、主成分分析方法を説明する。
まず、(4)式により、Xから平均値を除いたN行M列の行列Dを算出する。
【0053】
【数4】
【0054】
次いで、(5)式により、N行M列の行列Dに対して特異値分解(Singular Value Decomposition)を行う。
【0055】
【数5】
【0056】
但し、Uは、N行N列のユニタリ行列である。Σは、N行M列の負でない対角要素を降順にもつ対角行列であり、主成分空間の座標の分散を表す。Vは、M行M列のユニタリ行列であり、主成分に対する係数(principal component)である。
【0057】
次いで、(6)式により、N行M列の行列Dを主成分空間へ変換する。M行N列の行列Yは、主成分空間の座標を表す。
【0058】
【数6】
【0059】
主成分分析ステップでは、区間毎に、主成分空間の座標を表す行列(主成分座標行列)Yと、主成分に対する係数の行列(主成分係数行列)Vをメモリに保存する。
【0060】
なお、元空間の座標を表す行列Xと主成分座標行列Yは、(6)式と(7)式により相互に変換することができる。
【0061】
【数7】
【0062】
また、上位のr個の主成分によって、(8)式により変換することができる。
【0063】
【数8】
【0064】
但し、Vrは、主成分係数行列V内の上位のr個の行から成るM行r列の行列である。Yrは、主成分座標行列Y内の上位のr個の列から成るr行N列の行列である。X〜は、復元されたM行N列の行列である。
【0065】
なお、元空間の一部の自由度だけを主成分分析処理することも可能である。例えば、足の動きだけでビートを表現することができる場合には、足に関するジョイント相対位置データのみから生成したM’行N列の行列X’に対して、(4)式、(5)式及び(6)式により主成分分析処理を行う。
【0066】
[主成分選択ステップ]
主成分選択ステップでは、各区間において、主成分座標行列Yから主成分を一つ選択する。
【0067】
ここで、主成分選択方法を説明する。
(ユーザからの指定がない場合)
ユーザからの指定がない場合には、主成分座標行列Y内の第1主成分(主成分座標行列Yの第1行)を選択する。第1主成分は、一区間における時間関連性がより強いために、動きの変化を表現しており、一般的に、ビート時刻に関する十分な情報を有する。
【0068】
(ユーザからの指定がある場合)
ユーザによって主成分が指定されている場合には、その指定された主成分(第k主成分(主成分座標行列Yの第k行)、1≦k≦K)を選択する。この場合、映像コンテンツ生成装置1には、動きデータと共に、主成分の指定情報が入力される。若しくは、予め主成分の指定情報を固定的に設定しておいてもよい。
なお、第1主成分以外の第n主成分(1<n≦K)が選択される場合の例としては、体の一部分の動きがビートを表現しているものなどが挙げられる。例えば、最も大きい動きが体の回転である場合において、足の着地がビートをよく表現しているとする。すると、足の動きを表す第k主成分がビート時刻に関する十分な情報を有する。
【0069】
主成分選択ステップでは、区間毎に、選択した主成分を示す情報(例えば、主成分番号「k(kは1からKまでの自然数)」をメモリに保存する。
【0070】
[主成分座標連結ステップ]
主成分座標連結ステップでは、主成分選択ステップによって選択された各区間の主成分の座標を、時系列に沿って連結する。この主成分座標連結処理では、連続する2つの区間の境界部分において、主成分の座標が滑らかに連結されるように、主成分の座標を調整する。
【0071】
図6に、本実施形態に係る主成分座標連結処理を説明するための概念図を示す。本実施形態では、時系列に従って、先頭の区間から順番に主成分座標連結処理を行ってゆく。図6において、ある区間(前区間)までの主成分座標連結処理が終了している。そして、その前区間に対して、次の区間(当区間)を連結するための主成分座標連結処理を行う。この主成分座標連結処理では、前区間の主成分座標に対し、当区間の主成分座標が滑らかに連結されるように、当区間の主成分座標を調整する。この主成分座標の調整処理では、主成分選択ステップによって選択された当区間の主成分座標(元座標)に対し、符号反転又は座標シフトを行う。
【0072】
ここで、主成分座標連結処理を説明する。
【0073】
主成分座標連結ステップS11:主成分選択ステップによって選択された当区間の主成分の座標(第k主成分の元座標)Ykに対し、当区間の主成分係数行列Vから、第k主成分に対する係数Vkを取得する。さらに、メモリに保存されている前区間の主成分係数行列Vから、第k主成分に対する係数Vkpreを取得する。
【0074】
主成分座標連結ステップS12:当区間に係る第k主成分に対する係数Vkと前区間に係る第k主成分に対する係数Vkpreとの関係に基づいて、当区間に係る第k主成分の元座標を符号反転するか否かを判定する。この符号反転の判定は、(9)式により行う。(9)式による判定の結果、符号反転する場合には、当区間の第k主成分の元座標Ykに対して符号反転を行うと共に、当区間の主成分係数行列Vに対しても符号反転を行う。一方、(9)式による判定の結果、符号反転しない場合には、当区間の第k主成分の元座標Yk及び当区間の主成分係数行列Vともに、そのままの値を主成分座標連結ステップS12の処理結果とする。
【0075】
【数9】
【0076】
但し、Ykは、当区間で選択された主成分の座標(第k主成分の元座標)である。Vは、当区間の主成分係数行列である。Vkは、当区間に係る第k主成分に対する係数である。Vkpreは、前区間に係る第k主成分に対する係数である。(Vk・Vkpre)は、VkとVkpreの内積である。Yk’は、当区間で選択された主成分の座標(第k主成分の元座標)Ykに対する主成分座標連結ステップS12の処理結果である。V’は、当区間の主成分係数行列Vに対する主成分座標連結ステップS12の処理結果である。
【0077】
主成分座標連結ステップS13:主成分座標連結ステップS12の処理結果の主成分座標Yk’に対し、座標シフトを行う。
(区間のオーバーラップがない場合)
区間のオーバーラップがない場合(図4に対応)には、(10)式により座標シフトを行う。この場合、前区間の主成分座標行列Yから、前区間の第tNフレームにおける第k主成分の座標Ykpre(tN)を取得する。
【0078】
【数10】
【0079】
但し、Yk’(t1)は、ステップS12の処理結果の主成分座標Yk’のうち、第t1フレームの座標である。Yk”(t2)は、(10)式の最初の計算式の計算結果の座標Yk”のうち、第t2フレームの座標である。
(10)式の最初の計算式の計算結果の座標Yk”に対し、第t1フレームの座標Yk”(t1)をYkopt(t1)に置き換える。この置き換え後の座標Yk”が、座標シフト結果の座標である。
【0080】
(区間のオーバーラップがある場合)
区間のオーバーラップがある場合(図5に対応)には、(11)式により座標シフトを行う。この場合、前区間の主成分座標行列Yから、前区間の第(tN−Lol+1)フレームにおける第k主成分の座標Ykpre(tN−Lol+1)と、前区間の第(tN−Lol+1+i)フレームにおける第k主成分の座標Ykpre(tN−Lol+1+i)とを取得する。但し、i=1,2,・・・,Lolである。Lolは、前区間と当区間で重複している区間(オーバーラップ)の長さである。
【0081】
【数11】
【0082】
但し、Yk’(t1)は、ステップS12の処理結果の主成分座標Yk’のうち、第t1フレームの座標である。Yk”(t1+i)は、(11)式の最初の計算式の計算結果の座標Yk”のうち、第(t1+i)フレームの座標である。
(11)式の最初の計算式の計算結果の座標Yk”に対し、第(t1+i)フレームの座標Yk”(t1+i)をYkopt(t1+i)に置き換える。この置き換え後の座標Yk”が、座標シフト結果の座標である。
【0083】
主成分座標連結ステップS14:当区間において、主成分座標連結ステップS12の処理結果の座標Yk’に対して、主成分座標連結ステップS13の処理結果の座標Ykopt(t1)又はYkopt(t1+i)を反映する。これにより、当区間の主成分座標は、前区間の主成分座標に対して滑らかに連結されるものとなる。
【0084】
主成分座標連結ステップでは、上記した主成分座標連結処理を最初の区間から最後の区間まで行う。これにより、連結後の全区間の主成分座標「y(t)、t=0,1,2,・・・,T−1」が求まる。但し、Tは、動きデータに含まれるフレームの個数である。
【0085】
[ビート抽出ステップ]
ビート抽出ステップでは、主成分座標連結ステップによって算出された連結後の全区間の主成分座標y(t)から、極値b(j)を算出する。この算出結果の極値b(j)がビートに対応する。ビートの集合Bは、(12)式で表される。
【0086】
【数12】
【0087】
但し、Jは、ビートの個数である。
【0088】
なお、ビートの集合の算出は、上記した方法以外の方法でも可能である。
例えば、ビート抽出ステップでは、主成分座標連結ステップによって算出された連結後の全区間の主成分座標から自己相関値を算出し、該自己相関値の極値b(j)をビートに対応するものとして算出することができる。
また、ビート抽出ステップでは、主成分座標連結ステップによって、連結後の隣区間の主成分係数から算出した内積((9)式によるもの)の自己相関値を算出し、該自己相関値の極値b(j)をビートに対応するものとして算出することができる。
【0089】
[後処理ステップ]
後処理ステップでは、ビート抽出ステップによって算出されたビート集合Bから、ビート時刻を検出する。
【0090】
ここで、ビート時刻検出処理を説明する。
まず、ビート集合B内の各極値間を、(13)式により正弦曲線(sinusoid)で近似する。
【0091】
【数13】
【0092】
但し、sj−1(t)は、(j−1)番目の極値b(j−1)からj番目の極値b(j)までの区間の正弦近似値である。tはフレームに対応する時刻であり、「t=0,1,2,・・・,T−1」である。Tは、動きデータに含まれるフレームの個数である。
【0093】
図7に、(13)式による正弦近似処理の概念図を示す。図7において、1番目の極値b(1)から2番目の極値b(2)までの区間a1(j=2の場合の区間)は、s1(t)で近似される。同様に、2番目の極値b(2)から3番目の極値b(3)までの区間a2(j=3の場合の区間)はs2(t)で近似され、3番目の極値b(3)から4番目の極値b(4)までの区間a3(j=4の場合の区間)はs3(t)で近似され、4番目の極値b(4)から5番目の極値b(5)までの区間a4(j=5の場合の区間)はs4(t)で近似される。
【0094】
次いで、正弦近似値「sj−1(t)、j=2,3,・・・,J」に対してフーリエ変換を行う。そのフーリエ変換処理には、所定のFFTポイント数Lのハン窓を用いたFFT(Fast Fourier Transform)演算器を使用する。そして、そのフーリエ変換の結果に基づいて、該フーリエ変換に係る周波数範囲のうちから最大の成分を有する周波数(最大成分周波数)fmaxを検出する。そして、ビート間隔TBを「TB=Fs÷fmax」なる計算式により算出する。但し、Fsは、1秒当たりのフレーム数である。
【0095】
次いで、正弦近似値「sj−1(t)、j=2,3,・・・,J」と、(14)式で定義される基準値「s’(t)」との間の最大相関初期位相を(15)式により算出する。
【0096】
【数14】
【0097】
【数15】
【0098】
次いで、(16)式により、ビート時刻eb(j)の集合EBを算出する。但し、EJは、ビート時刻eb(j)の個数である。
【0099】
【数16】
【0100】
以上が本実施形態に係るビート時刻検出方法の説明である。
【0101】
ビート抽出部31は、上述のビート時刻検出方法によって、動きデータからビート時刻eb(j)の集合EBを算出する。さらに、ビート抽出部31は、(17)式により、動きのテンポを算出する。動きのテンポは、1分間当たりのビートの個数である。ここでは、1秒当たりのフレーム数は120である。
【0102】
【数17】
【0103】
但し、TBはビート間隔(秒)である。
【0104】
ビート抽出部31は、各動きデータについて、ビート時刻eb(j)の集合EBとテンポをビート情報記憶部32に格納する。このとき、ビート抽出部31が主成分分析処理を行った区間(主成分分析区間)とビート時刻eb(j)の対応関係を表す情報もビート情報記憶部32に格納する。これにより、あるビート時刻がどの主成分分析区間に属するのかが分かる。
【0105】
[盛り上がり算出部]
盛り上がり算出部33は、各動きデータについて、主成分分析区間ごとに、(18)式により、動きの盛り上がりを算出する。
【0106】
【数18】
【0107】
但し、Σは当該区間の主成分分析処理における負でない固有値を降順にもつ対角行列であり、主成分空間の座標の分散を表す。tr()は、対角行列の対角成分の和(matrix trace)である。
【0108】
盛り上がり算出部33は、各動きデータについて、各主成分分析区間の盛り上がりを盛り上がり情報記憶部34に格納する。
【0109】
[モーショングラフ生成部]
モーショングラフ生成部35は、各動きデータの、ビート時刻eb(j)の集合EB、テンポ及び盛り上がりを用いて、モーショングラフを生成する。モーショングラフについては非特許文献4に開示されている。モーショングラフは、ノード(頂点)群とノード間の連結関係を表すエッジ(枝)群とエッジの重みから構成される。エッジには双方向と単方向の2種類がある。
【0110】
図8は、本実施形態に係るモーショングラフの構成方法の全体の流れを示す概念図である。
動きデータベース2内の動きデータは、ジャンル別に分類される。動きデータベース2内の動きデータのジャンルは、予め設定される。そのジャンル分けは動きの特徴によって行われる。各動きデータには、所属するジャンルを示す情報が付加されている。モーショングラフ生成部35は、動きデータに付加されたジャンル情報によって、動きデータのジャンルを判別する。図8の例では、動きデータベース2内の動きデータは、n個のジャンルデータベース(ジャンル1DBからジャンルnDB)に分類される。
【0111】
モーショングラフ生成部35は、同じジャンルに属する動きデータについて、さらに、(19)式で算出される値iにより分類する。図8の例では、ジャンル2に属する動きデータは、m個のテンポデータベース(テンポ1DBからテンポmDB)に分類される。
【0112】
【数19】
【0113】
但し、QTempoはテンポの量子化の長さである。TempoMotionは分類対象の動きデータに係るテンポである。TempoMotionminは分類対象のジャンル内で最小のテンポである。
【0114】
モーショングラフ生成部35は、同じジャンルに属する動きデータについて、さらに(19)式の算出値iで分類されたテンポデータベース毎に、モーショングラフを生成する。
【0115】
図9は、本実施形態に係るモーショングラフ生成方法の流れを示す概念図である。以下、図9を参照して、あるジャンルのあるテンポデータベース(テンポiDB)のモーショングラフを生成する手順を説明する。
【0116】
[ビートフレーム抽出ステップ]
まず、ビートフレーム抽出ステップでは、テンポiDBに属する全ての動きデータから、ビート時刻に該当するフレーム(ビートフレーム)を全て抽出する。この抽出されたビートフレームの集合をFiALLBと表す。
【0117】
[連結性算出ステップ]
次いで、連結性算出ステップでは、集合FiALLBに含まれる全ビートフレームを対象とした全てのペアについて、(20)式又は(21)式により距離を算出する。あるビートフレームFiBとあるビートフレームFjBとの距離をd(FiB,FjB)と表す。
【0118】
【数20】
【0119】
但し、qi,kはビートフレームFiBのk番目のジョイントの四元数(quaternion)である。wkはk番目のジョイントに係る重みである。重みwkは予め設定される。
【0120】
【数21】
【0121】
但し、pi,kはビートフレームFiBのk番目のジョイントのルートに対する相対位置のベクトルである。つまり、pi,kは、ルートの位置と方向は考えずに算出したビートフレームFiBのk番目のジョイントの位置のベクトルである。
【0122】
なお、ビートフレーム間の距離は、対象ビートフレームにおけるポーズを構成する各ジョイントの位置、速度、加速度、角度、角速度、角加速度などの物理量の差分の重み付き平均として算出することができる。
【0123】
次いで、連結性算出ステップでは、(22)式により、連結性を算出する。あるビートフレームFiBとあるビートフレームFjBとの連結性をc(FiB,FjB)と表す。
【0124】
【数22】
【0125】
但し、d(FiB)はビートフレームFiBの前フレームと後フレームの間の距離である((20)式又は(21)式と同様の計算式で算出する)。THは予め設定される閾値である。
【0126】
連結性c(FiB,FjB)が1である場合、ビートフレームFiBのポーズとビートフレームFjBのポーズは似ていると判断できる。連結性c(FiB,FjB)が0である場合、ビートフレームFiBのポーズとビートフレームFjBのポーズは似ているとは判断できない。
【0127】
[モーショングラフ構築ステップ]
次いで、モーショングラフ構築ステップでは、まず、集合FiALLBに含まれる全ビートフレームをそれぞれ、モーショングラフのノードに設定する。従って、モーショングラフのノード数の初期値は、集合FiALLBに含まれるビートフレームの個数に一致する。
【0128】
次いで、連結性c(FiB,FjB)が1である場合、ビートフレームFiBのノードとビートフレームFjBのノードの間に双方向のエッジを設ける。連結性c(FiB,FjB)が0である場合には、ビートフレームFiBのノードとビートフレームFjBのノードの間に双方向のエッジを設けない。
【0129】
次いで、同じ動きデータの中で隣接するビートフレーム間には、単方向のエッジを設ける。単方向のエッジは、時間的に前のビートフレームのノードから後のビートフレームのノードへ向かう。
【0130】
次いで、双方向のエッジに対する重みを算出する。ビートフレームFiBのノードとビートフレームFjBのノードの間の双方向エッジに対する重みは、ビートフレームFiBが属する主成分分析区間の盛り上がりとビートフレームFjBが属する主成分分析区間の盛り上がりを平均した値とする。
【0131】
次いで、単方向のエッジに対する重みを算出する。ビートフレームFiBのノードとビートフレームFjBのノードの間の単方向エッジに対する重みは、次の(a),(b)のいずれかの方法で値を決定する。
(a)ビートフレームFiBとビートフレームFjBが同じ主成分分析区間に属する場合、当該主成分分析区間の盛り上がりを重みに用いる。
(b)ビートフレームFiBとビートフレームFjBが異なる主成分分析区間に属する場合、ビートフレームFiBが属する主成分分析区間の盛り上がりとビートフレームFjBが属する主成分分析区間の盛り上がりを平均した値を重みに用いる。
【0132】
次いで、双方向エッジの両端のノード(ビートフレーム)に係る動きデータに対して、ブレンディング(blending)処理を行う。ブレンディング処理は、双方向エッジの方向ごとに、それぞれ行う。従って、一つの双方向エッジに対して、図10(1),(2)に示されるように、2つのブレンディング処理を行うことになる。図10は、ビートフレームiのノードとビートフレームjのノードの間の双方向エッジに係るブレンディング処理の概念図である。図10(1)はビートフレームiのノードからビートフレームjのノードへ向かう方向に係るブレンディング処理を表し、図10(2)はビートフレームjのノードからビートフレームiのノードへ向かう方向に係るブレンディング処理を表す。
【0133】
図11は、ブレンディング処理を説明する概念図であり、図10(1)に対応している。ここでは、図11を参照し、図10(1)に示されるビートフレームiのノードからビートフレームjのノードへ向かう方向に係るブレンディング処理を例に挙げて説明する。
【0134】
ブレンディング処理では、ビートフレームiを有する動きデータ1とビートフレームjを有する動きデータ2に対して、動きのつながりが不自然にならないように、両者の動きデータの接続部分を混合した補間データ(ブレンディング動きデータ)1_2を生成する。本実施形態では、一定時間分のフレームを使用しクォータニオンによる球面線形補間を利用して連結部分を補間する。具体的には、動きデータ1と動きデータ2を接続する接続区間(区間長m、但し、mは所定値)のブレンディング動きデータ1_2を、動きデータ1のうち最後の区間長mのデータ1_mと動きデータ2のうち最初の区間長mのデータ2_mを用いて生成する。このとき、接続区間の区間長mに対する接続区間の先頭からの距離uの比(u/m)に応じて、データ1_mのうち距離uに対応するフレームiとデータ2_mのうち距離uに対応するフレームjを混合する。具体的には、(23)式および(24)式により、ブレンディング動きデータ1_2を構成する各フレームを生成する。なお、(23)式は、ある一つの骨についての式となっている。
【0135】
【数23】
【0136】
【数24】
【0137】
但し、mはブレンディング動きデータ1_2を構成するフレーム(ブレンディングフレーム)の総数(所定値)、uはブレンディングフレームの先頭からの順番(1≦u≦m)、q(k,u)はu番目のブレンディングフレームにおける第k骨の四元数、q(k,i)はフレームiにおける第k骨の四元数、q(j)はフレームjにおける第k骨の四元数、である。但し、ルートにはブレンディングを行わない。なお、(24)式はslerp(spherical linear interpolation)の算出式である。
【0138】
ブレンディング動きデータ1_2は、動きデータ1と動きデータ2の接続部分のデータとする。
【0139】
次いで、モーショングラフからデッドエンド(Dead end)を除去する。デッドエンドとは次数が1であるノードのことである。なお、モーショングラフにおいて、ノードに接続するエッジの数のことを次数という。また、ノードに入ってくるエッジの数のことを入次数、ノードから出て行くエッジの数のことを出次数という。
【0140】
モーショングラフからデッドエンドを除去すると、新たなデッドエンドが発生する可能性があるが、デッドエンドがなくなるまでデッドエンド除去を繰り返す。
【0141】
以上のモーショングラフ構築ステップによって、あるジャンルのあるテンポデータベース(テンポiDB)のモーショングラフのデータが生成される。モーショングラフデータは、モーショングラフが有するノード(ビートフレーム)の情報と、ノード間のエッジ(双方向エッジまたは単方向エッジ)の情報(エッジの重みを含む)と、双方向エッジに対応する2方向分のブレンディング動きデータとを有する。
【0142】
モーショングラフ生成部35は、各ジャンルのテンポデータベースごとに生成したモーショングラフデータをデータベース12に格納する。これにより、データベース12には、各ジャンルのテンポデータベースごとに、モーショングラフデータが格納される。
【0143】
以上が動き解析部11に係る説明である。動き解析部11の処理はオフラインで実行され、データベース12が構築される。このデータベース12を用いて、映像コンテンツ生成装置1のオンライン処理が行われる。以下、映像コンテンツ生成装置1のオンライン処理を説明する。
【0144】
[音楽解析部]
映像コンテンツ生成装置1には、映像コンテンツ生成対象の楽曲の音楽データが楽曲ファイル3から入力される。音楽解析部13は、映像コンテンツ生成対象の楽曲の音楽データを解析して音楽特徴量を取得する。本実施形態では、非特許文献2に記載の技術を用いて、音楽データから、ビート間隔及びビート時刻、並びに、音楽の盛り上がりを示す数値(以下、盛り上がりと称する)を音楽特徴量として取得する。
【0145】
さらに、音楽解析部13は、(25)式により、音楽のテンポを算出する。音楽のテンポは、1分間当たりのビートの個数である。
【0146】
【数25】
【0147】
但し、TBmusicはビート間隔(秒)である。
音楽解析部13は、音楽特徴量(ビート間隔、ビート時刻、テンポおよび盛り上がり)を音楽解析データ記憶部14に格納する。
【0148】
[同期部]
まず、同期部15は、データベース12内のモーショングラフデータの中から、映像コンテンツ生成対象の楽曲に合ったモーショングラフデータを選択する。この選択では、映像コンテンツ生成対象の楽曲に合ったジャンルのモーショングラフデータの中から、映像コンテンツ生成対象の楽曲のテンポに合ったモーショングラフデータを選択する。映像コンテンツ生成対象の楽曲に合ったジャンルは、利用者から入力してもらう、又は予め設定しておく。
【0149】
具体的には、同期部15は、楽曲全体のテンポと該選択したジャンルのモーショングラフデータの中で最小のテンポを上記(19)式にあてはめて計算を行う。次いで、同期部15は、利用者から入力された又は予め設定されたジャンルのモーショングラフデータの中から、その(19)式の算出値iに対応するモーショングラフデータを選択する。
【0150】
次いで、同期部15は、選択したモーショングラフデータを用いて、動きデータと音楽データを対応付ける同期情報を生成する。以下、同期情報生成方法を説明する。
【0151】
[始点選択ステップ]
始点選択ステップでは、モーショングラフ内のノードから、映像コンテンツの動きの始点となるノードの候補(始点候補ノード)を選択する。始点候補ノードには、モーショングラフ内のノードであって、各動きデータの最初のビートフレームに対応するノードを全て抽出する。従って、始点候補ノードは、通常、複数ある。
【0152】
[最適パス探索ステップ]
次いで、最適パス探索ステップでは、モーショングラフ上の始点候補ノードからの最適パスを始点候補ノード毎に探索し、各始点候補ノードに係る最適パスの中から最小コストのパスを選択する。このパス探索方法には、非特許文献7に記載されるパス探索技術を用いる。非特許文献7に記載されるパス探索技術は、ある始点からダイナミックプログラミングで最適なパスを探索するものである。以下、最適パス探索ステップの詳細を説明する。
【0153】
まず、ある始点候補ノードuからモーショングラフ上の全てのノードiまでの各パスのコストを(26)式により算出する。始点候補ノードuに係る最初の最短パス算出操作は第1回の操作である。
【0154】
【数26】
【0155】
但し、shortestPath(i,1)は、第1回の最短パス算出操作による、始点候補ノードuからノードiまでのパスのコストである。edgeCost(u,i)はノードuからノードiまでのエッジコストである。エッジコストの計算式は(29)式である。
【0156】
次いで、第2回目以降の第k回の最短パス算出操作では、(27)式により、始点候補ノードuからモーショングラフ上の全てのノードvまでの最適パスのコストを算出する。
【0157】
【数27】
【0158】
但し、Vはモーショングラフ上のノードの集合である。shortestPath(v,k)は、第k回の最短パス算出操作による、始点候補ノードuからノードvまでの最適パスのコストである。edgeCost(i,v)はノードiからノードvまでのエッジコストである。
【0159】
この(27)式を用いた第2回目以降の最短パス算出操作は、第K回まで繰り返し行う。但し、Kは映像コンテンツ生成対象の楽曲のビート数である。映像コンテンツ生成対象の楽曲のビート数Kは、映像コンテンツ生成対象の楽曲のビート時刻の総数に等しい。映像コンテンツ生成対象の楽曲のビート時刻は、音楽解析データ記憶部14に格納されているので、その格納数を数えることによってビート数Kを求めることができる。
【0160】
上記(26)式および(27)式を用いた最短パス算出操作を、全ての始点候補ノードに対してそれぞれに行う。次いで、全ての始点候補ノードに係る第K回の最短パス算出操作結果から、(28)式により、最小コストのパスを選択する。
【0161】
【数28】
【0162】
但し、shortestPath(v,K)は、第K回の最短パス算出操作による、始点候補ノードuからノードvまでの最適パスのコストである。shortestPath(K)は、最小コストのパス(始点ノードuから終点ノードvまでのパス)のコストである。
【0163】
エッジコストは、(29)式により、毎回計算される。
【0164】
【数29】
【0165】
最適パス探索ステップでは、上記(28)式によって選択された最小コストのパスを探索結果の最適パスとする。この最適パスに含まれるK個のノードは、1個の始点ノードuと、(K−2)個の経由ノードiと、1個の終点ノードvである。ここで、始点候補ノードは、通常、複数あるので、上記探索結果の最適パスは始点候補ノードの数と同じ数だけある。それら最適パスの中から、コストが一番小さいパスとその始点を最終結果の最適パスとして選択する。この最終結果の最適パスに含まれるK個のノードは、1個の最適始点ノードuoptと、(K−2)個の経由ノードioptと、1個の終点ノードvoptである。
【0166】
[同期情報生成ステップ]
同期情報生成ステップでは、最適パス探索ステップの最終結果の最適パスに従って、動きデータと音楽データを対応付ける同期情報を生成する。以下、同期情報生成ステップの詳細を説明する。
【0167】
まず、最適パス探索ステップの最終結果の最適パスに含まれるK個のノード(1個の始点ノードuoptと、(K−2)個の経由ノードioptと、1個の終点ノードvopt)に対応するK個のビートフレーム(1個の始点ビートフレームと、(K−2)個の経由ビートフレームと、1個の終点ビートフレーム)について、最適パスの順番で隣り合うビートフレーム間の時間を求める。さらに、各隣接ビートフレーム間のフレームレートを求める。また、映像コンテンツ生成対象の楽曲のK個のビートについて、時間的に隣り合うビート間の時間を求める。
【0168】
次いで、楽曲のビート間隔に動きのビート間隔を等しくするように、(30)式により、動きのフレームレートを増減させる調整を行う。図12に、動きのフレームレートを調整する処理の概念図を示す。(30)式は、n番目のビートフレームと(n+1)番目のビートフレームの間のフレームレートを算出するための計算式である(但し、nは1から(K−1)までの自然数である)。
【0169】
【数30】
【0170】
但し、tmotionnode2は隣接ビートフレームのうち先のビートフレームの時刻、tmotionnode1は該隣接ビートフレームのうち後のビートフレームの時刻である。tmusicnode2は楽曲の隣接ビートのうち先のビートの時刻、tmusicnode1は該隣接ビートのうち後のビートの時刻である。rate_oldは元のフレームレートである。rate_newは調整後のフレームレートである。
【0171】
同期部15は、上記した同期情報生成方法によって、映像コンテンツの動きの始点となる1個の始点ビートフレームと、映像コンテンツの動きの終点となる1個の終点ビートフレームと、始点ビートフレームから終点ビートフレームに至るまでに経由する(K−2)個の経由ビートフレームと、各隣接ビートフレーム間の調整後のフレームレートとを得る。同期部15は、始点ビートフレームの情報と経由ビートフレームの情報と終点ビートフレームの情報と調整後のフレームレートの情報と該ビートフレーム間のブレンディング動きデータを同期情報として同期情報記憶部16に格納する。なお、ブレンディング動きデータは、最適パス探索ステップの探索結果の最適パスに沿った方向のデータのみでよい。
【0172】
[映像データ生成部]
映像データ生成部17は、同期情報記憶部16に格納された同期情報に基づいて、映像コンテンツ生成対象の楽曲の音楽データとともに再生される映像データを生成する。具体的には、始点ビートフレームから経由ビートフレームを経由して終点ビートフレームに至るまでに必要な動きデータを動きデータベース2から取得する。
【0173】
次いで、取得した動きデータ間を連結する部分(双方向エッジに対応する部分)に対してブレンディング動きデータで置換する。このとき、動きデータの連結部分において、動きデータのルート座標と方向の平行移動を行う。動きデータが連結される際に各動きデータのルート座標は、各動きデータに独自のローカル座標のままである。このままでは、連結後の動きデータの再生画像は、ルート座標が整合されていないために、スムーズな動きにならない。このため、動きデータの連結部分において、後の動きデータのルート座標を前の動きデータの最後のフレームで表現している位置へオフセットする。これにより、動きデータの連結部分における補間処理を行い、連結後の動きデータの再生画像がスムーズな動きとなるようにする。同様に、動きデータが連結される際に各動きデータのルート方向は、後の動きデータのルート方向を前の動きデータの最後のフレームで表現している方向へオフセットする。
【0174】
次いで、連結された動きデータに対して、各隣接ビートフレーム間の調整後のフレームレートの情報を付加する。映像データ生成部17は、この生成した映像データを映像データ記憶部18に格納する。
【0175】
[再生部]
再生部19は、映像データ記憶部18に格納された映像データを、映像コンテンツ生成対象の楽曲の音楽データとともに再生する。このとき、再生部19は、映像データに付加されたフレームレートの情報に従って、隣接ビートフレーム間のフレームレートを設定する。これにより、映像データと音楽データは、互いのビートが同期して再生される。
【0176】
なお、再生部19は、映像コンテンツ生成装置1とは独立した装置であってもよい。
【0177】
なお、本実施形態に係る映像コンテンツ生成装置1は、専用のハードウェアにより実現されるものであってもよく、あるいはパーソナルコンピュータ等のコンピュータシステムにより構成され、図1に示される映像コンテンツ生成装置1の各部の機能を実現するためのプログラムを実行することによりその機能を実現させるものであってもよい。
【0178】
また、その映像コンテンツ生成装置1には、周辺機器として入力装置、表示装置等が接続されるものとする。ここで、入力装置とはキーボード、マウス等の入力デバイスのことをいう。表示装置とはCRT(Cathode Ray Tube)や液晶表示装置等のことをいう。
また、上記周辺機器については、映像コンテンツ生成装置1に直接接続するものであってもよく、あるいは通信回線を介して接続するようにしてもよい。
【0179】
また、図1に示す映像コンテンツ生成装置1が行う各ステップを実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、映像コンテンツ生成処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、DVD(Digital Versatile Disk)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【0180】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【0181】
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
例えば、上述した実施形態では人の動きデータを扱ったが、本発明は各種の物体の動きデータに適用することができる。ここで、物体とは、人、動物、植物その他の生物、及び、生物以外の物(ロボット等)を含む。
【0182】
また、本発明は、3次元コンテンツの生成に利用することができる。
【符号の説明】
【0183】
1…映像コンテンツ生成装置、11…動き解析部、12…データベース、13…音楽解析部、14…音楽解析データ記憶部、15…同期部、16…同期情報記憶部、17…映像データ生成部、18…映像データ記憶部、19…再生部、31…ビート抽出部、32…ビート情報記憶部、33…盛り上がり算出部、34…盛り上がり情報記憶部、35…モーショングラフ生成部
【技術分野】
【0001】
本発明は、映像コンテンツ生成装置及びコンピュータプログラムに関する。
【背景技術】
【0002】
従来、音楽に合わせてコンピュータ・グラフィックス(CG)オブジェクトを表示させる技術として、非特許文献1が知られている。非特許文献1では、演奏家が音楽を演奏すると、音楽との所定のマッピングのパタンに従って、CGモデルが動くようになっている。又、特許文献1では、CGオブジェクトの時系列に対して、音楽データの静的属性または動的属性をもとにして描画情報(視点情報、光源情報)を再設定する。そして、音楽データをCGオブジェクト表示と同期して再生している。又、特許文献2に記載のモーション作成装置では、複数のモーションにおいて人体姿勢が類似する2つのフレーム間を連結した有向性グラフとしてモーションデータベースを構築し、その複数のモーションの中から、音楽データから取得したビート特徴成分と相関を有する動き特徴成分をもつモーションを選択している。
【0003】
音楽解析手法としては、非特許文献2に記載の技術が知られている。非特許文献2の技術によれば、発音成分、コードの変化、打楽器の発音時刻などを推定してビート間隔及びビート構造を取得している。
動き解析手法としては、非特許文献3に記載の技術が知られている。非特許文献3の技術によれば、動きビートの変化や発生時刻を推定してビート間隔及びビート構造を取得している。
非特許文献4には、モーショングラフ(Motion Graphs)を用いて新たな動きデータを生成する技術が開示されている。
非特許文献5,6には、動きデータ全体を主成分分析し、寄与率の高い主成分を取得する技術が開示されている。
非特許文献7には、パス探索技術として、ある始点からダイナミックプログラミング(dynamic programming)で最適なパスを探索する技術が開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2005−56101号公報
【特許文献2】特開2007−18388号公報
【非特許文献】
【0005】
【非特許文献1】後藤 真孝,村岡 洋一、“音楽に踊らされるCGダンサーによるインタラクティブパフォーマンス”,コンピュータソフトウェア(日本ソフトウェア科学会論文誌),Vol.14,No.3,pp.20-29,May 1997
【非特許文献2】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
【非特許文献3】T.Kim,S.I.Park,S.Y.Shin,“Rhythmic-Motion Synthesis Based on Motion-Beat Analysis”,ACM Transaction on Graphics,Vol.22,Issue 3,2003(SIGGRAPH 2003),pp.392-401
【非特許文献4】L.Kovar,M.Gleicher,and F.Pighin,“Motion Graphs”,ACM Transaction on Graphics,Vol.21,Issue 3,2002(SIGGRAPH 2002),pp.473-482
【非特許文献5】L.M.Tanco and A.Hilton,“Realistic synthesis of novel human movements from a database of motion capture examples”,In IEEE Workshop on Human Motion,pp.137-142,2000
【非特許文献6】P.Glardon,R.Boulic,D.Thalmann,“PCA-based Walking Engine Using Motion Capture Data”,In Computer Graphics International,pp.292-298,2004
【非特許文献7】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
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかし、上述した非特許文献1記載の従来技術では、CGモデルの動き数が限定される点、音楽とのマッピングのパタンが予め設定される点などから、自由に豊かな動きを生成することが困難である。しかも、それを使いこなすには専門的な知識が必要なので、一般のユーザには利用することが難しい。又、特許文献1記載の従来技術では、ある楽曲に対してCGアニメーションを作成する際、CGオブジェクトの時系列がその楽曲にそぐわない場合には、楽曲に合致したCGアニメーションを作成することが難しいという問題がある。又、特許文献2記載の従来技術では、一般に利用可能な膨大な数の動きデータに対して、人体姿勢が類似する2つのフレーム間を連結した有向性グラフとしてモーションデータベースを構築することは、現実的に難しいという問題がある。このため、実際のモーション作成対象の楽曲に基づいて選択された動きデータを対象にして、動きデータ間を連結することが望ましい。非特許文献4記載の従来技術では、モーショングラフの構築と最適なパスの探索に要する計算量が膨大である。また、元々のモーション構造を考慮しないで構築されたモーショングラフを使用すると、元々のモーション構造が壊れる可能性がある。例えば、激しい動きとゆっくりの動き間で遷移すると、動きの突然の変化のために、不自然な動き又は不一致な動きが生まれる可能性がある。
【0007】
本発明は、このような事情を考慮してなされたもので、その目的は、大規模な動きデータベースを利用して楽曲に合わせた映像コンテンツを生成する際に、適切な動きデータ間を連結すること、さらには計算量の削減を図ることのできる映像コンテンツ生成装置及びコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【0008】
上記の課題を解決するために、本発明に係る映像コンテンツ生成装置は、楽曲に合わせた映像コンテンツを生成する映像コンテンツ生成装置において、映像コンテンツに利用可能な動きデータから動き特徴量を取得する動き解析部と、動きの種類ごとに分類された動き特徴量群を格納するデータベースと、映像コンテンツ生成対象楽曲の音楽データから音楽特徴量を取得する音楽解析部と、前記映像コンテンツ生成対象楽曲の種類に合った動き特徴量群を用いて、前記音楽データと該音楽データに合った前記動きデータとを対応付ける同期情報を生成する同期部と、前記同期情報に基づいて、前記音楽データとともに再生される映像データを生成する映像データ生成部と、を備えたことを特徴とする。
【0009】
本発明に係る映像コンテンツ生成装置において、前記動き解析部は、前記動きデータからビートを抽出し、テンポを算出するビート抽出部と、複数の前記動きデータに係るビート及びテンポの情報を記憶するビート情報記憶部と、前記動きデータから盛り上がりを算出する盛り上がり算出部と、複数の前記動きデータに係る盛り上がりの情報を記憶する盛り上がり情報記憶部と、複数の前記動きデータに係るビート、テンポ及び盛り上がりの情報を用いて、モーショングラフを生成するモーショングラフ生成部と、を有し、前記データベースは、動きのテンポの種類ごとに生成されたモーショングラフのデータを格納し、前記音楽解析部は、前記音楽データからビート、テンポ及び盛り上がりの情報を取得し、前記同期部は、前記映像コンテンツ生成対象楽曲のテンポに合ったモーショングラフを用いて、前記音楽データに合う前記動きデータと前記音楽データとを対応付ける同期情報を生成する、ことを特徴とする。
【0010】
本発明に係る映像コンテンツ生成装置において、前記ビート抽出部は、前記動きデータに対して一定時間の区間毎に主成分分析を行い、該区間毎に主成分座標を一つ選択し、各区間の主成分座標に基づいてビート時刻を検出することを特徴とする。
【0011】
本発明に係る映像コンテンツ生成装置において、前記盛り上がり算出部は、前記区間毎に、主成分分析による負でない固有値の和を計算することを特徴とする。
【0012】
本発明に係る映像コンテンツ生成装置において、前記モーショングラフ生成部は、動きのテンポの種類が同じである前記動きデータからビートフレームを抽出するビートフレーム抽出手段と、前記抽出されたビートフレーム間の連結性を算出する連結性算出手段と、前記抽出されたビートフレームの各々をモーショングラフのノードに設定し、前記連結性に基づいてノード間にエッジを設けるモーショングラフ構築手段と、を有することを特徴とする。
本発明に係る映像コンテンツ生成装置において、前記モーショングラフ生成部は、前記動きデータに付加されたジャンル情報によって前記動きデータのジャンルを判別し、同じジャンルの前記動きデータをさらにテンポで分類することを特徴とする。
【0013】
本発明に係る映像コンテンツ生成装置において、前記モーショングラフ構築手段は、連結性が高いノード間に双方向エッジを設け、各動きデータ内の全隣接ビートフレーム間に単方向エッジを設けることを特徴とする。
【0014】
本発明に係る映像コンテンツ生成装置においては、一定時間分のフレームを使用しクォータニオンによる球面線形補間を利用して、前記連結性が高いノード間の連結部分を補間するブレンディング動きデータを生成するブレンディング動きデータ生成手段を備えたことを特徴とする。
【0015】
本発明に係る映像コンテンツ生成装置において、前記単方向エッジは、隣接ビートフレーム間に連続フレームの動きデータを定義することを特徴とする。
【0016】
本発明に係る映像コンテンツ生成装置において、前記モーショングラフ構築手段は、前記動きデータに係る盛り上がりに基づいて、エッジの重みを算出することを特徴とする。
【0017】
本発明に係る映像コンテンツ生成装置において、前記連結性算出手段は、対象ビートフレームにおいて、ポーズの類似度を算出することを特徴とする。
【0018】
本発明に係る映像コンテンツ生成装置において、前記連結性算出手段は、対象ビートフレームにおけるポーズを構成する各ジョイントの物理量の差分の重み付き平均を算出することを特徴とする。
【0019】
本発明に係る映像コンテンツ生成装置において、前記同期部は、モーショングラフ上で、前記音楽データの音楽特徴量に相当する動き特徴量を有するパスを探索する最適パス探索手段を有することを特徴とする。
【0020】
本発明に係る映像コンテンツ生成装置において、前記最適パス探索手段は、前記映像コンテンツ生成対象楽曲が有するビートの個数分の連続するパスを探索することを特徴とする。
【0021】
本発明に係る映像コンテンツ生成装置において、前記最適パス探索手段は、前記音楽データの盛り上がりと前記動きデータの盛り上がりに基づいてパスのコストを算出することを特徴とする。
【0022】
本発明に係る映像コンテンツ生成装置において、前記同期部は、前記映像コンテンツ生成対象楽曲のビート間隔に動きのビート間隔を等しくするように調整した、動きのフレームレートの情報を前記同期情報に含めることを特徴とする。
【0023】
本発明に係る映像コンテンツ生成装置において、前記映像データ生成部は、動きデータの連結部分において、動きデータのルート座標と方向の平行移動を行うことを特徴とする。
【0024】
本発明に係る映像コンテンツ生成装置において、前記データベースの構築処理は、前記映像データを生成する処理とは独立して行われることを特徴とする。
【0025】
本発明に係るコンピュータプログラムは、楽曲に合わせた映像コンテンツを生成する映像コンテンツ生成処理を行うためのコンピュータプログラムであって、映像コンテンツに利用可能な動きデータから動き特徴量を取得する動き解析ステップと、動きの種類ごとに分類された動き特徴量群をデータベースに格納するステップと、映像コンテンツ生成対象楽曲の音楽データから音楽特徴量を取得する音楽解析ステップと、前記映像コンテンツ生成対象楽曲の種類に合った動き特徴量群を用いて、前記音楽データと該音楽データに合った前記動きデータとを対応付ける同期情報を生成する同期情報生成ステップと、前記同期情報に基づいて、前記音楽データとともに再生される映像データを生成する映像データ生成ステップと、をコンピュータに実行させるためのコンピュータプログラムであることを特徴とする。
これにより、前述の映像コンテンツ生成装置がコンピュータを利用して実現できるようになる。
【発明の効果】
【0026】
本発明によれば、楽曲に合わせた映像コンテンツを生成する際に、楽曲の種類に合った動き特徴量群を用いて該楽曲の音楽データと該音楽データに合った動きデータとを対応付ける同期情報を生成することにより、適切な動きデータ間を連結することができるという効果が得られる。さらに、動きの種類ごとに分類された動き特徴量群をデータベースに格納しておくことにより、計算量の削減を図ることができるという効果が得られる。
【図面の簡単な説明】
【0027】
【図1】本発明の一実施形態に係る映像コンテンツ生成装置1の構成を示すブロック図である。
【図2】人体スケルトン型動きデータの定義例である。
【図3】図1に示す動き解析部11の構成を示すブロック図である。
【図4】図3に示すビート抽出部31に係るデータ分割処理の概念図である。
【図5】図3に示すビート抽出部31に係るデータ分割処理の概念図である。
【図6】図3に示すビート抽出部31に係る主成分座標連結処理を説明するための概念図である。
【図7】図3に示すビート抽出部31に係る正弦近似処理の概念図である。
【図8】本発明の一実施形態に係るモーショングラフの構成方法の全体の流れを示す概念図である。
【図9】本発明の一実施形態に係るモーショングラフ生成方法の流れを示す概念図である。
【図10】本発明の一実施形態の双方向エッジに係るブレンディング処理の概念図である。
【図11】本発明の一実施形態に係るブレンディング処理を説明する概念図である。
【図12】本発明の一実施形態に係る動きのフレームレートを調整する処理の概念図である。
【発明を実施するための形態】
【0028】
以下、図面を参照し、本発明の実施形態について説明する。
図1は、本発明の一実施形態に係る映像コンテンツ生成装置1の構成を示すブロック図である。図1において、映像コンテンツ生成装置1は、動き解析部11、データベース12、音楽解析部13、音楽解析データ記憶部14、同期部15、同期情報記憶部16、映像データ生成部17、映像データ記憶部18及び再生部19を有する。
【0029】
映像コンテンツ生成装置1には、映像コンテンツ生成対象の楽曲の音楽データが楽曲ファイル3から入力される。
【0030】
動きデータベース2は、一般に利用可能な動きデータを多数蓄積している。映像コンテンツ生成装置1は、動きデータベース2から動きデータを入力する。本実施形態では、人の動きデータを扱い、人の動きデータとして、図2に例示されるように定義された人体スケルトン型動きデータを用いる。
【0031】
図2は、人の動きデータの定義例の概略図であり、人のスケルトン型動きデータ(人体スケルトン型動きデータ)の定義例である。人体スケルトン型動きデータは、人の骨格を基に、骨及び骨の連結点(ジョイント)を用い、一ジョイントを根(ルート)とし、ルートからジョイント経由で順次連結される骨の構造を木(ツリー)構造として定義される。図2には、人体スケルトン型動きデータの定義の一部分のみを示している。図2において、ジョイント100は腰の部分であり、ルートとして定義される。ジョイント101は左腕の肘の部分、ジョイント102は左腕の手首の部分、ジョイント103は右腕の肘の部分、ジョイント104は右腕の手首の部分、ジョイント105は左足の膝の部分、ジョイント106は左足の足首の部分、ジョイント107は右足の膝の部分、ジョイント108は右足の足首の部分、である。
【0032】
スケルトン型動きデータは、スケルトン型対象物の各ジョイントの動きを記録したデータであり、スケルトン型対象物としては人体や動物、ロボットなどが適用可能である。スケルトン型動きデータとしては、各ジョイントの位置情報や角度情報、速度情報、加速度情報などが利用可能である。ここでは、人体スケルトン型動きデータとして、人体スケルトンの角度情報と加速度情報を例に挙げて説明する。
【0033】
人体スケルトン型角度情報データは、人の一連の動きを複数の姿勢(ポーズ)の連続により表すものであり、人の基本ポーズ(neutral pose)を表す基本ポーズデータと、実際の人の動きの中の各ポーズを表すポーズ毎のフレームデータとを有する。基本ポーズデータは、基本ポーズのときのルートの位置及び各ジョイントの位置、並びに各骨の長さなどの情報を有する。基本ポーズデータにより基本ポーズが特定される。フレームデータは、基本ポーズからの移動量をジョイント毎に表す。ここでは、移動量として角度情報を利用する。各フレームデータにより、基本ポーズに対して各移動量が加味された各ポーズが特定される。これにより、各フレームデータによって特定される各ポーズの連続により、人の一連の動きが特定される。なお、人体スケルトン型角度情報データは、人の動きをカメラ撮影した映像からモーションキャプチャ処理によって作成したり、或いは、キーフレームアニメーションの手作業によって作成したりすることができる。
人体スケルトン型加速度情報データは、人の各ジョイントの加速度をポーズ毎のフレームデータと複数のポーズの連続により表すものである。なお、人体スケルトン型加速度情報データは、加速度計で記録したり、映像や動きデータから算出したりすることができる。
【0034】
なお、本実施形態に係る以下の説明においては、人体スケルトン型動きデータのことを単に「動きデータ」と称する。
【0035】
以下、図1に示される映像コンテンツ生成装置1の各部について順次説明する。
【0036】
[動き解析部]
動き解析部11は、動きデータベース2から動きデータを取得し、取得した動きデータを解析して動き特徴量を取得し、取得した動き特徴量をデータベース12に格納する。動き解析部11は、動きデータベース2に蓄積される全ての動きデータを対象にする。この動き解析部11の処理は、実際に映像コンテンツを生成する段階の前に、事前の準備段階として行われる。
【0037】
図3は、図1に示す動き解析部11の構成を示すブロック図である。図3において、動き解析部11は、ビート抽出部31、ビート情報記憶部32、盛り上がり算出部33、盛り上がり情報記憶部34及びモーショングラフ生成部35を有する。
【0038】
[ビート抽出部]
ビート抽出部31は、入力された動きデータからビート時刻を検出する。ここで、動きデータのビート時刻は反復的な動きの方向又は強度が変化する時刻である、と定義する。例えば、ダンスなどの動きでは拍子を打つタイミングが相当する。ビート抽出部31は、入力された動きデータを短時間の動きデータに分割し、分割した動き区間から主成分分析によってビート時刻を検出する。
【0039】
以下、本実施形態に係るビート時刻検出方法を説明する。
【0040】
[物理量変換ステップ]
物理量変換ステップでは、入力された動きデータにおいて、時刻tにおけるジョイント相対位置を算出する。ジョイント相対位置は、ルートに対するジョイントの相対的な位置である。
【0041】
ここで、ジョイント相対位置の算出方法を説明する。
まず、人体スケルトン型角度情報データ内の基本ポーズデータとフレームデータを用いて、ジョイント位置を算出する。基本ポーズデータは、基本ポーズのときのルートの位置及び各ジョイントの位置、並びに各骨の長さなど、基本ポーズを特定する情報を有する。フレームデータは、ジョイント毎に、基本ポーズからの移動量の情報を有する。ここでは、移動量として角度情報を利用する。この場合、時刻tにおけるk番目のジョイントの位置pk(t)は、(1)式および(2)式により算出される。pk(t)は3次元座標で表される。なお、時刻tはフレームデータの時刻である。本実施形態では、時刻tを単に「フレームインデックス」として扱う。これにより、時刻tは、0,1,2,・・・,T−1の値をとる。Tは、動きデータに含まれるフレームの個数である。
【0042】
【数1】
【0043】
【数2】
【0044】
但し、0番目(i=0)のジョイントはルートである。Raxisi−1,i(t)は、i番目のジョイントとその親ジョイント(「i−1」番目のジョイント)間の座標回転マトリックスであり、基本ポーズデータに含まれる。各ジョイントにはローカル座標系が定義されており、座標回転マトリックスは親子関係にあるジョイント間のローカル座標系の対応関係を表す。Ri(t)は、i番目のジョイントのローカル座標系におけるi番目のジョイントの回転マトリックスであり、フレームデータに含まれる角度情報である。Ti(t)は、i番目のジョイントとその親ジョイント間の遷移マトリックスであり、基本ポーズデータに含まれる。遷移マトリックスは、i番目のジョイントとその親ジョイント間の骨の長さを表す。
【0045】
次いで、時刻tにおける、ルートに対するk番目のジョイントの相対位置(ジョイント相対位置)p’k(t)を(3)式により算出する。
【0046】
【数3】
【0047】
但し、proot(t)は時刻tにおけるルート(0番目のジョイント)の位置(p0(t))である。
【0048】
これにより、時刻tのフレーム「x(t)」は、「x(t)={p’1(t),p’2(t),・・・,p’K(t)}」と表される。但し、Kは、ルートを除いたジョイントの個数である。
【0049】
[データ分割ステップ]
データ分割ステップでは、ジョイント相対位置データを、一定時間の区間に分割する。データ分割ステップでは、各ジョイントのジョイント相対位置データ「p’k(t)」に対して、それぞれデータ分割処理を行う。図4,図5にデータ分割処理の概念を示す。データ分割処理では、ジョイント相対位置データを一定時間(一定数のフレーム分に対応)の区間に分割する。分割区間の長さは、適宜、設定可能である。分割区間の長さは、例えば、1フレーム当たりの時間の60倍である。このとき、図4に示されるように、各区間が重複しないようにしてもよく、或いは、図5に示されるように、各区間が重複区間(オーバーラップ)を有するようにしてもよい。重複区間の長さは、適宜、設定可能である。重複区間の長さは、例えば、分割区間の長さの半分である。
【0050】
[主成分分析ステップ]
主成分分析ステップでは、データ分割ステップによって分割されたジョイント相対位置データに対し、各区間で主成分分析処理を行う。ここで、時刻tのフレーム「x(t)」を用いて、一区間のデータ「X」を「X={x(t1),x(t2),・・・,x(tN)}と表す。但し、Nは区間長(区間内に含まれるフレームの個数)である。Xは、M行N列の行列である(但し、M=3×K)。
【0051】
主成分分析処理では、Xに対して主成分分析処理を行い、Xを主成分空間へ変換する。
【0052】
ここで、主成分分析方法を説明する。
まず、(4)式により、Xから平均値を除いたN行M列の行列Dを算出する。
【0053】
【数4】
【0054】
次いで、(5)式により、N行M列の行列Dに対して特異値分解(Singular Value Decomposition)を行う。
【0055】
【数5】
【0056】
但し、Uは、N行N列のユニタリ行列である。Σは、N行M列の負でない対角要素を降順にもつ対角行列であり、主成分空間の座標の分散を表す。Vは、M行M列のユニタリ行列であり、主成分に対する係数(principal component)である。
【0057】
次いで、(6)式により、N行M列の行列Dを主成分空間へ変換する。M行N列の行列Yは、主成分空間の座標を表す。
【0058】
【数6】
【0059】
主成分分析ステップでは、区間毎に、主成分空間の座標を表す行列(主成分座標行列)Yと、主成分に対する係数の行列(主成分係数行列)Vをメモリに保存する。
【0060】
なお、元空間の座標を表す行列Xと主成分座標行列Yは、(6)式と(7)式により相互に変換することができる。
【0061】
【数7】
【0062】
また、上位のr個の主成分によって、(8)式により変換することができる。
【0063】
【数8】
【0064】
但し、Vrは、主成分係数行列V内の上位のr個の行から成るM行r列の行列である。Yrは、主成分座標行列Y内の上位のr個の列から成るr行N列の行列である。X〜は、復元されたM行N列の行列である。
【0065】
なお、元空間の一部の自由度だけを主成分分析処理することも可能である。例えば、足の動きだけでビートを表現することができる場合には、足に関するジョイント相対位置データのみから生成したM’行N列の行列X’に対して、(4)式、(5)式及び(6)式により主成分分析処理を行う。
【0066】
[主成分選択ステップ]
主成分選択ステップでは、各区間において、主成分座標行列Yから主成分を一つ選択する。
【0067】
ここで、主成分選択方法を説明する。
(ユーザからの指定がない場合)
ユーザからの指定がない場合には、主成分座標行列Y内の第1主成分(主成分座標行列Yの第1行)を選択する。第1主成分は、一区間における時間関連性がより強いために、動きの変化を表現しており、一般的に、ビート時刻に関する十分な情報を有する。
【0068】
(ユーザからの指定がある場合)
ユーザによって主成分が指定されている場合には、その指定された主成分(第k主成分(主成分座標行列Yの第k行)、1≦k≦K)を選択する。この場合、映像コンテンツ生成装置1には、動きデータと共に、主成分の指定情報が入力される。若しくは、予め主成分の指定情報を固定的に設定しておいてもよい。
なお、第1主成分以外の第n主成分(1<n≦K)が選択される場合の例としては、体の一部分の動きがビートを表現しているものなどが挙げられる。例えば、最も大きい動きが体の回転である場合において、足の着地がビートをよく表現しているとする。すると、足の動きを表す第k主成分がビート時刻に関する十分な情報を有する。
【0069】
主成分選択ステップでは、区間毎に、選択した主成分を示す情報(例えば、主成分番号「k(kは1からKまでの自然数)」をメモリに保存する。
【0070】
[主成分座標連結ステップ]
主成分座標連結ステップでは、主成分選択ステップによって選択された各区間の主成分の座標を、時系列に沿って連結する。この主成分座標連結処理では、連続する2つの区間の境界部分において、主成分の座標が滑らかに連結されるように、主成分の座標を調整する。
【0071】
図6に、本実施形態に係る主成分座標連結処理を説明するための概念図を示す。本実施形態では、時系列に従って、先頭の区間から順番に主成分座標連結処理を行ってゆく。図6において、ある区間(前区間)までの主成分座標連結処理が終了している。そして、その前区間に対して、次の区間(当区間)を連結するための主成分座標連結処理を行う。この主成分座標連結処理では、前区間の主成分座標に対し、当区間の主成分座標が滑らかに連結されるように、当区間の主成分座標を調整する。この主成分座標の調整処理では、主成分選択ステップによって選択された当区間の主成分座標(元座標)に対し、符号反転又は座標シフトを行う。
【0072】
ここで、主成分座標連結処理を説明する。
【0073】
主成分座標連結ステップS11:主成分選択ステップによって選択された当区間の主成分の座標(第k主成分の元座標)Ykに対し、当区間の主成分係数行列Vから、第k主成分に対する係数Vkを取得する。さらに、メモリに保存されている前区間の主成分係数行列Vから、第k主成分に対する係数Vkpreを取得する。
【0074】
主成分座標連結ステップS12:当区間に係る第k主成分に対する係数Vkと前区間に係る第k主成分に対する係数Vkpreとの関係に基づいて、当区間に係る第k主成分の元座標を符号反転するか否かを判定する。この符号反転の判定は、(9)式により行う。(9)式による判定の結果、符号反転する場合には、当区間の第k主成分の元座標Ykに対して符号反転を行うと共に、当区間の主成分係数行列Vに対しても符号反転を行う。一方、(9)式による判定の結果、符号反転しない場合には、当区間の第k主成分の元座標Yk及び当区間の主成分係数行列Vともに、そのままの値を主成分座標連結ステップS12の処理結果とする。
【0075】
【数9】
【0076】
但し、Ykは、当区間で選択された主成分の座標(第k主成分の元座標)である。Vは、当区間の主成分係数行列である。Vkは、当区間に係る第k主成分に対する係数である。Vkpreは、前区間に係る第k主成分に対する係数である。(Vk・Vkpre)は、VkとVkpreの内積である。Yk’は、当区間で選択された主成分の座標(第k主成分の元座標)Ykに対する主成分座標連結ステップS12の処理結果である。V’は、当区間の主成分係数行列Vに対する主成分座標連結ステップS12の処理結果である。
【0077】
主成分座標連結ステップS13:主成分座標連結ステップS12の処理結果の主成分座標Yk’に対し、座標シフトを行う。
(区間のオーバーラップがない場合)
区間のオーバーラップがない場合(図4に対応)には、(10)式により座標シフトを行う。この場合、前区間の主成分座標行列Yから、前区間の第tNフレームにおける第k主成分の座標Ykpre(tN)を取得する。
【0078】
【数10】
【0079】
但し、Yk’(t1)は、ステップS12の処理結果の主成分座標Yk’のうち、第t1フレームの座標である。Yk”(t2)は、(10)式の最初の計算式の計算結果の座標Yk”のうち、第t2フレームの座標である。
(10)式の最初の計算式の計算結果の座標Yk”に対し、第t1フレームの座標Yk”(t1)をYkopt(t1)に置き換える。この置き換え後の座標Yk”が、座標シフト結果の座標である。
【0080】
(区間のオーバーラップがある場合)
区間のオーバーラップがある場合(図5に対応)には、(11)式により座標シフトを行う。この場合、前区間の主成分座標行列Yから、前区間の第(tN−Lol+1)フレームにおける第k主成分の座標Ykpre(tN−Lol+1)と、前区間の第(tN−Lol+1+i)フレームにおける第k主成分の座標Ykpre(tN−Lol+1+i)とを取得する。但し、i=1,2,・・・,Lolである。Lolは、前区間と当区間で重複している区間(オーバーラップ)の長さである。
【0081】
【数11】
【0082】
但し、Yk’(t1)は、ステップS12の処理結果の主成分座標Yk’のうち、第t1フレームの座標である。Yk”(t1+i)は、(11)式の最初の計算式の計算結果の座標Yk”のうち、第(t1+i)フレームの座標である。
(11)式の最初の計算式の計算結果の座標Yk”に対し、第(t1+i)フレームの座標Yk”(t1+i)をYkopt(t1+i)に置き換える。この置き換え後の座標Yk”が、座標シフト結果の座標である。
【0083】
主成分座標連結ステップS14:当区間において、主成分座標連結ステップS12の処理結果の座標Yk’に対して、主成分座標連結ステップS13の処理結果の座標Ykopt(t1)又はYkopt(t1+i)を反映する。これにより、当区間の主成分座標は、前区間の主成分座標に対して滑らかに連結されるものとなる。
【0084】
主成分座標連結ステップでは、上記した主成分座標連結処理を最初の区間から最後の区間まで行う。これにより、連結後の全区間の主成分座標「y(t)、t=0,1,2,・・・,T−1」が求まる。但し、Tは、動きデータに含まれるフレームの個数である。
【0085】
[ビート抽出ステップ]
ビート抽出ステップでは、主成分座標連結ステップによって算出された連結後の全区間の主成分座標y(t)から、極値b(j)を算出する。この算出結果の極値b(j)がビートに対応する。ビートの集合Bは、(12)式で表される。
【0086】
【数12】
【0087】
但し、Jは、ビートの個数である。
【0088】
なお、ビートの集合の算出は、上記した方法以外の方法でも可能である。
例えば、ビート抽出ステップでは、主成分座標連結ステップによって算出された連結後の全区間の主成分座標から自己相関値を算出し、該自己相関値の極値b(j)をビートに対応するものとして算出することができる。
また、ビート抽出ステップでは、主成分座標連結ステップによって、連結後の隣区間の主成分係数から算出した内積((9)式によるもの)の自己相関値を算出し、該自己相関値の極値b(j)をビートに対応するものとして算出することができる。
【0089】
[後処理ステップ]
後処理ステップでは、ビート抽出ステップによって算出されたビート集合Bから、ビート時刻を検出する。
【0090】
ここで、ビート時刻検出処理を説明する。
まず、ビート集合B内の各極値間を、(13)式により正弦曲線(sinusoid)で近似する。
【0091】
【数13】
【0092】
但し、sj−1(t)は、(j−1)番目の極値b(j−1)からj番目の極値b(j)までの区間の正弦近似値である。tはフレームに対応する時刻であり、「t=0,1,2,・・・,T−1」である。Tは、動きデータに含まれるフレームの個数である。
【0093】
図7に、(13)式による正弦近似処理の概念図を示す。図7において、1番目の極値b(1)から2番目の極値b(2)までの区間a1(j=2の場合の区間)は、s1(t)で近似される。同様に、2番目の極値b(2)から3番目の極値b(3)までの区間a2(j=3の場合の区間)はs2(t)で近似され、3番目の極値b(3)から4番目の極値b(4)までの区間a3(j=4の場合の区間)はs3(t)で近似され、4番目の極値b(4)から5番目の極値b(5)までの区間a4(j=5の場合の区間)はs4(t)で近似される。
【0094】
次いで、正弦近似値「sj−1(t)、j=2,3,・・・,J」に対してフーリエ変換を行う。そのフーリエ変換処理には、所定のFFTポイント数Lのハン窓を用いたFFT(Fast Fourier Transform)演算器を使用する。そして、そのフーリエ変換の結果に基づいて、該フーリエ変換に係る周波数範囲のうちから最大の成分を有する周波数(最大成分周波数)fmaxを検出する。そして、ビート間隔TBを「TB=Fs÷fmax」なる計算式により算出する。但し、Fsは、1秒当たりのフレーム数である。
【0095】
次いで、正弦近似値「sj−1(t)、j=2,3,・・・,J」と、(14)式で定義される基準値「s’(t)」との間の最大相関初期位相を(15)式により算出する。
【0096】
【数14】
【0097】
【数15】
【0098】
次いで、(16)式により、ビート時刻eb(j)の集合EBを算出する。但し、EJは、ビート時刻eb(j)の個数である。
【0099】
【数16】
【0100】
以上が本実施形態に係るビート時刻検出方法の説明である。
【0101】
ビート抽出部31は、上述のビート時刻検出方法によって、動きデータからビート時刻eb(j)の集合EBを算出する。さらに、ビート抽出部31は、(17)式により、動きのテンポを算出する。動きのテンポは、1分間当たりのビートの個数である。ここでは、1秒当たりのフレーム数は120である。
【0102】
【数17】
【0103】
但し、TBはビート間隔(秒)である。
【0104】
ビート抽出部31は、各動きデータについて、ビート時刻eb(j)の集合EBとテンポをビート情報記憶部32に格納する。このとき、ビート抽出部31が主成分分析処理を行った区間(主成分分析区間)とビート時刻eb(j)の対応関係を表す情報もビート情報記憶部32に格納する。これにより、あるビート時刻がどの主成分分析区間に属するのかが分かる。
【0105】
[盛り上がり算出部]
盛り上がり算出部33は、各動きデータについて、主成分分析区間ごとに、(18)式により、動きの盛り上がりを算出する。
【0106】
【数18】
【0107】
但し、Σは当該区間の主成分分析処理における負でない固有値を降順にもつ対角行列であり、主成分空間の座標の分散を表す。tr()は、対角行列の対角成分の和(matrix trace)である。
【0108】
盛り上がり算出部33は、各動きデータについて、各主成分分析区間の盛り上がりを盛り上がり情報記憶部34に格納する。
【0109】
[モーショングラフ生成部]
モーショングラフ生成部35は、各動きデータの、ビート時刻eb(j)の集合EB、テンポ及び盛り上がりを用いて、モーショングラフを生成する。モーショングラフについては非特許文献4に開示されている。モーショングラフは、ノード(頂点)群とノード間の連結関係を表すエッジ(枝)群とエッジの重みから構成される。エッジには双方向と単方向の2種類がある。
【0110】
図8は、本実施形態に係るモーショングラフの構成方法の全体の流れを示す概念図である。
動きデータベース2内の動きデータは、ジャンル別に分類される。動きデータベース2内の動きデータのジャンルは、予め設定される。そのジャンル分けは動きの特徴によって行われる。各動きデータには、所属するジャンルを示す情報が付加されている。モーショングラフ生成部35は、動きデータに付加されたジャンル情報によって、動きデータのジャンルを判別する。図8の例では、動きデータベース2内の動きデータは、n個のジャンルデータベース(ジャンル1DBからジャンルnDB)に分類される。
【0111】
モーショングラフ生成部35は、同じジャンルに属する動きデータについて、さらに、(19)式で算出される値iにより分類する。図8の例では、ジャンル2に属する動きデータは、m個のテンポデータベース(テンポ1DBからテンポmDB)に分類される。
【0112】
【数19】
【0113】
但し、QTempoはテンポの量子化の長さである。TempoMotionは分類対象の動きデータに係るテンポである。TempoMotionminは分類対象のジャンル内で最小のテンポである。
【0114】
モーショングラフ生成部35は、同じジャンルに属する動きデータについて、さらに(19)式の算出値iで分類されたテンポデータベース毎に、モーショングラフを生成する。
【0115】
図9は、本実施形態に係るモーショングラフ生成方法の流れを示す概念図である。以下、図9を参照して、あるジャンルのあるテンポデータベース(テンポiDB)のモーショングラフを生成する手順を説明する。
【0116】
[ビートフレーム抽出ステップ]
まず、ビートフレーム抽出ステップでは、テンポiDBに属する全ての動きデータから、ビート時刻に該当するフレーム(ビートフレーム)を全て抽出する。この抽出されたビートフレームの集合をFiALLBと表す。
【0117】
[連結性算出ステップ]
次いで、連結性算出ステップでは、集合FiALLBに含まれる全ビートフレームを対象とした全てのペアについて、(20)式又は(21)式により距離を算出する。あるビートフレームFiBとあるビートフレームFjBとの距離をd(FiB,FjB)と表す。
【0118】
【数20】
【0119】
但し、qi,kはビートフレームFiBのk番目のジョイントの四元数(quaternion)である。wkはk番目のジョイントに係る重みである。重みwkは予め設定される。
【0120】
【数21】
【0121】
但し、pi,kはビートフレームFiBのk番目のジョイントのルートに対する相対位置のベクトルである。つまり、pi,kは、ルートの位置と方向は考えずに算出したビートフレームFiBのk番目のジョイントの位置のベクトルである。
【0122】
なお、ビートフレーム間の距離は、対象ビートフレームにおけるポーズを構成する各ジョイントの位置、速度、加速度、角度、角速度、角加速度などの物理量の差分の重み付き平均として算出することができる。
【0123】
次いで、連結性算出ステップでは、(22)式により、連結性を算出する。あるビートフレームFiBとあるビートフレームFjBとの連結性をc(FiB,FjB)と表す。
【0124】
【数22】
【0125】
但し、d(FiB)はビートフレームFiBの前フレームと後フレームの間の距離である((20)式又は(21)式と同様の計算式で算出する)。THは予め設定される閾値である。
【0126】
連結性c(FiB,FjB)が1である場合、ビートフレームFiBのポーズとビートフレームFjBのポーズは似ていると判断できる。連結性c(FiB,FjB)が0である場合、ビートフレームFiBのポーズとビートフレームFjBのポーズは似ているとは判断できない。
【0127】
[モーショングラフ構築ステップ]
次いで、モーショングラフ構築ステップでは、まず、集合FiALLBに含まれる全ビートフレームをそれぞれ、モーショングラフのノードに設定する。従って、モーショングラフのノード数の初期値は、集合FiALLBに含まれるビートフレームの個数に一致する。
【0128】
次いで、連結性c(FiB,FjB)が1である場合、ビートフレームFiBのノードとビートフレームFjBのノードの間に双方向のエッジを設ける。連結性c(FiB,FjB)が0である場合には、ビートフレームFiBのノードとビートフレームFjBのノードの間に双方向のエッジを設けない。
【0129】
次いで、同じ動きデータの中で隣接するビートフレーム間には、単方向のエッジを設ける。単方向のエッジは、時間的に前のビートフレームのノードから後のビートフレームのノードへ向かう。
【0130】
次いで、双方向のエッジに対する重みを算出する。ビートフレームFiBのノードとビートフレームFjBのノードの間の双方向エッジに対する重みは、ビートフレームFiBが属する主成分分析区間の盛り上がりとビートフレームFjBが属する主成分分析区間の盛り上がりを平均した値とする。
【0131】
次いで、単方向のエッジに対する重みを算出する。ビートフレームFiBのノードとビートフレームFjBのノードの間の単方向エッジに対する重みは、次の(a),(b)のいずれかの方法で値を決定する。
(a)ビートフレームFiBとビートフレームFjBが同じ主成分分析区間に属する場合、当該主成分分析区間の盛り上がりを重みに用いる。
(b)ビートフレームFiBとビートフレームFjBが異なる主成分分析区間に属する場合、ビートフレームFiBが属する主成分分析区間の盛り上がりとビートフレームFjBが属する主成分分析区間の盛り上がりを平均した値を重みに用いる。
【0132】
次いで、双方向エッジの両端のノード(ビートフレーム)に係る動きデータに対して、ブレンディング(blending)処理を行う。ブレンディング処理は、双方向エッジの方向ごとに、それぞれ行う。従って、一つの双方向エッジに対して、図10(1),(2)に示されるように、2つのブレンディング処理を行うことになる。図10は、ビートフレームiのノードとビートフレームjのノードの間の双方向エッジに係るブレンディング処理の概念図である。図10(1)はビートフレームiのノードからビートフレームjのノードへ向かう方向に係るブレンディング処理を表し、図10(2)はビートフレームjのノードからビートフレームiのノードへ向かう方向に係るブレンディング処理を表す。
【0133】
図11は、ブレンディング処理を説明する概念図であり、図10(1)に対応している。ここでは、図11を参照し、図10(1)に示されるビートフレームiのノードからビートフレームjのノードへ向かう方向に係るブレンディング処理を例に挙げて説明する。
【0134】
ブレンディング処理では、ビートフレームiを有する動きデータ1とビートフレームjを有する動きデータ2に対して、動きのつながりが不自然にならないように、両者の動きデータの接続部分を混合した補間データ(ブレンディング動きデータ)1_2を生成する。本実施形態では、一定時間分のフレームを使用しクォータニオンによる球面線形補間を利用して連結部分を補間する。具体的には、動きデータ1と動きデータ2を接続する接続区間(区間長m、但し、mは所定値)のブレンディング動きデータ1_2を、動きデータ1のうち最後の区間長mのデータ1_mと動きデータ2のうち最初の区間長mのデータ2_mを用いて生成する。このとき、接続区間の区間長mに対する接続区間の先頭からの距離uの比(u/m)に応じて、データ1_mのうち距離uに対応するフレームiとデータ2_mのうち距離uに対応するフレームjを混合する。具体的には、(23)式および(24)式により、ブレンディング動きデータ1_2を構成する各フレームを生成する。なお、(23)式は、ある一つの骨についての式となっている。
【0135】
【数23】
【0136】
【数24】
【0137】
但し、mはブレンディング動きデータ1_2を構成するフレーム(ブレンディングフレーム)の総数(所定値)、uはブレンディングフレームの先頭からの順番(1≦u≦m)、q(k,u)はu番目のブレンディングフレームにおける第k骨の四元数、q(k,i)はフレームiにおける第k骨の四元数、q(j)はフレームjにおける第k骨の四元数、である。但し、ルートにはブレンディングを行わない。なお、(24)式はslerp(spherical linear interpolation)の算出式である。
【0138】
ブレンディング動きデータ1_2は、動きデータ1と動きデータ2の接続部分のデータとする。
【0139】
次いで、モーショングラフからデッドエンド(Dead end)を除去する。デッドエンドとは次数が1であるノードのことである。なお、モーショングラフにおいて、ノードに接続するエッジの数のことを次数という。また、ノードに入ってくるエッジの数のことを入次数、ノードから出て行くエッジの数のことを出次数という。
【0140】
モーショングラフからデッドエンドを除去すると、新たなデッドエンドが発生する可能性があるが、デッドエンドがなくなるまでデッドエンド除去を繰り返す。
【0141】
以上のモーショングラフ構築ステップによって、あるジャンルのあるテンポデータベース(テンポiDB)のモーショングラフのデータが生成される。モーショングラフデータは、モーショングラフが有するノード(ビートフレーム)の情報と、ノード間のエッジ(双方向エッジまたは単方向エッジ)の情報(エッジの重みを含む)と、双方向エッジに対応する2方向分のブレンディング動きデータとを有する。
【0142】
モーショングラフ生成部35は、各ジャンルのテンポデータベースごとに生成したモーショングラフデータをデータベース12に格納する。これにより、データベース12には、各ジャンルのテンポデータベースごとに、モーショングラフデータが格納される。
【0143】
以上が動き解析部11に係る説明である。動き解析部11の処理はオフラインで実行され、データベース12が構築される。このデータベース12を用いて、映像コンテンツ生成装置1のオンライン処理が行われる。以下、映像コンテンツ生成装置1のオンライン処理を説明する。
【0144】
[音楽解析部]
映像コンテンツ生成装置1には、映像コンテンツ生成対象の楽曲の音楽データが楽曲ファイル3から入力される。音楽解析部13は、映像コンテンツ生成対象の楽曲の音楽データを解析して音楽特徴量を取得する。本実施形態では、非特許文献2に記載の技術を用いて、音楽データから、ビート間隔及びビート時刻、並びに、音楽の盛り上がりを示す数値(以下、盛り上がりと称する)を音楽特徴量として取得する。
【0145】
さらに、音楽解析部13は、(25)式により、音楽のテンポを算出する。音楽のテンポは、1分間当たりのビートの個数である。
【0146】
【数25】
【0147】
但し、TBmusicはビート間隔(秒)である。
音楽解析部13は、音楽特徴量(ビート間隔、ビート時刻、テンポおよび盛り上がり)を音楽解析データ記憶部14に格納する。
【0148】
[同期部]
まず、同期部15は、データベース12内のモーショングラフデータの中から、映像コンテンツ生成対象の楽曲に合ったモーショングラフデータを選択する。この選択では、映像コンテンツ生成対象の楽曲に合ったジャンルのモーショングラフデータの中から、映像コンテンツ生成対象の楽曲のテンポに合ったモーショングラフデータを選択する。映像コンテンツ生成対象の楽曲に合ったジャンルは、利用者から入力してもらう、又は予め設定しておく。
【0149】
具体的には、同期部15は、楽曲全体のテンポと該選択したジャンルのモーショングラフデータの中で最小のテンポを上記(19)式にあてはめて計算を行う。次いで、同期部15は、利用者から入力された又は予め設定されたジャンルのモーショングラフデータの中から、その(19)式の算出値iに対応するモーショングラフデータを選択する。
【0150】
次いで、同期部15は、選択したモーショングラフデータを用いて、動きデータと音楽データを対応付ける同期情報を生成する。以下、同期情報生成方法を説明する。
【0151】
[始点選択ステップ]
始点選択ステップでは、モーショングラフ内のノードから、映像コンテンツの動きの始点となるノードの候補(始点候補ノード)を選択する。始点候補ノードには、モーショングラフ内のノードであって、各動きデータの最初のビートフレームに対応するノードを全て抽出する。従って、始点候補ノードは、通常、複数ある。
【0152】
[最適パス探索ステップ]
次いで、最適パス探索ステップでは、モーショングラフ上の始点候補ノードからの最適パスを始点候補ノード毎に探索し、各始点候補ノードに係る最適パスの中から最小コストのパスを選択する。このパス探索方法には、非特許文献7に記載されるパス探索技術を用いる。非特許文献7に記載されるパス探索技術は、ある始点からダイナミックプログラミングで最適なパスを探索するものである。以下、最適パス探索ステップの詳細を説明する。
【0153】
まず、ある始点候補ノードuからモーショングラフ上の全てのノードiまでの各パスのコストを(26)式により算出する。始点候補ノードuに係る最初の最短パス算出操作は第1回の操作である。
【0154】
【数26】
【0155】
但し、shortestPath(i,1)は、第1回の最短パス算出操作による、始点候補ノードuからノードiまでのパスのコストである。edgeCost(u,i)はノードuからノードiまでのエッジコストである。エッジコストの計算式は(29)式である。
【0156】
次いで、第2回目以降の第k回の最短パス算出操作では、(27)式により、始点候補ノードuからモーショングラフ上の全てのノードvまでの最適パスのコストを算出する。
【0157】
【数27】
【0158】
但し、Vはモーショングラフ上のノードの集合である。shortestPath(v,k)は、第k回の最短パス算出操作による、始点候補ノードuからノードvまでの最適パスのコストである。edgeCost(i,v)はノードiからノードvまでのエッジコストである。
【0159】
この(27)式を用いた第2回目以降の最短パス算出操作は、第K回まで繰り返し行う。但し、Kは映像コンテンツ生成対象の楽曲のビート数である。映像コンテンツ生成対象の楽曲のビート数Kは、映像コンテンツ生成対象の楽曲のビート時刻の総数に等しい。映像コンテンツ生成対象の楽曲のビート時刻は、音楽解析データ記憶部14に格納されているので、その格納数を数えることによってビート数Kを求めることができる。
【0160】
上記(26)式および(27)式を用いた最短パス算出操作を、全ての始点候補ノードに対してそれぞれに行う。次いで、全ての始点候補ノードに係る第K回の最短パス算出操作結果から、(28)式により、最小コストのパスを選択する。
【0161】
【数28】
【0162】
但し、shortestPath(v,K)は、第K回の最短パス算出操作による、始点候補ノードuからノードvまでの最適パスのコストである。shortestPath(K)は、最小コストのパス(始点ノードuから終点ノードvまでのパス)のコストである。
【0163】
エッジコストは、(29)式により、毎回計算される。
【0164】
【数29】
【0165】
最適パス探索ステップでは、上記(28)式によって選択された最小コストのパスを探索結果の最適パスとする。この最適パスに含まれるK個のノードは、1個の始点ノードuと、(K−2)個の経由ノードiと、1個の終点ノードvである。ここで、始点候補ノードは、通常、複数あるので、上記探索結果の最適パスは始点候補ノードの数と同じ数だけある。それら最適パスの中から、コストが一番小さいパスとその始点を最終結果の最適パスとして選択する。この最終結果の最適パスに含まれるK個のノードは、1個の最適始点ノードuoptと、(K−2)個の経由ノードioptと、1個の終点ノードvoptである。
【0166】
[同期情報生成ステップ]
同期情報生成ステップでは、最適パス探索ステップの最終結果の最適パスに従って、動きデータと音楽データを対応付ける同期情報を生成する。以下、同期情報生成ステップの詳細を説明する。
【0167】
まず、最適パス探索ステップの最終結果の最適パスに含まれるK個のノード(1個の始点ノードuoptと、(K−2)個の経由ノードioptと、1個の終点ノードvopt)に対応するK個のビートフレーム(1個の始点ビートフレームと、(K−2)個の経由ビートフレームと、1個の終点ビートフレーム)について、最適パスの順番で隣り合うビートフレーム間の時間を求める。さらに、各隣接ビートフレーム間のフレームレートを求める。また、映像コンテンツ生成対象の楽曲のK個のビートについて、時間的に隣り合うビート間の時間を求める。
【0168】
次いで、楽曲のビート間隔に動きのビート間隔を等しくするように、(30)式により、動きのフレームレートを増減させる調整を行う。図12に、動きのフレームレートを調整する処理の概念図を示す。(30)式は、n番目のビートフレームと(n+1)番目のビートフレームの間のフレームレートを算出するための計算式である(但し、nは1から(K−1)までの自然数である)。
【0169】
【数30】
【0170】
但し、tmotionnode2は隣接ビートフレームのうち先のビートフレームの時刻、tmotionnode1は該隣接ビートフレームのうち後のビートフレームの時刻である。tmusicnode2は楽曲の隣接ビートのうち先のビートの時刻、tmusicnode1は該隣接ビートのうち後のビートの時刻である。rate_oldは元のフレームレートである。rate_newは調整後のフレームレートである。
【0171】
同期部15は、上記した同期情報生成方法によって、映像コンテンツの動きの始点となる1個の始点ビートフレームと、映像コンテンツの動きの終点となる1個の終点ビートフレームと、始点ビートフレームから終点ビートフレームに至るまでに経由する(K−2)個の経由ビートフレームと、各隣接ビートフレーム間の調整後のフレームレートとを得る。同期部15は、始点ビートフレームの情報と経由ビートフレームの情報と終点ビートフレームの情報と調整後のフレームレートの情報と該ビートフレーム間のブレンディング動きデータを同期情報として同期情報記憶部16に格納する。なお、ブレンディング動きデータは、最適パス探索ステップの探索結果の最適パスに沿った方向のデータのみでよい。
【0172】
[映像データ生成部]
映像データ生成部17は、同期情報記憶部16に格納された同期情報に基づいて、映像コンテンツ生成対象の楽曲の音楽データとともに再生される映像データを生成する。具体的には、始点ビートフレームから経由ビートフレームを経由して終点ビートフレームに至るまでに必要な動きデータを動きデータベース2から取得する。
【0173】
次いで、取得した動きデータ間を連結する部分(双方向エッジに対応する部分)に対してブレンディング動きデータで置換する。このとき、動きデータの連結部分において、動きデータのルート座標と方向の平行移動を行う。動きデータが連結される際に各動きデータのルート座標は、各動きデータに独自のローカル座標のままである。このままでは、連結後の動きデータの再生画像は、ルート座標が整合されていないために、スムーズな動きにならない。このため、動きデータの連結部分において、後の動きデータのルート座標を前の動きデータの最後のフレームで表現している位置へオフセットする。これにより、動きデータの連結部分における補間処理を行い、連結後の動きデータの再生画像がスムーズな動きとなるようにする。同様に、動きデータが連結される際に各動きデータのルート方向は、後の動きデータのルート方向を前の動きデータの最後のフレームで表現している方向へオフセットする。
【0174】
次いで、連結された動きデータに対して、各隣接ビートフレーム間の調整後のフレームレートの情報を付加する。映像データ生成部17は、この生成した映像データを映像データ記憶部18に格納する。
【0175】
[再生部]
再生部19は、映像データ記憶部18に格納された映像データを、映像コンテンツ生成対象の楽曲の音楽データとともに再生する。このとき、再生部19は、映像データに付加されたフレームレートの情報に従って、隣接ビートフレーム間のフレームレートを設定する。これにより、映像データと音楽データは、互いのビートが同期して再生される。
【0176】
なお、再生部19は、映像コンテンツ生成装置1とは独立した装置であってもよい。
【0177】
なお、本実施形態に係る映像コンテンツ生成装置1は、専用のハードウェアにより実現されるものであってもよく、あるいはパーソナルコンピュータ等のコンピュータシステムにより構成され、図1に示される映像コンテンツ生成装置1の各部の機能を実現するためのプログラムを実行することによりその機能を実現させるものであってもよい。
【0178】
また、その映像コンテンツ生成装置1には、周辺機器として入力装置、表示装置等が接続されるものとする。ここで、入力装置とはキーボード、マウス等の入力デバイスのことをいう。表示装置とはCRT(Cathode Ray Tube)や液晶表示装置等のことをいう。
また、上記周辺機器については、映像コンテンツ生成装置1に直接接続するものであってもよく、あるいは通信回線を介して接続するようにしてもよい。
【0179】
また、図1に示す映像コンテンツ生成装置1が行う各ステップを実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、映像コンテンツ生成処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、DVD(Digital Versatile Disk)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【0180】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【0181】
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
例えば、上述した実施形態では人の動きデータを扱ったが、本発明は各種の物体の動きデータに適用することができる。ここで、物体とは、人、動物、植物その他の生物、及び、生物以外の物(ロボット等)を含む。
【0182】
また、本発明は、3次元コンテンツの生成に利用することができる。
【符号の説明】
【0183】
1…映像コンテンツ生成装置、11…動き解析部、12…データベース、13…音楽解析部、14…音楽解析データ記憶部、15…同期部、16…同期情報記憶部、17…映像データ生成部、18…映像データ記憶部、19…再生部、31…ビート抽出部、32…ビート情報記憶部、33…盛り上がり算出部、34…盛り上がり情報記憶部、35…モーショングラフ生成部
【特許請求の範囲】
【請求項1】
楽曲に合わせた映像コンテンツを生成する映像コンテンツ生成装置において、
映像コンテンツに利用可能な動きデータから動き特徴量を取得する動き解析部と、
動きの種類ごとに分類された動き特徴量群を格納するデータベースと、
映像コンテンツ生成対象楽曲の音楽データから音楽特徴量を取得する音楽解析部と、
前記映像コンテンツ生成対象楽曲の種類に合った動き特徴量群を用いて、前記音楽データと該音楽データに合った前記動きデータとを対応付ける同期情報を生成する同期部と、
前記同期情報に基づいて、前記音楽データとともに再生される映像データを生成する映像データ生成部と、
を備えたことを特徴とする映像コンテンツ生成装置。
【請求項2】
前記動き解析部は、
前記動きデータからビートを抽出し、テンポを算出するビート抽出部と、
複数の前記動きデータに係るビート及びテンポの情報を記憶するビート情報記憶部と、
前記動きデータから盛り上がりを算出する盛り上がり算出部と、
複数の前記動きデータに係る盛り上がりの情報を記憶する盛り上がり情報記憶部と、
複数の前記動きデータに係るビート、テンポ及び盛り上がりの情報を用いて、モーショングラフを生成するモーショングラフ生成部と、を有し、
前記データベースは、動きのテンポの種類ごとに生成されたモーショングラフのデータを格納し、
前記音楽解析部は、前記音楽データからビート、テンポ及び盛り上がりの情報を取得し、
前記同期部は、前記映像コンテンツ生成対象楽曲のテンポに合ったモーショングラフを用いて、前記音楽データに合う前記動きデータと前記音楽データとを対応付ける同期情報を生成する、
ことを特徴とする請求項1に記載の映像コンテンツ生成装置。
【請求項3】
前記ビート抽出部は、前記動きデータに対して一定時間の区間毎に主成分分析を行い、該区間毎に主成分座標を一つ選択し、各区間の主成分座標に基づいてビート時刻を検出することを特徴とする請求項2に記載の映像コンテンツ生成装置。
【請求項4】
前記盛り上がり算出部は、前記区間毎に、主成分分析による負でない固有値の和を計算することを特徴とする請求項3に記載の映像コンテンツ生成装置。
【請求項5】
前記モーショングラフ生成部は、
動きのテンポの種類が同じである前記動きデータからビートフレームを抽出するビートフレーム抽出手段と、
前記抽出されたビートフレーム間の連結性を算出する連結性算出手段と、
前記抽出されたビートフレームの各々をモーショングラフのノードに設定し、前記連結性に基づいてノード間にエッジを設けるモーショングラフ構築手段と、を有する、
ことを特徴とする請求項2から4のいずれか1項に記載の映像コンテンツ生成装置。
【請求項6】
前記モーショングラフ生成部は、前記動きデータに付加されたジャンル情報によって前記動きデータのジャンルを判別し、同じジャンルの前記動きデータをさらにテンポで分類することを特徴とする請求項5に記載の映像コンテンツ生成装置。
【請求項7】
前記モーショングラフ構築手段は、連結性が高いノード間に双方向エッジを設け、各動きデータ内の全隣接ビートフレーム間に単方向エッジを設けることを特徴とする請求項5に記載の映像コンテンツ生成装置。
【請求項8】
一定時間分のフレームを使用しクォータニオンによる球面線形補間を利用して、前記連結性が高いノード間の連結部分を補間するブレンディング動きデータを生成するブレンディング動きデータ生成手段を備えたことを特徴とする請求項7に記載の映像コンテンツ生成装置。
【請求項9】
前記単方向エッジは、隣接ビートフレーム間に連続フレームの動きデータを定義することを特徴とする請求項7に記載の映像コンテンツ生成装置。
【請求項10】
前記モーショングラフ構築手段は、前記動きデータに係る盛り上がりに基づいて、エッジの重みを算出することを特徴とする請求項5又は請求項7に記載の映像コンテンツ生成装置。
【請求項11】
前記連結性算出手段は、対象ビートフレームにおいて、ポーズの類似度を算出することを特徴とする請求項5に記載の映像コンテンツ生成装置。
【請求項12】
前記連結性算出手段は、対象ビートフレームにおけるポーズを構成する各ジョイントの物理量の差分の重み付き平均を算出することを特徴とする請求項11に記載の映像コンテンツ生成装置。
【請求項13】
前記同期部は、モーショングラフ上で、前記音楽データの音楽特徴量に相当する動き特徴量を有するパスを探索する最適パス探索手段を有することを特徴とする請求項2から12のいずれか1項に記載の映像コンテンツ生成装置。
【請求項14】
前記最適パス探索手段は、前記映像コンテンツ生成対象楽曲が有するビートの個数分の連続するパスを探索することを特徴とする請求項13に記載の映像コンテンツ生成装置。
【請求項15】
前記最適パス探索手段は、前記音楽データの盛り上がりと前記動きデータの盛り上がりに基づいてパスのコストを算出することを特徴とする請求項13又は請求項14に記載の映像コンテンツ生成装置。
【請求項16】
前記同期部は、前記映像コンテンツ生成対象楽曲のビート間隔に動きのビート間隔を等しくするように調整した、動きのフレームレートの情報を前記同期情報に含めることを特徴とする請求項2から15のいずれか1項に記載の映像コンテンツ生成装置。
【請求項17】
前記映像データ生成部は、動きデータの連結部分において、動きデータのルート座標と方向の平行移動を行うことを特徴とする請求項1から16のいずれか1項に記載の映像コンテンツ生成装置。
【請求項18】
前記データベースの構築処理は、前記映像データを生成する処理とは独立して行われることを特徴とする請求項1から17のいずれか1項に記載の映像コンテンツ生成装置。
【請求項19】
楽曲に合わせた映像コンテンツを生成する映像コンテンツ生成処理を行うためのコンピュータプログラムであって、
映像コンテンツに利用可能な動きデータから動き特徴量を取得する動き解析ステップと、
動きの種類ごとに分類された動き特徴量群をデータベースに格納するステップと、
映像コンテンツ生成対象楽曲の音楽データから音楽特徴量を取得する音楽解析ステップと、
前記映像コンテンツ生成対象楽曲の種類に合った動き特徴量群を用いて、前記音楽データと該音楽データに合った前記動きデータとを対応付ける同期情報を生成する同期情報生成ステップと、
前記同期情報に基づいて、前記音楽データとともに再生される映像データを生成する映像データ生成ステップと、
をコンピュータに実行させるためのコンピュータプログラム。
【請求項1】
楽曲に合わせた映像コンテンツを生成する映像コンテンツ生成装置において、
映像コンテンツに利用可能な動きデータから動き特徴量を取得する動き解析部と、
動きの種類ごとに分類された動き特徴量群を格納するデータベースと、
映像コンテンツ生成対象楽曲の音楽データから音楽特徴量を取得する音楽解析部と、
前記映像コンテンツ生成対象楽曲の種類に合った動き特徴量群を用いて、前記音楽データと該音楽データに合った前記動きデータとを対応付ける同期情報を生成する同期部と、
前記同期情報に基づいて、前記音楽データとともに再生される映像データを生成する映像データ生成部と、
を備えたことを特徴とする映像コンテンツ生成装置。
【請求項2】
前記動き解析部は、
前記動きデータからビートを抽出し、テンポを算出するビート抽出部と、
複数の前記動きデータに係るビート及びテンポの情報を記憶するビート情報記憶部と、
前記動きデータから盛り上がりを算出する盛り上がり算出部と、
複数の前記動きデータに係る盛り上がりの情報を記憶する盛り上がり情報記憶部と、
複数の前記動きデータに係るビート、テンポ及び盛り上がりの情報を用いて、モーショングラフを生成するモーショングラフ生成部と、を有し、
前記データベースは、動きのテンポの種類ごとに生成されたモーショングラフのデータを格納し、
前記音楽解析部は、前記音楽データからビート、テンポ及び盛り上がりの情報を取得し、
前記同期部は、前記映像コンテンツ生成対象楽曲のテンポに合ったモーショングラフを用いて、前記音楽データに合う前記動きデータと前記音楽データとを対応付ける同期情報を生成する、
ことを特徴とする請求項1に記載の映像コンテンツ生成装置。
【請求項3】
前記ビート抽出部は、前記動きデータに対して一定時間の区間毎に主成分分析を行い、該区間毎に主成分座標を一つ選択し、各区間の主成分座標に基づいてビート時刻を検出することを特徴とする請求項2に記載の映像コンテンツ生成装置。
【請求項4】
前記盛り上がり算出部は、前記区間毎に、主成分分析による負でない固有値の和を計算することを特徴とする請求項3に記載の映像コンテンツ生成装置。
【請求項5】
前記モーショングラフ生成部は、
動きのテンポの種類が同じである前記動きデータからビートフレームを抽出するビートフレーム抽出手段と、
前記抽出されたビートフレーム間の連結性を算出する連結性算出手段と、
前記抽出されたビートフレームの各々をモーショングラフのノードに設定し、前記連結性に基づいてノード間にエッジを設けるモーショングラフ構築手段と、を有する、
ことを特徴とする請求項2から4のいずれか1項に記載の映像コンテンツ生成装置。
【請求項6】
前記モーショングラフ生成部は、前記動きデータに付加されたジャンル情報によって前記動きデータのジャンルを判別し、同じジャンルの前記動きデータをさらにテンポで分類することを特徴とする請求項5に記載の映像コンテンツ生成装置。
【請求項7】
前記モーショングラフ構築手段は、連結性が高いノード間に双方向エッジを設け、各動きデータ内の全隣接ビートフレーム間に単方向エッジを設けることを特徴とする請求項5に記載の映像コンテンツ生成装置。
【請求項8】
一定時間分のフレームを使用しクォータニオンによる球面線形補間を利用して、前記連結性が高いノード間の連結部分を補間するブレンディング動きデータを生成するブレンディング動きデータ生成手段を備えたことを特徴とする請求項7に記載の映像コンテンツ生成装置。
【請求項9】
前記単方向エッジは、隣接ビートフレーム間に連続フレームの動きデータを定義することを特徴とする請求項7に記載の映像コンテンツ生成装置。
【請求項10】
前記モーショングラフ構築手段は、前記動きデータに係る盛り上がりに基づいて、エッジの重みを算出することを特徴とする請求項5又は請求項7に記載の映像コンテンツ生成装置。
【請求項11】
前記連結性算出手段は、対象ビートフレームにおいて、ポーズの類似度を算出することを特徴とする請求項5に記載の映像コンテンツ生成装置。
【請求項12】
前記連結性算出手段は、対象ビートフレームにおけるポーズを構成する各ジョイントの物理量の差分の重み付き平均を算出することを特徴とする請求項11に記載の映像コンテンツ生成装置。
【請求項13】
前記同期部は、モーショングラフ上で、前記音楽データの音楽特徴量に相当する動き特徴量を有するパスを探索する最適パス探索手段を有することを特徴とする請求項2から12のいずれか1項に記載の映像コンテンツ生成装置。
【請求項14】
前記最適パス探索手段は、前記映像コンテンツ生成対象楽曲が有するビートの個数分の連続するパスを探索することを特徴とする請求項13に記載の映像コンテンツ生成装置。
【請求項15】
前記最適パス探索手段は、前記音楽データの盛り上がりと前記動きデータの盛り上がりに基づいてパスのコストを算出することを特徴とする請求項13又は請求項14に記載の映像コンテンツ生成装置。
【請求項16】
前記同期部は、前記映像コンテンツ生成対象楽曲のビート間隔に動きのビート間隔を等しくするように調整した、動きのフレームレートの情報を前記同期情報に含めることを特徴とする請求項2から15のいずれか1項に記載の映像コンテンツ生成装置。
【請求項17】
前記映像データ生成部は、動きデータの連結部分において、動きデータのルート座標と方向の平行移動を行うことを特徴とする請求項1から16のいずれか1項に記載の映像コンテンツ生成装置。
【請求項18】
前記データベースの構築処理は、前記映像データを生成する処理とは独立して行われることを特徴とする請求項1から17のいずれか1項に記載の映像コンテンツ生成装置。
【請求項19】
楽曲に合わせた映像コンテンツを生成する映像コンテンツ生成処理を行うためのコンピュータプログラムであって、
映像コンテンツに利用可能な動きデータから動き特徴量を取得する動き解析ステップと、
動きの種類ごとに分類された動き特徴量群をデータベースに格納するステップと、
映像コンテンツ生成対象楽曲の音楽データから音楽特徴量を取得する音楽解析ステップと、
前記映像コンテンツ生成対象楽曲の種類に合った動き特徴量群を用いて、前記音楽データと該音楽データに合った前記動きデータとを対応付ける同期情報を生成する同期情報生成ステップと、
前記同期情報に基づいて、前記音楽データとともに再生される映像データを生成する映像データ生成ステップと、
をコンピュータに実行させるためのコンピュータプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2010−267069(P2010−267069A)
【公開日】平成22年11月25日(2010.11.25)
【国際特許分類】
【出願番号】特願2009−117709(P2009−117709)
【出願日】平成21年5月14日(2009.5.14)
【出願人】(000208891)KDDI株式会社 (2,700)
【Fターム(参考)】
【公開日】平成22年11月25日(2010.11.25)
【国際特許分類】
【出願日】平成21年5月14日(2009.5.14)
【出願人】(000208891)KDDI株式会社 (2,700)
【Fターム(参考)】
[ Back to top ]