(57)【要約】【課題】モーショングラフを用いて滑らかで且つ多様な動きを生成する。【解決手段】モーショングラフ生成部4は、エッジに滑らかさに関する重みを付与することで動きの滑らかさを確保できる第一のモーショングラフを構築する。多様性情報設定部5は、第一のモーショングラフにおけるエッジにさらに多様性に関する重みを付与して第二のモーショングラフとなす。動き生成部6は入力時系列データに合った動きデータを第二のモーショングラフを探索して構築する。多様性に関する重みは、強連結成分分解によって得た部分グラフ毎にその内部での遷移可能性を考慮することにより付与する。【選択図】図10
2013218479.tif 000002
【特許請求の範囲】
【請求項１】
予め区間分けされ各区間における特徴量が定義された所定の時系列データに即した動きデータを生成する動き生成装置であって、
複数の動きデータの各々より複数のキーフレームを抽出してノードとなし、類似するノード間にエッジを設けることで第一のモーショングラフを生成するモーショングラフ生成部と、
前記第一のモーショングラフにおけるノード間の遷移可能性への寄与の度合いに基づき、エッジ毎に多様性に関する重みを付与することで第二のモーショングラフを生成する多様性情報設定部と、
前記第二のモーショングラフに基づいて、前記所定の時系列データに即した動きデータを生成する動き生成部とを備えることを特徴とする動き生成装置。
【請求項２】
前記モーショングラフ生成部は、
前記複数の動きデータの各々より各動きデータの時間変化に基づいて複数のキーフレームを抽出してノードとなすキーフレーム抽出部と、
同一の動きデータに属して隣接するノード間に単方向エッジを設ける単方向エッジ設定部と、
互いに異なる動きデータに属して第一の所定基準で類似するノード間と、同一の動きデータに属しており且つ隣接しておらず前記第一の所定基準で類似するノード間と、に双方向エッジを設ける双方向エッジ設定部とを含み、
当該ノードと、単方向及び双方向エッジと、によって前記第一のモーショングラフを生成することを特徴とする請求項1に記載の動き生成装置。
【請求項３】
前記単方向エッジ設定部は、同一の動きデータに属して隣接するノード間に時間方向の単方向エッジを設けると共に、当該同一の動きデータのうち当該ノード間に存在するデータの時間変化に基づく重みを滑らかさに関する重みとして付与し、
前記双方向エッジ設定部は、互いに異なる動きデータに属して前記第一の所定基準で類似するノード間及び同一の動きデータに属して単方向エッジが設けられておらず前記第一の所定基準で類似するノード間に双方向エッジを設けると共に、当該類似する度合いに基づく重みを滑らかさに関する重みとして付与し、
前記モーショングラフ生成部は当該ノードと、単方向及び双方向エッジ並びに滑らかさに関する重みと、によって前記第一のモーショングラフを生成することを特徴とする請求項2に記載の動き生成装置。
【請求項４】
前記単方向エッジ設定部は、前記同一の動きデータのうち前記ノード間に存在するデータに対応する動きの活発さに基づく重みを滑らかさに関する重みとして付与することを特徴とする請求項3に記載の動き生成装置。
【請求項５】
前記多様性情報設定部は、
前記第一のモーショングラフを強連結成分分解によって複数の部分グラフへと分割するグラフ分割部と、
前記複数の部分グラフのうち、非周期的な部分グラフの各々につき第一所定方式でノード間の第一遷移確率行列を定義し、該第一遷移確率行列より第一定常分布を算出する定常分布算出部と、
前記非周期的な部分グラフに含まれる各双方向エッジにつき、前記第一所定方式で定義された第一遷移確率行列における遷移確率を第二所定方式にて減じて得られる第二遷移確率行列より第二定常分布を算出し、前記第一定常分布と一様分布との距離と、前記第二定常分布と一様分布との距離と、の差に基づいて当該双方向エッジの多様性ゲインを算出する多様性ゲイン算出部と、を含み、
前記非周期的な部分グラフの各々に含まれる各双方向エッジに対して、前記算出された多様性ゲインを多様性に関する重みとして付与しすることを特徴とする請求項３または４に記載の動き生成装置。
【請求項６】
前記多様性情報設定部は、前記非周期的な部分グラフの各々に含まれる各双方向エッジに加えて各単方向エッジに対しても、多様性に関する重みを付与し、
当該多様性に関する重みの付与のため、前記多様性ゲイン算出部は、前記非周期的な部分グラフに含まれる各単方向エッジにつき、前記第一所定方式で定義された第一遷移確率行列における遷移確率を前記第二所定方式にて減じて得られる第二遷移確率行列より第二定常分布を算出し、前記第一定常分布と一様分布との距離と、前記第二定常分布と一様分布との距離と、の差に基づいて当該単方向エッジの多様性ゲインを算出し、
前記多様性情報設定部は、当該単方向エッジに対して当該算出された多様性ゲインを多様性に関する重みとして付与することを特徴とする請求項５に記載の動き生成装置。
【請求項７】
前記第一所定方式が、各ノードからの遷移につき、当該ノードより１つのエッジで移動可能なノードへの遷移に等確率を付与すると共に、当該ノードより１つのエッジで移動不可能なノードへの遷移にゼロを付与するものである、又は、
前記第一所定方式が、各ノードからの遷移につき、当該ノードより１つのエッジで移動可能なノードへの遷移に当該エッジに付与された滑らかさに関する重みに基づく確率を付与すると共に、当該ノードより１つのエッジで移動不可能なノードへの遷移にゼロを付与するものであることを特徴とする請求項５または６に記載の動き生成装置。
【請求項８】
前記第二所定方式が、各エッジに対して前記第一所定方式にて付与された確率を所定基準で減ずると共に、当該エッジの両端の各ノードにおいて、当該エッジに対して減ぜられた確率をその他のエッジに配分するものであることを特徴とする請求項７に記載の動き生成装置。
【請求項９】
前記第二所定方式が、各エッジに対して前記第一所定方式にて付与された確率をゼロとなすことで、当該エッジに対応する部分グラフにおいて当該エッジを削除することに対応するものであり、
前記多様性ゲイン算出部は、当該エッジを削除された部分グラフが周期的でありその第二定常分布が算出不可能な場合には、当該エッジの多様性ゲインを所定値として算出することを特徴とする請求項８に記載の動き生成装置。
【請求項１０】
前記定常分布算出部は、前記複数の部分グラフのうち、非周期的な部分グラフであって且つ当該部分グラフに属するノード数が所定の閾値以上のものの各々につき第一所定方式でノード間の第一遷移確率行列を定義し、該第一遷移確率行列の第一定常分布を算出することを特徴とする請求項５ないし９のいずれかに記載の動き生成装置。
【請求項１１】
前記動き生成部は、
前記第二のモーショングラフ内の各パスの中から、各パスに順次現れるエッジの滑らかさに関する重み及び多様性に関する重みと前記所定の時系列データの各区間に順次現れる特徴量とに所定の関数を適用して得られるコストを最小とするパスを動的計画法により求め、前記所定の時系列データに同期するパスとして決定する同期部と、
前記同期するパスに順次現れるノードに対応する前記複数の動きデータの断片を順次連結し、双方向エッジの両端のノードに対応する断片同士を当該連結する際には平均化を施すことで前記所定の時系列データに即した動きデータを生成する合成部とを含むことを特徴とする請求項３ないし１０のいずれかに記載の動き生成装置。
【請求項１２】
予め区間分けされ各区間における特徴量が定義された所定の時系列データに即した動きデータを生成する動き生成方法であって、
複数の動きデータの各々より複数のキーフレームを抽出してノードとなし、類似するノード間にエッジを設けることで第一のモーショングラフを生成するモーショングラフ生成ステップと、
前記第一のモーショングラフにおけるノード間の遷移可能性への寄与の度合いに基づき、エッジ毎に多様性に関する重みをさらに付与することで第二のモーショングラフを生成する多様性情報設定ステップと、
前記第二のモーショングラフに基づいて、前記所定の時系列データに即した動きデータを生成する動き生成ステップとを備えることを特徴とする動き生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モーショングラフにおけるノードの定常分布に基づき、事前に各エッジの動きの多様性に対する貢献度であるゲインを求めて、モーショングラフに多様性ゲイン情報として保持しておき、そのゲイン情報を動き生成時のコスト関数に利用することでより多様な動きを生成可能とする動き生成装置及び方法に関する。
【背景技術】
【０００２】
動きデータの一種として、MoCap(Motion Capture；モーションキャプチャ)データがある。MoCapデータの収録は、画像や映像データの取得に比べてコストがかかる。そのため、新たな動きの生成するために、元のMoCapデータを組み合わせて再利用することが行われる。その際に、短時間の動き要素の間の関係をMotion Graph(モーショングラフ)と呼ばれるグラフ構造で表現する方法がある。
【０００３】
特許文献1や非特許文献1では、音楽と同期した動きを自動生成するために、事前に収録された動きの構造を考慮可能なMotion Graphを利用している。事前に、MoCapデータから動きのビートを抽出し、その動きのビート時刻におけるポーズを表すビートフレームをグラフのノードとする。元のMoCapデータで連続しているビートフレームを表すノード間は、時間軸に沿って単方向エッジで接続する。一方で、連続していないノード間は、ビートフレームの類似度の大きさにより、双方向エッジで接続し，類似度の大きさを双方向エッジの重みとして与える。
【０００４】
さらに、MoCapデータから取得される動きの盛り上がり情報によって単方向エッジに重みを与えることで、Motion Graphが構築される。このMotion Graphを利用することで、入力された音楽から抽出されるビートと動きのビートを合わせた上で、音楽の盛り上がりの傾向と似ている盛り上がりのパタンを持つ動きを、エッジ接続されたノード間のみを遷移することで、音楽と同期しかつ滑らかな動きを生成可能としている。
【０００５】
また，Motion Graphのフレームワークを利用した音楽と同期した動きの自動生成において、音楽の残り時間がMotion Graph上で遷移可能な時間（デッドエンド（遷移するパスがないノード）に到達するまでの時間）が短い場合に動きが生成できなくなる問題を指摘しており、その改善のためにSynchronization Capacity（SC、シンクロナイゼーション・キャパシティ、同期限度）という制約を導入することで、音楽の残り時間に対して最後まで動きを生成可能なノードのみを遷移候補として選択できるようにすることで、デッドエンドへの到達回避の保証をしている。
【０００６】
音楽に同期した動きを生成する場合、音楽より早く動きが終わってしまうことは好ましくない。そのため、音楽と少なくとも同じ長さの動きを生成できることが望まれる。そこでSCを導入する。具体的には、各ノードに対して自身から遷移可能なノードの数の最大値としてSCを定義する。
【０００７】
音楽が入力されて、ある時刻において音楽の残り時間がわかると、その残り時間だけ遷移可能なノードのみが、遷移候補ノードとして選ばれることになる。
【０００８】
従って、音楽が無限時間だけあると考えると、ループ中に含まれる（その先にループを持つ）ノードのみに遷移することになる。この制約により、音楽が終了する前に動きの生成ができなくなる現象を防ぐことはできる。しかしながら、ループを形成しているノード群（部分グラフ）のみに遷移が集中するため、ループに含まれるノード数が少ない（ループサイズが小さい）場合、同じような動きが頻発する。
【０００９】
また、非特許文献2では、上記の非特許文献1の制約により、生成される動きのバリエーションが少なくなる問題に対して、グラフの構造特性を考慮してノード間の双方向エッジの接続判定を適応的に行い、新たなMotion Graphを生成している。これにより、グラフ中のループのサイズが拡大され、従来はエッジが存在しないために遷移できなかったノードに対して、動きの滑らかさをほぼ損なわずに遷移可能としている。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開2011-204113号公報
【非特許文献】
【００１１】
【非特許文献１】J. Xu et al., "MOTION SYNTHESIS FOR SYNCHRONIZING WITH STREAMING MUSIC BY SEGMENT-BASED SEARCH ON METADATA MOTION GRAPHS," IEEE ICME, 2011
【非特許文献２】今野ら，"Motion Graph の強連結成分の統合による自動生成ダンスの多様性向上," 電子情報通信学会総合大会，2012
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、特許文献1では、元の動きファイルで連続していないビートフレーム（ノード）間のエッジ接続判定を、ビートフレーム間の類似度を閾値処理することで、ビートフレーム間での遷移によって生成される動きの滑らかさや音楽のリズムや大きさとの同期といった比較的短時間の動きの質の向上を目的としており、生成される動き全体の多様性を向上させるための検討はされていない。
【００１３】
また、非特許文献2では、同じような動きが繰り返される現象が頻発するという問題に対して、ノードのグラフ上の構造特性に応じて、双方向エッジによるノード間の接続判定を適応的に行うことで、解決しようとしている。従来は接続されなかったノード間が接続されるため、滑らかさをやや損なう可能性がある。また、この生成したMotion Graphを利用して、音に合わせて動きを生成する際には、動きの滑らかさに対するペナルティを考慮したコスト関数になっているが、動きの多様性は考慮されていない。そのため、グラフ上ではエッジが接続されていても、動きの滑らかさと多様性の双方の観点では、コスト（遷移するパス）を制御する（滑らかさと多様性の両方をバランス良く高める）ことができない場合があった。また、多様性の観点でボトルネックとなっているエッジの滑らかさの損失が大きければ、遷移できない問題があった。
【００１４】
本発明の目的は、上記の従来技術の課題を解決し、滑らかでかつ多様な動きを生成する動作生成装置及び方法を提供することにある。
【課題を解決するための手段】
【００１５】
上記目的を達成するため、本発明は、予め区間分けされ各区間における特徴量が定義された所定の時系列データに即した動きデータを生成する動き生成装置であって、複数の動きデータの各々より複数のキーフレームを抽出してノードとなし、類似するノード間にエッジを設けることで第一のモーショングラフを生成するモーショングラフ生成部と、前記第一のモーショングラフにおけるノード間の遷移可能性への寄与の度合いに基づき、エッジ毎に多様性に関する重みを付与することで第二のモーショングラフを生成する多様性情報設定部と、前記第二のモーショングラフに基づいて、前記所定の時系列データに即した動きデータを生成する動き生成部とを備えることを特徴とする。
【００１６】
また本発明は、予め区間分けされ各区間における特徴量が定義された所定の時系列データに即した動きデータを生成する動き生成方法であって、複数の動きデータの各々より複数のキーフレームを抽出してノードとなし、類似するノード間にエッジを設けることで第一のモーショングラフを生成するモーショングラフ生成ステップと、前記第一のモーショングラフにおけるノード間の遷移可能性への寄与の度合いに基づき、エッジ毎に多様性に関する重みを付与することで第二のモーショングラフを生成する多様性情報設定ステップと、前記第二のモーショングラフに基づいて、前記所定の時系列データに即した動きデータを生成する動き生成ステップとを備えることを特徴とする。
【発明の効果】
【００１７】
本発明によれば、遷移可能性に基づくことで動き生成の際に多様性に関して寄与することとなる多様性に関する重みをエッジに付与したモーショングラフを用いて動きを生成することで、滑らかで且つ多様な動きを生成することができるようになる。
【図面の簡単な説明】
【００１８】
【図１】一実施形態に係る動き生成装置の機能ブロック図である。
【図２】一実施形態に係る動き生成装置の機能概要を説明する図である。
【図３】モーショングラフの概要を説明する図である。
【図４】グラフの強連結成分分解を例で説明する図である。
【図５】周期的なノードの例である。
【図６】非周期的なノードの例である。
【図７】多様性に関するゲインを算出するフローチャートである。
【図８】図7のフローを説明するための図であり、カット前後のそれぞれでの距離比較を示す図である。
【図９】図7のフローを説明するための図であり、クラスの例を示す図である。
【図１０】一実施形態に係る動き生成装置の機能ブロック図である。
【発明を実施するための形態】
【００１９】
図1は本発明の一実施形態に係る動き生成装置の機能ブロック図である。動き生成装置1は、音情報解析部2、動きデータベース3、モーショングラフ生成部4、多様性情報設定部5、動き生成部6及び動き再生部7を備える。なお後述するように、動き生成装置1はこれらの機能ブロックのうちの一部のみを備えて構成されていてもよい。
【００２０】
モーショングラフ生成部4は、キーフレーム抽出部41、単方向エッジ設定部42及び双方向エッジ設定部43を含む。多様性情報設定部5は、グラフ分割部51、定常分布算出部52及び多様性ゲイン算出部53を含む。動き生成部6は、同期部61及び合成部62を含む。
【００２１】
図2は、図1の動き生成装置1の機能概要を説明する図である。(1)に示すように、音楽や音声といった音情報を持つファイル（wavやmp3など）が入力されると、音情報解析部2が当該音情報を解析してその特徴を得る。(2)に示すように、動き生成部6が当該音特徴に合った動きを探索する。(3)に示すようにその探索対象はモーショングラフである。モーショングラフは動きデータベース3、モーショングラフ生成部4及び多様性情報設定部5によって用意される。(4)に示すように、当該モーショングラフ上のパスのうち、音特徴に合ったパスが探索結果となる。(5)に示すように、動き生成部5はさらに当該探索結果に従う動きを生成し、(6)に示すように、動き再生部7が当該生成された動きを適宜入力音情報と同時進行させながら再生する。
【００２２】
ここで、入力される音はファイル中の全ての時間分の音情報でもよいし、ファイル中の一部の音情報だけ読み出して、その一部の音情報に基づき、動きを生成し再生することを音情報が終了するまで逐次行ってもよい。
【００２３】
図3はモーショングラフの概要を説明する図である。(1)に示すように、動きデータベースには複数の動きデータ1〜Nが保存されている。当該データは典型的にはMoCapデータであって、実際にMotion Captureシステム(モーションキャプチャシステム)などにより収録されたMoCapデータを保存するMoCapデータベースとして動きデータベース3を用意しておく。
【００２４】
動きデータベース3の中の動きデータの各々に対して、モーショングラフ生成部4において音情報に対する時間的な同期のために必要となる動きビート抽出処理や、動きの滑らかさを制御するために必要となるエッジ接続判定処理を行い、(2)に示すようにモーショングラフ(Motion Graph)を生成する。なおMotion Graphの形式が同じであれば，必ずしもモーショングラフ生成部で生成されたMotion Graphでなくてもよく，事前に生成されているMotion Graphを利用してもよい．例えば非特許文献2で提案されているMotion Graphであってもよい．ここでは当該形式を、モーショングラフ生成部4の各部の機能と共に説明する。
【００２５】
キーフレーム抽出部41は各動きデータより動きのビートフレームを複数抽出して、各々をモーショングラフにおけるノードとなす。当該各動きデータにおける複数定められたノードは(2)に○として示されている。ビートフレームとは、動きデータの時系列上の１フレームであって、動きのビートを表しているフレームである。
【００２６】
MoCapデータにおける当該ビートの抽出に関しては、以下の非特許文献3に開示された次のような技術を利用することができる。MoCapデータには基準となるポーズのフレームには、ルート（腰）や各関節の3次元座標が、その後のフレームにおいては、基準ポーズからの相対的な位置などが含まれる。このMoCapデータから各時刻における各関節の3次元座標を求めて、関節数×3次元のベクトルの時系列として動きを表すことができる。この動きを一定の分析幅で分割して、分析幅の対象となる区間のデータに対して主成分分析を適用することで、動きのグローバルな成分（最も大きな変化の方向）が第1主成分の主成分得点に抽出される。この主成分得点が極大及び極小となる時刻のフレームを動きのビートフレーム（ノード）とする。
【００２７】
[非特許文献3] J. Xu et al., "Beat induction from motion capture data using short-term principal component analysis," 映像情報メディア学会論文誌 2010
【００２８】
なお、動きデータは必ずしもMoCapデータではなく、上述ように各関節等の3次元座標が直接与えられている形式のデータなどが利用できるならば、当該各形式のデータを利用するようにしてもよい。
【００２９】
なお、キーフレーム抽出部41はより一般には、ビートフレームの代りに、動きデータの時間変化においてある特徴を持ったキーフレームを抽出してノードとなす。例えば、動きデータを所定の時間幅で区切り、その1つの区間で、最も変化の大きいフレームとしてキーフレームが得られ、当該キーフレームがノードに割り当てられる。
【００３０】
ビートフレームとはキーフレームの一種であって、音情報に合わせた動きを生成する際に好ましいキーフレームである。以下、ノードにビートフレームを採用するものとして説明するが、本発明はより一般のキーフレームをノードに採用しても実施可能である。
【００３１】
単方向エッジ設定部42は、動きビート抽出により定まったノード間であって、同じ動きデータに由来して且つ時間軸上で互いに隣接する関係にあるノード間に、時間方向の単方向エッジを設定する。当該単方向エッジは図3の(2)に単方向矢印として概念的に示されている。
【００３２】
単方向エッジ設定部42はさらに、設定した単方向エッジの各々に重みを付与する(図3では不図示)。各単方向エッジは、ノードであるビートフレーム同士の間にある一連のフレームに対応する。ここでビートフレーム間には、1ビート分の長さに対応する数だけ当該一連のフレームが存在する。その1ビート分のフレーム群の各関節の3次元座標に対して、主成分分析した際に求まる第1主成分の固有値（主成分空間上の分散）は、動きの盛り上がり(活発さ)を表すものであるので、単方向エッジ設定部は当該活発さに基づく重みを各単方向エッジに付与する。例えば、当該固有値をそのままの値で、重みとする。当該詳細は特許文献1に詳しい。
【００３３】
双方向エッジ設定部43は、動きビート抽出により定まったノード間であって、単方向エッジが設定されておらず、且つ各ノードに対応する動きデータのフレームが表すポーズ同士が所定基準で類似していると判定されるノード間に、双方向エッジを設定する。当該類似判定はポーズ間に距離を定義することで行われる。類似しないと判定されたノード間にはエッジは何も設定されない。当該設定された双方向エッジは図3の(2)に双方向矢印として概念的に示されている。
【００３４】
双方向エッジ設定部43はさらに、各双方向エッジに当該類似度合いに基づく重みを付与する(図3では不図示)。これら類似度や重み等の詳細は特許文献1に詳しい。この際、本発明では特に、類似度合いが所定基準（ただし、類似判定自体とは異なる所定基準）で大きい場合は、ある一定の基準重みを付与するようにすることで、双方向エッジに付与される重みに上限を設けるようにしてもよい。
【００３５】
以上のように、各部が求めたノードと単方向／双方向エッジ及びそれらの重みとの集合として、モーショングラフ生成部4はMotion Graphを生成する。こうして、元の動きデータ上で、同一の動きデータ内で隣接しているビートフレーム間は全て時間進行方向の単方向エッジで接続され、当該単方向エッジが接続されておらず且つ似ているビートフレーム間は双方向エッジで接続され、各エッジに重みが付与される。
【００３６】
すなわち、双方向エッジが設定されうる箇所は、[1]同一の動きデータに属するノード間であって単方向エッジが設定されない、すなわち隣接していないノード間と、[2]互いに異なる動きデータに属するノード間である。そして、当該[1]又は[2]に該当する全ノード間のうち対応するポーズ同士が所定基準で類似するものにつき、実際に双方向エッジが設定され、重みが付与される。なおまた、ノード間に単方向エッジと双方向エッジとが同時に設定されることはない。
【００３７】
当該モーショングラフに基づいて新たな動きデータを生成することができる。この際、モーショングラフにおいて隣接するノード間を、単方向又は双方向エッジの定める方向に移動して得られるノードの遷移系列に対応する新たな動きデータが生成される。単方向エッジの定める方向の逆方向へは遷移することができない。双方向エッジにおいては両方向へ遷移可能である。
【００３８】
なお、以上のモーショングラフ生成部4(単方向エッジ設定部42及び双方向エッジ設定部43)にてエッジに付与される重みは、盛り上がりや類似度などに基づいて定められていることからも明らかなように、動き生成の際に滑らかさとして寄与することとなる「滑らかさに関する重み」である。
【００３９】
本発明の特徴的構成である多様性情報設定部5は、グラフ分割部51、定常分布算出部52、多様性ゲイン算出部53から構成される。モーショングラフ生成部4が生成したMotion Graphの各エッジに対して付与されている「滑らかさに関する重み」とは別に、多様性情報設定部5は動き生成の際に多様性として寄与することとなる「多様性に関する重み」をさらに付与する。具体的には、後述する多様性に関するゲインを算出して、当該ゲインを「多様性に関する重み」として付与する。なお以下適宜、モーショングラフをグラフと略称する。
【００４０】
グラフ分割部51は、グラフを部分グラフへと分割する。その意義は次の通りである。本発明では、グラフの各ノードの定常分布を求め，定常状態におけるエッジの遷移確率に基づき、各エッジ（またはノード）に対して多様性のゲインを設定する。この定常分布が一意に定まる条件（条件1）として、ノード群（状態空間）が強連結である必要がある。グラフのノード群が全て強連結であれば良いが、そうでない場合は定常分布が一意に定まらないため、グラフ分割部51によってグラフを強連結成分（部分グラフ）へ分割し、その部分グラフの定常分布を求めることを試みる。
【００４１】
グラフ分割部51は具体的には、グラフを強連結成分分解することで、強連結である極大な部分グラフに分割する。グラフが強連結であるというのは、グラフ中の任意の2ノードを選択した際に、あるノードから別のノードへたどり着く道が必ず存在することである。極大な部分グラフとは、強連結である部分グラフが強連結である小さな部分グラフを包含するような場合に、最もノード数が多くなるような部分グラフのことを指す。よって強連結である極大な部分グラフは、モーショングラフから音情報に合うパスを探索した際のループとなりうるものであって、且つサイズが極大となるものである。
【００４２】
図4に、グラフの強連結成分分解を示す。(1)まず、任意に始点となるノードを選択し、その始点ノードから深さ優先探索を行う。深さ優先探索において、葉ノードまでたどり着いた後に葉ノードから順次親ノードに戻る際に、当該ノードの全ての子ノードが既に探索済みであれば、もしくは子ノードが存在しなければ、当該ノードに通し番号（ポストオーダー，順番）を割り当て、当該ノードの親ノードに戻り、深さ優先探索を進める。これにより，全てのノードに対して，ポストオーダーが割り当てられる。
【００４３】
(1)ではポストオーダー割り当て前の状態のノードa〜lに対して、ノードaを始点としてポストオーダー1〜8が割り当てられ、次に割り当てられていないeから探索してeにポストオーダ9が割り当てられ、最後にまだ割り当てられていないiから探索して10〜12が割り当てられている。
【００４４】
(2)次に、グラフのエッジの向きを反対にした逆グラフを作成する。(3)この逆グラフにおいて、まだ探索されていない（強連結成分に含まれていない）ノードのうち、最もオーダーが大きいノードを始点として、そのノードから深さ優先探索を行う。深さ優先探索でたどることができたノードが1つの強連結成分であり、これを全ノードが強連結成分に含まれるまで繰り返す。最終的に得られた強連結成分の集合が，強連結である極大な部分グラフである。当該部分グラフの例が(3)においてD1〜D6として示されている。
【００４５】
定常分布算出部52は、グラフ分割部51で分割された強連結成分（クラス）毎に定常分布を算出する。各クラスにつき実行される定常分布の算出フローを[手順1]〜[手順4]として以下に掲げる。当該フローにより、所定サイズ以上のクラスであって且つ定常分布の算出可能なクラスの各々につき、エッジの定常分布(クラス毎の定常分布の遷移確率行列)が求められる。
【００４６】
[手順1]クラスに属するノードが、最低クラスノード閾値以上か判定する。閾値以上なら[手順2]へ進み、そうでなければ、当該クラスの定常分布の算出は行わず、フローを終了。
【００４７】
[手順2]当該クラスの非周期性を判定する。非周期的であれば[手順3]へ進み、そうでなければ、当該クラスの定常分布を算出することはできないので、当該クラスの定常分布の算出は行わず、フローを終了。
【００４８】
[手順3]当該非周期的なクラスに属するノード間で遷移確率行列を計算し、[手順4]へ進む。
【００４９】
[手順4]当該遷移確率行列をL(＞＞1)回掛け合わせて、当該クラスの定常分布を計算する。
【００５０】
各手順の意義や詳細などは次の通りである。
【００５１】
手順1は、ノード数が小さいクラスでは可能な遷移のパタンが限られるため、そもそも多様な動きを生成することは難しいという事実に基づき、まずクラスに属するノード数が、所定の最低クラスノード閾値以上であるか判定し、閾値以上であればそのクラスを多様性ゲイン設定の対象とし定常分布を求めるようにするものである。そうでなければ、そのクラスは多様性ゲイン設定の対象外とする。
【００５２】
次に手順2では、クラスのノード群の非周期性判定を行う。定常分布が一意に求まる条件は、上述の条件1(強連結であること)の他に、ノード（状態）が非周期的であることである。ノードが周期的であるというのは，あるノードiから再びノードiに戻るまでの任意のパスの遷移回数が，k(k>1)のn(整数)倍のみである場合を指す。一方、k=1しか成り立たない場合を、ノードが非周期的であるという。
【００５３】
したがって、手順2では、あるノードiに対して、iに戻る全ての組み合わせのパスの遷移回数の最大公約数(g.c.d)kを求めることで、ノード単位での非周期性判定を行うことができる。クラス内が強連結である場合、同一クラス内に属するノードは同一の周期となる性質があるため、実際にはクラス内で1つのノードに関してのみ周期を求めれば十分である。
【００５４】
図5は、強連結なクラスにおける周期的なノードの例である。例えばノード1に関して、
「(1→2→1)：ステップ数s＝2」、「(1→2→5→3→1)：ステップ数s＝4」、…であり、
k=gcd(all_pattern)=2 であるので、
ノード1については周期的である。さらに、ノード1〜5は強連結である(同じクラスである)ため、これら全てのノードについても、同様に周期的である。
【００５５】
図6は、強連結なクラスにおける非周期的なノードの例である。例えばノード1に監視て、
「(1→2→1)：ステップ数s＝2」、「(1→2→5→1)：ステップ数s＝3」、…であり、
k=gcd(all_pattern)=1 であるので、
ノード1については非周期的であり、強連結であるので、全てのノード1〜5についても同様に非周期的である。
【００５６】
手順2にてクラスが非周期的であると判定されたノードに対しては、一意に定常分布を求めることができる。そこで手順3でまず、遷移確率行列を求める。クラス内のノードとエッジの構造から、クラスcのノードiからノードjへ遷移する確率p_ijを要素として持つ遷移（推移）確率行列P_cを求めることができる(式1)。N_cは，クラスcのノード数である。
【００５７】
【数１】
2013218479.tif 000003
【００５８】
例えば、図6のクラス(当該クラスをクラスAとする)に対する遷移可能確率行列PAの例を、(式2)に示す。
【００５９】
【数２】
2013218479.tif 000004
【００６０】
遷移確率行列において、あるノードから遷移可能なエッジの確率は0より大きく、遷移不可能なエッジの確率は0とする。(式2)の例では、ノード1から遷移できるエッジは、1-2，1-3，1-4，1-5の4本ある。したがって、全てのエッジが等確率で遷移するものとして遷移確率行列を定めると、1-2の確率p_12は，1/4となる。
【００６１】
なお、必ずしも等確率で遷移するものとして定義する必要はなく、エッジに対して重みなどが付与されていれば、それを考慮して遷移するとした上で各遷移確率を求めてもよい。例えば、遷移可能なノードに、合計が1となるように、モーショングラフ生成部4にて付与された滑らかさに関する重みに応じた確率を配分して遷移確率行列を定めるようにしてもよい。
【００６２】
手順3にてこのように遷移確率行列を求めた後、手順4で定常分布を求める。定常分布とは、1回の遷移である状態から別の状態に遷移する確率分布のもとで、無限回（多数）の遷移を繰り返した際の状態の分布を指す。本発明で言えば、あるノードから別のノードに無限回だけ遷移した際に、どのノードにどれだけの確率で存在するかという分布である。各要素に適当な所定の初期確率（例えば，全ノードに対して等確率を付与）が与えられたノードの初期分布を表す行ベクトルx_cに，遷移確率行列を右から無限回掛け合わせれば、求めることができるが、実際には、掛け合わせた際の変化が十分に小さくなるような十分に大きい有限回数だけ掛け合わせることで求める。また、その他の手法によって求めてもよい。
【００６３】
クラスcの部分グラフG_cに含まれる各ノードの初期分布を表す行ベクトルをx＾0_cとすると，部分グラフG_cに対する遷移確率行列のn乗が(式3)であり、これによって初期分布x^0_cに遷移確率行列を右からn回掛け合わせた際の分布（ノードの定常分布を表す行ベクトル）は(式4)で表され、L回掛け合わせた際の定常状態における各エッジの遷移確率分布π＾Ｌ_c（これをエッジの定常分布と定義する）は(式5)で表される。Iは単位行列である。なお、(式3)〜(式5)において行列又はベクトルの各要素における上付き文字nやLは、べき乗ではなくインデクスを表している。
【００６４】
【数３】
2013218479.tif 000005
【００６５】
【数４】
2013218479.tif 000006
【００６６】
【数５】
2013218479.tif 000007
【００６７】
多様性ゲイン算出部53は、定常分布算出部52により以上のようにして得られた各エッジの定常分布に基づき、各エッジに対して多様性に関するゲイン値を求める。前述の通り当該ゲイン値が多様性に関する重みに相当し、このゲインが高いエッジを遷移すれば、より多様な動きが生成されやすいことを意味する。
【００６８】
ここで、多様な動きを生成することは、様々なエッジに遷移することに相当する。すなわち、エッジの分布が一様分布（全エッジが等確率の分布）に似ていれば、多様性が高いと仮定することができる。動き生成を開始して、一定時間経過した後のエッジの分布が上述のエッジの定常分布に従うとすると、定常分布が一様分布に近いことが多様な動きを生成するためには効果的であると考えられる。そこで、多様性ゲイン算出部53では、エッジの定常分布と一様分布の距離に基づき、多様性に対する各エッジの貢献度に相当するゲインを求める。
【００６９】
図7は、多様性ゲイン算出部53が多様性に関するゲインを算出するフローチャートである。また図8及び図9は図7のフローを説明するための図である。図7の各ステップは次のとおりである。
【００７０】
まず、繰り返し指示のステップS30及びS31で囲んで示しているように、全クラスcにつきステップS1〜S8の部分を実行する。
【００７１】
(ステップS1)まず、クラスcのエッジの定常分布π^L_cと一様分布U_c(式6)との分布間距離S_cを，距離関数fにより、(式7)で求める。距離関数fは、ヒストグラムインターセクション、カルバックライブリー情報量、バッタチャリヤ距離など、分布間の距離または類似度を表すものを用いればよい。また、当該距離の算出を図8の(1)に概念的に示す。ただし，N_EDGE_cは，グラフ中に存在するエッジの本数（双方向エッジは，2本の単方向エッジが存在するという扱い）である．
【００７２】
【数６】
2013218479.tif 000008
【００７３】
【数７】
2013218479.tif 000009
【００７４】
ステップS1以降、繰り返し指示のステップS20及びS21で囲んで示しているように、クラスcの全ての双方向エッジe(i,j)につき、ステップS2〜ステップS6,S7を実行する。
【００７５】
(ステップS2)次に、クラスcに対応する部分グラフG_cから、ノードn_iとノードn_jを接続している双方向エッジe(i,j)をカットし、カット後の部分グラフ（以後、グラフ）をG_CUT_cとする。
【００７６】
(ステップS3)グラフG_CUT_cが強連結であるか判定する。この際、グラフG_CUT_cを強連結成分分解して、強連結成分が1つであれば強連結と判定してステップS4へ進み、2つ以上であれば強連結でないと判定してステップS7へ進む。
【００７７】
(ステップS7)強連結でないと判定された場合、カットしたエッジに対するゲインg_ijは，所定のゲイン値GAIN（事前に設定した固定値）とする。未処理の他のエッジが残っている場合、これらに対するゲイン算出を続行するため、ステップS2へ戻る。
【００７８】
なお、ステップS7にて、あるエッジをカットした際にその部分グラフは強連結でなくなるということは、そのエッジがなければ全てのエッジには到達できないことを意味するため、多様性に対する貢献度は大きいと考えられる。従って、GAINには大きい値を付与することが効果的と考えられる。
【００７９】
図9のクラスの例では例えば、双方向エッジe(1,4)をカットするとエッジ1の部分が別の強連結成分となるので、g_14＝GAINと設定される。また双方向エッジe(4,6)及びe(2,5)についてもカットすることで強連結でなくなるため、GAINが設定される。
【００８０】
(ステップS4)一方、強連結であると判定された場合、グラフG_CUT_cに対する定常分布と一様分布に基づき、エッジのゲインを求める。ここで、グラフG_CUT_cの定常分布π_CUT^L_c及び一様分布U_CUT_cを、それぞれ前述の(式5)及び(式6)と同様にそれぞれ求める。また、(式7)と同様にして(式8)に示すように、それらの分布間の距離S_CUT_c（または類似度）を求める。当該距離の算出を図8の(2)に概念的に示す。
【００８１】
【数８】
2013218479.tif 000010
【００８２】
(ステップS6)エッジe(i,j)をカットする前の分布間距離S_cと、エッジe(i,j)をカットした後の分布間距離S_CUT_cの差を、エッジe(i,j)に対するゲインg_ijとする。ただし、距離関数fが距離を意味する場合は(式9)を、類似度を意味する場合は(式10)を利用する。ステップS6の後、未処理の他のエッジが残っている場合、これらに対するゲイン算出を続行するため、ステップS2へ戻る。
【００８３】
【数９】
2013218479.tif 000011
【００８４】
【数１０】
2013218479.tif 000012
【００８５】
なおステップS6のゲインは、次の考察に基づいて算出されている。エッジをカットすることによって分布間の距離が大きくなるということは、カットしないことによって分布間の距離を小さくしている（動きの多様性に貢献している）エッジと捉えることができる。そのため、距離関数が距離を意味する場合、カット後の距離が大きく、カット前の距離が小さくなるようなケースで、ゲインを大きくする。なお、この重みg_ijをゲインとしてではなくペナルティとして与える場合には、この逆を考えればよい。
【００８６】
以上のようにして全ての双方向エッジにつきゲインが算出され、ステップS21を通過するると、ステップS8へと進む。なおまた、クラスcの部分グラフG_cにおいて接続されていないノード間や単方向エッジで接続されているエッジに対するゲインは、便宜上0とする(式11)。
【００８７】
【数１１】
2013218479.tif 000013
【００８８】
なお、(式11)において条件{i,j｜j=i+1}の部分は、単方向エッジで辿る関係のノード同士には隣接する番号を付与するとの前提のもとで、エッジe(i,j)が単方向エッジe(i,i+1)となるような番号i,jに対する条件を示している。
【００８９】
(ステップS8)以上の繰り返し指示ステップS20−S21によってクラスcの全ての双方向エッジのゲインが求まり、クラスcのその他のエッジについては上記(式10)で0として定められることから、これら求められたクラスc内の全エッジに対する多様性に関するゲインを要素とし、エッジを行、列に対応付けて(i行j列がノードiからノードjへのエッジに相当)行列として表したものを多様性ゲイン行列Gain_cとして求める(式12)。
【００９０】
【数１２】
2013218479.tif 000014
【００９１】
この際に、クラス内でゲインg_ijを正規化してもよい。例えば、0以外の値を持つクラス内のゲインの分布の平均が0、分散が1となるように正規化する。なお、ノード数がクラスノード閾値より小さいクラスや、定常分布が一意に定まらないクラスについては、Gain_cの要素g_ijを全て0とする。
【００９２】
以上のようにして全てのクラスcにつき多様性ゲイン行列が算出され、ステップS31を通過すると、ステップS9へ進む。
【００９３】
(ステップS9)全てのクラスに対しての多様性ゲイン行列が求まったので、各クラスのゲイン行列を拡張した1つのゲイン行列(モーショングラフ全体に対するゲイン行列)Gainとして保持する(式13)。ただし、Cはクラス数である。さらにこの際に、全クラスでゲインを正規化してもよい。その際に0以外の値を持つゲインのみで正規化してもよい。
【００９４】
【数１３】
2013218479.tif 000015
【００９５】
(ステップS10)滑らかさに関する重みw_B_ijと、多様性ゲインg_ijとして算出された多様性に関する重みとを統合した、新たな重みであるエッジ制御重み行列W_MERGEを求めるため、その各要素としてのエッジe(i,j)に対するエッジ制御重みw_MERGE_ijを、重み結合パラメータαによって求める(式14)。
【００９６】
【数１４】
2013218479.tif 000016
【００９７】
エッジ制御重みにより、次のような制御が可能となる。すなわち、エッジe(i,j)が双方向エッジである場合、モーショングラフ生成部において、エッジには重みが付与されている。この双方向エッジの重みw_B_ijは，ノード間（ビートにおけるポーズ間）の距離に相当するため、エッジ遷移時の動きの滑らかさに対するペナルティとして利用できる。一方で、上述のg_ijは、多様性に対するゲインとして利用できる。この滑らかさに対するペナルティと多様性に対するゲインを組み合わせることで，パスの遷移の傾向（滑らかさ重視もしくは多様性重視）を制御することが可能となる。
【００９８】
また、(式14)の代りに、重みw_MERGE_ijの値の範囲を(0,1)に抑えるため、シグモイド関数などを利用して(式15)として求めてもよい。なお、βはシグモイド関数のパラメータである。
【００９９】
【数１５】
2013218479.tif 000017
【０１００】
(ステップS11)上記エッジ制御重みを要素とするエッジ制御重み行列を算出する(式16)。なお、滑らかさに関する重みと多様性のゲインの統合は、後に述べる動き生成時のパス決定のためのコスト関数において行ってもよい。すなわち、ステップS10及びS11を動き生成時に動き生成部6によって実行させるようにして、多様性ゲイン算出部53はステップS9の多様性ゲイン行列を最終出力として、モーショングラフに付与するようにしてもよい。
【０１０１】
【数１６】
2013218479.tif 000018
【０１０２】
以上、図7のフローを説明したが、ここでその一部分(g_ijを算出する部分)の別実施例を説明する。当該別実施例ではグラフのカットは行わず、枠B1で囲っているステップS2、S3及びS7が削除され、ステップS4、S5及びS6が変更される。
【０１０３】
当該実施例では、対象とする双方向エッジe(i,j)をカットする代わりに、当該エッジe(i,j)に付与されている確率を所定方式で減じて得られる遷移確率行列の定常分布π_RED^L_cを、カットして且つ計算可能であった際の定常分布π_CUT^L_cの代わりに用いて、ステップS4〜S5を実行することでg_ijを求める。なお、当該別実施例において確率をゼロまで減じた極限的な場合を、前述の枠B1を含む実施例とみなすことができる。
【０１０４】
確率を減じる手法は、当初の値の所定割合に減ずるなどの所定の手法を利用することができる。また、当該エッジe(i,j)に対して減ぜられた分は、確率の和が1となる要請に従って、当該エッジe(i,j)の周辺のエッジの確率を増分するように利用する。例えば、周辺エッジで均等に増分するようにする。
【０１０５】
図9にて双方向エッジe(1,4)に対する確率を減じる例を説明する。当初の遷移確率行列はエッジに均等にiからjに移る確率p(i,j)を割り振っていたとすると、当該エッジの両端のノード1及び4からの遷移確率は次の通りである。
p(1,4)＝1/2, p(1,2)＝1/2
p(4,1)＝1/3, p(4,5)＝1/3, p(4,6)＝1/3
これに対して、双方向エッジe(1,4)に対する確率を減じた後は例えば次のようになる。
p(1,4)＝1/2−x, p(1,2)＝1/2＋x
p(4,1)＝1/3−y, p(4,5)＝1/3＋y/2, p(4,6)＝1/3＋y/2
【０１０６】
ここで、x,yは確率の値がマイナスにならない範囲での正の値であり、例えばxは当初減ずる前のp(1,4)の値である1/2の半分として1/4と設定し、yは当初減ずる前のp(4,1)の値である1/3の半分として1/6と設定するなどすればよい。当該別実施例では、ステップS7の定数GAINを定めておく必要がなく、減ずる手法をユーザが設定することで用途によって調整可能となるという効果がある。
【０１０７】
ここで、図7のフローの別の実施形態を説明する。すなわち、以上説明した一実施形態においては多様性ゲインの算出対象は双方向エッジe(i,j)のみであり、単方向エッジについては(式11)にあるように多様性ゲインをゼロとしていた。別実施形態においては、単方向エッジについても双方向エッジについて算出したのと全く同様の手法で多様性ゲインを算出する。また、当該算出された単方向エッジの多様性ゲインは、以降にて単方向エッジの多様性に関する重みとして利用されることとなる。
【０１０８】
当該別実施形態では具体的には、繰り返し指示ステップS20及びS21にて対象とするエッジe(i,j)を、クラスcの単方向エッジ及び双方向エッジの両者を含む全てのエッジe(i,j)として、ステップS2〜S6及びS7を全く同様に適用する。また、ステップS8以降についても、双方向エッジと全く同様に単方向エッジについても処理を行う。ただし特に、単方向エッジについて(式11)は適用せず、ステップS2〜S6及びS7で求まった多様性ゲインを単方向エッジのゲインとして採用する。
【０１０９】
当該別実施形態においては、エッジe(i,j)が単方向エッジである場合、ステップS2において単方向エッジe(i,j)をカットすると、当該エッジの両サイドのノードが両方とも双方向エッジを持っている場合のみ、ステップS3にてG_CUT_cが強連結であると判定されることとなる。
【０１１０】
また、枠B1が省略されエッジをカットする代わりに確率を減ずる場合、単方向エッジの確率を減ずる例は次の通りである。例えば、図9の単方向エッジe(1,2)に対する確率を減ずる場合は次のようにすればよい。当初、均等な確率を割り当てていたとすると、単方向エッジe(1,2)の遷移に対応する確率p(1,2)の他にノード1からの遷移に対応する確率はp(1,4)であって、
p(1,2)＝1/2, p(1,4)＝1/2
となる。これに対して、単方向エッジe(1,2)に対する確率を減じた後は例えば次のようになる。
p(1,2)＝1/2−z, p(1,4)＝1/2＋z
ここで、zは0＜z＜1/2の定数である。
【０１１１】
なお、単方向エッジe(i,j)に対する確率p(i,j)＝1の場合、すなわちノードiには(自身へ至る単方向エッジ以外に)ノードjへと至る単方向エッジのみが接続されており、その他のノードkへと至る双方向エッジe(i,k)が存在しない場合、減じた値を割り振るエッジが存在せず、そもそも当該確率p(i,j)＝1を減ずることができない。この場合は、減じて得られる遷移確率行列の定常分布π_RED^L_cには、減ずる前の定常分布からの変化がなかったものとしてステップS4〜S6を実行すればよい。
【０１１２】
なおまた、当該別実施形態において多様性ゲインの算出手法について、単方向エッジを対象とする場合と双方向エッジを対象とする場合とで別の手法を用いるようにしてもよい。特にステップS7にて定数GAINを利用する場合に、単方向エッジに対する定数と双方向エッジに対する定数とで別の定数を設定するようにしてもよい。また、同じ定数GAINを利用して、後述のコスト関数におけるパラメータを調整してもよく、最終的に生成される動きに対しては同様の効果が得られる。
【０１１３】
音情報解析部2は、音楽ファイルや音声ファイルなどとして入力された音情報に対して、音情報のビートや音の盛り上がり情報などの音特徴の抽出を行う。具体的には例えば、音楽ファイルや音声ファイルから入力された音情報データより、以下の非特許文献4で示される手法を利用して、ビートの時刻と、ビートの間隔と、各ビート区間における盛り上がりの音特徴量とを抽出することができる。
【０１１４】
[非特許文献4] M.Goto，"An Audio-based Real-time Beat Tracking System for Music With or Without Drum-sounds"，Journal of New Music Research，2001
【０１１５】
動き生成部6では、音情報解析部2で得られた音特徴量に基づき、多様性情報設定部5で設定された多様性に関するゲイン情報（もしくは事前に統合されたエッジ制御重み）を利用して、音情報に合わせた動きを生成する。
【０１１６】
具体的には、まず同期部61が、音の最初のビート時刻において、モーショングラフの初期ノードから遷移するパスを決定する（音と動きの先頭の同期をとる）。ここで初期ノードには、元の個別の動きデータの最初のビートフレームに相当するノードが選択される（複数動きデータがあれば、そのいずれかから選択する）。遷移するパス（生成する動き）は、特許文献1や非特許文献1に示されているように、音の盛り上がり方と動きの盛り上がり方（単方向エッジの重み）がパタンとして似ている（両者の差分が小さい）かによって決定される。
【０１１７】
具体的には同期部61は、特許文献1に示されているように、音と動きの盛り上がりに関するコスト関数を定義し、始点から遷移候補ノードに遷移するまでに累積するコストが最小となるパスを動的計画法によって求め、最適パスとして選択する。その際に、双方向エッジで遷移する際には、上述の双方向エッジにおいて重み（閾値で上限設定）がペナルティとして作用する。さらにコスト関数を、２回以上経過するエッジのコストが高くなるよう、例えば既に通過した回数の多さや、直前に通過した時点からの遷移数の少なさに応じて高コストとなるよう設計してもよい。
【０１１８】
本発明では、ここで、双方向エッジの滑らかさに関する重み（滑らかさのペナルティとして作用）と多様性に関する重みである多様性に関するゲインとを考慮するコスト関数を利用する。ノードn_iからノードn_jに遷移する際のコストeCost(i,j)は、(式17)で求まる。なお，パラメータβは，重みをコストにどれだけ寄与させるかというスケーリングパラメータである．
【０１１９】
【数１７】
2013218479.tif 000019
【０１２０】
ただし、I(k)はビートkにおける音特徴量とし、w_M_xyは単方向エッジの重み(滑らかさに関する重み)、w_B_xyは双方向エッジの重み(滑らかさに関する重み)、g_xyは多様性に関するゲイン(多様性に関する重み)である。また、E1は単方向エッジの集合で、E2は双方向エッジの集合である。αは結合パラメータであり、0〜1の範囲の実数であり、所定の値とする。
【０１２１】
また、事前に、滑らかさのペナルティと多様性に関するゲインを統合したエッジ制御重みw_MERGEを求めていれば(式17)の代わりに(式18)としてもよい。
【０１２２】
【数１８】
2013218479.tif 000020
【０１２３】
また，(式17)及び(式18)では，多様性に関する重みを，動き特徴量と音特徴量との差分に対して，乗算的に与えているが，(式19)や(式20)のように加算的に与えてもよい．乗算的な重みは，動き特徴量と音特徴量との差分に依存して作用するが，加算的な重みは，動き特徴量と音特徴量の差分に依存せず，独立に作用することになる． 
【０１２４】
【数１９】
2013218479.tif 000021
【０１２５】
【数２０】
2013218479.tif 000022
【０１２６】
さらには，双方向エッジにおいて動きの滑らかさに関する重みは考慮せず，多様性に関する重みのみを考慮して，コスト関数を(式21)，(式22)で表してもよい．
【０１２７】
【数２１】
2013218479.tif 000023
【０１２８】
【数２２】
2013218479.tif 000024
また，単方向エッジにも多様性に関する重みが付与される場合には，(式23)または(式24)のように，コスト関数を記述してもよい．ここで、単方向エッジe(i,j)∈E1における多様性に関する重みg_ijは、前述の図7の別の一実施形態にて多様性ゲインとして算出したものをそのまま利用すればよい。
【０１２９】
【数２３】
2013218479.tif 000025
【０１３０】
【数２４】
2013218479.tif 000026
【０１３１】
合成部62は、この最適パスでモーショングラフ上のノード間を遷移しながら、各ノードに対応する動きデータの断片を連結することによって新たな動きデータを生成する。実際には、ノード自体はビートフレームのポーズを表しているため、遷移に伴う動きデータ断片の連結によって動きが生成されることになる。
【０１３２】
当該連結に際して、単方向エッジによる遷移であれば、ビートフレーム間のフレームが実際に存在するため、それをそのまま生成すべき動きデータの各断片として利用して連結すればよい。こうして、ある１つの動きデータから抽出されたノードを単方向エッジによって順次遷移するパスに対しては、合成部62は当該元の動きデータと一致する動きデータを生成する。
【０１３３】
しかしながら遷移パスが双方向エッジの場合は、ビートフレーム同士は異なる動きデータに属するものであるか、同一の動きデータに属しても隣接していないものである。すなわち、当該ビートフレーム間のフレームは実際には存在しない。そこで、合成部62は当該フレームを合成する。その際に、ブレンディングという技術を用いる。ビートフレーム及びその前後のフレームを考慮して、両者の間で平均化を施すことによって、ある動きから別の動きに遷移する際の動きを滑らかに生成することができる。これには、特許文献1と同様の手法を用いればよい。
【０１３４】
動き再生部7は、動き生成部6で生成された新たな動きデータを、ＰＣのディスプレイや携帯端末などで音情報と共に提示する。ユーザによって選択された音情報を再生しつつ、動き生成部で生成された音情報と同期し、かつ音の盛り上がりと動きの盛り上がりも相関のある動きを、適当に選択された3Dキャラクタ（CGモデル）が行っている映像を再生する。音のビートと動きデータのビート(ノード)との同期に際して、動きデータの時間軸を適宜伸縮してよい。
【０１３５】
以上のように、本発明によれば、音と同時にキャラクタの動きを再生可能なコンテンツを楽しむユーザにとっては、従来，動きの滑らかさを維持した上で、その多様性が向上するため、飽きずにコンテンツを見ることができる。技術的には、滑らかさと多様性のバランスをコスト関数のレベルで制御できるようになり，かつ妥当なパラメータに設定した際に，従来よりも生成されるモーションのクオリティを総合的に高めることができる．
【０１３６】
図10は、本発明の一実施形態に係る動き生成装置1の機能ブロック図である。当該実施形態では、動き生成装置1は、モーショングラフ生成部4、多様性情報設定部5及び動き生成部6を備える。当該各部の機能は以上説明してきたものと同様である。図1の構成との差異が次の[A]〜[C]の通りである。
【０１３７】
[A]動きデータベース3を備える代わりに(1)に示すように、動きデータベース3に保存されているのと同様な複数の動きデータをモーショングラフ生成部4で読み込むようにする。
【０１３８】
[B]音情報解析部2を備えて入力音を解析する代わりに(2)に示すように、予め区間分けされ特徴量が各区間に定義された所定の時系列データ(有限長)を、動き生成部6で読み込むようにする。当該時系列データは音情報に限らず、任意の種類のデータが利用できる。当該各区間で定義された特徴量を前述の音情報の場合における各ビート区間の盛り上がりに相当するものとして扱うことで、動き生成部6は前述の場合と同様に動きを生成することができる。
【０１３９】
[C]動き再生部7を省略して(3)に示すように、動きデータを出力させるようにする。
【０１４０】
すなわち、本発明は音情報に限定されず、上記のような形式を有する所定の時系列データであれば、データの種類を問わず適用可能であって、当該任意の種類の時系列データに基づいて当該時系列データにおける特徴量の変化系列に即した動きデータを生成することができる。特徴量には、当該時系列データの種類に応じた所望のものを採用することができ、予めそのような特徴量を求めて時系列データに対応づけておけばよい。
【符号の説明】
【０１４１】
1…動き生成装置、4…モーショングラフ生成部、5…多様性情報設定部、6…動き生成部、41…キーフレーム抽出部、42…単方向エッジ設定部、43…双方向エッジ設定部、51…グラフ分割部、52…定常分布算出部、53…多様性ゲイン算出部、61…同期部、62…合成部
【図１】
2013218479.tif 000027
【図２】
2013218479.tif 000028
【図３】
2013218479.tif 000029
【図４】
2013218479.tif 000030
【図５】
2013218479.tif 000031
【図６】
2013218479.tif 000032
【図７】
2013218479.tif 000033
【図８】
2013218479.tif 000034
【図９】
2013218479.tif 000035
【図１０】
2013218479.tif 000036