(57)【特許請求の範囲】
【請求項１】
所定のパラメータがそれぞれ異なる値である場合に対応する複数のデータを用いて、前記所定のパラメータが特定の値である場合に対応する特定データを生成するように制御する制御部と、
前記特定データに基づいて、所定のコンピュータグラフィックス（ＣＧ）モデルを再生する再生部と、を有し、
前記所定のパラメータは、前記所定のＣＧモデルの動きを指定するテンポ（Beats  Per  Minute（ＢＰＭ））、前記所定のＣＧモデルの動きのノリ及び前記所定のＣＧモデルの動きの質の少なくとも１つを示すパラメータであり、
前記複数のデータは、前記所定のＣＧモデルのモーションデータであり、それぞれ前記所定のＣＧモデルの構成要素の座標を拍単位で時系列に指定するための時系列情報を含むことを特徴とする装置。
【請求項２】
前記複数のデータは、ダンスモーションのデータであり、
前記所定のＣＧモデルの少なくとも１つの構成要素の前記複数のデータは、足が接地するタイミング又は動きが静止するタイミングについて同じ座標を示すことを特徴とする請求項１に記載の装置。
【請求項３】
前記制御部は、前記複数のデータのうち、前記所定のパラメータが第１の値である場合に対応する第１のデータにおいて前記第１の値を前記特定の値に合わせるように生成したデータと、前記所定のパラメータが第２の値である場合に対応する第２のデータにおいて前記第２の値を前記特定の値に合わせるように生成したデータと、を用いて、前記特定データを生成することを特徴とする請求項１に記載の装置。
【請求項４】
前記複数のデータは、ＳＭＦ（Standard  MIDI  File）フォーマットに準拠するデータ構造の同じチャンネルに含まれることを特徴とする請求項１に記載の装置。
【請求項５】
前記所定のパラメータは、ＳＭＦ（Standard  MIDI  File）フォーマットで規定される信号又はＯＳＣ（Open  Sound  Control）メッセージに含まれることを特徴とする請求項１に記載の装置。
【請求項６】
前記複数のデータの数及び各データに対応する前記所定のパラメータの値の少なくとも１つが、時間で変動することを特徴とする請求項１に記載の装置。
【請求項７】
前記制御部は、前記特定の値が第３の値から第４の値に変動し、かつ、前記第３の値と前記第４の値との差分の絶対値が所定の閾値以上である場合、前記特定の値の変動のタイミングから所定の期間において、前記特定の値が前記第３の値と前記第４の値の間に含まれると想定して、前記特定データを生成するように制御することを特徴とする請求項１に記載の装置。
【請求項８】
前記複数のデータは、所定のフレーム周期ごとに、前記所定のＣＧモデルの位置情報を含み、
前記所定のフレーム周期は、拍の長さと、単位時間あたりのフレーム数を掛けて算出されることを特徴とする請求項１に記載の装置。
【請求項９】
コンピュータに、
所定のパラメータがそれぞれ異なる値である場合に対応する複数のデータを用いて、前記所定のパラメータが特定の値である場合に対応する特定データを生成するように制御するステップと、
前記特定データに基づいて、所定のコンピュータグラフィックス（ＣＧ）モデルを再生するステップと、を実行させ、
ここで、前記所定のパラメータは、前記所定のＣＧモデルの動きを指定するテンポ（Beats  Per  Minute（ＢＰＭ））、前記所定のＣＧモデルの動きのノリ及び前記所定のＣＧモデルの動きの質の少なくとも１つを示すパラメータであり、
前記複数のデータは、前記所定のＣＧモデルのモーションデータであり、それぞれ前記所定のＣＧモデルの構成要素の座標を拍単位で時系列に指定するための時系列情報を含む
るためのプログラム。
【請求項１０】
前記制御するステップは、前記複数のデータのうち、前記所定のパラメータが第１の値である場合に対応する第１のデータにおいて前記第１の値を前記特定の値に合わせるように生成したデータと、前記所定のパラメータが第２の値である場合に対応する第２のデータにおいて前記第２の値を前記特定の値に合わせるように生成したデータと、を用いて、前記特定データを生成するステップを含むことを特徴とする請求項９に記載のプログラム。
【請求項１１】
前記複数のデータは、ＳＭＦ（Standard  MIDI  File）フォーマットに準拠するデータ構造の同じチャンネルに含まれることを特徴とする請求項９に記載のプログラム。
【請求項１２】
所定のパラメータがそれぞれ異なる値である場合に対応する複数のデータを用いて、前記所定のパラメータが特定の値である場合に対応する特定データを生成するように制御する工程と、
前記特定データに基づいて、所定のコンピュータグラフィックス（ＣＧ）モデルを再生する工程と、を有し、
前記所定のパラメータは、前記所定のＣＧモデルの動きを指定するテンポ（Beats  Per  Minute（ＢＰＭ））、前記所定のＣＧモデルの動きのノリ及び前記所定のＣＧモデルの動きの質の少なくとも１つを示すパラメータであり、
前記複数のデータは、前記所定のＣＧモデルのモーションデータであり、それぞれ前記所定のＣＧモデルの構成要素の座標を拍単位で時系列に指定するための時系列情報を含むことを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３次元コンピュータグラフィックスの制御に関する。
【背景技術】
【０００２】
近年、ハードウェアの高性能化に伴って、３次元コンピュータグラフィックス（３ＤＣＧ（Three  Dimensional  Computer  Graphics）、単にＣＧ（Computer  Graphics）などともいう）が盛んに利用されるようになってきている。また、３ＤＣＧでキャラクタ（ＣＧモデル）を表現するために、様々なデータ構造が提案されている。例えば、人間などの複雑な骨格構造を持つキャラクタに適したデータ構造が提案されている（例えば、特許文献１及び２）。このようなＣＧモデル及びデータ構造を用いて、ＣＧのアニメーション動画を作成することができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第３３３７９３８号公報
【特許文献２】特許第３３８０１５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＣＧモデルの利用シーンが多様化するにつれ、ＣＧモデルの動き（モーション）を、所定のテンポに同期するように再生したいという要求が高まっている。例えば、速さを変えて再生する技術（倍速再生など）を利用することが考えられる。しかしながら、あるモーションの再生速度を変えただけでは、モーションの内容が変わらないため、ＣＧモデルの動作が自然に見えない場合があるという課題がある。
【０００５】
本発明はかかる点に鑑みてなされたものであり、ＣＧモデルをテンポに合わせて動作させる場合であっても、自然な動作を実現することができる装置、プログラム及び情報処理方法を提供することを目的の１つとする。
【課題を解決するための手段】
【０００６】
本発明の一態様に係る装置は、所定のパラメータがそれぞれ異なる値である場合に対応する複数のデータを用いて、前記所定のパラメータが特定の値である場合に対応する特定データを生成するように制御する制御部と、前記特定データに基づいて、所定のコンピュータグラフィックス（ＣＧ）モデルを再生する再生部と、を有し、前記所定のパラメータは、前記所定のＣＧモデルの動きを指定するテンポ（Beats  Per  Minute（ＢＰＭ））、前記所定のＣＧモデルの動きのノリ及び前記所定のＣＧモデルの動きの質の少なくとも１つを示すパラメータであり、前記複数のデータは、前記所定のＣＧモデルのモーションデータであり、それぞれ前記所定のＣＧモデルの構成要素の座標を拍単位で時系列に指定するための時系列情報を含むことを特徴とする。
【発明の効果】
【０００７】
本発明によれば、ＣＧモデルをテンポに合わせて動作させる場合であっても、自然な動作を実現することができる。
【図面の簡単な説明】
【０００８】
【図１】ＢＰＭが変動する場合における、単純なモーションスケーリングと、本発明の一実施形態に係るマージ方法との比較の一例を示す図である。
【図２】本発明の一実施形態に係る情報処理システムの概略構成の一例を示す図である。
【図３】本発明の一実施形態に係るユーザ端末の機能構成の一例を示す図である。
【図４】骨格構造（多関節構造）を有するスケルトンモデルの一例を示す図である。
【図５】ＢＰＭの異なる複数のモーションデータを提案マージ方法によりマージする一例を示す図である。
【図６】マージ用パラメータとしてＢＰＭ及びテンションを利用する場合の１チャンネルに含まれるノートオン信号の一例を示す図である。
【図７】補間の一例を示す図である。
【図８】時間経過に伴うモーションデータと対応するコリオデータの一例を示す図である。
【図９】ＢＰＭが急激に変動する場合の提案マージ方法の一例を示す図である。
【図１０】マージ用パラメータを制御する制御装置の全体図である。
【図１１】図１０の制御装置の一部の拡大図である。
【発明を実施するための形態】
【０００９】
本発明者らは、過去に、ＣＧモデルの動きをテンポベースで時系列に指定する新たなデータ構造を着想し、テンポ（ＢＰＭ：Beats  Per  Minute）に追従してＣＧモデルの動作を再生する装置等を発明した（特願２０１５−０７７１６２を参照）。当該発明によれば、例えば人の動きをテンポに合わせてモーションデータ（ＣＧモデルの動きを表すデータ）として記録して用いることで、ＢＰＭの変動に追随してテンポにぴたりと合った動きを再生することができる。
【００１０】
なお、上記データ構造は、振り付け（choreography）データフォーマット、コリオデータフォーマットなどと呼ばれてもよい。また、コリオデータフォーマットで表現されるデータ、コリオデータフォーマットに準拠するデータ（例えば、コリオデータフォーマットに変換可能なフレーム単位の時系列データを含む）などのコリオデータフォーマットと互換性のあるデータは、コリオデータ、ダンスコリオデータなどと呼ばれてもよい。
【００１１】
本発明者らは、コリオデータの利用を検討する中で、動きの変化をより自然に表現するために必要な要素に着目した。そして、一般的な動きは、テンポに従って基本となる動きが変化することを発見した。
【００１２】
例えば、手と足を左右逆に交互に動かす「歩行」という動きは、テンポ（この場合、ピッチと呼ばれてもよい）を上げていくと、途中から両足が地面から離れる瞬間が生まれることで「走行」に変わり、さらにテンポを上げるとだんだんと前傾姿勢になる、と遷移する方が自然な変化に感じられる。
【００１３】
また、ダンスの場合、テンポを上げると、スピードに追いつかせるために手や足の動きを小さくしたり、逆に動きが激しく（大きく）なったりすることがある。
【００１４】
しかしながら、従来のテンポを変える方法では、「歩行」のモーションデータのテンポを上げただけでは、手と足を左右逆に交互に動かすという基本的な動きは変わらず、「走行」には至らない。したがって、従来方法を用いてテンポを変えると、ＣＧモデルの動作が自然に見えない場合があるという課題がある。
【００１５】
そこで、本発明者らは、ＢＰＭの変動によって、モーションデータ自体を変更することを着想した。これにより、例えば、ＢＰＭによって異なったポーズ（モーションデータ）を保有しておき、ＢＰＭの変動によって、自動的に異なるポーズに切り替える構成を実現することができる。また、ＢＰＭによる自動切り替え制御ではなく、手動により（恣意的に）リアルタイムで、同じ動きでも激しく／おとなしく動かすなど変化させる制御が可能となる。
【００１６】
図１は、ＢＰＭが変動する場合における、単純なモーションスケーリングと、本発明の一実施形態に係るマージ方法との比較の一例を示す図である。ここで、単純なモーションスケーリング（シンプルスケーリング）では、ＢＰＭ＝９０の歩行モーションを、ＢＰＭの変化に応じて拍を伸縮させて新たなモーションを生成する。一方、本発明の一実施形態に係るマージ方法（以下、提案マージ方法、単にマージ方法ともいう）では、例えば、ＢＰＭ＝９０の歩行モーションと、ＢＰＭ＝１８０の走行モーションと、を基本となるデータ（マージ元データ、ベースデータなどともいう）として有するものとし、ＢＰＭの変化に応じてこれらのモーションをマージする。
【００１７】
図１ＡはＢＰＭ＝９０の場合を示しており、いずれの方法もＢＰＭ＝９０の歩行モーションに一致する。図１ＢはＢＰＭ＝１４０の場合を示している。図１Ｂのシンプルスケーリングでは、速足で歩くモーションが再生される。一方、図１Ｂの提案マージ方法では、複数のベースモーションをマージすることで、歩行と走行の中間のようなモーションが再生される。
【００１８】
ＢＰＭを９０から１８０に徐々に上げていくことを考えると、シンプルスケーリングでは歩行が速足に変化する動作を実現するに過ぎないが、提案マージ方法では歩行から走行に徐々に変化していく動作を実現することができる。このように、提案法によれば、ＢＰＭの変化に応じて滑らかに異なる動きの遷移を行うことができるため、より自然な動きを好適に再生することができる。
【００１９】
以下、本発明の実施形態について、添付図面を参照して詳細に説明する。
【００２０】
（情報処理システム）
まず、本発明が適用される情報処理システムについて説明する。図２は、本発明の一実施形態に係る情報処理システムの概略構成の一例を示す図である。図２に示す情報処理システム１は、ユーザ端末１０と、サーバ２０と、電子楽器３０と、ネットワーク４０と、を含む。
【００２１】
ユーザ端末１０、サーバ２０及び電子楽器３０は、ネットワーク４０を介して相互に接続可能な装置であり、コリオデータを用いて、ＣＧモデルに関する処理（送受信、変換、動画生成、表示など）を行う。
【００２２】
ユーザ端末１０は、携帯電話、スマートフォン、タブレット型端末などの携帯端末（移動通信端末）であってもよいし、パソコン、多機能テレビ、セットトップボックス（例えば、Apple  TV（登録商標）、Chromecast（登録商標））などの固定通信端末であってもよい。
【００２３】
サーバ２０は、ユーザ端末１０及び／又は電子楽器３０との間でコリオデータを送信及び／又は受信する機能を有する装置である。なお、当該コリオデータの送受信は、ユーザ端末１０及び／又は電子楽器３０からの要求により行われてもよいし、周期的又は所定のタイミングで行われてもよい。また、サーバ２０は、コリオデータを用いて生成したデータ（例えば、動画など）を、ユーザ端末１０及び／又は電子楽器３０との間で送受信してもよい。
【００２４】
電子楽器３０は、ＭＩＤＩ（Musical  Instrument  Digital  Interface）データ等の演奏情報に応じた音を発生する機能を有する装置である。例えば、電子楽器３０は、電子ピアノ、シンセサイザーなどであるが、これに限られない。
【００２５】
ネットワーク４０は、機器間を接続し情報の通信を可能とする。例えば、ネットワーク４０は、インターネット、モバイルネットワーク、ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）などの様々なネットワークを含む。なお、ネットワーク４０は、無線で構成されてもよいし、有線で構成されてもよい。
【００２６】
なお、当該システム構成は一例であり、これに限られない。例えば、ユーザ端末１０、サーバ２０及び電子楽器３０は、図１ではそれぞれ複数含まれる構成としたが、各機器の数はこれに限られない。また、情報処理システム１は、ユーザ端末１０、サーバ２０及び電子楽器３０の一部を含まない構成であってもよい。また、ネットワーク４０に接続していないユーザ端末１０などであっても、所定の記憶媒体を接続することで、当該記憶媒体を介してコリオデータの入出力を行ってもよい。
【００２７】
（機器の構成）
図３は、本発明の一実施形態に係るユーザ端末の機能構成の一例を示す図である。図３に示すように、ユーザ端末１０は、送受信部１１と、取得部１２と、再生部１３と、出力部１４と、入力部１５と、生成部１６と、制御部１７と、を有する。ユーザ端末１０は、本発明の一実施形態に係るデータ構造を用いてＣＧモデルに関する情報処理を行う工程を実現する機能を有する。また、ユーザ端末１０は、本発明の一実施形態に係る情報処理装置として、表示装置、送信装置、受信装置、動画生成装置、データ変換装置、データ生成装置などを構成することができる。
【００２８】
なお、図３では、本実施形態における特徴部分の機能ブロックを主に示しており、ユーザ端末１０は、他の処理に必要な他の機能ブロックも有してもよい。また、サーバ２０や、電子楽器３０も、図３に示す機能ブロックの全部又は一部を有してもよく、ユーザ端末１０と同様に本発明に係る情報処理装置（表示装置、送信装置、受信装置、動画生成装置、データ変換装置、データ生成装置など）を構成してもよい。
【００２９】
送受信部１１は、ネットワーク４０を介してコンピュータ間の通信を行うための通信デバイスで構成され、他のユーザ端末１０、サーバ２０、電子楽器３０との間で、コリオデータや必要な情報などの送受信を行う。送受信部１１は、受信したコリオデータを、取得部１２に出力する。また、送受信部１１は、受信した所定のデータ（例えば、ＣＧモデルのモーションデータ）を、生成部１６に出力してもよい。また、送受信部１１は、受信した種々の情報を制御部１７に出力する。
【００３０】
送受信部１１は、本発明に係る技術分野での共通認識に基づいて説明されるトランスミッター／レシーバー、送受信回路又は送受信装置により構成することができる。なお、送受信部１１は、送信部１１１及び受信部１１２から構成されてもよい。また、送受信部１１は、ネットワークデバイス、ネットワークコントローラ、ネットワークカード、通信モジュールなどと呼ばれてもよい。
【００３１】
取得部１２は、送受信部１１及び／又は生成部１６からコリオデータを取得する。取得部１２は、取得したコリオデータを、送受信部１１及び／又は再生部１３に出力する。取得部１２は、送受信部１１で受信した制御信号や、制御部１７からの指示に基づいて、複数のコリオデータから少なくとも１つのコリオデータを選択し、出力するようにしてもよい。
【００３２】
再生部１３は、取得部１２から入力されたデータの再生を行って、出力部１４に出力する。例えば、コリオデータを解釈して、ＣＧ動画の再生に係る信号を出力部１４に出力する。また、所定のコンテンツ（例えば、楽曲、音声などの音データ）の再生を行って、出力部１４に出力してもよい。例えば、コンテンツが音データであれば、コンテンツに係る音声ファイルフォーマットに従って、出力部１４が認識できる形式で再生用信号に変換する。再生部１３は、本発明に係る技術分野での共通認識に基づいて説明されるプレイヤー、画像／映像／音声処理回路、画像／映像／音声処理装置、アンプなどにより構成することができる。
【００３３】
出力部１４は、外部への出力を実施する出力デバイスで構成され、再生部１３から入力されたコンテンツの再生信号の出力を行う。出力部１４は、複数の機能部から構成されてもよい。例えば、出力部１４は、視覚的なデータ（例えば、ＣＧ動画）を表示する表示部と、音データを出力する音声出力部と、から構成されてもよい。表示部は、本発明に係る技術分野での共通認識に基づいて説明されるディスプレイ、モニタなどの表示装置により構成することができる。また、音声出力部は、本発明に係る技術分野での共通認識に基づいて説明されるスピーカーなどの出力装置により構成することができる。
【００３４】
入力部１５は、外部からの入力を受け付ける入力デバイスで構成され、ユーザからの操作により入力を受け付ける。また、入力部１５は、所定の機器や記憶媒体と接続され、データの入力を受け付けてもよい。入力部１５は、入力結果を例えば制御部１７や生成部１６に出力してもよい。入力部１５は、本発明に係る技術分野での共通認識に基づいて説明されるキーボード、マウス、ボタンなどの入力装置や、入出力端子、入出力回路などにより構成することができる。また、入力部１５は、表示部と一体となった構成（例えば、タッチパネル）としてもよい。
【００３５】
なお、入力部１５は、外部環境の情報を取得してもよい。例えば、入力部１５の一部は、静止画像及び／又は動画像を取得するカメラ、音声を取得するマイクロフォン、各種情報を取得するセンサ（タッチセンサ、接地センサ、加速度センサ、傾斜センサ、ジャイロ、温度センサ（サーモグラフィ）、超音波センサ、測域センサ（レーザスキャンセンサ）、無線ビーム（レーダー）など）のいずれか又はこれらの組み合わせにより構成されてもよい。
【００３６】
生成部１６は、送受信部１１、入力部１５、制御部１７などから入力されたデータを用いて、コリオデータを生成する。生成部１６は、本発明の一実施形態に係るマージ方法に基づいて、コリオデータ（モーションデータ）をマージ（合成、生成）することができる。
【００３７】
また、生成部１６は、コリオデータをＯＳＣ（Open  Sound  Control）プロトコルで伝送するためのＯＳＣ形式（ＯＳＣメッセージ）に変換することができる。コリオデータのＭＩＤＩメッセージをＯＳＣメッセージに変換することで、ネットワーク４０を介したより柔軟なモーションデータの制御が可能となる。
【００３８】
生成部１６が生成したデータ／メッセージは、送受信部１１や取得部１２、再生部１３などに出力されてもよい。生成部１６は、本発明に係る技術分野での共通認識に基づいて説明される演算器、演算回路、演算装置などにより構成することができる。
【００３９】
制御部１７は、ユーザ端末１０全体の制御を実施する。例えば、制御部１７は、送受信部１１が所定の信号を送信及び／又は受信するように制御してもよい。また、制御部１７は、取得部１２のデータ取得／出力や、再生部１３の再生、出力部１４の出力、入力部１５の出力、生成部１６の生成／出力などを制御してもよい。制御部１７は、生成部１６が生成したコリオデータなど、各種データをユーザ端末１０の記憶部（メモリ、ストレージなど）に保存するように制御してもよい。制御部１７は、本発明に係る技術分野での共通認識に基づいて説明されるコントローラ、制御回路又は制御装置により構成することができる。
【００４０】
制御部１７は、後述するように、所定のパラメータ（マージ用パラメータ）がそれぞれ異なる値である場合に対応する複数のデータ（例えば、コリオデータ）を用いて、所定のパラメータが特定の値である場合に対応する特定データ（コリオデータ、モーションデータなど）を生成するように制御する。
【００４１】
なお、上記実施形態の説明に用いたブロック図は、機能単位のブロックを示している。これらの機能ブロック（構成部）は、ハードウェア及び／又はソフトウェアの任意の組み合わせによって実現される。また、各機能ブロックの実現手段は特に限定されない。すなわち、各機能ブロックは、物理的に結合した１つの装置により実現されてもよいし、物理的に分離した２つ以上の装置を有線又は無線で接続し、これら複数の装置により実現されてもよい。
【００４２】
例えば、本発明の一実施形態におけるユーザ端末などは、本発明の情報処理方法を実施するコンピュータとして機能してもよい。例えば、上述のユーザ端末１０、サーバ２０及び電子楽器３０の少なくとも１つは、物理的には、プロセッサ、メモリ、ストレージ、通信装置、入力装置、出力装置などを含み、本発明の一態様に係るデータ構造（コリオデータ）を用いてＣＧモデルに関する処理を行うコンピュータ装置として構成されてもよい。
【００４３】
ユーザ端末１０、サーバ２０及び電子楽器３０における各機能は、プロセッサ、メモリなどのハードウェア上に所定のソフトウェア（プログラム）を読み込ませることで、プロセッサが演算を行い、通信装置による通信や、メモリ及びストレージにおけるデータの読み出し及び／又は書き込みを制御することで実現される。
【００４４】
プロセッサは、例えば、オペレーティングシステムを動作させてコンピュータ全体を制御する。プロセッサは、周辺装置とのインターフェース、制御装置、演算装置、レジスタなどを含む中央処理装置（ＣＰＵ：Central  Processing  Unit）で構成されてもよい。例えば、上述の制御部１７や再生部１２などは、プロセッサで実現されてもよい。
【００４５】
また、プロセッサは、プログラム（プログラムコード）、ソフトウェアモジュールやデータを、ストレージ及び／又は通信装置からメモリに読み出し、これらに従って各種の処理を実行する。プログラムとしては、後述の実施形態で説明する動作の少なくとも一部をコンピュータに実行させるプログラムが用いられる。例えば、ユーザ端末１０の制御部１７は、メモリに格納され、プロセッサで動作する制御プログラムによって実現されてもよく、他の機能ブロックについても同様に実現されてもよい。
【００４６】
メモリは、コンピュータ読み取り可能な記録媒体であり、例えば、ＲＯＭ（Read  Only  Memory）、ＥＰＲＯＭ（Erasable  Programmable  ROM）、ＥＥＰＲＯＭ（Electrically  EPROM）、ＲＡＭ（Random  Access  Memory）、その他の適切な記憶媒体の少なくとも１つで構成されてもよい。メモリは、レジスタ、キャッシュ、メインメモリ（主記憶装置）などと呼ばれてもよい。メモリは、本発明の一実施形態に係る無線通信方法を実施するために実行可能なプログラム（プログラムコード）、ソフトウェアモジュールなどを保存することができる。
【００４７】
ストレージは、コンピュータ読み取り可能な記録媒体であり、例えば、フレキシブルディスク、フロッピー（登録商標）ディスク、光磁気ディスク（例えば、コンパクトディスク（ＣＤ−ＲＯＭ（Compact  Disc  ROM）など）、デジタル多用途ディスク、Ｂｌｕ−ｒａｙ（登録商標）ディスク）、リムーバブルディスク、ハードディスクドライブ、スマートカード、フラッシュメモリデバイス（例えば、カード、スティック、キードライブ）、磁気ストライプ、データベース、サーバ、その他の適切な記憶媒体の少なくとも１つで構成されてもよい。ストレージは、補助記憶装置と呼ばれてもよい。
【００４８】
通信装置は、例えば、上述の送受信部１１である。入力装置は、例えば、上述の入力部１５である。出力装置は、例えば、上述の出力部１４である。また、プロセッサやメモリなどの各装置は、情報を通信するためのバスで接続される。バスは、単一のバスで構成されてもよいし、装置間で異なるバスで構成されてもよい。
【００４９】
また、ユーザ端末１０、サーバ２０及び電子楽器３０は、マイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ：Digital  Signal  Processor）、ＡＳＩＣ（Application  Specific  Integrated  Circuit）、ＰＬＤ（Programmable  Logic  Device）、ＦＰＧＡ（Field  Programmable  Gate  Array）などのハードウェアを含んで構成されてもよく、当該ハードウェアにより、各機能ブロックの一部又は全てが実現されてもよい。例えば、プロセッサは、これらのハードウェアの少なくとも１つで実装されてもよい。
【００５０】
本発明の一態様においては、上述したような各装置（ユーザ端末１０、サーバ２０及び電子楽器３０）がコリオデータを利用する。以下では、まずコリオデータフォーマットについて概説した後、本発明の一実施形態に係るモーションデータのマージ方法について説明する。
【００５１】
（コリオデータフォーマット）
本発明の一態様に係るコリオデータフォーマットは、ＣＧモデルの構成要素の座標を、拍単位で時系列に指定するための時系列情報を含むデータのフォーマットである。なお、「拍単位」とは、「拍」で特定可能な単位であることをいい、１拍単位に限られず、８分の１拍単位などの分数拍単位や、２拍単位などの複数拍単位も含む。
【００５２】
具体的なフォーマットの説明の前に、まずＣＧモデルの表現方法について説明する。本明細書では、骨格構造（多関節構造）を有するスケルトンモデルをＣＧモデルとして用いる場合を例に説明するが、本発明を適用可能なＣＧモデルはこれに限られるものではない。
【００５３】
図４は、骨格構造（多関節構造）を有するスケルトンモデルの一例を示す図である。図４Ａは、スケルトンモデルの各構成要素及び基準姿勢を示し、図４Ｂは、スケルトンモデルの構成要素間の関係を示す。なお、図４に示す例は基本的な構成であり、さらに追加の構造（例えば、皮膚、指、毛髪、衣装、帽子、ステッキなど）を有していてもよい。
【００５４】
図４Ａに示すモデルは、複数の骨格から構成されており、各骨格は２つの関節点及びこれらをつなぐ骨（ボーン）から構成されている。図４Ａの「Ｎ」、「ＲＳ」などは骨の名称であり、この例では１８本の骨が示されている。
【００５５】
一般的にスケルトンモデルは、ある関節点を基準点（ルート）として、各関節点を介して接続される骨が階層構造を有するように構成されている。例えば、図４Ａの階層構造は図４Ｂのように表される。図４の場合、Ｂ１及びＷの間の関節点がルートである。また、関節点や骨を比較する際、ルートに近い方を親といい、ルートから遠い方を子という。
【００５６】
ＣＧモデルを３次元空間に配置する際は、当該モデルを、ルートの位置を基準とした当該モデル用の座標系（ローカル座標系）上にモデリングする。そして、３次元空間全体を表す座標系（ワールド座標系、グローバル座標系）に、モデリングされたＣＧモデルをマッピングする。
【００５７】
構成要素（関節点、骨など）の座標は、３次元空間の絶対座標又は相対座標として表されてもよいし、所定の関節点を基準とした所定の骨の相対角度として表されてもよい。例えば、骨の相対角度で座標を表現する場合、ＣＧモデルの基準姿勢を図４ＡのようなＴ字姿勢とし、当該姿勢時の各骨の角度を０°としてもよい。
【００５８】
なお、階層構造やルートの位置は図４の例に限られない。例えば、ルートの位置は両足の間（ＲＦ３とＬＦ３との間）であってもよい。また、各構成要素の座標及び／又は角度は、ルートから末端にかけて順番に計算するフォワードキネマティクスを用いて算出してもよいし、子の位置から親の位置を逆計算するインバースキネマティクスを用いて算出してもよいし、両者の組み合わせ又はその他の方法を用いてもよい。また、骨格構造においては、上記の階層構造だけでなく、階層構造の初期状態や、各骨の長さや、各関節の可動範囲などが設定されてもよい。
【００５９】
（ＳＭＦフォーマットとコリオデータフォーマット）
本発明の一態様におけるコリオデータフォーマットは、電子楽器の演奏情報の保存形式に準拠することが好ましい。特に、広く普及しているＭＩＤＩデータの保存形式が好適である。次に、ＭＩＤＩデータの保存形式の１つであるＳＭＦ（Standard  MIDI  File）フォーマットの概略を説明し、ＳＭＦフォーマットに準拠するコリオデータフォーマットを説明する。
【００６０】
ＳＭＦフォーマットは、所定の制御情報を含むヘッダチャンクと、演奏データを含むトラックチャンクから構成される。演奏データは、デルタタイム及びＭＩＤＩイベントの組み合わせで構成される。ここで、デルタタイムは次のＭＩＤＩイベントが起こるまでの時間を表す。また、ＭＩＤＩイベントは演奏内容を表すものであり、例えば、ノートオン（音を出す）、ノートオフ（音を止める）などがある。
【００６１】
ノートオン信号は、対応するデルタタイムの経過後に特定の音を出すという信号である。ノートオン信号は、例えば、１６進数で「９ｎ  ｋｋ  ｖｖ」という３ｂｙｔｅで表現でき、これは「チャンネルｎでノート番号ｋｋの音をベロシティｖｖで発音する」ということを意味する。ノートオン信号のチャンネルは楽譜におけるパート（所定の楽器の演奏パート）を表し、ノート番号は音の高さを表し、ベロシティは楽器（鍵盤）を叩く速度（強さ）を表す。
【００６２】
ノートオフ信号は、対応するデルタタイムの経過後に特定の音を消すという信号である。ノートオフ信号は、例えば、１６進数で「８ｎ  ｋｋ  ｖｖ」という３ｂｙｔｅで表現でき、これは「チャンネルｎでノート番号ｋｋの音をベロシティｖｖで消音する」ということを意味する。
【００６３】
ノート番号及びベロシティはいずれも１０進数で０〜１２７の数値を取ることができる。なお、ベロシティが０のノートオン信号「９ｎ  ｋｋ  ００」は、「チャンネルｎでノート番号ｋｋの音を消音する」というノートオフ信号と同じ意味を表す。
【００６４】
本発明の一態様においては、各チャンネルを、それぞれＣＧモデルのいずれかの構成要素の座標に関する情報として扱う。つまり、コリオデータフォーマットは、ＣＧモデルの構成要素の座標に関する拍単位の時系列情報を、複数含んで構成されてもよい。ここで、構成要素（例えば、骨、関節点など）の座標に関する情報とは、例えば、構成要素の絶対座標又は相対座標に関する情報であってもよいし、構成要素（例えば、骨）の相対角度として表されてもよい。
【００６５】
ＣＧモデルの構成要素の座標に関する情報としては、ノートオン信号のノート番号及び／又はベロシティを用いることができる。この場合、あるタイミングにおいて、所定の構成要素の特定の軸の角度及び／又は座標は、当該タイミングに対応する拍に配置されたノートオン信号から取得することができる。また、ノートオン信号及び／又はノートオフ信号のデルタタイムは、ＣＧモデルの構成要素の座標が変化する拍の長さに関する情報として用いられてもよい。
【００６６】
例えば、ノートオフ信号に対応するデルタタイムは、当該ノートオフ信号の直前のノートオン信号から算出される角度（又は座標）から、当該ノートオフ信号の直後のノートオン信号から算出される角度（又は座標）に遷移するのにかかる拍の長さを示してもよい。各ノートに関連付けられた所定の構成要素の角度及び／又は座標の遷移は、所定の規則に従って行われてもよい。例えば、所定の補間方法に基づいて、遷移中の速度や加速度を決定して用いてもよい。なお、デルタタイムは、正数であることが好ましい。
【００６７】
ノートオン／オフ信号はＳＭＦフォーマットで最も頻繁に用いられる信号であるため、ＭＩＤＩに対応した電子楽器などにおいて、処理を高速に行うことが可能である。
【００６８】
ノートオン信号においては、ノート番号により、比較的大きな単位で座標又は角度を大まかに特定し、ベロシティにより、比較的小さな単位で座標又は角度を詳細に特定してもよい。また、上記とは逆に、ベロシティにより、比較的大きな単位で座標又は角度を大まかに特定し、ノート番号により、比較的小さな単位で座標又は角度を詳細に特定する構成としてもよい。さらに、システムエクスクルーシブ（ＳｙｓＥｘ）イベントなど、ノートオン／オフ以外の信号を用いてＣＧモデルの構成要素の座標に関する情報が特定されてもよい。
【００６９】
例えば、ノートオン信号に関して、ノート番号が１増加するごとに、所定の角度が５°増加し、ベロシティが１増加するごとに、所定の角度が０．０５°増加するように規定されてもよい。また、位置に関しても同じように規定されてもよい。なお、ノート番号などの変化に伴う変化量はこれに限られない。また、ノート番号やベロシティの変化と角度及び／又は位置の変化量との関連付けに関する情報が通知（設定）されてもよい。
【００７０】
構成要素の座標に関する情報は、例えば、ポジション情報及びポーズ情報に分類することができる。ポジション情報は、ＣＧモデルの初期位置（例えば、ＣＧ動画の開始時における位置）からの相対位置を示す情報であり、例えばＣＧモデルの基準点（ルート）のｘ軸座標、ｙ軸座標、ｚ軸座標及び当該基準点の回転角度で表されてもよい。また、ポーズ情報は、ＣＧモデルの基準姿勢に基づく角度又は位置を示す情報であり、例えば図４ＡのようなＴ字姿勢を０°とし、いくつかの数の指定ボーンに関して、親骨と子骨との間のｘ軸相対角度、ｙ軸相対角度及びｚ軸相対角度で表されてもよい。
【００７１】
各構成要素（例えば、骨）の各座標に関する情報を、いずれのチャンネルに割り当てるかは、システムの運用形態などに応じて適宜選択することができる。１チャンネルにつき、構成要素の座標に関する情報を、１つ割り当てる構成としてもよいし、複数割り当てる構成としてもよい。例えば、１チャンネルで、所定の骨のｘ軸相対角度、ｙ軸相対角度及びｚ軸相対角度を全て含むように構成することができる。
【００７２】
また、コリオデータフォーマットが準拠するＳＭＦフォーマットは、特に制限されない。例えば、１トラックに全チャンネルの情報を含むフォーマット０であってもよいし、複数トラックで構成されるフォーマット１であってもよいし、フォーマット２であってもよい。さらに、既存のフォーマット０〜２でない新たなフォーマットを用いてもよい。また、コリオデータフォーマットは、ＣＧモデルの構成要素の座標を拍単位で時系列に指定するための情報を有するものであれば、ＳＭＦフォーマットに限られない。
【００７３】
以上説明したように、本発明の一実施形態に係るコリオデータフォーマットは、例えばＳＭＦフォーマットと互換性を持ち、ＭＩＤＩにおけるチャンネルごとに、ＣＧモデルの構成要素の座標を拍単位で時系列に指定するための時系列情報（ノートオン／オフ信号の繰り返し）を含む。データ構造をＳＭＦフォーマットとすることで、ＣＧモデルの動作と、電子楽器など他の機器又はシステムとの連携が容易になる。
【００７４】
コリオデータとしては、所定の拍の長さに対応するフレーム周期ごとに、所定の数の指定ボーンの３つの特定角によるポーズ情報と、４軸からなるポジション情報と、を持つデータが好適である。当該所定のフレーム周期は、所定のテンポ（例えば、ＢＰＭ）に基づいて特定することができる。
【００７５】
例えば、当該所定のフレーム周期は、所定のテンポにおけるある拍の長さ（例えば、１拍分、８分の１拍分など）に対応する周期であってもよい。また、当該所定のフレーム周期は、拍の長さに、単位時間あたりのフレーム数（例えば、ＦＰＳ（Frames  Per  Second））を掛けることで算出できる。なお、コリオデータとして含まれる時系列情報は、８分の１拍単位に限られず、データ量と元モーションデータの再現性とのトレードオフなどを考慮して適宜増減させてもよい。
【００７６】
以下、モーションデータはコリオデータフォーマットに従うものとし、モーションデータに含まれるＣＧモデルの構成要素を、単にモーションデータ（コリオデータ）の構成要素とも呼ぶ。
【００７７】
（マージ用パラメータに基づくマージ）
本発明の一実施形態では、図２に示したような装置（例えば、ユーザ端末１０）が、所定のマージ用パラメータに基づいて、複数のモーションデータをマージ（ブレンド、合成などともいう）して新たなモーションデータを生成する。これにより、マージ用パラメータの値を時間経過に伴って変える（制御する）ことで、あるモーションデータから別のモーションデータへの遷移を動的に、かつ自然に行うことができる。
【００７８】
提案マージ方法では、各モーションデータの構成要素（例えば、骨、関節点など）の座標に関する情報を、マージ用パラメータに基づいてマージする。マージ用パラメータは、モーションデータに関連付けられるパラメータであり、例えば、ＢＰＭである。マージ用パラメータの取得方法については、後述する。なお、基本的には、全構成要素の座標に関する情報をマージするものとするが、一部の構成要素の座標に関する情報のみがマージされる構成としてもよい。
【００７９】
具体的なマージ方法としては、線形補間、スプライン補間などを用いた内挿や外挿を用いてもよいし、他の方法を用いてもよい。なお、本明細書における「マージ」は、マージ用パラメータに基づいて選択されたデータをそのまま用いる場合もあることから、複数のデータから少なくとも１つのデータを選択又は生成（合成）することを意味するものとする。
【００８０】
例えば、ＢＰＭ＝ｘのモーションデータ１と、ＢＰＭ＝ｙのモーションデータ２と、をマージしてＢＰＭ＝ｚのモーションデータ３を生成する場合、ｘ、ｙ及びｚに基づいて、モーションデータ１及びモーションデータ２それぞれの構成要素の座標の重み付けを判断し、モーションデータ３の構成要素の座標を算出する。
【００８１】
より一般的には、複数のデータのうち、マージ用パラメータ（例えば、ＢＰＭ）が第１の値である場合に対応する第１のデータにおいて、第１の値を特定の値（例えば、ターゲットＢＰＭ）に合わせるように生成したデータと、マージ用パラメータが第２の値である場合に対応する第２のデータにおいて、第２の値を上記特定の値に合わせるように生成したデータと、を用いて、マージ用パラメータが特定の値である場合に対応するデータ（特定データ）を生成する。
【００８２】
図５は、ＢＰＭの異なる複数のモーションデータを提案マージ方法によりマージする一例を示す図である。モーションデータ４０１及び４０２は、それぞれベースデータであり、それぞれＢＰＭ＝１４０及びＢＰＭ＝１００に対応する（関連付けられている）。
【００８３】
ＢＰＭ＝１００からＢＰＭ＝１４０の間のＢＰＭ（ターゲットＢＰＭ）のモーションを生成する場合は、ベースデータのいずれかのＢＰＭを変更したものとするのではなく、例えば、各ベースデータをターゲットＢＰＭで再生したモーションを１つにマージして新たなモーションを生成する。
【００８４】
図５の場合、ターゲットＢＰＭ＝１２０であり、モーションデータ４０１（ＢＰＭ＝１４０）を遅くしたモーションデータ４１１（ＢＰＭ＝１２０）と、モーションデータ４０２（ＢＰＭ＝１００）を早くしたモーションデータ４１２（ＢＰＭ＝１２０）と、を１つにマージして、モーションデータ４２１（ＢＰＭ＝１２０）を生成する。
【００８５】
なお、複数のベースデータはそれぞれ異なるモーションとすることが好ましいが、同じタイミング（同じ拍）で、少なくとも一部の構成要素の座標が同じ（又は近い座標）になるように構成されることが好ましい。例えば、図５において、モーションデータ４０１は、あるダンスのモーションを示すデータであり、モーションデータ４０２は、モーションデータ４０１の動きの量をより大きくしたモーションを示すデータである。特に、各モーションデータで脚が接地するタイミング（拍）や、動きが静止するタイミングなどが一致するように構成することで、これらのデータをマージした際に不自然な（ぎこちない）モーションが生成されることを抑制することができる。
【００８６】
ここで、上述の例では、マージ用パラメータとしてＢＰＭを用いたが、これに限られない。例えば、マージ用パラメータとして、動きの特性を示すパラメータが用いられてもよい。動きの特性を示すパラメータとしては、動きの大きさ（強度）を示すパラメータや、動きのノリ（リズム感、グルーヴ）を示すパラメータ、動きの質（例えば、男性らしい動き、女性らしい動き）を示すパラメータなどを用いることができる。ここで、動きの大きさを示すパラメータは、テンション（excitement）と呼ばれてもよい。
【００８７】
また、マージ用パラメータとして、複数種類のパラメータ（マージ用パラメータセット）が用いられてもよい。この場合、例えば、マージ用パラメータセットに含まれるマージ用パラメータの値の各組に対応するデータを用いて、マージを行うことができる。これについては後述する。
【００８８】
（マージ対象のデータ）
提案マージ方法は複数のデータをマージするものであるが、当該複数のデータ（マージ対象）は、例えば以下の（１）、（２）、（３）又はこれらの組み合わせが挙げられる：
（１）複数のコリオデータ（モーションデータ）の構成要素の座標に関する情報、
（２）１つのコリオデータ内の複数のチャンネルそれぞれに含まれる構成要素の座標に関する情報、
（３）１つのコリオデータ内の１チャンネルに含まれる複数の構成要素の座標に関する情報。
なお、コリオデータフォーマット以外のフォーマットに従う複数のデータであっても、提案マージ方法を適用することができる。
【００８９】
上記（１）や（２）の場合、各コリオデータや各チャンネルから抽出した複数の構成要素の座標に対して、既に上述したように、マージ用パラメータを用いてマージを実施する。以下では、上記（３）の一例について図６を参照して説明する。
【００９０】
図６は、マージ用パラメータとしてＢＰＭ及びテンションを利用する場合の１チャンネルに含まれるノートオン信号の一例を示す図である。本例では、ＢＰＭ＝９０、１２０及び１４０と、テンション＝１、３及び５と、に対応するコリオデータの一部が示されている。この場合、１チャンネルには、ＢＰＭ３通り×テンション３通り＝計９通りのノートオン信号を含むように構成することができる。
【００９１】
このように、マージ用パラメータ（マージ用パラメータセット）として、ＢＰＭ及びテンションの両方を用いることで、より柔軟な動きの制御を行うことができる。なお、マージ用パラメータセットはＢＰＭ及びテンションの組み合わせに限られず、任意のマージ用パラメータを複数組み合わせて用いてもよい。また、マージ対象が上記（３）の場合に限られず、上記（１）及び（２）の場合であっても、マージ用パラメータとして複数のパラメータを用いる構成としてもよい。
【００９２】
コリオデータの再生装置は、例えば外部から与えられるテンポ（ＢＰＭ）及びテンションに基づいて、各タイミングにおけるチャンネルごとの再生すべきデータを決定する。図６において、ＢＰＭ＝９０及びテンション＝３が指示された場合、再生装置は当該チャネルのデータをノート番号６０のノートオン信号と認識し、データの再生を行う。
【００９３】
なお、所定の信号（例えば、ノートオン信号）が所定のマージ用パラメータに対応することは、ＳＭＦフォーマットで規定される信号（例えば、ノートオフ信号（上記ノートオン信号に対応する（同じノート番号の）ノートオフ信号）や、他のイベント（ＭＩＤＩイベント（例えば、ピッチベンド）、ＳｙｓＥｘイベントなど）、その他の信号）で表されてもよい。
【００９４】
このような信号（データ）とマージ用パラメータとを関連付ける信号は、例えばエクストラコードと呼ばれてもよい。例えば、コリオデータにおいて、各ノートオン信号に対して、対応するＢＰＭやテンションを特定する情報を、エクストラコードを用いて関連付けることができる。また、これらの関連付けは、上記（３）の場合以外にも利用することができる。
【００９５】
また、コリオデータをＯＳＣプロトコルで伝送する場合には、ノートオン信号から変換されたＯＳＣメッセージの引数に、対応するＢＰＭやテンションを特定する情報を含めて送信することができる。
【００９６】
このように、エクストラコードやＯＳＣメッセージにマージ用パラメータを含めることで、動的なマージ方法制御が可能となる。
【００９７】
なお、取得されるマージ用パラメータの値に１対１で対応するデータを有さない場合、ベースデータに対応するマージ用パラメータ（規定（設定）されるマージ用パラメータともいう）に対応するデータから補間を行ってもよい。図７は、補間の一例を示す図である。本例では、図６と同様にＢＰＭとテンションが３通りずつ規定されている。
【００９８】
図示するように、例えば取得されるマージ用パラメータの値が（ＢＰＭ、テンション）＝（１３５、３．５）である場合、規定される周辺４つのマージ用パラメータの組に対応するデータをマージして、データの再生を行ってもよい。なお、取得されるマージ用パラメータが、規定されるマージ用パラメータの範囲外であっても、外挿やスケーリングを用いてデータを生成することができる。
【００９９】
図８は、時間経過に伴うモーションデータと対応するコリオデータの一例を示す図である。本例では、マージ用パラメータとしてＢＰＭが利用され、コリオデータの１チャンネルに３つのＢＰＭに対応するモーションが規定されている。本例に示されているのは、人が屈み、ジャンプして着地する一連のモーションである。当該モーション中に再生ＢＰＭが変化する場合には、これらの３つのデータに基づいてマージが実施される。
【０１００】
図８では、一例として、各ベースデータの所定の構成要素の座標（相対角度θ）が示されている。なお、図８に示すように、各パラメータに対応する値（座標）の大小関係は常に一定でなくてもよく、所定の時間ごとに変わってもよい。
【０１０１】
また、コリオデータ内では、規定されるマージ用パラメータ（図でいうＢＰＭ＝９０、１２０、１４０）は、常に同じとしてもよいし、所定の時間（例えば、所定の拍数分）ごとに異なる構成（例えば、パラメータ数、パラメータ値）としてもよい。つまり、マージに用いることができるデータの構成（データ数及び対応するパラメータ値の少なくとも１つ）が時間で変動するものとしてもよい。時間ごとに異なる構成とすることで、コリオデータ内で、マージ用パラメータの変動で大きくモーションが変わる時間帯を設定することができ、より柔軟なモーションの表現が可能となる。
【０１０２】
また、コリオデータ内で、所定の期間（第１の期間）はマージ用パラメータセットを設定しない（利用しない）構成としてもよい。この場合、当該期間においてはＢＰＭやテンションなどの値に依らず、１つのモーションデータに基づいてモーション再生が行われる。なお、別の期間（第２の期間）ではマージ用パラメータが設定され、提案マージ方法を用いてモーション再生が行われる構成としてもよい。
【０１０３】
複数のマージ用パラメータが規定される場合、一方のパラメータ（例えば、テンション）の構成は固定とし、他方のパラメータ（例えば、ＢＰＭ）の構成を時間ごとに異なるようにしてもよいし、いずれの構成も固定又は同じとしてもよい。
【０１０４】
（マージ用パラメータの急激な変動への対処）
上述の提案マージ方法では、マージ用パラメータが急激に変動する場合、変動の前後でモーションがいきなり変わることになるが、このような挙動が好ましくない場合がある。本発明者らは、例えば人間が音楽に合わせてダンスをする際、音楽のＢＰＭがいきなり変わると、変動前のＢＰＭをしばらく引きずってダンスを継続しつつ、徐々に変動後のＢＰＭに合わせる動作をすることに着目した。
【０１０５】
そこで、本発明者らは、ＢＰＭの急激な変動に対して、モーションの変化を遅延させることを着想した。以下では、ＢＰＭの急激な変動時のマージ方法について説明するが、ＢＰＭ以外のマージ用パラメータが急激に変動する場合であっても同様の方法を適用することができる。ここで、「マージ用パラメータが急激に変動する」とは、ある期間内（例えば、１拍分の期間）で当該パラメータの値が所定の閾値以上（又はより大きく）変動することをいう。
【０１０６】
図９は、ＢＰＭが急激に変動する場合の提案マージ方法の一例を示す図である。本例では、２つのベースデータ（ＢＰＭ＝１００、１４０）を有しており、所定の拍のタイミングでＢＰＭ＝１００からＢＰＭ＝１４０にテンポが急激に変動するものとする。一例として、各ベースデータの所定の構成要素の座標（相対角度θ）が示されている。
【０１０７】
図９Ａは、急激なＢＰＭ変動に特別な対処を行わない場合のモーションの遷移を示す図である。この場合、ＢＰＭ＝１００からＢＰＭ＝１４０に切り替わるタイミングでモーションがいきなり変わることになる。
【０１０８】
図９Ｂは、急激なＢＰＭ変動に対してモーション変化の急激な変動を抑制した場合のモーションの遷移を示す図である。図９Ｂの例では、ＢＰＭ＝１００からＢＰＭ＝１４０に切り替わるタイミングから所定の拍数分（ここでは、４拍分）の期間を遷移期間とし、当該所定の拍数分の経過後からは、ＢＰＭ＝１４０のモーションを確実に再生するようにする。
【０１０９】
ここで、遷移期間のモーション遷移方法は、例えば上述の提案マージ方法で、当該遷移期間をかけてＢＰＭ＝１００のモーションからＢＰＭ＝１４０のモーションに徐々に遷移（移行）していくようにしてもよい。例えば、上記切り替わりのタイミングの１拍後にはＢＰＭ＝１１０相当のモーション、２拍後にはＢＰＭ＝１２０相当のモーション、３拍後にはＢＰＭ＝１３０相当のモーションとなるようにマージ処理を行って時間的に均等に移行してもよいし、拍ごとに重みを付けて移行してもよい。
【０１１０】
また、遷移期間の長さは、マージ用パラメータの変動量に応じて増減するように制御されてもよい。例えば、当該変動量が大きい場合には、遷移期間を長くするようにしてもよい。
【０１１１】
なお、上記遷移期間の長さに関する情報や、所定のマージ用パラメータが急激に変動したと判断する変動量（変動量の閾値）に関する情報や、所定のマージ用パラメータの急激な変動への対処機能を有効にするか否かに関する情報の少なくとも１つは、コリオデータにおけるノートオン／オフ信号や、他のイベント（ＭＩＤＩイベント、ＳｙｓＥｘイベントなど）、ＯＳＣメッセージ、その他の信号などに含まれてもよい。これらの情報は、マージ用パラメータごとに異なる内容（値）が通知されてもよい。また、これらの情報の一部又は全部は、予め装置に保持されるものとしてもよい。
【０１１２】
例えば、マージ用パラメータであるＢＰＭの変動量の閾値が所定の値（例えば、４０）と設定（通知）された装置は、現在のＢＰＭ（第３の値）と、新たに指定されたＢＰＭ（第４の値）と、を比較して、ＢＰＭの変動量（差分又は差分の絶対値）が４０より小さい（又は以下である）場合、新たに指定されたＢＰＭに基づいて提案マージ方法を実施し、変動量が４０以上である（又はより大きい）場合、所定の拍数分の遷移期間で、現在のＢＰＭに対応するモーションから新たに指定されたＢＰＭに対応するモーションに徐々に移行するように制御してもよい。
【０１１３】
つまり、マージを行う装置は、マージ用パラメータの値が第３の値から第４の値に変動し、かつ、第３の値と第４の値との差分の絶対値が所定の閾値以上である場合、マージ用パラメータの値の変動のタイミングから開始する遷移期間において、マージ用パラメータの値が第３の値と第４の値の間に含まれると想定して、第３の値に対応するモーションデータと第４の値に対応するデータとのマージ処理を実施することができる。
【０１１４】
このように、提案マージ方法を実施する装置は、上述の情報に基づいてマージ用パラメータ変動時のマージ方法（モーション遷移方法）を制御することができる。なお、上述の例ではＢＰＭが急激に変動する場合について説明したが、これに限られない。別のマージ用パラメータ（例えば、テンション）が急激に変動する場合であっても、同様の制御を実施することができる。
【０１１５】
（マージ用パラメータの制御方法）
提案マージ方法を実施する装置は、マージ用パラメータを、モーションデータと同期して再生される他のデータ（例えば、楽曲データ）から検出（判断）してもよい。この場合、当該装置は、楽曲データの再生ＢＰＭに基づいて提案マージ方法を実施することができる。
【０１１６】
また、提案マージ方法を実施する装置は、マージ用パラメータを、自装置内で生成してもよいし、外部から通知されてもよいし、予め保持してもよい。図１０及び図１１を参照して、マージ用パラメータを制御（生成、通知）する制御装置の一例について説明する。
【０１１７】
図１０は、マージ用パラメータを制御する制御装置の全体図であり、図１１は、図１０の制御装置の一部の拡大図である。ここでは、図２のような情報処理システム１に制御装置５００が含まれ、ネットワーク４０を介して他の装置（ユーザ端末１０）にマージ用パラメータを通知し、当該他の装置で３Ｄモデルのモーションデータの再生を行う構成を例に説明する。なお、制御装置５００は、図２のユーザ端末１０、サーバ２０、電子楽器３０のいずれかであってもよい。
【０１１８】
制御装置５００は、例えば、１つ以上のノブを含むノブ部５１０、１つ以上のディスプレイを含むディスプレイ部５２０、１つ以上のボタンを含むボタン部５３０、１つ以上のスライダーを含むスライダー部５４０、などから構成される。図１０及び図１１では、制御装置５００の外観が図示されており、制御装置５００は、各種情報処理や通信処理に必要な機能を実現する構成を有しているものとする。
【０１１９】
ノブは、ユーザの押し込み、回転又は押し回しなどの操作を受け付ける。ボタンは、ユーザの押下操作を受け付ける。スライダーは、ユーザのスライド操作を受け付ける。これらの操作により、制御装置５００に所定の信号が入力され、制御装置５００の処理を変更することができる。
【０１２０】
ディスプレイは、映像の電気的信号を出力する出力デバイスである。タッチパネルで構成される場合には、ユーザからの操作を受け付けることができる。図１０には、ＤＪ（Disc  Jockey）プレイを楽しむためのターンテーブルがディスプレイに表示される例が示されているが、これに限られない。例えば、ディスプレイに表示される内容は、ノブ部５１０などの操作により変更できる構成としてもよい。
【０１２１】
制御装置５００により、マージ用パラメータだけでなく、ユーザ端末１０で再生されるコリオデータの制御信号も送信されてもよい。図１１においては、ディスプレイ部５２０に、モーションに加えるノイズ（歪み）を制御するためのノイズ部５２１と、マージ用パラメータの１つであるテンションを制御するためのテンション部５２２と、モーション（ベースデータ）を制御するためのステップ部５２３と、が表示されている。
【０１２２】
なお、あるモーションにノイズを加える場合、当該モーションデータの構成要素の座標の少なくとも一部が、ノイズなしの場合に比べて変化（例えば、ｘ軸方向に変化）する。なお、変化の方向及び変化量は、構成要素ごとに異なってもよい。
【０１２３】
ノイズ部５２１は、ノイズ（例えば、ノイズの大きさ）を表示する。図１１では、ディスプレイに表示されるスライダーをユーザが操作することで、ノイズを変更することができる。制御装置５００は、ノイズ部５２１に表示されたノイズに関する情報を生成することができる。
【０１２４】
テンション部５２２は、テンションを表示する。図１１では、ディスプレイに表示されるスライダーをユーザが操作することで、テンションを変更することができる。制御装置５００は、テンション部５２２に表示されたテンションに関する情報を生成することができる。
【０１２５】
ステップ部５２３は、ステップを表示する。ここで、ステップは、例えば、８拍単位（ワンエイト）や、８拍×４の３２拍単位（フォーエイト）など、比較的長い拍数で規定される基本型のモーションのことをいい、ベーシックムーブ、ムーブなどと呼ばれてもよい。ステップのモーションデータは、上半身又は下半身だけでなく、全身の動きを規定するように構成されてもよい。
【０１２６】
図１１では、ディスプレイに表示されるスライダーをユーザが操作することで、ステップを変更することができる。制御装置５００は、ステップ部５２３に表示されたステップに関する情報を生成することができる。
【０１２７】
なお、ノイズ、テンション、ステップなどは、図１０に示したノブ部５１０などディスプレイ部５２０以外の操作により変更されてもよい。
【０１２８】
ボタン部５３０のボタン５３１は、ステップよりも比較的短い拍数で規定されるモーション（アクセントモーション、アクセントなどと呼ばれてもよい）に関連付けられてもよい。図１１では、「ターン」、「ジャンプ」、「クラップ」、「キック」のモーションデータにそれぞれ対応するボタンが示されており、ユーザによりいずれかのボタンが操作されると、制御装置５００は、当該ボタンに対応したモーションを特定する情報を生成することができる。
【０１２９】
当該情報に基づいて、ユーザ端末１０はステップの構成要素の座標に関する情報を、少なくとも一部上書き（又は合成）することができる。例えば、ステップが「サイド」である場合に「クラップ」のボタン５３１をユーザが操作すると、ユーザ端末１０は、３Ｄモデルがサイドステップをしつつクラップ動作をするモーションを再生することができる。
【０１３０】
制御装置５００は、生成した各種情報を、ユーザ端末１０に送信してもよい。また、制御装置５００は、生成した各種情報に基づいてコリオデータを選択したり、提案マージ方法によりマージしたりして、選択された又はマージされたコリオデータをユーザ端末１０に送信してもよい。また、制御装置５００は、上記選択された又はマージされたコリオデータを、ディスプレイ部５２０に表示するように制御してもよい。
【０１３１】
以上述べた制御装置５００を用いることにより、マージ用パラメータを手動かつリアルタイムに変更することができるため、モーションデータに基づく３Ｄモデルの再生をインタラクティブに行うことができる。
【０１３２】
上述したような各種情報は、コリオデータにおけるノートオン／オフ信号や、他のイベント（ＭＩＤＩイベント、ＳｙｓＥｘイベントなど）、ＯＳＣメッセージ、その他の信号などに含まれて送信されてもよい。
【０１３３】
また、本明細書で説明した用語及び／又は本明細書の理解に必要な用語については、同一の又は類似する意味を有する用語と置き換えてもよい。また、本明細書で説明した情報、パラメータなどは、絶対値で表されてもよいし、所定の値からの相対値で表されてもよいし、対応する別の情報で表されてもよい。
【０１３４】
本明細書で説明した情報、信号などは、様々な異なる技術のいずれかを使用して表されてもよい。例えば、上記の説明全体に渡って言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、チップなどは、電圧、電流、電磁波、磁界若しくは磁性粒子、光場若しくは光子、又はこれらの任意の組み合わせによって表されてもよい。
【０１３５】
ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語と呼ばれるか、他の名称で呼ばれるかを問わず、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行可能ファイル、実行スレッド、手順、機能などを意味するよう広く解釈されるべきである。
【０１３６】
また、ソフトウェア、命令、情報などは、伝送媒体を介して送受信されてもよい。例えば、ソフトウェアが、有線技術（同軸ケーブル、光ファイバケーブル、ツイストペア及びデジタル加入者回線（ＤＳＬ）など）及び／又は無線技術（赤外線、マイクロ波など）を使用してウェブサイト、サーバ、又は他のリモートソースから送信される場合、これらの有線技術及び／又は無線技術は、伝送媒体の定義内に含まれる。
【０１３７】
本明細書で説明した各態様／実施形態は単独で用いてもよいし、組み合わせて用いてもよいし、実行に伴って切り替えて用いてもよい。また、所定の情報の通知（例えば、「Ｘであること」の通知）は、明示的に行うものに限られず、暗黙的に（例えば、当該所定の情報の通知を行わないことによって）行われてもよい。また、情報の通知は、本明細書で説明した態様／実施形態に限られず、他の方法で行われてもよい。
【０１３８】
本明細書で説明した各態様／実施形態の処理手順、シーケンス、フローチャートなどは、矛盾の無い限り、順序を入れ替えてもよい。例えば、本明細書で説明した方法については、例示的な順序で様々なステップの要素を提示しており、提示した特定の順序に限定されない。
【０１３９】
以上、本発明について詳細に説明したが、当業者にとっては、本発明が本明細書中に説明した実施形態に限定されるものではないということは明らかである。本発明は、特許請求の範囲の記載により定まる本発明の趣旨及び範囲を逸脱することなく修正及び変更態様として実施することができる。したがって、本明細書の記載は、例示説明を目的とするものであり、本発明に対して何ら制限的な意味を有するものではない。
【符号の説明】
【０１４０】
１  情報処理システム
１０  ユーザ端末
１１  送受信部
１２  取得部
１３  再生部
１４  出力部
１５  入力部
１６  生成部
１７  制御部
２０  サーバ
３０  電子楽器
４０  ネットワーク
５００  制御装置
【図１】
0006805422.tif 000002
【図２】
0006805422.tif 000003
【図３】
0006805422.tif 000004
【図４】
0006805422.tif 000005
【図５】
0006805422.tif 000006
【図６】
0006805422.tif 000007
【図７】
0006805422.tif 000008
【図８】
0006805422.tif 000009
【図９】
0006805422.tif 000010
【図１０】
0006805422.tif 000011
【図１１】
0006805422.tif 000012