(58)【調査した分野】(Int.Cl.,DB名)
所定のパラメータがそれぞれ異なる値である場合に対応する複数のデータを用いて、前記所定のパラメータが特定の値である場合に対応する特定データを生成するように制御する制御部と、
前記特定データに基づいて、所定のコンピュータグラフィックス(CG)モデルを再生する再生部と、を有し、
前記所定のパラメータは、前記所定のCGモデルの動きを指定するテンポ(Beats Per Minute(BPM))、前記所定のCGモデルの動きのノリ及び前記所定のCGモデルの動きの質の少なくとも1つを示すパラメータであり、
前記複数のデータは、前記所定のCGモデルのモーションデータであり、それぞれ前記所定のCGモデルの構成要素の座標を拍単位で時系列に指定するための時系列情報を含むことを特徴とする装置。
前記制御部は、前記複数のデータのうち、前記所定のパラメータが第1の値である場合に対応する第1のデータにおいて前記第1の値を前記特定の値に合わせるように生成したデータと、前記所定のパラメータが第2の値である場合に対応する第2のデータにおいて前記第2の値を前記特定の値に合わせるように生成したデータと、を用いて、前記特定データを生成することを特徴とする請求項1に記載の装置。
前記複数のデータは、SMF(Standard MIDI File)フォーマットに準拠するデータ構造の同じチャンネルに含まれることを特徴とする請求項1に記載の装置。
前記所定のパラメータは、SMF(Standard MIDI File)フォーマットで規定される信号又はOSC(Open Sound Control)メッセージに含まれることを特徴とする請求項1に記載の装置。
前記制御部は、前記特定の値が第3の値から第4の値に変動し、かつ、前記第3の値と前記第4の値との差分の絶対値が所定の閾値以上である場合、前記特定の値の変動のタイミングから所定の期間において、前記特定の値が前記第3の値と前記第4の値の間に含まれると想定して、前記特定データを生成するように制御することを特徴とする請求項1に記載の装置。
前記制御するステップは、前記複数のデータのうち、前記所定のパラメータが第1の値である場合に対応する第1のデータにおいて前記第1の値を前記特定の値に合わせるように生成したデータと、前記所定のパラメータが第2の値である場合に対応する第2のデータにおいて前記第2の値を前記特定の値に合わせるように生成したデータと、を用いて、前記特定データを生成するステップを含むことを特徴とする請求項9に記載のプログラム。
前記複数のデータは、SMF(Standard MIDI File)フォーマットに準拠するデータ構造の同じチャンネルに含まれることを特徴とする請求項9に記載のプログラム。
所定のパラメータがそれぞれ異なる値である場合に対応する複数のデータを用いて、前記所定のパラメータが特定の値である場合に対応する特定データを生成するように制御する工程と、
前記特定データに基づいて、所定のコンピュータグラフィックス(CG)モデルを再生する工程と、を有し、
前記所定のパラメータは、前記所定のCGモデルの動きを指定するテンポ(Beats Per Minute(BPM))、前記所定のCGモデルの動きのノリ及び前記所定のCGモデルの動きの質の少なくとも1つを示すパラメータであり、
前記複数のデータは、前記所定のCGモデルのモーションデータであり、それぞれ前記所定のCGモデルの構成要素の座標を拍単位で時系列に指定するための時系列情報を含むことを特徴とする情報処理方法。
【発明を実施するための形態】
【0009】
本発明者らは、過去に、CGモデルの動きをテンポベースで時系列に指定する新たなデータ構造を着想し、テンポ(BPM:Beats Per Minute)に追従してCGモデルの動作を再生する装置等を発明した(特願2015−077162を参照)。当該発明によれば、例えば人の動きをテンポに合わせてモーションデータ(CGモデルの動きを表すデータ)として記録して用いることで、BPMの変動に追随してテンポにぴたりと合った動きを再生することができる。
【0010】
なお、上記データ構造は、振り付け(choreography)データフォーマット、コリオデータフォーマットなどと呼ばれてもよい。また、コリオデータフォーマットで表現されるデータ、コリオデータフォーマットに準拠するデータ(例えば、コリオデータフォーマットに変換可能なフレーム単位の時系列データを含む)などのコリオデータフォーマットと互換性のあるデータは、コリオデータ、ダンスコリオデータなどと呼ばれてもよい。
【0011】
本発明者らは、コリオデータの利用を検討する中で、動きの変化をより自然に表現するために必要な要素に着目した。そして、一般的な動きは、テンポに従って基本となる動きが変化することを発見した。
【0012】
例えば、手と足を左右逆に交互に動かす「歩行」という動きは、テンポ(この場合、ピッチと呼ばれてもよい)を上げていくと、途中から両足が地面から離れる瞬間が生まれることで「走行」に変わり、さらにテンポを上げるとだんだんと前傾姿勢になる、と遷移する方が自然な変化に感じられる。
【0013】
また、ダンスの場合、テンポを上げると、スピードに追いつかせるために手や足の動きを小さくしたり、逆に動きが激しく(大きく)なったりすることがある。
【0014】
しかしながら、従来のテンポを変える方法では、「歩行」のモーションデータのテンポを上げただけでは、手と足を左右逆に交互に動かすという基本的な動きは変わらず、「走行」には至らない。したがって、従来方法を用いてテンポを変えると、CGモデルの動作が自然に見えない場合があるという課題がある。
【0015】
そこで、本発明者らは、BPMの変動によって、モーションデータ自体を変更することを着想した。これにより、例えば、BPMによって異なったポーズ(モーションデータ)を保有しておき、BPMの変動によって、自動的に異なるポーズに切り替える構成を実現することができる。また、BPMによる自動切り替え制御ではなく、手動により(恣意的に)リアルタイムで、同じ動きでも激しく/おとなしく動かすなど変化させる制御が可能となる。
【0016】
図1は、BPMが変動する場合における、単純なモーションスケーリングと、本発明の一実施形態に係るマージ方法との比較の一例を示す図である。ここで、単純なモーションスケーリング(シンプルスケーリング)では、BPM=90の歩行モーションを、BPMの変化に応じて拍を伸縮させて新たなモーションを生成する。一方、本発明の一実施形態に係るマージ方法(以下、提案マージ方法、単にマージ方法ともいう)では、例えば、BPM=90の歩行モーションと、BPM=180の走行モーションと、を基本となるデータ(マージ元データ、ベースデータなどともいう)として有するものとし、BPMの変化に応じてこれらのモーションをマージする。
【0017】
図1AはBPM=90の場合を示しており、いずれの方法もBPM=90の歩行モーションに一致する。
図1BはBPM=140の場合を示している。
図1Bのシンプルスケーリングでは、速足で歩くモーションが再生される。一方、
図1Bの提案マージ方法では、複数のベースモーションをマージすることで、歩行と走行の中間のようなモーションが再生される。
【0018】
BPMを90から180に徐々に上げていくことを考えると、シンプルスケーリングでは歩行が速足に変化する動作を実現するに過ぎないが、提案マージ方法では歩行から走行に徐々に変化していく動作を実現することができる。このように、提案法によれば、BPMの変化に応じて滑らかに異なる動きの遷移を行うことができるため、より自然な動きを好適に再生することができる。
【0019】
以下、本発明の実施形態について、添付図面を参照して詳細に説明する。
【0020】
(情報処理システム)
まず、本発明が適用される情報処理システムについて説明する。
図2は、本発明の一実施形態に係る情報処理システムの概略構成の一例を示す図である。
図2に示す情報処理システム1は、ユーザ端末10と、サーバ20と、電子楽器30と、ネットワーク40と、を含む。
【0021】
ユーザ端末10、サーバ20及び電子楽器30は、ネットワーク40を介して相互に接続可能な装置であり、コリオデータを用いて、CGモデルに関する処理(送受信、変換、動画生成、表示など)を行う。
【0022】
ユーザ端末10は、携帯電話、スマートフォン、タブレット型端末などの携帯端末(移動通信端末)であってもよいし、パソコン、多機能テレビ、セットトップボックス(例えば、Apple TV(登録商標)、Chromecast(登録商標))などの固定通信端末であってもよい。
【0023】
サーバ20は、ユーザ端末10及び/又は電子楽器30との間でコリオデータを送信及び/又は受信する機能を有する装置である。なお、当該コリオデータの送受信は、ユーザ端末10及び/又は電子楽器30からの要求により行われてもよいし、周期的又は所定のタイミングで行われてもよい。また、サーバ20は、コリオデータを用いて生成したデータ(例えば、動画など)を、ユーザ端末10及び/又は電子楽器30との間で送受信してもよい。
【0024】
電子楽器30は、MIDI(Musical Instrument Digital Interface)データ等の演奏情報に応じた音を発生する機能を有する装置である。例えば、電子楽器30は、電子ピアノ、シンセサイザーなどであるが、これに限られない。
【0025】
ネットワーク40は、機器間を接続し情報の通信を可能とする。例えば、ネットワーク40は、インターネット、モバイルネットワーク、LAN(Local Area Network)、WAN(Wide Area Network)などの様々なネットワークを含む。なお、ネットワーク40は、無線で構成されてもよいし、有線で構成されてもよい。
【0026】
なお、当該システム構成は一例であり、これに限られない。例えば、ユーザ端末10、サーバ20及び電子楽器30は、
図1ではそれぞれ複数含まれる構成としたが、各機器の数はこれに限られない。また、情報処理システム1は、ユーザ端末10、サーバ20及び電子楽器30の一部を含まない構成であってもよい。また、ネットワーク40に接続していないユーザ端末10などであっても、所定の記憶媒体を接続することで、当該記憶媒体を介してコリオデータの入出力を行ってもよい。
【0027】
(機器の構成)
図3は、本発明の一実施形態に係るユーザ端末の機能構成の一例を示す図である。
図3に示すように、ユーザ端末10は、送受信部11と、取得部12と、再生部13と、出力部14と、入力部15と、生成部16と、制御部17と、を有する。ユーザ端末10は、本発明の一実施形態に係るデータ構造を用いてCGモデルに関する情報処理を行う工程を実現する機能を有する。また、ユーザ端末10は、本発明の一実施形態に係る情報処理装置として、表示装置、送信装置、受信装置、動画生成装置、データ変換装置、データ生成装置などを構成することができる。
【0028】
なお、
図3では、本実施形態における特徴部分の機能ブロックを主に示しており、ユーザ端末10は、他の処理に必要な他の機能ブロックも有してもよい。また、サーバ20や、電子楽器30も、
図3に示す機能ブロックの全部又は一部を有してもよく、ユーザ端末10と同様に本発明に係る情報処理装置(表示装置、送信装置、受信装置、動画生成装置、データ変換装置、データ生成装置など)を構成してもよい。
【0029】
送受信部11は、ネットワーク40を介してコンピュータ間の通信を行うための通信デバイスで構成され、他のユーザ端末10、サーバ20、電子楽器30との間で、コリオデータや必要な情報などの送受信を行う。送受信部11は、受信したコリオデータを、取得部12に出力する。また、送受信部11は、受信した所定のデータ(例えば、CGモデルのモーションデータ)を、生成部16に出力してもよい。また、送受信部11は、受信した種々の情報を制御部17に出力する。
【0030】
送受信部11は、本発明に係る技術分野での共通認識に基づいて説明されるトランスミッター/レシーバー、送受信回路又は送受信装置により構成することができる。なお、送受信部11は、送信部111及び受信部112から構成されてもよい。また、送受信部11は、ネットワークデバイス、ネットワークコントローラ、ネットワークカード、通信モジュールなどと呼ばれてもよい。
【0031】
取得部12は、送受信部11及び/又は生成部16からコリオデータを取得する。取得部12は、取得したコリオデータを、送受信部11及び/又は再生部13に出力する。取得部12は、送受信部11で受信した制御信号や、制御部17からの指示に基づいて、複数のコリオデータから少なくとも1つのコリオデータを選択し、出力するようにしてもよい。
【0032】
再生部13は、取得部12から入力されたデータの再生を行って、出力部14に出力する。例えば、コリオデータを解釈して、CG動画の再生に係る信号を出力部14に出力する。また、所定のコンテンツ(例えば、楽曲、音声などの音データ)の再生を行って、出力部14に出力してもよい。例えば、コンテンツが音データであれば、コンテンツに係る音声ファイルフォーマットに従って、出力部14が認識できる形式で再生用信号に変換する。再生部13は、本発明に係る技術分野での共通認識に基づいて説明されるプレイヤー、画像/映像/音声処理回路、画像/映像/音声処理装置、アンプなどにより構成することができる。
【0033】
出力部14は、外部への出力を実施する出力デバイスで構成され、再生部13から入力されたコンテンツの再生信号の出力を行う。出力部14は、複数の機能部から構成されてもよい。例えば、出力部14は、視覚的なデータ(例えば、CG動画)を表示する表示部と、音データを出力する音声出力部と、から構成されてもよい。表示部は、本発明に係る技術分野での共通認識に基づいて説明されるディスプレイ、モニタなどの表示装置により構成することができる。また、音声出力部は、本発明に係る技術分野での共通認識に基づいて説明されるスピーカーなどの出力装置により構成することができる。
【0034】
入力部15は、外部からの入力を受け付ける入力デバイスで構成され、ユーザからの操作により入力を受け付ける。また、入力部15は、所定の機器や記憶媒体と接続され、データの入力を受け付けてもよい。入力部15は、入力結果を例えば制御部17や生成部16に出力してもよい。入力部15は、本発明に係る技術分野での共通認識に基づいて説明されるキーボード、マウス、ボタンなどの入力装置や、入出力端子、入出力回路などにより構成することができる。また、入力部15は、表示部と一体となった構成(例えば、タッチパネル)としてもよい。
【0035】
なお、入力部15は、外部環境の情報を取得してもよい。例えば、入力部15の一部は、静止画像及び/又は動画像を取得するカメラ、音声を取得するマイクロフォン、各種情報を取得するセンサ(タッチセンサ、接地センサ、加速度センサ、傾斜センサ、ジャイロ、温度センサ(サーモグラフィ)、超音波センサ、測域センサ(レーザスキャンセンサ)、無線ビーム(レーダー)など)のいずれか又はこれらの組み合わせにより構成されてもよい。
【0036】
生成部16は、送受信部11、入力部15、制御部17などから入力されたデータを用いて、コリオデータを生成する。生成部16は、本発明の一実施形態に係るマージ方法に基づいて、コリオデータ(モーションデータ)をマージ(合成、生成)することができる。
【0037】
また、生成部16は、コリオデータをOSC(Open Sound Control)プロトコルで伝送するためのOSC形式(OSCメッセージ)に変換することができる。コリオデータのMIDIメッセージをOSCメッセージに変換することで、ネットワーク40を介したより柔軟なモーションデータの制御が可能となる。
【0038】
生成部16が生成したデータ/メッセージは、送受信部11や取得部12、再生部13などに出力されてもよい。生成部16は、本発明に係る技術分野での共通認識に基づいて説明される演算器、演算回路、演算装置などにより構成することができる。
【0039】
制御部17は、ユーザ端末10全体の制御を実施する。例えば、制御部17は、送受信部11が所定の信号を送信及び/又は受信するように制御してもよい。また、制御部17は、取得部12のデータ取得/出力や、再生部13の再生、出力部14の出力、入力部15の出力、生成部16の生成/出力などを制御してもよい。制御部17は、生成部16が生成したコリオデータなど、各種データをユーザ端末10の記憶部(メモリ、ストレージなど)に保存するように制御してもよい。制御部17は、本発明に係る技術分野での共通認識に基づいて説明されるコントローラ、制御回路又は制御装置により構成することができる。
【0040】
制御部17は、後述するように、所定のパラメータ(マージ用パラメータ)がそれぞれ異なる値である場合に対応する複数のデータ(例えば、コリオデータ)を用いて、所定のパラメータが特定の値である場合に対応する特定データ(コリオデータ、モーションデータなど)を生成するように制御する。
【0041】
なお、上記実施形態の説明に用いたブロック図は、機能単位のブロックを示している。これらの機能ブロック(構成部)は、ハードウェア及び/又はソフトウェアの任意の組み合わせによって実現される。また、各機能ブロックの実現手段は特に限定されない。すなわち、各機能ブロックは、物理的に結合した1つの装置により実現されてもよいし、物理的に分離した2つ以上の装置を有線又は無線で接続し、これら複数の装置により実現されてもよい。
【0042】
例えば、本発明の一実施形態におけるユーザ端末などは、本発明の情報処理方法を実施するコンピュータとして機能してもよい。例えば、上述のユーザ端末10、サーバ20及び電子楽器30の少なくとも1つは、物理的には、プロセッサ、メモリ、ストレージ、通信装置、入力装置、出力装置などを含み、本発明の一態様に係るデータ構造(コリオデータ)を用いてCGモデルに関する処理を行うコンピュータ装置として構成されてもよい。
【0043】
ユーザ端末10、サーバ20及び電子楽器30における各機能は、プロセッサ、メモリなどのハードウェア上に所定のソフトウェア(プログラム)を読み込ませることで、プロセッサが演算を行い、通信装置による通信や、メモリ及びストレージにおけるデータの読み出し及び/又は書き込みを制御することで実現される。
【0044】
プロセッサは、例えば、オペレーティングシステムを動作させてコンピュータ全体を制御する。プロセッサは、周辺装置とのインターフェース、制御装置、演算装置、レジスタなどを含む中央処理装置(CPU:Central Processing Unit)で構成されてもよい。例えば、上述の制御部17や再生部12などは、プロセッサで実現されてもよい。
【0045】
また、プロセッサは、プログラム(プログラムコード)、ソフトウェアモジュールやデータを、ストレージ及び/又は通信装置からメモリに読み出し、これらに従って各種の処理を実行する。プログラムとしては、後述の実施形態で説明する動作の少なくとも一部をコンピュータに実行させるプログラムが用いられる。例えば、ユーザ端末10の制御部17は、メモリに格納され、プロセッサで動作する制御プログラムによって実現されてもよく、他の機能ブロックについても同様に実現されてもよい。
【0046】
メモリは、コンピュータ読み取り可能な記録媒体であり、例えば、ROM(Read Only Memory)、EPROM(Erasable Programmable ROM)、EEPROM(Electrically EPROM)、RAM(Random Access Memory)、その他の適切な記憶媒体の少なくとも1つで構成されてもよい。メモリは、レジスタ、キャッシュ、メインメモリ(主記憶装置)などと呼ばれてもよい。メモリは、本発明の一実施形態に係る無線通信方法を実施するために実行可能なプログラム(プログラムコード)、ソフトウェアモジュールなどを保存することができる。
【0047】
ストレージは、コンピュータ読み取り可能な記録媒体であり、例えば、フレキシブルディスク、フロッピー(登録商標)ディスク、光磁気ディスク(例えば、コンパクトディスク(CD−ROM(Compact Disc ROM)など)、デジタル多用途ディスク、Blu−ray(登録商標)ディスク)、リムーバブルディスク、ハードディスクドライブ、スマートカード、フラッシュメモリデバイス(例えば、カード、スティック、キードライブ)、磁気ストライプ、データベース、サーバ、その他の適切な記憶媒体の少なくとも1つで構成されてもよい。ストレージは、補助記憶装置と呼ばれてもよい。
【0048】
通信装置は、例えば、上述の送受信部11である。入力装置は、例えば、上述の入力部15である。出力装置は、例えば、上述の出力部14である。また、プロセッサやメモリなどの各装置は、情報を通信するためのバスで接続される。バスは、単一のバスで構成されてもよいし、装置間で異なるバスで構成されてもよい。
【0049】
また、ユーザ端末10、サーバ20及び電子楽器30は、マイクロプロセッサ、デジタル信号プロセッサ(DSP:Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)、FPGA(Field Programmable Gate Array)などのハードウェアを含んで構成されてもよく、当該ハードウェアにより、各機能ブロックの一部又は全てが実現されてもよい。例えば、プロセッサは、これらのハードウェアの少なくとも1つで実装されてもよい。
【0050】
本発明の一態様においては、上述したような各装置(ユーザ端末10、サーバ20及び電子楽器30)がコリオデータを利用する。以下では、まずコリオデータフォーマットについて概説した後、本発明の一実施形態に係るモーションデータのマージ方法について説明する。
【0051】
(コリオデータフォーマット)
本発明の一態様に係るコリオデータフォーマットは、CGモデルの構成要素の座標を、拍単位で時系列に指定するための時系列情報を含むデータのフォーマットである。なお、「拍単位」とは、「拍」で特定可能な単位であることをいい、1拍単位に限られず、8分の1拍単位などの分数拍単位や、2拍単位などの複数拍単位も含む。
【0052】
具体的なフォーマットの説明の前に、まずCGモデルの表現方法について説明する。本明細書では、骨格構造(多関節構造)を有するスケルトンモデルをCGモデルとして用いる場合を例に説明するが、本発明を適用可能なCGモデルはこれに限られるものではない。
【0053】
図4は、骨格構造(多関節構造)を有するスケルトンモデルの一例を示す図である。
図4Aは、スケルトンモデルの各構成要素及び基準姿勢を示し、
図4Bは、スケルトンモデルの構成要素間の関係を示す。なお、
図4に示す例は基本的な構成であり、さらに追加の構造(例えば、皮膚、指、毛髪、衣装、帽子、ステッキなど)を有していてもよい。
【0054】
図4Aに示すモデルは、複数の骨格から構成されており、各骨格は2つの関節点及びこれらをつなぐ骨(ボーン)から構成されている。
図4Aの「N」、「RS」などは骨の名称であり、この例では18本の骨が示されている。
【0055】
一般的にスケルトンモデルは、ある関節点を基準点(ルート)として、各関節点を介して接続される骨が階層構造を有するように構成されている。例えば、
図4Aの階層構造は
図4Bのように表される。
図4の場合、B1及びWの間の関節点がルートである。また、関節点や骨を比較する際、ルートに近い方を親といい、ルートから遠い方を子という。
【0056】
CGモデルを3次元空間に配置する際は、当該モデルを、ルートの位置を基準とした当該モデル用の座標系(ローカル座標系)上にモデリングする。そして、3次元空間全体を表す座標系(ワールド座標系、グローバル座標系)に、モデリングされたCGモデルをマッピングする。
【0057】
構成要素(関節点、骨など)の座標は、3次元空間の絶対座標又は相対座標として表されてもよいし、所定の関節点を基準とした所定の骨の相対角度として表されてもよい。例えば、骨の相対角度で座標を表現する場合、CGモデルの基準姿勢を
図4AのようなT字姿勢とし、当該姿勢時の各骨の角度を0°としてもよい。
【0058】
なお、階層構造やルートの位置は
図4の例に限られない。例えば、ルートの位置は両足の間(RF3とLF3との間)であってもよい。また、各構成要素の座標及び/又は角度は、ルートから末端にかけて順番に計算するフォワードキネマティクスを用いて算出してもよいし、子の位置から親の位置を逆計算するインバースキネマティクスを用いて算出してもよいし、両者の組み合わせ又はその他の方法を用いてもよい。また、骨格構造においては、上記の階層構造だけでなく、階層構造の初期状態や、各骨の長さや、各関節の可動範囲などが設定されてもよい。
【0059】
(SMFフォーマットとコリオデータフォーマット)
本発明の一態様におけるコリオデータフォーマットは、電子楽器の演奏情報の保存形式に準拠することが好ましい。特に、広く普及しているMIDIデータの保存形式が好適である。次に、MIDIデータの保存形式の1つであるSMF(Standard MIDI File)フォーマットの概略を説明し、SMFフォーマットに準拠するコリオデータフォーマットを説明する。
【0060】
SMFフォーマットは、所定の制御情報を含むヘッダチャンクと、演奏データを含むトラックチャンクから構成される。演奏データは、デルタタイム及びMIDIイベントの組み合わせで構成される。ここで、デルタタイムは次のMIDIイベントが起こるまでの時間を表す。また、MIDIイベントは演奏内容を表すものであり、例えば、ノートオン(音を出す)、ノートオフ(音を止める)などがある。
【0061】
ノートオン信号は、対応するデルタタイムの経過後に特定の音を出すという信号である。ノートオン信号は、例えば、16進数で「9n kk vv」という3byteで表現でき、これは「チャンネルnでノート番号kkの音をベロシティvvで発音する」ということを意味する。ノートオン信号のチャンネルは楽譜におけるパート(所定の楽器の演奏パート)を表し、ノート番号は音の高さを表し、ベロシティは楽器(鍵盤)を叩く速度(強さ)を表す。
【0062】
ノートオフ信号は、対応するデルタタイムの経過後に特定の音を消すという信号である。ノートオフ信号は、例えば、16進数で「8n kk vv」という3byteで表現でき、これは「チャンネルnでノート番号kkの音をベロシティvvで消音する」ということを意味する。
【0063】
ノート番号及びベロシティはいずれも10進数で0〜127の数値を取ることができる。なお、ベロシティが0のノートオン信号「9n kk 00」は、「チャンネルnでノート番号kkの音を消音する」というノートオフ信号と同じ意味を表す。
【0064】
本発明の一態様においては、各チャンネルを、それぞれCGモデルのいずれかの構成要素の座標に関する情報として扱う。つまり、コリオデータフォーマットは、CGモデルの構成要素の座標に関する拍単位の時系列情報を、複数含んで構成されてもよい。ここで、構成要素(例えば、骨、関節点など)の座標に関する情報とは、例えば、構成要素の絶対座標又は相対座標に関する情報であってもよいし、構成要素(例えば、骨)の相対角度として表されてもよい。
【0065】
CGモデルの構成要素の座標に関する情報としては、ノートオン信号のノート番号及び/又はベロシティを用いることができる。この場合、あるタイミングにおいて、所定の構成要素の特定の軸の角度及び/又は座標は、当該タイミングに対応する拍に配置されたノートオン信号から取得することができる。また、ノートオン信号及び/又はノートオフ信号のデルタタイムは、CGモデルの構成要素の座標が変化する拍の長さに関する情報として用いられてもよい。
【0066】
例えば、ノートオフ信号に対応するデルタタイムは、当該ノートオフ信号の直前のノートオン信号から算出される角度(又は座標)から、当該ノートオフ信号の直後のノートオン信号から算出される角度(又は座標)に遷移するのにかかる拍の長さを示してもよい。各ノートに関連付けられた所定の構成要素の角度及び/又は座標の遷移は、所定の規則に従って行われてもよい。例えば、所定の補間方法に基づいて、遷移中の速度や加速度を決定して用いてもよい。なお、デルタタイムは、正数であることが好ましい。
【0067】
ノートオン/オフ信号はSMFフォーマットで最も頻繁に用いられる信号であるため、MIDIに対応した電子楽器などにおいて、処理を高速に行うことが可能である。
【0068】
ノートオン信号においては、ノート番号により、比較的大きな単位で座標又は角度を大まかに特定し、ベロシティにより、比較的小さな単位で座標又は角度を詳細に特定してもよい。また、上記とは逆に、ベロシティにより、比較的大きな単位で座標又は角度を大まかに特定し、ノート番号により、比較的小さな単位で座標又は角度を詳細に特定する構成としてもよい。さらに、システムエクスクルーシブ(SysEx)イベントなど、ノートオン/オフ以外の信号を用いてCGモデルの構成要素の座標に関する情報が特定されてもよい。
【0069】
例えば、ノートオン信号に関して、ノート番号が1増加するごとに、所定の角度が5°増加し、ベロシティが1増加するごとに、所定の角度が0.05°増加するように規定されてもよい。また、位置に関しても同じように規定されてもよい。なお、ノート番号などの変化に伴う変化量はこれに限られない。また、ノート番号やベロシティの変化と角度及び/又は位置の変化量との関連付けに関する情報が通知(設定)されてもよい。
【0070】
構成要素の座標に関する情報は、例えば、ポジション情報及びポーズ情報に分類することができる。ポジション情報は、CGモデルの初期位置(例えば、CG動画の開始時における位置)からの相対位置を示す情報であり、例えばCGモデルの基準点(ルート)のx軸座標、y軸座標、z軸座標及び当該基準点の回転角度で表されてもよい。また、ポーズ情報は、CGモデルの基準姿勢に基づく角度又は位置を示す情報であり、例えば
図4AのようなT字姿勢を0°とし、いくつかの数の指定ボーンに関して、親骨と子骨との間のx軸相対角度、y軸相対角度及びz軸相対角度で表されてもよい。
【0071】
各構成要素(例えば、骨)の各座標に関する情報を、いずれのチャンネルに割り当てるかは、システムの運用形態などに応じて適宜選択することができる。1チャンネルにつき、構成要素の座標に関する情報を、1つ割り当てる構成としてもよいし、複数割り当てる構成としてもよい。例えば、1チャンネルで、所定の骨のx軸相対角度、y軸相対角度及びz軸相対角度を全て含むように構成することができる。
【0072】
また、コリオデータフォーマットが準拠するSMFフォーマットは、特に制限されない。例えば、1トラックに全チャンネルの情報を含むフォーマット0であってもよいし、複数トラックで構成されるフォーマット1であってもよいし、フォーマット2であってもよい。さらに、既存のフォーマット0〜2でない新たなフォーマットを用いてもよい。また、コリオデータフォーマットは、CGモデルの構成要素の座標を拍単位で時系列に指定するための情報を有するものであれば、SMFフォーマットに限られない。
【0073】
以上説明したように、本発明の一実施形態に係るコリオデータフォーマットは、例えばSMFフォーマットと互換性を持ち、MIDIにおけるチャンネルごとに、CGモデルの構成要素の座標を拍単位で時系列に指定するための時系列情報(ノートオン/オフ信号の繰り返し)を含む。データ構造をSMFフォーマットとすることで、CGモデルの動作と、電子楽器など他の機器又はシステムとの連携が容易になる。
【0074】
コリオデータとしては、所定の拍の長さに対応するフレーム周期ごとに、所定の数の指定ボーンの3つの特定角によるポーズ情報と、4軸からなるポジション情報と、を持つデータが好適である。当該所定のフレーム周期は、所定のテンポ(例えば、BPM)に基づいて特定することができる。
【0075】
例えば、当該所定のフレーム周期は、所定のテンポにおけるある拍の長さ(例えば、1拍分、8分の1拍分など)に対応する周期であってもよい。また、当該所定のフレーム周期は、拍の長さに、単位時間あたりのフレーム数(例えば、FPS(Frames Per Second))を掛けることで算出できる。なお、コリオデータとして含まれる時系列情報は、8分の1拍単位に限られず、データ量と元モーションデータの再現性とのトレードオフなどを考慮して適宜増減させてもよい。
【0076】
以下、モーションデータはコリオデータフォーマットに従うものとし、モーションデータに含まれるCGモデルの構成要素を、単にモーションデータ(コリオデータ)の構成要素とも呼ぶ。
【0077】
(マージ用パラメータに基づくマージ)
本発明の一実施形態では、
図2に示したような装置(例えば、ユーザ端末10)が、所定のマージ用パラメータに基づいて、複数のモーションデータをマージ(ブレンド、合成などともいう)して新たなモーションデータを生成する。これにより、マージ用パラメータの値を時間経過に伴って変える(制御する)ことで、あるモーションデータから別のモーションデータへの遷移を動的に、かつ自然に行うことができる。
【0078】
提案マージ方法では、各モーションデータの構成要素(例えば、骨、関節点など)の座標に関する情報を、マージ用パラメータに基づいてマージする。マージ用パラメータは、モーションデータに関連付けられるパラメータであり、例えば、BPMである。マージ用パラメータの取得方法については、後述する。なお、基本的には、全構成要素の座標に関する情報をマージするものとするが、一部の構成要素の座標に関する情報のみがマージされる構成としてもよい。
【0079】
具体的なマージ方法としては、線形補間、スプライン補間などを用いた内挿や外挿を用いてもよいし、他の方法を用いてもよい。なお、本明細書における「マージ」は、マージ用パラメータに基づいて選択されたデータをそのまま用いる場合もあることから、複数のデータから少なくとも1つのデータを選択又は生成(合成)することを意味するものとする。
【0080】
例えば、BPM=xのモーションデータ1と、BPM=yのモーションデータ2と、をマージしてBPM=zのモーションデータ3を生成する場合、x、y及びzに基づいて、モーションデータ1及びモーションデータ2それぞれの構成要素の座標の重み付けを判断し、モーションデータ3の構成要素の座標を算出する。
【0081】
より一般的には、複数のデータのうち、マージ用パラメータ(例えば、BPM)が第1の値である場合に対応する第1のデータにおいて、第1の値を特定の値(例えば、ターゲットBPM)に合わせるように生成したデータと、マージ用パラメータが第2の値である場合に対応する第2のデータにおいて、第2の値を上記特定の値に合わせるように生成したデータと、を用いて、マージ用パラメータが特定の値である場合に対応するデータ(特定データ)を生成する。
【0082】
図5は、BPMの異なる複数のモーションデータを提案マージ方法によりマージする一例を示す図である。モーションデータ401及び402は、それぞれベースデータであり、それぞれBPM=140及びBPM=100に対応する(関連付けられている)。
【0083】
BPM=100からBPM=140の間のBPM(ターゲットBPM)のモーションを生成する場合は、ベースデータのいずれかのBPMを変更したものとするのではなく、例えば、各ベースデータをターゲットBPMで再生したモーションを1つにマージして新たなモーションを生成する。
【0084】
図5の場合、ターゲットBPM=120であり、モーションデータ401(BPM=140)を遅くしたモーションデータ411(BPM=120)と、モーションデータ402(BPM=100)を早くしたモーションデータ412(BPM=120)と、を1つにマージして、モーションデータ421(BPM=120)を生成する。
【0085】
なお、複数のベースデータはそれぞれ異なるモーションとすることが好ましいが、同じタイミング(同じ拍)で、少なくとも一部の構成要素の座標が同じ(又は近い座標)になるように構成されることが好ましい。例えば、
図5において、モーションデータ401は、あるダンスのモーションを示すデータであり、モーションデータ402は、モーションデータ401の動きの量をより大きくしたモーションを示すデータである。特に、各モーションデータで脚が接地するタイミング(拍)や、動きが静止するタイミングなどが一致するように構成することで、これらのデータをマージした際に不自然な(ぎこちない)モーションが生成されることを抑制することができる。
【0086】
ここで、上述の例では、マージ用パラメータとしてBPMを用いたが、これに限られない。例えば、マージ用パラメータとして、動きの特性を示すパラメータが用いられてもよい。動きの特性を示すパラメータとしては、動きの大きさ(強度)を示すパラメータや、動きのノリ(リズム感、グルーヴ)を示すパラメータ、動きの質(例えば、男性らしい動き、女性らしい動き)を示すパラメータなどを用いることができる。ここで、動きの大きさを示すパラメータは、テンション(excitement)と呼ばれてもよい。
【0087】
また、マージ用パラメータとして、複数種類のパラメータ(マージ用パラメータセット)が用いられてもよい。この場合、例えば、マージ用パラメータセットに含まれるマージ用パラメータの値の各組に対応するデータを用いて、マージを行うことができる。これについては後述する。
【0088】
(マージ対象のデータ)
提案マージ方法は複数のデータをマージするものであるが、当該複数のデータ(マージ対象)は、例えば以下の(1)、(2)、(3)又はこれらの組み合わせが挙げられる:
(1)複数のコリオデータ(モーションデータ)の構成要素の座標に関する情報、
(2)1つのコリオデータ内の複数のチャンネルそれぞれに含まれる構成要素の座標に関する情報、
(3)1つのコリオデータ内の1チャンネルに含まれる複数の構成要素の座標に関する情報。
なお、コリオデータフォーマット以外のフォーマットに従う複数のデータであっても、提案マージ方法を適用することができる。
【0089】
上記(1)や(2)の場合、各コリオデータや各チャンネルから抽出した複数の構成要素の座標に対して、既に上述したように、マージ用パラメータを用いてマージを実施する。以下では、上記(3)の一例について
図6を参照して説明する。
【0090】
図6は、マージ用パラメータとしてBPM及びテンションを利用する場合の1チャンネルに含まれるノートオン信号の一例を示す図である。本例では、BPM=90、120及び140と、テンション=1、3及び5と、に対応するコリオデータの一部が示されている。この場合、1チャンネルには、BPM3通り×テンション3通り=計9通りのノートオン信号を含むように構成することができる。
【0091】
このように、マージ用パラメータ(マージ用パラメータセット)として、BPM及びテンションの両方を用いることで、より柔軟な動きの制御を行うことができる。なお、マージ用パラメータセットはBPM及びテンションの組み合わせに限られず、任意のマージ用パラメータを複数組み合わせて用いてもよい。また、マージ対象が上記(3)の場合に限られず、上記(1)及び(2)の場合であっても、マージ用パラメータとして複数のパラメータを用いる構成としてもよい。
【0092】
コリオデータの再生装置は、例えば外部から与えられるテンポ(BPM)及びテンションに基づいて、各タイミングにおけるチャンネルごとの再生すべきデータを決定する。
図6において、BPM=90及びテンション=3が指示された場合、再生装置は当該チャネルのデータをノート番号60のノートオン信号と認識し、データの再生を行う。
【0093】
なお、所定の信号(例えば、ノートオン信号)が所定のマージ用パラメータに対応することは、SMFフォーマットで規定される信号(例えば、ノートオフ信号(上記ノートオン信号に対応する(同じノート番号の)ノートオフ信号)や、他のイベント(MIDIイベント(例えば、ピッチベンド)、SysExイベントなど)、その他の信号)で表されてもよい。
【0094】
このような信号(データ)とマージ用パラメータとを関連付ける信号は、例えばエクストラコードと呼ばれてもよい。例えば、コリオデータにおいて、各ノートオン信号に対して、対応するBPMやテンションを特定する情報を、エクストラコードを用いて関連付けることができる。また、これらの関連付けは、上記(3)の場合以外にも利用することができる。
【0095】
また、コリオデータをOSCプロトコルで伝送する場合には、ノートオン信号から変換されたOSCメッセージの引数に、対応するBPMやテンションを特定する情報を含めて送信することができる。
【0096】
このように、エクストラコードやOSCメッセージにマージ用パラメータを含めることで、動的なマージ方法制御が可能となる。
【0097】
なお、取得されるマージ用パラメータの値に1対1で対応するデータを有さない場合、ベースデータに対応するマージ用パラメータ(規定(設定)されるマージ用パラメータともいう)に対応するデータから補間を行ってもよい。
図7は、補間の一例を示す図である。本例では、
図6と同様にBPMとテンションが3通りずつ規定されている。
【0098】
図示するように、例えば取得されるマージ用パラメータの値が(BPM、テンション)=(135、3.5)である場合、規定される周辺4つのマージ用パラメータの組に対応するデータをマージして、データの再生を行ってもよい。なお、取得されるマージ用パラメータが、規定されるマージ用パラメータの範囲外であっても、外挿やスケーリングを用いてデータを生成することができる。
【0099】
図8は、時間経過に伴うモーションデータと対応するコリオデータの一例を示す図である。本例では、マージ用パラメータとしてBPMが利用され、コリオデータの1チャンネルに3つのBPMに対応するモーションが規定されている。本例に示されているのは、人が屈み、ジャンプして着地する一連のモーションである。当該モーション中に再生BPMが変化する場合には、これらの3つのデータに基づいてマージが実施される。
【0100】
図8では、一例として、各ベースデータの所定の構成要素の座標(相対角度θ)が示されている。なお、
図8に示すように、各パラメータに対応する値(座標)の大小関係は常に一定でなくてもよく、所定の時間ごとに変わってもよい。
【0101】
また、コリオデータ内では、規定されるマージ用パラメータ(図でいうBPM=90、120、140)は、常に同じとしてもよいし、所定の時間(例えば、所定の拍数分)ごとに異なる構成(例えば、パラメータ数、パラメータ値)としてもよい。つまり、マージに用いることができるデータの構成(データ数及び対応するパラメータ値の少なくとも1つ)が時間で変動するものとしてもよい。時間ごとに異なる構成とすることで、コリオデータ内で、マージ用パラメータの変動で大きくモーションが変わる時間帯を設定することができ、より柔軟なモーションの表現が可能となる。
【0102】
また、コリオデータ内で、所定の期間(第1の期間)はマージ用パラメータセットを設定しない(利用しない)構成としてもよい。この場合、当該期間においてはBPMやテンションなどの値に依らず、1つのモーションデータに基づいてモーション再生が行われる。なお、別の期間(第2の期間)ではマージ用パラメータが設定され、提案マージ方法を用いてモーション再生が行われる構成としてもよい。
【0103】
複数のマージ用パラメータが規定される場合、一方のパラメータ(例えば、テンション)の構成は固定とし、他方のパラメータ(例えば、BPM)の構成を時間ごとに異なるようにしてもよいし、いずれの構成も固定又は同じとしてもよい。
【0104】
(マージ用パラメータの急激な変動への対処)
上述の提案マージ方法では、マージ用パラメータが急激に変動する場合、変動の前後でモーションがいきなり変わることになるが、このような挙動が好ましくない場合がある。本発明者らは、例えば人間が音楽に合わせてダンスをする際、音楽のBPMがいきなり変わると、変動前のBPMをしばらく引きずってダンスを継続しつつ、徐々に変動後のBPMに合わせる動作をすることに着目した。
【0105】
そこで、本発明者らは、BPMの急激な変動に対して、モーションの変化を遅延させることを着想した。以下では、BPMの急激な変動時のマージ方法について説明するが、BPM以外のマージ用パラメータが急激に変動する場合であっても同様の方法を適用することができる。ここで、「マージ用パラメータが急激に変動する」とは、ある期間内(例えば、1拍分の期間)で当該パラメータの値が所定の閾値以上(又はより大きく)変動することをいう。
【0106】
図9は、BPMが急激に変動する場合の提案マージ方法の一例を示す図である。本例では、2つのベースデータ(BPM=100、140)を有しており、所定の拍のタイミングでBPM=100からBPM=140にテンポが急激に変動するものとする。一例として、各ベースデータの所定の構成要素の座標(相対角度θ)が示されている。
【0107】
図9Aは、急激なBPM変動に特別な対処を行わない場合のモーションの遷移を示す図である。この場合、BPM=100からBPM=140に切り替わるタイミングでモーションがいきなり変わることになる。
【0108】
図9Bは、急激なBPM変動に対してモーション変化の急激な変動を抑制した場合のモーションの遷移を示す図である。
図9Bの例では、BPM=100からBPM=140に切り替わるタイミングから所定の拍数分(ここでは、4拍分)の期間を遷移期間とし、当該所定の拍数分の経過後からは、BPM=140のモーションを確実に再生するようにする。
【0109】
ここで、遷移期間のモーション遷移方法は、例えば上述の提案マージ方法で、当該遷移期間をかけてBPM=100のモーションからBPM=140のモーションに徐々に遷移(移行)していくようにしてもよい。例えば、上記切り替わりのタイミングの1拍後にはBPM=110相当のモーション、2拍後にはBPM=120相当のモーション、3拍後にはBPM=130相当のモーションとなるようにマージ処理を行って時間的に均等に移行してもよいし、拍ごとに重みを付けて移行してもよい。
【0110】
また、遷移期間の長さは、マージ用パラメータの変動量に応じて増減するように制御されてもよい。例えば、当該変動量が大きい場合には、遷移期間を長くするようにしてもよい。
【0111】
なお、上記遷移期間の長さに関する情報や、所定のマージ用パラメータが急激に変動したと判断する変動量(変動量の閾値)に関する情報や、所定のマージ用パラメータの急激な変動への対処機能を有効にするか否かに関する情報の少なくとも1つは、コリオデータにおけるノートオン/オフ信号や、他のイベント(MIDIイベント、SysExイベントなど)、OSCメッセージ、その他の信号などに含まれてもよい。これらの情報は、マージ用パラメータごとに異なる内容(値)が通知されてもよい。また、これらの情報の一部又は全部は、予め装置に保持されるものとしてもよい。
【0112】
例えば、マージ用パラメータであるBPMの変動量の閾値が所定の値(例えば、40)と設定(通知)された装置は、現在のBPM(第3の値)と、新たに指定されたBPM(第4の値)と、を比較して、BPMの変動量(差分又は差分の絶対値)が40より小さい(又は以下である)場合、新たに指定されたBPMに基づいて提案マージ方法を実施し、変動量が40以上である(又はより大きい)場合、所定の拍数分の遷移期間で、現在のBPMに対応するモーションから新たに指定されたBPMに対応するモーションに徐々に移行するように制御してもよい。
【0113】
つまり、マージを行う装置は、マージ用パラメータの値が第3の値から第4の値に変動し、かつ、第3の値と第4の値との差分の絶対値が所定の閾値以上である場合、マージ用パラメータの値の変動のタイミングから開始する遷移期間において、マージ用パラメータの値が第3の値と第4の値の間に含まれると想定して、第3の値に対応するモーションデータと第4の値に対応するデータとのマージ処理を実施することができる。
【0114】
このように、提案マージ方法を実施する装置は、上述の情報に基づいてマージ用パラメータ変動時のマージ方法(モーション遷移方法)を制御することができる。なお、上述の例ではBPMが急激に変動する場合について説明したが、これに限られない。別のマージ用パラメータ(例えば、テンション)が急激に変動する場合であっても、同様の制御を実施することができる。
【0115】
(マージ用パラメータの制御方法)
提案マージ方法を実施する装置は、マージ用パラメータを、モーションデータと同期して再生される他のデータ(例えば、楽曲データ)から検出(判断)してもよい。この場合、当該装置は、楽曲データの再生BPMに基づいて提案マージ方法を実施することができる。
【0116】
また、提案マージ方法を実施する装置は、マージ用パラメータを、自装置内で生成してもよいし、外部から通知されてもよいし、予め保持してもよい。
図10及び
図11を参照して、マージ用パラメータを制御(生成、通知)する制御装置の一例について説明する。
【0117】
図10は、マージ用パラメータを制御する制御装置の全体図であり、
図11は、
図10の制御装置の一部の拡大図である。ここでは、
図2のような情報処理システム1に制御装置500が含まれ、ネットワーク40を介して他の装置(ユーザ端末10)にマージ用パラメータを通知し、当該他の装置で3Dモデルのモーションデータの再生を行う構成を例に説明する。なお、制御装置500は、
図2のユーザ端末10、サーバ20、電子楽器30のいずれかであってもよい。
【0118】
制御装置500は、例えば、1つ以上のノブを含むノブ部510、1つ以上のディスプレイを含むディスプレイ部520、1つ以上のボタンを含むボタン部530、1つ以上のスライダーを含むスライダー部540、などから構成される。
図10及び
図11では、制御装置500の外観が図示されており、制御装置500は、各種情報処理や通信処理に必要な機能を実現する構成を有しているものとする。
【0119】
ノブは、ユーザの押し込み、回転又は押し回しなどの操作を受け付ける。ボタンは、ユーザの押下操作を受け付ける。スライダーは、ユーザのスライド操作を受け付ける。これらの操作により、制御装置500に所定の信号が入力され、制御装置500の処理を変更することができる。
【0120】
ディスプレイは、映像の電気的信号を出力する出力デバイスである。タッチパネルで構成される場合には、ユーザからの操作を受け付けることができる。
図10には、DJ(Disc Jockey)プレイを楽しむためのターンテーブルがディスプレイに表示される例が示されているが、これに限られない。例えば、ディスプレイに表示される内容は、ノブ部510などの操作により変更できる構成としてもよい。
【0121】
制御装置500により、マージ用パラメータだけでなく、ユーザ端末10で再生されるコリオデータの制御信号も送信されてもよい。
図11においては、ディスプレイ部520に、モーションに加えるノイズ(歪み)を制御するためのノイズ部521と、マージ用パラメータの1つであるテンションを制御するためのテンション部522と、モーション(ベースデータ)を制御するためのステップ部523と、が表示されている。
【0122】
なお、あるモーションにノイズを加える場合、当該モーションデータの構成要素の座標の少なくとも一部が、ノイズなしの場合に比べて変化(例えば、x軸方向に変化)する。なお、変化の方向及び変化量は、構成要素ごとに異なってもよい。
【0123】
ノイズ部521は、ノイズ(例えば、ノイズの大きさ)を表示する。
図11では、ディスプレイに表示されるスライダーをユーザが操作することで、ノイズを変更することができる。制御装置500は、ノイズ部521に表示されたノイズに関する情報を生成することができる。
【0124】
テンション部522は、テンションを表示する。
図11では、ディスプレイに表示されるスライダーをユーザが操作することで、テンションを変更することができる。制御装置500は、テンション部522に表示されたテンションに関する情報を生成することができる。
【0125】
ステップ部523は、ステップを表示する。ここで、ステップは、例えば、8拍単位(ワンエイト)や、8拍×4の32拍単位(フォーエイト)など、比較的長い拍数で規定される基本型のモーションのことをいい、ベーシックムーブ、ムーブなどと呼ばれてもよい。ステップのモーションデータは、上半身又は下半身だけでなく、全身の動きを規定するように構成されてもよい。
【0126】
図11では、ディスプレイに表示されるスライダーをユーザが操作することで、ステップを変更することができる。制御装置500は、ステップ部523に表示されたステップに関する情報を生成することができる。
【0127】
なお、ノイズ、テンション、ステップなどは、
図10に示したノブ部510などディスプレイ部520以外の操作により変更されてもよい。
【0128】
ボタン部530のボタン531は、ステップよりも比較的短い拍数で規定されるモーション(アクセントモーション、アクセントなどと呼ばれてもよい)に関連付けられてもよい。
図11では、「ターン」、「ジャンプ」、「クラップ」、「キック」のモーションデータにそれぞれ対応するボタンが示されており、ユーザによりいずれかのボタンが操作されると、制御装置500は、当該ボタンに対応したモーションを特定する情報を生成することができる。
【0129】
当該情報に基づいて、ユーザ端末10はステップの構成要素の座標に関する情報を、少なくとも一部上書き(又は合成)することができる。例えば、ステップが「サイド」である場合に「クラップ」のボタン531をユーザが操作すると、ユーザ端末10は、3Dモデルがサイドステップをしつつクラップ動作をするモーションを再生することができる。
【0130】
制御装置500は、生成した各種情報を、ユーザ端末10に送信してもよい。また、制御装置500は、生成した各種情報に基づいてコリオデータを選択したり、提案マージ方法によりマージしたりして、選択された又はマージされたコリオデータをユーザ端末10に送信してもよい。また、制御装置500は、上記選択された又はマージされたコリオデータを、ディスプレイ部520に表示するように制御してもよい。
【0131】
以上述べた制御装置500を用いることにより、マージ用パラメータを手動かつリアルタイムに変更することができるため、モーションデータに基づく3Dモデルの再生をインタラクティブに行うことができる。
【0132】
上述したような各種情報は、コリオデータにおけるノートオン/オフ信号や、他のイベント(MIDIイベント、SysExイベントなど)、OSCメッセージ、その他の信号などに含まれて送信されてもよい。
【0133】
また、本明細書で説明した用語及び/又は本明細書の理解に必要な用語については、同一の又は類似する意味を有する用語と置き換えてもよい。また、本明細書で説明した情報、パラメータなどは、絶対値で表されてもよいし、所定の値からの相対値で表されてもよいし、対応する別の情報で表されてもよい。
【0134】
本明細書で説明した情報、信号などは、様々な異なる技術のいずれかを使用して表されてもよい。例えば、上記の説明全体に渡って言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、チップなどは、電圧、電流、電磁波、磁界若しくは磁性粒子、光場若しくは光子、又はこれらの任意の組み合わせによって表されてもよい。
【0135】
ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語と呼ばれるか、他の名称で呼ばれるかを問わず、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行可能ファイル、実行スレッド、手順、機能などを意味するよう広く解釈されるべきである。
【0136】
また、ソフトウェア、命令、情報などは、伝送媒体を介して送受信されてもよい。例えば、ソフトウェアが、有線技術(同軸ケーブル、光ファイバケーブル、ツイストペア及びデジタル加入者回線(DSL)など)及び/又は無線技術(赤外線、マイクロ波など)を使用してウェブサイト、サーバ、又は他のリモートソースから送信される場合、これらの有線技術及び/又は無線技術は、伝送媒体の定義内に含まれる。
【0137】
本明細書で説明した各態様/実施形態は単独で用いてもよいし、組み合わせて用いてもよいし、実行に伴って切り替えて用いてもよい。また、所定の情報の通知(例えば、「Xであること」の通知)は、明示的に行うものに限られず、暗黙的に(例えば、当該所定の情報の通知を行わないことによって)行われてもよい。また、情報の通知は、本明細書で説明した態様/実施形態に限られず、他の方法で行われてもよい。
【0138】
本明細書で説明した各態様/実施形態の処理手順、シーケンス、フローチャートなどは、矛盾の無い限り、順序を入れ替えてもよい。例えば、本明細書で説明した方法については、例示的な順序で様々なステップの要素を提示しており、提示した特定の順序に限定されない。
【0139】
以上、本発明について詳細に説明したが、当業者にとっては、本発明が本明細書中に説明した実施形態に限定されるものではないということは明らかである。本発明は、特許請求の範囲の記載により定まる本発明の趣旨及び範囲を逸脱することなく修正及び変更態様として実施することができる。したがって、本明細書の記載は、例示説明を目的とするものであり、本発明に対して何ら制限的な意味を有するものではない。