(57)【特許請求の範囲】
【請求項１】
ユーザの少なくとも身体の一部の動作を検出してその動作に基づいて操作対象物の動作を選定する操作対象物制御装置であって、
前記ユーザの動作を検出する動作検出部と、
前記動作検出部により検出されたユーザの動作を所定の間隔毎に取得する動作取得部と、
前記動作取得部にて取得されたユーザの動作時系列に対して周波数変換を行って得られる周波数成分を要素とする動作特徴量を抽出する動作特徴量抽出部と、
前記動作特徴量の周波数成分に重み付けを行うフィルタを記憶するフィルタ記憶部と、
前記操作対象物の動作時系列が予め記憶されている操作対象物動作記憶部と、
前記フィルタ記憶部から前記ユーザまたは前記操作対象物の環境情報に基づいて取得されたフィルタを用いて、前記動作特徴量の変換を行う動作特徴量変換部と、
前記操作対象物動作記憶部の動作時系列から求められる操作対象物の動作特徴量が、前記動作特徴量変換部にて変換された動作特徴量に近い前記操作対象物動作記憶部の動作時系列を取得する操作対象物動作取得部と、
を備えた操作対象物制御装置。
【請求項２】
操作対象物動作取得部は、前記動作特徴量変換部にて重み付けが行われた動作特徴量を逆周波数変換して得られた動作時系列と、前記操作対象物動作記憶部の動作時系列との相関係数を算出し、相関係数がもっとも１に近い前記操作対象物動作記憶部の動作時系列を取得する、請求項１に記載の操作対象物制御装置。
【請求項３】
前記動作特徴量変換部は前記フィルタを周波数変換してから用いる、請求項１に記載の操作対象物制御装置。
【請求項４】
前記操作対象物の動作は１以上の動作点のツリー構造にて表される、請求項１に記載の操作対象物制御装置。
【請求項５】
前記操作対象物動作記憶部および前記フィルタ記憶部は、リレーショナルデータベースまたは拡張マークアップ言語（ＸＭＬ）データベースである、請求項４に記載の操作対象物制御装置。
【請求項６】
前記ユーザまたは前記操作対象物の環境情報は、前記ユーザが動作を行っている間に再生されている曲の情報であり、
前記曲の情報が記憶されている曲情報記憶部を更に備えた、請求項１に記載の操作対象物制御装置。
【請求項７】
前記ユーザの動作を取得する所定の間隔は、前記曲の１小節を１以上の数で分割した間隔である、請求項６に記載の操作対象物制御装置。
【請求項８】
コンピュータが、ユーザの少なくとも身体の一部の動作を検出してその動作に基づいて操作対象物の動作を選定するための方法であって、
前記コンピュータが、前記ユーザの動作を所定の間隔毎に取得するステップと、
前記コンピュータが、前記ユーザの動作時系列に対して周波数変換を行って得られる周波数成分を要素とする動作特徴量を抽出するステップと、
前記コンピュータが、前記ユーザまたは前記操作対象物の環境情報に基づいて、前記動作特徴量のうち周波数成分に重み付けを行うために予め記憶されているフィルタを取得するステップと、
前記コンピュータが、前記フィルタを用いて、前記動作特徴量の変換を行うステップと、
前記コンピュータが、予め記憶されている前記操作対象物の動作時系列から求められる操作対象物の動作特徴量が、前記変換された動作特徴量に近い前記動作時系列を取得するステップと、
を含む操作対象物の動作を選定する方法。
【請求項９】
更に、前記コンピュータが、予め記憶されている前記操作対象物の動作時系列と、前記重み付けが行われた動作特徴量を逆周波数変換して得られた動作時系列と、の相関係数を算出し、相関係数がもっとも１に近い前記動作時系列を取得するステップを含む、請求項８に記載の方法。
【請求項１０】
前記コンピュータが、前記動作特徴量の変換を行う際に、前記フィルタを周波数変換してから用いる、請求項８に記載の方法。
【請求項１１】
前記操作対象物の動作は１以上の動作点のツリー構造により表される、請求項８に記載の方法。
【請求項１２】
前記ユーザまたは前記操作対象物の環境情報は、前記ユーザが動作を行っている間に再生されている曲の情報である、請求項８に記載の方法。
【請求項１３】
前記ユーザの動作を取得する所定の間隔は、前記曲の１小節を１以上の数で分割した間隔である、請求項１２に記載の方法。
【請求項１４】
ユーザの少なくとも身体の一部の動作を検出してその動作に基づいて操作対象物の動作を選定するシステムであって、
ユーザの動作を検出する動作検出部と、
前記動作検出部により検出されたユーザの動作を所定の間隔毎に取得する動作取得部と、
前記動作取得部にて取得されたユーザの動作時系列に対して周波数変換を行って得られる周波数成分を要素とする動作特徴量を抽出する動作特徴量抽出部と、
前記動作特徴量のうち周波数成分に重み付けを行うフィルタを記憶するフィルタ記憶部と、
前記操作対象物の動作時系列が予め記憶されている操作対象物動作記憶部と、
前記フィルタ記憶部から前記ユーザまたは前記操作対象物の環境情報に基づいて取得されたフィルタを用いて、前記動作特徴量の変換を行う動作特徴量変換部と、
前記操作対象物動作記憶部の動作時系列から求められる操作対象物の動作特徴量が、前記動作特徴量変換部にて変換された動作特徴量に近い前記操作対象物動作記憶部の動作時系列を取得する操作対象物動作取得部と、
を備えた操作対象物の動作を選定する操作対象物制御システム。
【請求項１５】
操作対象物動作取得部は、前記動作特徴量変換部にて重み付けが行われた動作特徴量を逆周波数変換して得られた動作時系列と、前記操作対象物動作記憶部の動作時系列の相関係数を算出し、相関係数がもっとも１に近い前記操作対象物動作記憶部の動作時系列を取得する請求項１４に記載の操作対象物制御システム。
【請求項１６】
前記動作特徴量変換部は、前記フィルタを周波数変換してから用いる請求項１４に記載の操作対象物制御システム。
【請求項１７】
前記操作対象物の動作は１以上の動作点のツリー構造により表される、請求項１４に記載の操作対象物制御システム。
【請求項１８】
前記操作対象物動作記憶部および前記フィルタ記憶部は、リレーショナルデータベースまたは拡張マークアップ言語（ＸＭＬ）データベースである、請求項１７に記載の操作対象物制御システム。
【請求項１９】
コンピュータにより、ユーザの少なくとも身体の一部の動作を検出してその動作に基づいて操作対象物の動作を選定するためのプログラムであって、
前記コンピュータをして、
前記ユーザの動作を所定の間隔毎に取得するステップと、
前記ユーザの動作時系列に対して周波数変換を行って得られる周波数成分を要素とする動作特徴量を抽出するステップと、
前記ユーザまたは前記操作対象物の環境情報に基づいて、前記動作特徴量のうち周波数成分に重み付けを行うために予め記憶されているフィルタを取得するステップと、
前記フィルタを用いて、前記動作特徴量の変換を行うステップと、
予め記憶されている前記操作対象物の動作時系列から求められる操作対象物の動作特徴量が、前記変換された動作特徴量に近い前記動作時系列を取得するステップと、
を実行させる、プログラム。
【請求項２０】
更に、前記コンピュータをして、予め記憶されている前記操作対象物の動作時系列と、前記重み付けが行われた動作特徴量を逆周波数変換して得られた動作時系列と、の相関係数を算出し、相関係数がもっとも１に近い前記動作時系列を取得するステップを実行させる、請求項１９に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、人間の動作に基づいて、状況に合った操作対象物の動作を選定する装置、システム、方法およびプログラムに関する。
【背景技術】
【０００２】
人間はロボットや仮想世界のアバター等の操作対象物を通して自己表現を行うことや、他者とのコミュニケーションを図ることができる。例えば、人間は、仮想世界内における自己の操作対象物（分身ともいう）であるアバターを操作し、アバターに振付を踊らせることにより、自己表現を行うことや、他者とのコミュニケーションを図ることができる。また、アバターに振付を踊らせることにより、ダンスを踊る気分を味わうことができる。このような操作対象物に振付を踊らせるための先行技術はいくつか存在し、以下に例示する。
【０００３】
特許文献１には、遊戯者が予め作成した振付データを用いてダンスゲームを展開することができるダンスゲームシステムが提案されている。ダンスゲームシステムに備え付けられた足踏みステップ上で遊戯者が音楽に合わせて踏んだステップに基づいて、ダンスゲームシステムは振付を作成し、ダンスゲームシステム内に登録する。このようにしてダンスゲームシステムに登録された振付は、予めダンスゲームシステムに記憶されている振付とあわせてダンスゲームに用いることができる。
【０００４】
特許文献２には、音楽に合わせて踊る人間の踊りを強調して、３次元ＣＧの仮想ダンサーに高度な踊りを踊らせる踊り映像強調合成装置が提案されている。踊り映像強調合成装置は、音楽に合わせて踊る人間の映像をカメラで取り込んだ映像と予め用意されている踊りパターンから読み出された伴奏曲のテンポに合った踊りパターンとを合成し、３次元ＣＧの仮想ダンサーが踊っている画像を作成する。
【０００５】
特許文献３には、観察したユーザの動作を模倣して行い、更にユーザの動作を変調した新たな動作を行うロボット装置が提案されている。ロボット装置は、備えられたカメラからユーザの動作の画像を取り込み、その動作を行う。また、取り込んだユーザの動作はロボット装置内の記憶部に蓄積され、蓄積されたユーザの動作を元に新たな動作を創作し、行う。
【０００６】
【特許文献１】特開２００１−２７６２９１号公報
【特許文献２】特開２００２−０４２１６８号公報
【特許文献３】特開２００５−２９７０９５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に記載のシステムでは、ステップの組み合わせを変化させることで、操作対象物であるアバターの動作にバリエーションを持たせることができるが、ステップ各々に動作を選べるわけではないため選べる動作のバリエーションは限られてしまう。また、ユーザの動作が操作対象物の動作に直接反映されないため、操作対象物との一体感を持つことができない。一方、特許文献２，３に記載の方法では、ユーザの動作が操作対象物の動作に直接反映されるが、ユーザの望まない動作もそのまま反映されてしまうという欠点もある。また、複数のカメラが必要であったり、専用のデバイスが必要であったりすることから、手軽に利用するにはわずらわしい。
【０００８】
本発明は、上記課題に鑑み、容易にユーザの動作を修飾して操作対象物に反映させることにより、ユーザが操作対象物と一体感を持つことができ、また、多種多様の動作を操作対象物に行わせることができる操作対象物制御装置、および方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の１つの態様によると、ユーザの少なくとも身体の一部の動作を検出してその動作に基づいて操作対象物制御装置を提供する。操作対象物制御装置は、ユーザの動作を検出する動作検出部、動作取得部、動作特徴量抽出部、フィルタ記憶部、操作対象物動作記憶部、動作特徴量変換部、および操作対象物動作取得部を備える。動作取得部は、動作検出部により検出されたユーザの動作を所定の間隔毎に取得する。動作特徴量抽出部は、動作取得部にて取得されたユーザの動作時系列に対して周波数変換を行って得られる周波数成分を要素とする動作特徴量を抽出する。
【００１０】
フィルタ記憶部は、動作特徴量の周波数成分に重み付けを行うフィルタを記憶する。操作対象物動作記憶部は、操作対象物の動作時系列が予め記憶されている。動作特徴量変換部は、フィルタ記憶部からユーザまたは操作対象物の環境情報に基づいて取得されたフィルタを用いて、動作特徴量の変換を行う。操作対象物動作取得部は、操作対象物動作記憶部の動作時系列から求められる操作対象物の動作特徴量が、動作特徴量変換部にて変換された動作特徴量に近い操作対象物動作記憶部の動作時系列を取得する。
【００１１】
「操作対象物」とは、ユーザが操作して動作を行わせるものであり、例えば、仮想世界上のアバターが典型例であるが、実空間上のロボットもの一種である。なお、操作対象物は人に限らず、動物等も含む。「周波数変換」とは、ある時系列値（本発明においては、動作の時系列）に含まれる様々な周波数成分を調べることであり、例えば、フーリエ変換、およびウェーブレット変換が挙げられる。「環境情報」とは、ユーザや操作対象物の自体の情報およびユーザや操作対象物が存在する環境の関する情報であり、例えば、流れている曲、時刻、アバターの性別や年齢である。本態様によれば、環境情報に基づいて、ユーザの動作特徴量のうち周波数成分に重み付けを行うことにより、ユーザの動作を修飾して操作対象物に反映することができる。「修飾して」とは、ユーザの動作の特定の動きを大きくする等強調することや。逆にユーザの動作の特定の動きを小さくする等減退することをいう。
【００１２】
また、本態様において、操作対象物動作取得部は、前記動作特徴量変換部にて重み付けが行われた動作特徴量を逆周波数変換して得られた動作時系列と、前記操作対象物動作記憶部の動作時系列の相関係数を算出し、相関係数がもっとも１に近い前記操作対象物動作記憶部の動作時系列を取得する。重み付けされたユーザの動作特徴量から算出された動作時系列との相関係数が最も１に近い操作対象物の動作時系列を取得することにより、ユーザの動作に近い操作対象物の動作を特定することができる。
【００１３】
また、本態様において、前記動作特徴量変換部は、前記フィルタを周波数変換してから用いてもよい。周波数変換したフィルタを用いることにより、周波数シフトに影響を受けにくくなる。
【００１４】
また、本態様の操作対象物の動作は、１以上の動作点のツリー構造により表されてもよい。動作点とは、例えば、人と似た身体構造をもつアバターやロボット等の場合には、関節である。操作対象物の動作を１以上の動作点のツリー構造により表すことにより、動作点間の関係を表すことができ、また、柔軟かつ拡張性に富むデータ構造とすることができる。
【００１５】
更に、本態様の操作対象物の動作記憶部および前記フィルタ記憶部は、リレーショナルデータベースまたは拡張マークアップ言語（ＸＭＬ）データベースである。それにより、操作対象物の動作をツリー構造のまま記憶することができる。
【００１６】
また、本態様は、ユーザまたは操作対象物の環境情報は、ユーザが動作を行っている間に再生されている曲の情報であり、曲の情報が記憶されている曲情報記憶部を更に備える。曲の情報とは、例えば、「間奏」や「サビ」といった曲のパートである。曲の情報に基づいてフィルタが取得されることにより、ユーザの動作を曲に合うように変換して操作対象物に行わせることができる。例えば、「サビ」は盛り上がるので激しい動きにさせるために高周波数成分に重み付けを行うフィルタを取得するとすることができる。
【００１７】
更に、本態様は、ユーザの動作を取得する所定の間隔は、前記曲の１小節を１以上の数で分割した間隔とすることができる。これにより、曲の区切りと動作の区切りとを合わせることができ、動作が曲にあってない状態を防ぐことができる。
【発明の効果】
【００１８】
本発明によれば、容易にユーザの動作を修飾して操作対象物に反映させることにより、ユーザが操作対象物と一体感を持つことができ、また、多種多様の動作を操作対象物に行わせることができる操作対象物制御装置、および方法を提供することができる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明を実施するための最良の形態として、曲に合わせて踊るユーザの動作から仮想世界におけるユーザの操作対象物であるアバターの動作を選定する場合について図を参照しながら説明する。尚、これはあくまでも一例であって、本発明の技術的範囲はこれに限られるものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態または実施例に記載されたものに限定されるものではない。
【００２０】
［操作対象物制御装置の機能構成］
図１は、本実施形態に係る操作対象物制御装置１の機能構成を示す図である。操作対象物制御装置１は、ユーザ動作取得部１０、動作特徴量抽出部１１、曲情報取得部１２、フィルタ検索部１３、動作特徴量変換部１４、およびアバター動作取得部１５、アバター動作データベース（以下、簡略化のためデータベースをＤＢとする）２０、曲ＤＢ２１、およびフィルタＤＢ２２を有する。本実施形態において、操作対象物制御装置１としているが、各機能部を分散させて、ネットワークにて接続し、システム構成をとってもよい。
【００２１】
ユーザ動作取得部１０は、ユーザの動作をＷｉｉ（登録商標）リモコンのような入力デバイス（動作検出部）を介してユーザの動作を３次元の絶対位置の時系列として取得する。そのため、入力デバイスは３次元の絶対位置の時系列が取得できるものである必要があり、加速度センサー等を用いた計算により絶対位置が計算できるものも含む。動作特徴量抽出部１１は、ユーザ動作取得部１０にて取得された動作時系列から周波数変換にてユーザの動作特徴量を抽出する。なお、本実施形態においては、周波数変換としてフーリエ変換を用いる。
【００２２】
曲情報取得部１２は、曲ＤＢ２１から流れている曲の情報および次小節の情報を取得する。フィルタ検索部１３は、曲情報取得部１２にて取得された情報に基づいてフィルタＤＢ２２からフィルタ情報を取得する。動作特徴量変換部１４は、動作特徴量抽出部１１にて抽出された動作特徴量とフィルタ検索部１３にて取得されたフィルタ情報とに基づいて動作特徴量の周波数成分に重み付けを行う。アバター動作取得部１５は、動作特徴量変換部１４にて重み付けされた動作特徴量を逆フーリエ変換して得られた動作時系列と、前記操作対象物動作記憶部の動作時系列の相関係数を算出し、相関係数がもっとも１に近い前記操作対象物動作記憶部の動作時系列を取得する。取得された動作時系列に基づいてアバターの動作はディスプレイ等に表示される。
【００２３】
アバター動作ＤＢ２０は、アバターの全身の各部位の一定フレーム分毎の連続動作の時系列および、その動作特徴量を複数の動作について蓄積している。ここで、フレームは、例えば、曲の１小節をＫ分割した間隔でサンプリングされ、一定フレーム分とは例えば、１小節である。Ｋが大きいほどアバターの動作は滑らかになるが、データ量は増える。なお、Ｋは操作対象物制御装置１の性能等に基づいて決まる値である。アバター動作ＤＢ２０は、情報をテーブル形式で表すリレーショナルＤＢでもよいし、情報をＸＭＬで表したＸＭＬＤＢでもよい。本実施形態においては、ＸＭＬＤＢとする。
【００２４】
曲ＤＢ２１は、曲の作曲者等の楽曲情報、および各小節や経過時間に対しての「Ａメロ」等の属性情報が曲毎に蓄積されている。フィルタＤＢ２２は、動作特徴量にフィルタを適用するルールおよびフィルタ情報を蓄積している。ここで、フィルタ情報とは、動作特徴量の周波数を強調するための情報である。なお、曲ＤＢ２１も、リレーショナルＤＢでもＸＭＬＤＢでもよいが、本実施形態においてはＸＭＬＤＢとする。
【００２５】
ユーザ動作取得部１０は、動作取得部の一例であり、フィルタ検索部１３および動作特徴量変換部１４は動作特徴量変換部の一例であり、アバター動作取得部１５は操作対象物動作取得部の一例であり、曲ＤＢ２１は曲情報記憶部の一例であり、アバター動作ＤＢ２０は操作対象物動作記憶部の一例である。なお、各ＤＢは、ハード・ディスク上のデータベースに限らず、メモリ等の外部記憶装置でもよい。操作対象物制御装置１のハードウェア構成については後述する。
［アバター動作ＤＢ］
【００２６】
アバター動作ＤＢ２０について詳細に説明する。ここで、アバターの動作は一般的なモーションデータの１つであるＢＶＨファイル形式（以下、ＢＶＨ形式という）で表し、アバター動作ＤＢ２０をそれに準じたＸＭＬＤＢとする。なお、アバターの動作をＡＳＦ−ＡＭＣファイル形式等の別の形式で表してもよいし、アバター動作ＤＢにリレーショナルＤＢを用いてもよい。アバター動作ＤＢ２０は、（１）アバターの骨格構造と寸法を定義するスケルトンデータ、（２）アバターの動きを定義するフレーム毎の動作、および（３）動作データの絶対座標、および特徴量の３つの項目から構成される。（１）スケルトンデータおよび（２）フレーム毎の動作はモーションデータを構成するデータである。ＢＶＨ形式等のモーションデータのフォーマットは、人体を多数の関節と骨とを持つ多関節リンク構造で表現し、各関節の時系列の位置情報あるいは、各関節の時系列の角度情報と各骨の長さの情報を持つ。このモーションデータを用いることで、アバターを動作させることができる。一方、（３）動作データの絶対座標、および特徴量は、後述するアバター動作選定の際に使用されるデータである。
【００２７】
まず、（１）アバターの骨格構造と寸法を定義するスケルトンについて説明する。スケルトンには骨格構造と寸法、つまり、関節の親子接続関係と各骨の長さとが定義される。図２は、ＢＶＨ形式によるスケルトンデータのＸＭＬファイルの一例を示す図であり、図３は、ＢＶＨ形式によるスケルトンデータのＸＭＬファイルタグ構造を示す図である。図３に示すように、スケルトンデータは、＜Ｓｋｅｌｅｔｏｎ＞以下に、アバターの骨格構造と寸法が＜Ｒｏｏｔ＞、＜Ｊｏｉｎｔ＞、および＜Ｅｎｄ＞にて定義される。
【００２８】
＜Ｊｏｉｎｔ＞とは、階層構造を構成する関節Ｎｏｄｅであり、１つ以上の＜Ｊｏｉｎｔ＞若しくは＜Ｅｎｄ＞を子Ｎｏｄｅとして持つ。また、＜Ｒｏｏｔ＞とは、階層構造の唯一の始点となる特殊な＜Ｊｏｉｎｔ＞であり、１つ以上の＜Ｊｏｉｎｔ＞を子Ｎｏｄｅとして持つ。＜Ｒｏｏｔ＞は、階層構造の一番上位にあるパーツを定義し、人間を表すオブジェクトの場合、腰を表現するパーツを＜Ｒｏｏｔ＞として定義するのが一般的である。＜Ｅｎｄ＞とは、階層構造の末端ノードとなる特殊な＜Ｊｏｉｎｔ＞であり、子Ｎｏｄｅを持たない。
【００２９】
＜Ｒｏｏｔ＞、＜Ｊｏｉｎｔ＞、および＜Ｅｎｄ＞は、それぞれ、関節名を指定するｎａｍｅ属性と、ｘ，ｙ，ｚの順に親関節である＜Ｒｏｏｔ＞からの位置を指定するｏｆｆｓｅｔ属性を持つ。図２の＜Ｒｏｏｔ＞には、ｎａｍｅとして「Ａｖａｔａｒ」がセットされ、ｏｆｆｓｅｔにはワールド座標系における初期位置がセットされている。また、図２の４行目の＜Ｊｏｉｎｔ＞には、ｎａｍｅに関節の名前である「ｖｌ５」が定義され、ｏｆｆｓｅｔには＜Ｒｏｏｔ＞からの位置がｘ，ｙ，ｚそれぞれについて（０．００００，２．７７００，２．３３００）が指定されている。図２の５行目以降も同様に指定されている。なお、＜Ｊｏｉｎｔ＞の関節は、＜Ｒｏｏｔ＞から近い順に定義される。
【００３０】
更に、図２の１０行目の＜Ｅｎｄ＞にも＜Ｊｏｉｎｔ＞と同様に、関節名「ｓｋｕｌｌ＿ｔｉｐ」とＲｏｏｔからの位置が（０．００００，１７．５２９０，３．５６９０）と指定されている。上述した通り、図２において＜Ｅｎｄ＞以下には＜Ｊｏｉｎｔ＞の定義がされない。
【００３１】
アバター動作ＤＢ２０に蓄積される全ての動作データについて同じスケルトンデータを用いるのがデータ量等の点から見ても望ましい。そのためには、アバターについての新しい動作データを登録する際、登録する動作を行っているアバターのスケルトンとアバター動作ＤＢ２０のスケルトンとが異なる場合には、登録する動作を行っているアバターのスケルトンの各Ｊｏｉｎｔについてアバター動作ＤＢ２０のスケルトンとの縮尺を求める。求められた縮尺率に合わせて、アバター動作ＤＢ２０側のスケルトンに合うように、新しいアバターの動作データの拡大縮小を行ってから、アバター動作ＤＢ２０に動作データを登録する。
【００３２】
一方、ユーザが操作するアバターのスケルトンデータとアバター動作ＤＢ２０のスケルトンデータとが異なる場合には、まず、上記の動作データの登録時と同様に、ユーザのアバターとアバター動作ＤＢ２０とのスケルトンの各Ｊｏｉｎｔについて縮尺率を求める。求めた縮尺率に合わせて、アバター動作ＤＢ２０のスケルトンに正規化されている動作データを拡大・縮小を行うことでユーザが操作するアバターに動作データを合わせる。このスケーリング手法については、Ｄｙｎａｍｉｃ  Ｔｉｍｅ  Ｗａｒｐｉｎｇ等の既存手法を用いる。この手法により、１つの標準スケルトンに基づいた動作が登録されたアバター動作ＤＢ２０を用いて、スケルトンの異なる様々なアバターに動作をさせることができる。
【００３３】
次に、（２）アバターの動きを定義するフレーム毎の動作データについて説明する。動作データには、具体的には、フレーム毎の＜Ｒｏｏｔ＞の位置、＜Ｊｏｉｎｔ＞および＜Ｒｏｏｔ＞の回転が定義される。図４は、ＢＶＨ形式による動作データのＸＭＬファイルの一例を示す図であり、図５は、ＢＶＨ形式による動作データのＸＭＬファイルタグ構造を示す図である。図５に示すように、動作データは、＜Ｍｏｔｉｏｎ＞の以下に＜Ｓｏｕｒｃｅ＞、＜Ｓｋｅｌｅｔｏｎ＞、＜Ｒｏｏｔ＞、および＜Ｊｏｉｎｔ＞にて、アバターの各関節の姿勢がフレーム毎に定義される。
【００３４】
＜Ｓｏｕｒｃｅ＞には、ｔｙｐｅ属性で変換元のファイル形式、ｆｒａｍｅ属性でデータ全体の長さを指定する。図４の３行目の＜Ｓｏｕｒｃｅ＞において、ｔｙｐｅ＝“ＢＶＨ”となっているので、変換元のファイルがＢＶＨ形式であることが指定されており、ｆｒａｍｅ＝２であるので、動作データが２フレーム分記憶されていることが指定されている。また、＜Ｓｋｅｌｅｔｏｎ＞は、スケルトン情報定義タグであり、ｎａｍｅ属性で対応するスケルトンデータのファイルを指定する。図４の４行目の＜Ｓｋｅｌｅｔｏｎ＞において、ｎａｍｅ＝ｘｍｌＭｏｔｉｏｎ＿ｓｋｅｌｅｔｏｎ．ｘｍｌとなっているので、図４に示す動作データに対応する、つまり図４に示す動作データにて動かすことができるアバターの骨格構造を定義したスケルトンファイル名がｘｍｌＭｏｔｉｏｎ＿ｓｋｅｌｅｔｏｎ．ｘｍｌであることを示す。
【００３５】
＜Ｒｏｏｔ＞には、＜Ｒｏｏｔ＞の位置情報および＜Ｒｏｏｔ＞の回転情報が定義され、＜Ｊｏｉｎｔ＞には、各関節の回転情報が行方向に時系列順に記録されている。ただし、関節情報は＜Ｓｋｅｌｅｔｏｎ＞に指定されるスケルトンデータと整合が取れている必要がある。＜Ｓｋｅｌｅｔｏｎ＞に指定されるスケルトンデータの動作データであるからである。また、回転情報の記述方法には、オイラー角表現、Ｑｕａｔｅｒｎｉｏｎ表現、任意回転軸表現があり、いずれもフレーム順序に合わせて、数値を与える必要がある。
【００３６】
図５に示すように＜Ｒｏｏｔ＞以下には、＜Ｐｏｓｉｔｉｏｎ＞および＜Ｒｏｔａｔｉｏｎ＞が定義される。＜Ｐｏｓｉｔｉｏｎ＞はＲｏｏｔ位置定義タグであり、＜Ｘ＞、＜Ｙ＞、＜Ｚ＞を定義することができ、それぞれｄａｔａ属性にて３次元座標系での位置を、フレームの順に指定する。＜Ｒｏｔａｔｉｏｎ＞は、Ｒｏｏｔ向き定義タグであり、＜Ｅｕｌｅｒ＞、＜Ｑｕａｔｅｒｎｉｏｎ＞、および＜ＡｘｉｓＡｎｇｌｅ＞のいずれかを定義することができる。いずれのタグにおいても、ｄａｔａ属性にて３次元座標系での向きを基準向きからの回転移動としてフレーム順に指定する。ただし、基準の向きは、正面が＋ｚ軸方向、重力方向が＋ｙ軸方向である。
【００３７】
＜Ｅｕｌｅｒ＞はＥｕｌｅｒ表現定義タグであり、＜Ｘ＞，＜Ｙ＞，＜Ｚ＞を含み、ｄａｔａ属性でオイラー角をｆｒａｍｅ順に指定する。この際、回転行列の乗算順序は＜Ｘ＞，＜Ｙ＞，＜Ｚ＞の指定順序に依存する。＜Ｑｕａｔｅｒｎｉｏｎ＞はＱｕａｔｅｒｎｉｏｎ表現定義タグであり、＜Ｗ＞，＜Ｘ＞，＜Ｙ＞，＜Ｚ＞で、ｄａｔａ属性の四元数をｆｒａｍｅ順に指定する。＜ＡｘｉｓＡｎｇｌｅ＞は任意軸表現定義タグであり、＜Ｘ＞，＜Ｙ＞，＜Ｖ＞，＜Ａｎｇｌｅ＞を含んで、ｄａｔａ属性で回転軸の向きを表す３次元ベクトルと回転角度をｆｒａｍｅ順に指定する。
【００３８】
図４に示す動作データにおいて、Ｒｏｏｔの向きは＜Ｅｕｌｅｒ＞にて定義され、＜Ｘ＞、＜Ｙ＞、＜Ｚ＞ｄａｔａ属性がいずれも（０．０）であるのでＲｏｏｔは基準の向きであることを示している。
【００３９】
一方、＜Ｊｏｉｎｔ＞は、Ｊｏｉｎｔ回転定義タグであり、＜Ｅｕｌｅｒ＞、＜Ｑｕａｔｅｒｎｉｏｎ＞、＜ＡｘｉｓＡｎｇｌｅ＞のいずれかのタグを定義することができる。＜Ｅｕｌｅｒ＞、＜Ｑｕａｔｅｒｎｉｏｎ＞、＜ＡｘｉｓＡｎｇｌｅ＞に含まれるタグは、＜Ｒｏｏｔ＞と同様であり、それぞれｄａｔａ属性にて３次元座標系での向きを基準向きからの回転移動としてフレーム順に指定する。基準向きは関節部位によって異なるが、通常は腕を下げた立脚姿勢が基準である。
【００４０】
最後に、（３）動作データの絶対座標、および動作特徴量について説明する。図６は、ＢＶＨ形式による動作データの絶対座標、および動作特徴量のＸＭＬファイルの一例を示す図であり、図７は、ＢＶＨ形式による動作データの絶対座標、および動作特徴量のＸＭＬファイルタグ構造を示す図である。図７に示すように、動作データの絶対座標、および動作特徴量は、＜Ｆｅａｔｕｒｅ＞以下に、＜Ｓｏｕｒｃｅ＞、＜Ｍｏｔｉｏｎ＞、および＜Ｊｏｉｎｔ＞が定義される。
【００４１】
＜Ｓｏｕｒｃｅ＞は、Ｓｏｕｒｃｅ情報定義タグであり、ｆｒａｍｅ属性で動作特徴量の次元数を指定する。この次元数は、絶対座標を使う場合には、対応する動作データのフレーム数と等しい。対応する動作データは＜Ｍｏｔｉｏｎ＞に定義される。図６に示す動作データの絶対座標、および動作特徴量が図４に示す動作データに対応しているとすると、図４に示す動作データのフレーム数＝２とｆｒａｍｅに指定される数は同じになる。＜Ｍｏｔｉｏｎ＞は動作データ定義タグであり、ｎａｍｅ属性で対応する動作データのファイル名を示す。
【００４２】
＜Ｊｏｉｎｔ＞はＮｏｄｅ定義タグであり、ｎａｍｅ属性で関節名を指定する。これは対応する動作データの関節名と整合性が取れている必要がある。図７に示すように、＜Ｊｏｉｎｔ＞以下には、＜Ｓｐｅｃｔｒｕｍ＞および＜Ｐｏｓｉｔｉｏｎ＞が定義される。＜Ｓｐｅｃｔｒｕｍ＞は動作特徴量定義タグであり、ｔｙｐｅ属性で動作特徴量名を示し、＜Ｘ＞，＜Ｙ＞，＜Ｚ＞で、それぞれ動作特徴量を示すが、フーリエ変換の場合は複素数であるので、ｄａｔａ１属性で実部、ｄａｔａ１２属性で虚部を示す。＜Ｐｏｓｉｔｉｏｎ＞は絶対座標定義タグであり、ｔｙｐｅ属性で動作特徴量名を示し、＜Ｘ＞，＜Ｙ＞，＜Ｚ＞で、それぞれ絶対座標を示す。
【００４３】
上述した（３）動作データの絶対座標、および特徴量は、アバター動作ＤＢ２０に記憶されている（１）アバターの骨格構造と寸法を定義するスケルトンデータ、および（２）アバターの動きを定義するフレーム毎の動作から求めることができる。そのため、（３）動作データの絶対座標、および特徴量は、必要な時に（１）アバターの骨格構造と寸法を定義するスケルトンデータ、および（２）アバターの動きを定義するフレーム毎の動作から求めてもよいが、計算に時間がかかるため、予め計算し、アバター動作ＤＢ２０に記憶させておくのが望ましい。
［絶対座標計算］
【００４４】
ここで、動作データの絶対座標の求め方について説明する。上述したＢＶＨ形式のように、アバターの動作は通常絶対座標ではなく各関節との関係で表現される。一方、入力デバイスにて取得される情報は絶対座標であるためユーザの動作特徴量は絶対座標にて計算された値である。後述するが、ユーザの動作特徴量とアバターの動作特徴量とを対比するため、絶対座標におけるアバターの動作特徴量を求める必要がある。そのために、まず、アバターの動作の絶対座標を求める。
【００４５】
アバターの動作を絶対座標に変換するには、あるフレームでのスケルトンデータの各関節の親関節からのＸ，Ｙ，Ｚのオフセットの値（ｘ，ｙ，ｚ）を用いたν＝（ｘ，ｙ，ｚ，１）、および、同じフレームでの動作データのＥｕｌｅｒ角の値（θｘ，θｙ，θｚ）、およびｘ，ｙ，ｚ軸の回転を表すトランスフォーム行列、および親関節ベクトル（ｔｘ，ｔｙ，ｔｚ）を用いて、式（１）にて、子関節の末端の絶対座標を求めることができる。なお、式（１）に用いるトランスフォーム行列を式（２）から（４）に、親関節ベクトル（ｔｘ，ｔｙ，ｔｚ）の行列式を式（５）に示す。
【００４６】
【数１】
0005495222.tif 000002
【００４７】
【数２】
0005495222.tif 000003
【００４８】
【数３】
0005495222.tif 000004
【００４９】
すなわち、任意の関節の絶対座標を求めるには、
（１）（ｔｘ，ｔｙ，ｔｚ）にＲｏｏｔのオフセット値を代入する。
（２）子関節のオフセット値を（ｘ，ｙ，ｚ）、動作データのＥｕｌｅｒ角の値（θｘ，θｙ，θｚ）に代入し、式（１）を計算する。
（３）求めたν´＝（ｘ´，ｙ´，ｚ´，１）より、（ｔｘ，ｔｙ，ｔｚ）に（ｘ´，ｙ´，ｚ´）を代入し、絶対座標を求めたい関節まで（２）（３）を繰り返す。
【００５０】
例えば、図２に示すスケルトンデータにおいて、１７行目に示す左手「ｌ＿ｗｒｉｓｔ」の絶対座標を求める場合には、まず「ｖｌ５」の絶対座標を（１）から（３）の手順にて計算し、次に計算された「ｖｌ５」の絶対座標を用いて「ｖｌ１」を同様に計算し、とＲｏｏｔから「ｌ＿ｗｒｉｓｔ」まで順番に計算を行うことで「ｌ＿ｗｒｉｓｔ」の絶対座標を求めることができる。
［動作特徴量］
【００５１】
次にアバターの絶対座標における動作特徴量の求め方について説明する。アバターの動作時系列はｘ，ｙ，ｚの３次元で表されるが、１次元ずつ特徴量を抽出する方法について説明する。Ｋフレーム分の動作時系列のうち、ある次元、例えばｘ座標、の時系列をａ＝（ａ０，ａ１，・・，ａＫ−１）とした場合に、式（６）に示すフーリエ変換にて、Ａ＝（Ａ０，Ａ１，・・・，ＡＫ−１）を求める。なお、Ｋフレームとは、曲の１小節をＫ分割した時に得られるフレーム数である。
【００５２】
【数４】
0005495222.tif 000005
【００５３】
残りの２次元、ｙ，ｚ座標、についても同様に式（６）に示す離散フーリエ変換を行い、Ｂ＝（Ｂ０，Ｂ１，・・・，ＢＫ−１）およびＣ＝（Ｃ０，Ｃ１，・・・，ＣＫ−１）を求める。このようにして求められたＡ，Ｂ，Ｃを動作特徴量とする。なお、Ａｋ，Ｂｋ，Ｃｋは複素数であり、かつ動作特徴量は３次元のＫフレームの時系列であるので、１動作あたりの特徴量の数は見かけ上２×Ｋ×３となるが、自由度はＫ×３のままである。また、離散フーリエ変換の計算コストはΟ（Ｋ２）であるが、この計算の高速な方法、高速フーリエ変換を用いればΟ（Ｋｌｏｇ（Ｋ））まで計算コストを削減することができる。
［曲ＤＢ］
【００５４】
次に、曲ＤＢ２１がＸＭＬＤＢの場合を例として説明する。なお、曲ＤＢ２１は、ＸＭＬＤＢに限らず、リレーショナルＤＢでもよい。曲ＤＢ２１には、各小節や経過時間に対して「サビ」「Ａメロ」等の属性情報を付加したＭｕｓｉｃＸＭＬファイルが蓄積されている。ＭｕｓｉｃＸＭＬファイルは、「楽曲情報」、「演奏情報」、および、「楽譜情報」の３つの要素から構成されている。「楽曲情報」は、楽曲の持つ「タイトル」、「作者」等を表現する情報であり、「演奏情報」は、オーディオの情報等を表現する情報である。「楽譜情報」は楽譜イメージを表現する情報であり、小節毎に音符や歌詞が記述される。図８は、ＭｕｓｉｃＸＭＬの論理構造例を示す。図８に示すように、具体的なＭｕｓｉｃＸＭＬの記述は、楽譜、パート、小節を表す＜ｍｅａｓｕｒｅ＞が記述され、その下には、調合や拍子を表す＜ａｔｔｒｉｂｕｔｅｓ＞と、音符を表す＜ｎｏｔｅ＞等の楽譜タグが記述される。
【００５５】
図９は、楽譜のＭｕｓｉｃＸＭＬの１部を示す図である。図９の２行目に示すように、小節を表す＜ｍｅａｓｕｒｅ＞にｔｙｐｅ属性を付加することでこの小節は”Ａメロ”であることをあらわす。ｎｕｍｂｅｒ属性にて小節の順番を表し、図９においては１小節目であることを表している。また、ｉｔｕｎｅｓで用いられるＸＭＬ形式の情報にタイムライン情報ｉＴｕｎｅｓ  Ｍｕｓｉｃ  Ｌｉｂｒａｒｙ．ｘｍｌのようなタイムラインに対して、Ｔｉｍｅｌｉｎｅ  Ａｎｎｏｔａｔｏｒのような情報を付加することで、時間指定でアノテーションを付加することもできる。
［フィルタＤＢ］
【００５６】
続いて、フィルタＤＢ２２がＸＭＬＤＢの場合を例として説明する。なお、フィルタＤＢ２２は、ＸＭＬＤＢに限らず、リレーショナルＤＢでもよい。フィルタＤＢ２２には、フィルタの適用ルールおよびフィルタ情報のＸＭＬファイルが蓄積される。図１０は、フィルタＤＢ２２に蓄積されているフィルタの適用ルールおよびフィルタ情報のＸＭＬファイルの一例を示す図である。図１１は、フィルタの適用ルールおよびフィルタ情報のＸＭＬファイルタグ構成を示す図である。図１１に示すように、フィルタの適用ルールおよびフィルタ情報は、＜Ｆｅａｔｕｒｅ＞以下に、＜Ｓｏｕｒｃｅ＞、＜Ｒｕｌｅ＞、および＜Ｊｏｉｎｔ＞が定義される。
【００５７】
＜Ｓｏｕｒｃｅ＞はＳｏｕｒｃｅ情報定義タグであり、ｆｒａｍｅ属性でフィルタの次元数を指定する。次元数がフィルタを適用する動作データに定義されているフレーム数と等しくなければ、フィルタを適用することができない。そのため、フレーム数が複数想定される場合には、フレーム数分適用するルールおよびフィルタ情報のＸＭＬファイルを用意する必要がある。図１０の３行目において、ｆｒａｍｅｓ＝３２となっているので、本フィルタ情報を適用できるのは、フレーム数が３２の動作データである。
【００５８】
＜Ｒｕｌｅ＞は曲情報に対するルール適用のタグであり、ｔｙｐｅ属性で曲情報の形式および曲情報の要素のタグを定義することができる。動作特徴量に対するフィルタの情報は、＜Ｊｏｉｎｔ＞以下に動作特徴量定義タグ＜Ｆｉｌｔｅｒ＞を定義し、＜Ｘ＞、＜Ｙ＞、＜Ｚ＞のｔｙｐｅ属性にて定義される。これは、アバター動作ＤＢ２０に記憶されている動作特徴量の＜Ｊｏｉｎｔ＞と＜Ｓｐｅｃｔｒｕｍ＞との関係と同様である。
【００５９】
図１０に示すＸＭＬファイルは、作曲者Ｊｏｈａｎｎｅｓ  ＢｒａｈｍｓのＡメロの小節に対するフィルタの例である。５・６行目に曲情報である作曲者名および曲パート「Ａメロ」が指定されている。８行目の＜Ｊｏｉｎｔ＞のｎａｍｅ属性からこのＸＭＬファイルが関節「ｌ＿ｗｒｉｓｔ」に対して適用されるものであることがわかる。フィルタによる動作特徴量のうちの周波数成分の重み付けの例としては「間奏」のように穏やかな動きの方がよいときは低周波を重視し、「サビ」のように盛り上がって激しい動きをした方がよいときには高周波も考慮する、といったものが考えられる。
［アバター動作選定処理］
【００６０】
図１２は、アバター動作選定処理のフローチャートである。アバターの動作選定処理は、曲が始まると開始する。まず、ステップＳ１において、ユーザ動作取得部１０は、入力デバイスからユーザの動作時系列を取得する。ここでは、入力デバイスとしてＷｉｉ（登録商標）リモコンを用いる場合を例として説明する。Ｗｉｉリモコンでは、先端部分にＣＭＯＳイメージ・センサが実装されており、センサーバーと呼ばれる、両端に赤外線ＬＥＤが５個ずつ組み込まれている横長の棒と組み合わせて用いる。Ｗｉｉリモコンがテレビ画面の方向を向くと、センサーバーの両端の光点がイメージ・センサで捉えられる。二つの光点の位置関係と間隔からテレビ画面に対するＷｉｉリモコンの向きや距離を見積もることができる。このようにして見積もられたＷｉｉリモコンの向きや距離をユーザの動作としてユーザ動作取得部１０が取得する。
【００６１】
ユーザが右手にデバイスを持っている等、用いる入力デバイスが１つである場合には、ユーザの体が前後逆になる、等の回転については対応できない。そのため、回転については各デバイスをどの体の部位に割り当てるかを予め指定し（左右に持ち、左手のデバイスは左手から離さない、右手に持っているデバイスは右手専用、等）、２つ以上のデバイスを使うことで対応する。また、入力デバイスをつける体の部位を増やすことにより、ユーザの各部位の動作をアバターの各部位に反映させることができる。ただし、使用前にどのデバイスがユーザのどの部位に対応するかを指定する必要がある。また、アバター動作ＤＢ２０に、各部位毎に動作量および特徴量が定義されている必要がある。
【００６２】
なお、ユーザ動作取得部１０がユーザの動作をサンプリングの間隔については、一定時間毎にサンプリングするのではなく、曲の１小節をＫ分割する形で行う。この分割数Ｋは、上述したアバター動作ＤＢ２０およびフィルタＤＢ２２の次元数またはフレーム数と一致している必要がある。
【００６３】
次に、動作特徴量抽出部１１は、ステップＳ１にて取得されたユーザの動作時系列からユーザの動作特徴量を求める（ステップＳ２）。ユーザの動作特徴量は、上述したアバターの動作特徴量と同様に式（６）に示されるフーリエ変換にて求める。
【００６４】
ステップＳ３において、曲情報取得部１２は、現在流れている小節の次の小節の情報および曲の情報を曲ＤＢ２１から取得する。曲の情報の取得手法については既存の手法を用いる。現在流れている次の小節の情報とは、例えば、「間奏」が流れているときには、次の小節が「Ａメロ」であることを取得する。ステップＳ１にて取得されたユーザの動作からステップＳ３にて取得された情報を用いて選定された動作をアバターが行うのは、ユーザの動作が取得された時ではなく、それから少し遅れた時であるからである。
【００６５】
ステップＳ３にて取得された現在流れている小節の次の小節の情報および曲の情報に基づいて、フィルタ検索部１３は、フィルタＤＢ２２を検索し、フィルタを取得する（ステップＳ４）。上述したようにフィルタＤＢ２２はＸＭＬＤＢであるので、検索にはＸＱｕｅｒｙ等を用いる。なお、検索結果が複数の場合には、ランダムに１つ選ぶや全体の平均を用いる等の任意の方法によりフィルタを決定する。
【００６６】
ステップＳ２にて取得されたユーザの動作特徴量にステップＳ３にて取得されたフィルタをかける（ステップＳ５）。ユーザの動作特徴量をそれぞれ軸毎にＸ，Ｙ，Ｘ、フィルタをα，β，γをすると、Ｘ軸方向については、式（７）にて重視したい周波数成分を強調することができる。このとき、ステップＳ３にて取得されたフィルタをかけることにより、曲に合致したアバターの動作を検索することができる。なお、α０，β０，γ０は直流成分であるため、０とするのが望ましい。他の２軸についても同様の計算を行い、Ｘ´，Ｙ´，Ｚ´を求める。
【００６７】
【数５】
0005495222.tif 000006
【００６８】
ステップＳ５にて求められたＸ´，Ｙ´，Ｚ´について周波数領域からの逆フーリエ変換を行い、ｘ´，ｙ´，ｚ´を求める（ステップＳ６）。例えば、ｘｉ´＝（ｘ´０，ｘ´１，・・・，ｘ´Ｋ−１）の逆フーリエ変換は式（８）のように表される。
【００６９】
【数６】
0005495222.tif 000007
【００７０】
最後に、ステップＳ６にて求められたｘ´，ｙ´，ｚ´、およびアバター動作ＤＢ２０内の全アバター動作ｉ（ｉ＝１，２，・・・）の動作時系列ａｉ，ｂｉ，ｃｉ（ｉ＝１，２，・・・）に対し、式（９）にて相関係数を計算し、相関係数が最も１に近くなるアバターの動作を取得する（ステップＳ７）。このようにして得られたアバターの動作が、ディスプレイ等に表示される。
【００７１】
【数７】
0005495222.tif 000008
【００７２】
図１２に示すアバター動作選定処理のフローチャートは、ユーザの動作時系列に対してフーリエ変換をし、フィルタをかけた後逆フーリエ変換をし、アバターの時系列の相関を求めいている。その他にも、シフトに強い処理として、ユーザの動作時系列に対してフーリエ変換をし、同じくフーリエ変換をしたフィルタをかけた後、逆フーリエ変換をして、相関を求める処理がある。この場合には、予めアバター動作ＤＢ２０に蓄積されている各軸に対応する特徴量Ａｉ，Ｂｉ，Ｃｉを用いる。
【００７３】
なお、アバター動作ＤＢ２０に蓄積されているアバターの動作が多い場合は時系列のクラスタリングを行って、クラスタの中央値となる時系列の特徴量を使って相関係数を求めることでクラスタを１つ選び、クラスタ内で再び、最も相関係数が１に近い時系列を探せばよい。
［実施例］
【００７４】
以下に、本発明の一実施形態であるユーザの動作を曲に合わせて変化させてアバターにさせる例について説明する。図１３は、ユーザの動作を曲に合わせて変化させてアバターにさせる例を示す図である。（ａ）は、右手に入力デバイスを持ち、手を上下させて踊っているユーザを示す図である。曲が「サビ」で盛り上がっている場合には、フィルタにて高周波のユーザ動作特徴量に重み付けを行い、（ｂ）に示すようにアバターが大きく手を上下させる動作が選択される。一方、曲が「後奏」で穏やかな場合には、フィルタにて低周波のユーザ動作特徴量に重み付けを行い、（ｃ）に示すようにアバターが小さく手を上下させる動作が選択される。
［ハードウェア構成］
【００７５】
図１４は、本実施形態に係る操作対象物制御装置１のハードウェア構成を示す図である。操作対象物制御装置１は、制御部を構成するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３１０、バスライン２００、通信Ｉ／Ｆ（Ｉ／Ｆ：インタフェース）３２０、メインメモリ３３０、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）３４０、表示装置３５０、Ｉ／Ｏコントローラ３６０、キーボードおよびマウス等の入力装置３７０、ハード・ディスク３８０、光ディスクドライブ３９０、並びに半導体メモリ４１０を備える。尚、ハード・ディスク３８０、光ディスクドライブ３９０、並びに、半導体メモリ４１０をまとめて記憶装置４２０と呼ぶ。
【００７６】
制御部３００は、操作対象物制御装置１を統括的に制御する部分であり、ハード・ディスク３８０に記憶された各種プログラムを適宜読み出して実行することにより、上述したハードウェアと協働し、本発明に係る各種機能を実現している。
【００７７】
通信Ｉ／Ｆ３２０は、操作対象物制御装置１が、通信ネットワークを介して他の装置等と情報を送受信する場合のネットワーク・アダプタである。通信Ｉ／Ｆ３２０は、モデム、ケーブル・モデムおよびイーサネット（登録商標）・アダプタを含んでよい。なお、操作対象物制御装置１が通信を行わない場合には、通信Ｉ／Ｆ３２０はなくともよい。
【００７８】
ＢＩＯＳ３４０は、操作対象物制御装置１の起動時にＣＰＵ３１０が実行するブートプログラムや、操作対象物制御装置１がハードウェアに依存するプログラム等を記録する。
【００７９】
表示装置３５０は、ブラウン管液晶装置（ＣＲＴ）、液晶表示装置（ＬＣＤ）等のディスプレイ装置を含む。
【００８０】
Ｉ／Ｏコントローラ３６０には、ハード・ディスク３８０、光ディスクドライブ３９０、および半導体メモリ４１０等の記憶装置４２０を接続することができる。
【００８１】
入力装置３７０は、ユーザの動作の入力を行うためのものであり、動作検出部に対応する。
【００８２】
ハード・ディスク３８０は、本ハードウェアを操作対象物制御装置１として機能させるための各種プログラム、本発明の機能を実行するプログラムおよび後述するテーブルおよびレコードを記憶する。なお、操作対象物制御装置１は、外部に別途設けたハード・ディスク（図示せず）を外部記憶装置として利用することもできる。
【００８３】
光ディスクドライブ３９０としては、例えば、ＤＶＤ−ＲＯＭドライブ、ＣＤ−ＲＯＭドライブ、ＤＶＤ−ＲＡＭドライブ、ＣＤ−ＲＡＭドライブを使用することができる。この場合は各ドライブに対応した光ディスク４００を使用する。光ディスク４００から光ディスクドライブ３９０によりプログラムまたはデータを読み取り、Ｉ／Ｏコントローラ３６０を介してメインメモリ３３０またはハード・ディスク３８０に提供することもできる。
【００８４】
なお、本発明でいうコンピュータとは、記憶装置４２０、ＣＰＵ３１０等を備えた情報処理装置をいい、編集用端末１は、記憶装置４２０、ＣＰＵ３１０等を備えた情報処理装置により構成され、この情報処理装置は、本発明のコンピュータの概念に含まれる。
尚、編集用端末１は、本発明の原理が適用可能である限り、携帯電話、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄａｔａ  Ａｓｓｉｓｔａｎｔ）、ゲーム機等の様々な端末で実現してよい。
【図面の簡単な説明】
【００８５】
【図１】本実施形態に係る操作対象物制御装置の機能構成を示す図である。
【図２】ＢＶＨ形式によるスケルトンデータのＸＭＬファイルの一例を示す図である。
【図３】ＢＶＨ形式によるスケルトンデータのＸＭＬファイルタグ構造を示す図である。
【図４】ＢＶＨ形式による動作データのＸＭＬファイルの一例を示す図である。
【図５】ＢＶＨ形式による動作データのＸＭＬファイルタグ構造を示す図である。
【図６】ＢＶＨ形式による動作データの絶対座標、および特徴量のＸＭＬファイルの一例を示す図である。
【図７】ＢＶＨ形式による動作データの絶対座標、および特徴量のＸＭＬファイルタグ構造を示す図である。
【図８】ＭｕｓｉｃＸＭＬの論理構造例を示す。
【図９】楽譜のＭｕｓｉｃＸＭＬの１部を示す図である。
【図１０】フィルタＤＢに蓄積されているフィルタの適用ルールおよびフィルタ情報のＸＭＬファイルの一例を示す図である。
【図１１】フィルタの適用ルールおよびフィルタ情報のＸＭＬファイルタグ構造を示す図である。
【図１２】アバター動作選定処理のフローチャートである。
【図１３】ユーザの動作を曲に合わせて変化させてアバターにさせる例を示す図である。
【図１４】本実施形態に係る操作対象物制御装置のハードウェア構成を示す図である。
【符号の説明】
【００８６】
１    操作対象物制御装置
１０  ユーザ動作取得部
１１  動作特徴量抽出部
１２  曲情報取得部
１３  フィルタ検索部
１４  動作特徴量変換部
１５  アバター動作取得部
２０  アバター動作ＤＢ
２１  曲ＤＢ
２２  フィルタＤＢ
【図１】
0005495222.tif 000009
【図２】
0005495222.tif 000010
【図３】
0005495222.tif 000011
【図４】
0005495222.tif 000012
【図５】
0005495222.tif 000013
【図６】
0005495222.tif 000014
【図７】
0005495222.tif 000015
【図８】
0005495222.tif 000016
【図９】
0005495222.tif 000017
【図１０】
0005495222.tif 000018
【図１１】
0005495222.tif 000019
【図１２】
0005495222.tif 000020
【図１３】
0005495222.tif 000021
【図１４】
0005495222.tif 000022