(57)【特許請求の範囲】
【請求項１】
任意の物体の運動を計測して得られた時系列の運動データを保存し、該運動データを用いた情報処理を行うデータ変換装置であって、
複数個のサンプリング時刻におけるｍ次元の運動データの計測値を要素とする行列Ｙを、重み係数の行列Ｗと、一定の時間間隔で配置されたＢ−スプライン関数の該複数個のサンプリング時刻における値を要素とする行列Ａとの積の形式で近似表現したとき、該運動データのサンプリング間隔と該Ｂ−スプライン関数の時間間隔を用いて行列Ａの各要素を設定し、該運動データの計測値を用いて行列Ｙの各要素を設定して、行列Ｗを求める近似手段と、
得られた行列Ｗを前記運動データの計測値に対応する符号データとして格納する格納手段と、
前記格納手段から前記符号データを取り出し、該符号データを編集して、新たな符号データを生成する編集手段と、
前記新たな符号データに対応する運動データを復元する復元手段と、
復元された運動データを用いて仮想的なキャラクターの画像を生成し、出力する出力手段と
を備えることを特徴とする、コンピュータを用いたデータ変換装置。
【請求項２】
前記近似手段は、行列Ｙに行列Ａの擬似逆行列を乗算して、行列Ｗを求めることを特徴とする請求項１記載のデータ変換装置。
【請求項３】
前記編集手段は、第１の座標系で記述された前記符号データを第２の座標系で記述された符号データに変換する座標変換手段を含むことを特徴とする請求項１記載のデータ変換装置。
【請求項４】
前記編集手段は、運動の開始時刻を遅らせるデータ変換と、運動時間を伸張するデータ変換と、運動時間を短縮するデータ変換のうち、少なくとも一つの変換を行う時間変換手段を含むことを特徴とする請求項１記載のデータ変換装置。
【請求項５】
前記編集手段は、前記符号データの平行移動と回転とサイズ変更のうち少なくとも一つのデータ変換を行う空間変換手段を含むことを特徴とする請求項１記載のデータ変換装置。
【請求項６】
前記編集手段は、前記符号データの分離と連結と融合のうち少なくとも一つのデータ変換を行う変換手段を含むことを特徴とする請求項１記載のデータ変換装置。
【請求項７】
前記編集手段は、前記符号データに含まれる任意の重み係数を変更する係数調節手段を含むことを特徴とする請求項１記載のデータ変換装置。
【請求項８】
前記符号化手段による符号化処理と前記編集手段による編集処理のうち少なくとも一方を、グラフィカル・ユーザ・インタフェースを介してユーザとの対話形式で行うインタフェース手段をさらに備えることを特徴とする請求項１記載のデータ変換装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、物体の運動データのような時系列データを符号化して効率的に保存し、符号化された時系列データを編集して再利用するデータ変換装置およびその方法に関する。
【０００２】
【従来の技術とその問題点】
近年、コンピュータ・グラフィックス（ＣＧ）やビデオゲーム、および、アニメーションや映画などの分野で、しばしば、人型や動物型などの仮想的キャラクター（以下、単にキャラクターと記す）が用いられている。そして、画面上に表示されたキャラクターを自由自在に動かし、“走る”とか“立ち上がる”など様々な動作を表現することが要望されている。
【０００３】
このような要望に対して、コンピュータを利用してキャラクターの身体の運動データを生成し編集する技術が開発されてきている。ここで、運動データとは、例えば、モーション・キャプチャー・システムなどの運動計測技術を用いて計測された、身体の関節角度や手足・頭の位置などの時系列データに相当する。
【０００４】
コンピュータを利用して画面上のキャラクターの動きを生成する方法には、大きく分けて、次の３つの方法が考えられる。
（１）生物らしい自然な動きを生成するアルゴリズムを開発し、これによってキャラクター・モデルの動きを生成する方法
（２）従来のアニメーション作成過程にコンピュータを利用し、ＣＧで適当な時間間隔毎の静止画を作成したり、中割りを自動生成したりする方法
（３）人間などの生物の実際の動きを計測装置によって運動データとして取り込み、３次元（３Ｄ）キャラクター・モデルに計測した運動データを再現（playback）させる方法
第１の方法は、生物らしい自然な動きを生成するアルゴリズムが開発できれば、多種多様な運動を自由自在に作成できる。また、キャラクターの身体サイズなどの物理特性の変化にも対応できるなどの非常に優れた利点を持っている。しかし、有効なアルゴリズムを開発すること自体が極めて困難であり、さらにキャラクターの精密なダイナミクス・モデルを必要とするなどの問題もある。このため、現状では限定された運動に対してアルゴリズムやダイナミクス・モデルが開発されているのみであり、多種多様な運動を生成できるようになるにはまだまだ研究が必要である。
【０００５】
また、第２の方法は、現在もっとも利用されている方法である。この方法では、動作の種類毎に膨大な数の静止画が必要であり、多くの時間と労力を要する。また、生物らしい自然な動きを表現できるかどうかは、画像製作者の能力に依存している。
【０００６】
一方、第３の方法は、生物の実際の運動を計測して、その結果をコンピュータを利用してプレイバックするので、キャラクターに生物らしい自然な動きを行わせることができる。しかし、この方法では、例えば、“歩く”とか“走る”などの動作毎に、実際の動作を計測して記録することが必要になる。なぜなら、記録していない動作は再現できないからである。
【０００７】
したがって、キャラクターに様々な動作を行わせる場合には、あらかじめ多数の運動データを計測し、記録しておかなければならず、それらを保存しておくために膨大な記憶容量が必要となる。さらに、計測した運動データは、実際に動作を行った計測対象の身体サイズや状況に依存するので、キャラクターや状況が変われば運動データを再度計測し直すことが必要になる。このように、第３の方法では、運動データが膨大な記憶容量を必要とすること、および、運動データの再利用性が低いことが問題点である。
【０００８】
本発明の課題は、上記のような第３の方法を利用したプレイバック技術において、運動データを効率良く保存し、その再利用性を向上させるデータ変換装置およびその方法を提供することである。
【０００９】
【課題を解決するための手段】
図１は、本発明のデータ変換装置の原理図である。図１のデータ変換装置は、本発明の第１および第２の原理のデータ変換装置を含む。
【００１０】
第１の原理のデータ変換装置は、コンピュータを用いて実現され、近似手段１および格納手段２を備える。そして、任意の生物を含む任意の物体の運動を計測して得られた時系列の運動データを保存し、その運動データを用いた情報処理を行う。
【００１１】
近似手段１は、上記運動データを任意の基底関数の重み付き加算で近似表現し、その重み付き加算の重み係数の配列を生成する。格納手段２は、その重み係数の配列を上記運動データに対応する符号データとして格納する。
【００１２】
近似手段１は、例えば、Ｂ−スプライン関数のような滑らかで局所的な基底関数を用いて、その重み付き加算により得られる曲線で運動データを近似的に表現する。そして、各基底関数の重み係数を、運動データを表現する離散的な符号として、格納手段２に格納する。
【００１３】
格納手段２に保存された符号データを重み係数として、基底関数の重み付き加算を行えば、元の運動データを容易に復元することができる。基底関数の関数形はあらかじめ決まっており、入力される運動データの形状によって変化することはない。このため、必要とされる一組の基底関数を表すデータを保持しておけば、それを任意の運動データの復元に用いることができる。
【００１４】
また、重み係数の配列データは、一般に、計測された運動データよりはるかに少ないデータ量で表現することができる。したがって、運動データをそのまま保存する場合より、記憶容量を大幅に削減することが可能になる。
【００１５】
また、第２の原理のデータ変換装置は、コンピュータを用いて実現され、格納手段２、符号化手段３、編集手段４、復元手段５、および出力手段６を備える。そして、任意の物体の運動を計測して得られた時系列の運動データを用いて、仮想的なキャラクターの画像を出力するための情報処理を行う。
【００１６】
符号化手段３は、上記運動データを符号化して符号データを生成し、格納手段２は、その符号データを格納する。編集手段４は、格納手段２からその符号データを取り出して、それを編集し、新たな符号データを生成する。復元手段５は、新たな符号データに対応する運動データを復元し、出力手段６は、復元された運動データを用いて上記キャラクターの画像を生成し、それを出力する。
【００１７】
符号化手段３は、例えば、上述した第１の原理の近似手段１と同様の方法で運動データを符号化し、データ量を削減して、格納手段２に格納する。編集手段４は、符号データに対して、座標変換、時間に関する変換、空間に関する変換、分割、連結、融合、手動による重み係数の調節、ダイナミクスを利用した変換などの編集処理を施すことで、符号データを変更する。これにより、元の運動データと異なる運動を表現する新たな符号データが生成される。
【００１８】
復元手段５は、こうして生成された新たな符号データに、符号化処理と逆の処理を施して、対応する新たな運動データを生成する。そして、出力手段６は、その運動データに基づいて、キャラクターの運動を表現する動画を生成し、それを出力する。これにより、入力された運動データとは異なる運動をキャラクターに行わせることが可能になり、運動データの再利用性が向上する。
【００１９】
また、本発明の別のデータ変換装置は、コンピュータを用いて実現され、近似手段１、格納手段２、編集手段４、復元手段５、および出力手段６を備える。そして、任意の物体の運動を計測して得られた時系列の運動データを保存し、その運動データを用いた情報処理を行う。
近似手段１は、複数個のサンプリング時刻におけるｍ次元の運動データの計測値を要素とする行列Ｙを、重み係数の行列Ｗと、一定の時間間隔で配置されたＢ−スプライン関数の複数個のサンプリング時刻における値を要素とする行列Ａとの積の形式で近似表現したとき、運動データのサンプリング間隔とＢ−スプライン関数の時間間隔を用いて行列Ａの各要素を設定し、運動データの計測値を用いて行列Ｙの各要素を設定して、行列Ｗを求める。格納手段２は、得られた行列Ｗを運動データの計測値に対応する符号データとして格納する。編集手段４は、格納手段２から符号データを取り出し、その符号データを編集して、新たな符号データを生成し、復元手段５は、新たな符号データに対応する運動データを復元する。出力手段６は、復元された運動データを用いて仮想的なキャラクターの画像を生成し、出力する。
例えば、図１の近似手段１、符号化手段３、編集手段４、復元手段５は、後述する図７のＣＰＵ（中央処理装置）２１とメモリ２２に対応し、格納手段２は記憶装置２５に対応し、出力手段６はディスプレイ装置２４′に対応する。
【００２０】
【発明の実施の形態】
以下、図面を参照しながら、本発明の実施の形態を詳細に説明する。
本発明では、運動データを効率良く保存するために符号化を行い、その再利用性を高めるために、符号化された運動データ（符号化運動データ）の編集を行う。ここで、符号化運動データとは、時系列データの一種である運動データを、本発明の方法によって符号化した結果の符号データを指す。
【００２１】
図２は、本発明の実施形態のデータ変換装置における運動の計測から再現までの処理過程を示している。このデータ変換装置は、人間などの生物の実際の動きを計測装置によって取り込み、ディスプレイ画面上のキャラクター・モデルにそれを再現させる。この処理過程には、運動の計測（Ｐ１）、運動データの符号化（Ｐ２）、符号化運動データの保存（Ｐ３）、符号化運動データの読み出し（Ｐ４）、符号化運動データの編集（Ｐ５）、符号化運動データから運動データの復元（Ｐ６）、およびキャラクターの運動の再現（Ｐ７）の情報処理が含まれる。
【００２２】
本発明は、これらの処理のうち、特に、運動データの符号化、符号化運動データの編集、および運動データの復元に特徴を有する。処理Ｐ２の符号化では、運動データを効率良く保存して膨大な記憶容量の問題を解決するため、運動データを符号化する。また、処理Ｐ５の編集では、運動データの再利用性を高めるために、符号化運動データに対して編集を行う。この編集処理では、運動データの座標変換、連結、分割、変形、移動などを可能にする。また、処理Ｐ６の復元では、処理Ｐ２と逆の処理を行って運動データを復元する。
【００２３】
また、他の処理Ｐ１、Ｐ３、Ｐ４、およびＰ７に関しては、既存の技術を利用することができる。ここで、処理Ｐ１〜Ｐ７について簡単に説明しておく。
運動の計測（Ｐ１）
人間などの身体運動を計測するためには様々な方法が開発されており、例えば、次のような計測方法が挙げられる（持丸正明：運動計測技術の動向と課題、バイオメカニズム学会誌、Vol.20, No.1, pp.23-32, 1996）。
（ａ）ゴニオメータを利用する電気角度計測手法
（ｂ）ビデオカメラ等を利用する光学式電子計測手法
（ｃ）磁気センサによる手法
（ｄ）加速度計や超音波センサによる手法
これらのうちどの計測方法を利用するかは、計測対象や利用分野に依存する。しかし、どの方法を用いたとしても、計測される運動データは、関節の角度や身体上の特定部分の位置をある一定のサンプリング間隔で記録した時系列データとなる。
【００２４】
運動データの符号化（Ｐ２）
計測した運動データをプレイバックすることによってキャラクターに様々な動作を行わせる場合、あらかじめ多数の運動データを計測し、保存しておかなければならない。多数の動作を含んだ運動データを記憶するためには、膨大な記憶容量が必要となる。そこで、本発明では、運動データを符号化することによってデータ圧縮を行い、効率的に運動データを保存できるようにする。これによって、多数の運動データを記録するために必要な記憶容量を削減することができる。
【００２５】
符号化処理は、時系列として計測された運動データを、ある滑らかさを持つ局所的な基底関数の重み付き加算で近似表現し、その重み係数の配列だけを記録することによって行われる。
【００２６】
図３は、運動データの符号化処理のフローチャートである。データ変換装置は、まず、適当なサンプリング間隔で計測された運動データを入力し（ステップＳ１）、滑らかで局所的な基底関数を利用してそれらを近似表現する（ステップＳ２）。次に、基底関数の重み係数の配列を生成し（ステップＳ３）、それを符号化運動データとして保存して（ステップＳ４）、処理を終了する。この符号化運動データは、図２の記憶装置１１に保存される。
【００２７】
ここで、計測のサンプリング間隔をδｔ［ｓｅｃ］とし、近似表現を行うための基底関数の時間間隔をΔｔ＝ｎδｔ［ｓｅｃ］とすると、この符号化によって、データの記憶量をｎ分の１に圧縮することができる。例えば、δｔ＝０．０１［ｓｅｃ］、Δｔ＝０．１［ｓｅｃ］ならば、データ量は１０分の１に圧縮される。
【００２８】
図４のグラフは、運動データの符号化の例を示している。図４において、曲線が計測対象の現実の運動軌跡を表し、曲線上の点が一定のサンプリング間隔で計測された位置データの値を表す。これらの値を時間の指標と共に記録した時系列データが運動データである。また、×印の点が各基底関数の重み係数に対応し、これらの重み係数の配列が符号化運動データとなる。
【００２９】
符号化運動データの保存と取り出し（Ｐ３、Ｐ４）
符号化運動データは、局所的な基底関数の重み係数の配列、すなわち数を要素とする配列で表現される。この重み係数の配列をハードディスクなどの記憶装置１１に保存すること、および、記憶装置１１から取り出すことは容易である。
【００３０】
運動データの編集（Ｐ５）
運動データの再利用性を向上させるため、運動データの編集が実現される。編集は時系列の運動データそのものではなく、符号化運動データに対して行われる。データの再利用性を向上させることは、運動データの記憶容量を減少させる利点も合せ持っている。
【００３１】
符号化運動データの編集では、例えば、次のような各種機能を設ける。
（ａ）座標変換（キネマティック変換）
（ｂ）時間に関する変換
（ｃ）空間に関する変換
（ｄ）分割、連結、融合
（ｅ）手動による重み係数の調節
（ｆ）ダイナミクスを利用した変換
これらの編集機能の詳細については後述するが、このような機能を利用して、例えば、幾つかの運動データを材料にして新しい運動データを作り出すことができる。したがって、少ない量の運動データから様々な動作を再現することができるようになる。
【００３２】
以上のような符号化運動データの編集は、グラフィカルなインタフェースを介して、ユーザとの対話形式でインタラクティブに行われる。このため、編集後のキャラクターの動作が即座に画面上に表示され、ユーザはその仕上がり具合を視覚的に判断しながら、編集作業を進めることができる。
【００３３】
運動データの復元（Ｐ６）
符号化運動データから時系列形式の運動データへの復元処理は、符号化の逆の処理により行われる。すなわち、上述の基底関数を符号化運動データで重み付き加算すれば、時系列の運動データを復元できる。このとき、符号化運動データは必ずしも編集されている必要はなく、処理Ｐ２で得られたデータをそのまま用いてもよい。
【００３４】
運動の再現（Ｐ７）
運動データを時系列形式に復元した後、キャラクターの３次元キネマティク・モデルにあてはめて関節角度などを設定すれば、運動データをキャラクターに再現させることができる。
【００３５】
本実施形態のデータ変換装置としては、例えば、図５に示すような情報処理装置（コンピュータ）が用いられる。図５の情報処理装置は、ＣＰＵ２１、メモリ２２、入力装置２３、出力装置２４、外部記憶装置２５、媒体駆動装置２６、ネットワーク接続装置２７、および計測装置２８を備え、それらはバス２９により互いに接続されている。
【００３６】
メモリ２２には、処理に用いられるプログラムとデータが格納される。メモリ２２としては、例えばＲＯＭ（read only memory）、ＲＡＭ（random access memory）等が用いられる。ＣＰＵ２１は、メモリ２２を利用してプログラムを実行することにより、データ変換装置の各処理を行う。
【００３７】
入力装置２３は、例えば、キーボード、ポインティングデバイス、タッチパネルなどであり、必要な指示や情報の入力に用いられる。また、出力装置２４は、例えば、ディスプレイやプリンタ等であり、キャラクターの動作やユーザへの問い合せ事項を出力する。
【００３８】
外部記憶装置２５は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク（magneto-optical disk）装置などであり、符号化運動データを保存する。この外部記憶装置２５に、上述のプログラムとデータを保存しておき、必要に応じて、それらをメモリ２２にロードして使用することもできる。外部記憶装置２５は、図２の記憶装置１１として用いられる。
【００３９】
媒体駆動装置２６は、可搬記録媒体３０を駆動し、その記録内容にアクセスする。可搬記録媒体３０としては、メモリカード、フロッピーディスク、ＣＤ−ＲＯＭ（compact disk read only memory ）、光ディスク、光磁気ディスクなど、任意のコンピュータ読み取り可能な記録媒体が用いられる。この可搬記録媒体３０に上述のプログラムとデータを格納しておき、必要に応じて、それらをメモリ２２にロードして使用することもできる。
【００４０】
ネットワーク接続装置２７は、ＬＡＮ（local area network）などの任意のネットワーク（回線）を介して外部の装置と通信する。これにより、必要に応じて、上述のプログラムとデータを外部の装置から受け取り、それらをメモリ２２にロードして使用することもできる。また、計測装置２８は、例えば、ゴニオメータ、ビデオカメラ、磁気センサ、加速度計、超音波センサなどであり、運動データの計測に用いられる。
【００４１】
図６は、図５の情報処理装置にプログラムとデータを供給することのできるコンピュータ読み取り可能な記録媒体を示している。可搬記録媒体３０や外部のデータベース３１に保存されたプログラムとデータは、メモリ２２にロードされる。そして、ＣＰＵ２１は、そのデータを用いてそのプログラムを実行し、必要な処理を行う。
【００４２】
図５の情報処理装置を用いて、図２のような処理を行うデータ変換装置の構成を示すと、図７のようになる。図７において、入力された運動データは、メモリ２２上でＣＰＵ２１の符号化部３２により符号化され、符号化運動データに変換されて、記憶装置２５に保存される。保存された符号化運動データはメモリ２２上に読み出された後、ＣＰＵ２１の編集部３３により編集され、ディスプレイ装置２４′の画面に表示される。ディスプレイ装置２４′は、図５の出力装置２４に対応する。
【００４３】
次に、図８から図２２までを参照しながら、図２に示した処理過程の中で、本発明に特に関係する部分、すなわち、運動データの符号化処理と符号化運動データの編集処理の具体例について説明する。
【００４４】
運動データの符号化では、時系列として計測された運動データを、ある滑らかさを持つ局所的な基底関数の重み付き加算で近似表現し、基底関数の重み係数の配列を符号化運動データとする。
【００４５】
これまでの人間の運動の計測と解析の研究により、人の腕の運動がある種類の滑らかさの規範を満たすように実行されているとする仮説が提案されている。ここで、滑らかさの規範とは、例えば、jerk最小規範やトルク変化最小規範などを指し、jerkとは加速度の時間微分を指す。したがって、本実施形態の符号化方法のように、運動データを滑らかさを持った基底関数の重み付き加算で近似表現することは妥当であると考えられる。ここでは、このような基底関数の一例として、等間隔の節点を有する正規化されたＢ−スプライン関数を用いることにする。
【００４６】
ここで、等間隔の非多重の節点を有する正規化されたＢ−スプライン関数を計算するためのアルゴリズムについて説明する。このアルゴリズムは、一般的なＢ−スプライン関数を安定に計算するために、de Boor およびCox によって提案されたアルゴリズム（C. de Boor: A Practical Guide to Splines. Springer-Verlag, 1978 ）を単純化することにより導出される。
【００４７】
ｐ個の非多重の実数の節点ｓ＝ｓ1 ，．．．，ｓp （ただし、ｓ1 ＜・・・＜ｓp ）を有するｋ次のスプライン関数Ｓk （ｓ）＝Ｓk （ｓ；ｓ1 ，．．．，ｓp ）は、次の２つの条件を満たす実関数として定義される（T.N.E.GRerille. Ed.: Theory and Applications of Spline Functions. Academic Press, 1969）。
【００４８】
第１の条件は、ｉ＝０，．．．，ｐに対する各区間（ｓi ，ｓi+1 ）において、Ｓk （ｓ）がｓに関する高々ｋ次の多項式であることである。また、第２の条件は、区間（−∞，＋∞）においてＳk （ｓ）はＣk-1 級に属すること、すなわち、ｊ＝１，．．．，ｋ−１に対してＳk （ｓ）のｊ階の導関数が存在し、連続であることである。ただし、ｓ0 ＝−∞およびｓp+1 ＝＋∞とする。
【００４９】
Ｂ−スプライン関数は局所的かつ最小の台を有する、スプライン関数の基底として定義される。すなわち、任意のスプライン関数は対応するＢ−スプライン関数の線形結合によって構成することができる。
【００５０】
de Boor およびCox によるアルゴリズムを変形することによって、等間隔の非多重の節点ｓ＝０，．．．，ｋ＋１を有する正規化されたｋ次のＢ−スプライン関数Ｂk （ｓ；０，．．．，ｋ＋１）は、
【００５１】
【数１】
0003735187.tif 000002
【００５２】
のように計算することができる。ここで、関数Ｎ0,k （ｓ），．．．，Ｎk,k （ｓ）は再帰的に、
【００５３】
【数２】
0003735187.tif 000003
【００５４】
のように定義され、関係
【００５５】
【数３】
0003735187.tif 000004
【００５６】
を満たす。
このとき、等間隔の非多重の節点ｓ＝ｌ，．．．，ｍ＋ｋ−１を有する正規化されたｋ次のスプライン関数Ｓk （ｓ；ｌ，．．．，ｍ＋ｋ−１）は、対応するＢ−スプライン関数Ｂk （ｓ−（ｌ−ｋ）），．．．，Ｂk （ｓ−（ｍ＋ｋ−２））の線形結合として、定数ｃl-k+1 ，．．．，ｃm+k-1 を適切に選択することにより、
【００５７】
【数４】
0003735187.tif 000005
【００５８】
のように記述することができる。（１）式に示されるＢ−スプライン関数の局所的な性質により、（４）式は、
【００５９】
【数５】
0003735187.tif 000006
【００６０】
のように変形でき、さらに、
【００６１】
【数６】
0003735187.tif 000007
【００６２】
と変形できる。
特に、ｃl-k+1 ＝・・・＝ｃm+k-1 ＝１の場合には、（３）式により、（６）式は、
【００６３】
【数７】
0003735187.tif 000008
【００６４】
となり、それゆえ、
【００６５】
【数８】
0003735187.tif 000009
【００６６】
となる。
以下では、まず、このような性質を持つｋ次のＢ−スプライン関数を用いた任意の関数の近似表現について簡単に説明し、次に、Ｂ−スプライン関数の重み係数を利用した運動データの符号化方法を説明する。そして、最後に、具体的な例として、等間隔の正規化された３次のＢ−スプライン関数を用いた場合を示す。
【００６７】
ある滑らかな関数ｆ（ｔ）（０≦ｔ≦Ｔ）を等間隔Δｔの正規化されたＢ−スプライン関数を用いて近似的に表現することを考える。いま、変数ｔを間隔Δｔで離散化し、離散点をｔ＝ｉΔｔ（ｉは整数）と記すことにする。
【００６８】
このとき、関数ｆ（ｔ）は等間隔Δｔで配置された（Ｎ＋ｋ）個のｋ次のＢ−スプライン関数Ｂ(k) （ｔ）を利用して、次式のように近似表現することができる。
【００６９】
【数９】
0003735187.tif 000010
【００７０】
ただし、Ｂ(k) （ｔ）はｋ次のＢ−スプライン関数である。また、Ｂ(k) i （ｔ）はＢ(k) （ｔ）をｉΔｔだけ平行移動した関数であり、次式で与えられる。
Ｂ(k) i （ｔ）＝Ｂ(k) （ｔ−ｉΔｔ）                        （１０）
また、Ｎは、
Ｎ＝Ｔ／Δｔ                                                （１１）
を満たすものとし、ｗi （ｉ＝−ｋ，．．．，Ｎ−１）はＢ−スプライン関数Ｂ(k) i （ｔ）の重みを表す係数である。
【００７１】
図８は、位置を表す関数ｘ（ｔ）を、等間隔の３次のＢ−スプライン関数Ｂ(3) （ｔ）を用いて近似表現した例を示している。この場合、関数ｘ（ｔ）は、いくつかのＢ−スプライン関数Ｂ(3) i （ｔ）の線形結合として表される。
【００７２】
また、関数ｆ（ｔ）がｍ次元の関数である場合、（９）式は次のように表現される。
【００７３】
【数１０】
0003735187.tif 000011
【００７４】
ただし、
ｆ（ｔ）＝［ｆ1 （ｔ），．．．，ｆm （ｔ）］T                 （１３）
（ｆ（ｔ）はｍ次元の縦ベクトル）
ｂ(k) （ｔ）＝［Ｂ(k) -k（ｔ），．．．，Ｂ(k) N-1 （ｔ）］T   （１４）
（ｂ(k) （ｔ）は（Ｎ＋ｋ）次元の縦ベクトル）
ｗi ＝［ｗi,1 ，．．．，ｗi,m ］T                             （１５）
（ｗi はｍ次元の縦ベクトル）
Ｗ＝［ｗ-k，．．．，ｗN-1 ］                                  （１６）
（Ｗはｍ×（Ｎ＋ｋ）の行列）
である。
【００７５】
本発明の符号化では、計測によって得られた運動データを（１２）式のようにＢ−スプライン関数を用いて近似表現して、Ｂ−スプライン関数の重み係数の行列Ｗ＝［ｗ-k，．．．，ｗN-1 ］を運動データの符号化結果とする。以下に、運動データからＷ＝［ｗ-k，．．．，ｗN-1 ］を求めるまでの処理過程を示す。
【００７６】
運動データの計測では、関節角度や身体上の特定部位の位置などのｍ個の値が計測され、記録されると仮定する。計測対象が行った運動の軌跡をｙ（ｔ）∈Ｒm （０≦ｔ≦Ｔ，ｔは時刻）とし、この運動をサンプリング間隔δｔで計測した結果をｙ（０），ｙ（δｔ），ｙ（２δｔ），．．．，ｙ（Ｍδｔ）とする。ただし、
δｔ＝Δｔ／ｎ                                              （１７）
Ｔ＝Ｍ・δｔ＝Ｎ・Δｔ                                      （１８）
の関係が成り立つとする。サンプリング点の総数は（Ｍ＋１）個である。
【００７７】
（１２）式より、サンプル時刻ｔ＝ｉ・δｔ（ｉ＝０，．．．，Ｍ）での運動ｙ（ｔ）は、ｋ次のＢ−スプライン関数を利用して、次式のように近似表現できる。
【００７８】
【数１１】
0003735187.tif 000012
【００７９】
したがって、時刻０からＴまでのある１つの動作を行ったときに計測された運動データは、
【００８０】
【数１２】
0003735187.tif 000013
【００８１】
と近似表現できる。ただし、
【００８２】
【数１３】
0003735187.tif 000014
【００８３】
である。行列Ｗは（１６）式で定義されている。
（２１）式の行列Ｙは運動データから構成され、（２２）式の行列Ａはサンプリング間隔δｔとＢ−スプライン関数の間隔Δｔから計算できる。これらの行列Ｙ、Ａを（２０）式に代入した後、それを行列Ｗについて解くことは、既存の方法で実行できる。既存の方法としては、例えば、擬似逆行列（一般化逆行列）を利用する方法やガウス消去法などがある。
【００８４】
一例として、擬似逆行列を利用する方法を示すと、行列Ａの擬似逆行列Ａ+ ＝ＡT （ＡＡT ）-1を使用して、行列Ｗは、
Ｗ＝ＹＡ+ ＝ＹＡT （ＡＡT ）-1          （２３）
のように求められる。
【００８５】
図９は、（２０）式に基づく運動データの符号化処理の詳細フローチャートである。データ変換装置は、まず、ユーザから指定されたサンプリング間隔δｔとＢ−スプライン関数の間隔Δｔを設定し（ステップＳ１１）、それらの値を用いて行列Ａの各要素を設定する（ステップＳ１２）。
【００８６】
次に、サンプリング間隔δｔで、運動データｙ（０），ｙ（δｔ），ｙ（２δｔ），．．．，ｙ（Ｍδｔ）を計測し（ステップＳ１３）、（２１）式の行列Ｙの各要素を設定する（ステップＳ１４）。次に、行列Ｙ、Ａを（２０）式に代入し（ステップＳ１５）、それを解いて、行列Ｗ＝［ｗ-k，．．．，ｗN-1 ］を求める（ステップＳ１６）。そして、この行列Ｗを符号化運動データとする。
【００８７】
ここで、ｗi （ｉ＝−ｋ，．．．，Ｎ−１）の下付添え字ｉは運動の時刻を表すのではなく、ｉ番目のＢ−スプライン関数Ｂ(k) i （ｔ）の係数ベクトルであることを表している。（１７）式が成り立つとき、このような符号化処理により、運動データのデータ量をｎ分の１に圧縮することができる。
【００８８】
ところで、本実施形態の符号化処理では、位置や関節角度などの運動データｙ（ｔ）を（１９）式で近似表現することを利用している。（１９）式を時間微分すると、
【００８９】
【数１４】
0003735187.tif 000015
【００９０】
が得られる。
したがって、ｙ（ｔ）が位置データである場合、（２４）、（２５）式より、速度  外１  と加速度  外２  を同一の符号化運動データＷ＝［ｗ-k，．．．，
【００９１】
【外１】
0003735187.tif 000016
【００９２】
【外２】
0003735187.tif 000017
【００９３】
ｗN-1 ］を用いて表現することができる。つまり、符号化運動データとして行列Ｗだけを記録しておけば、（１９）、（２４）、（２５）式によって、位置、速度、加速度のすべてを再現することができる。同様に、ｙ（ｔ）が角度データである場合は、（２４）、（２５）式によって、符号化運動データＷから角速度、角加速度を再現することができる。
【００９４】
このように、Ｂ−スプライン関数を用いた符号化によれば、Ｂ−スプライン関数の時間微分を用いることで、符号化運動データから、元の運動データのみならずその時間微分のデータも再現することができる。したがって、少ない記憶容量でより多くのデータを再現できるという利点がある。
【００９５】
さらに、人間の腕の運動に関する研究によれば、その運動軌跡を等間隔の３次のＢ−スプライン関数を利用してうまく近似できることが報告されている（E.Burdet: Algorithms of Human Motor Control and their Implementation in Robotics. PhD thesis No.11692,    外３  (ETH)-Zuerich, 1996 ）。そこで、次に
【００９６】
【外３】
0003735187.tif 000018
【００９７】
、３次のＢ−スプライン関数を用いた場合について、具体的な符号化の例を示すことにする。
等間隔Δｔの非多重の４個の節点ｔ＝０，Δｔ，２Δｔ，３Δｔを持つ正規化された３次のＢ−スプライン関数Ｂ(3) （ｔ；０，Δｔ，２Δｔ，３Δｔ）は、（２）式より、次のように定義される。
【００９８】
【数１５】
0003735187.tif 000019
【００９９】
ただし、関数Ｎ3-j,3 （ｔ）（ｊ＝０，１，２，３）は以下の通りである。
【０１００】
【数１６】
0003735187.tif 000020
【０１０１】
いま、ｔ＝（ｊ＋ｅ）Δｔ（０≦ｅ≦１）とすると、（２６）式より、（１９）式は次のように変形できる。
【０１０２】
【数１７】
0003735187.tif 000021
【０１０３】
ただし、関数ｂi （ｓ）（ｉ＝０，１，２，３，０≦ｓ≦１）は次のように定義される。
【０１０４】
【数１８】
0003735187.tif 000022
【０１０５】
以上より、等間隔の３次のＢ−スプライン関数を利用した場合、行列Ａは次のように簡単に計算することができる。
【０１０６】
【数１９】
0003735187.tif 000023
【０１０７】
ただし、Δｔ＝ｎδｔである。
（３１）式の行列Ｄは、関数ｂi （ｓ）（ｉ＝０，１，２，３，０≦ｓ≦１）と計測サンプリング間隔δｔ、および、Ｂ−スプライン関数の間隔Δｔを決定することによって事前に計算することができる。したがって、（３０）式の行列Ａは、計測した運動データに依存しない定数行列とみなすことができる。
【０１０８】
次に、運動データの編集処理について説明する。運動データの編集が可能になることにより、その再利用性が向上する。編集処理は、運動データそのものに対してではなく、すべて、符号化運動データに対して行われる。したがって、保存してある符号化運動データを時系列の運動データに復元することなく、符号化運動データのままで直接編集を行うことができる。
【０１０９】
本実施形態のデータ変換装置には、
（ａ）座標変換（キネマティック変換）
（ｂ）時間に関する変換
（ｃ）空間に関する変換
（ｄ）分割、連結、融合
（ｅ）手動による重み係数の調節
（ｆ）ダイナミクスを利用した変換
などの編集機能が備えられている。
【０１１０】
これらの編集機能を用いたデータ変換の一例を図示すると、図１０に示すようになる。例えば、直交座標系における符号化運動データは、（ａ）の適当な座標変換により、関節座標系における符号化運動データに変換される。また、関節座標系における符号化運動データは、（ｆ）のダイナミクスを利用した変換により、関節トルクを表現する符号化運動データに変換される。そして、これらの符号化運動データは、それぞれ、（ｂ）、（ｃ）、（ｄ）、（ｅ）などの各種の編集処理により、さらに加工することができる。
【０１１１】
図１１は、符号化運動データの編集処理のフローチャートである。データ変換装置は、まず、編集対象の符号化運動データを記憶装置から取り出し（ステップＳ２１）、ユーザの指示に従ってそれを編集する（ステップＳ２２）。次に、編集結果をディスプレイ画面に表示して、ユーザによる評価を待つ（ステップＳ２３）。
【０１１２】
編集結果の表示方法には、大きく分けて２つの方法がある。第１の方法は、編集された符号化運動データから運動データを復元して、その時間変化をグラフで表示する方法である。第２の方法は、復元された運動データからキャラクターの動作を再現して表示する方法である。第２の方法は、第１の方法に比べて編集結果が評価しやすいという利点があるが、第１の方法よりも多くの処理を必要とする。どちらの表示方法を選ぶかは、ユーザにより指定される。
【０１１３】
次に、データ変換装置は、同じデータの編集を続けるかどうかをユーザに問合せ（ステップＳ２４）、ユーザが編集続行の指示を入力すると、ステップＳ２２以降の処理を繰り返す。また、ユーザが編集終了の指示を入力すると、次に、他のデータを用いた編集を行うかどうかをユーザに問合せる（ステップＳ２５）。ここで、ユーザが編集続行の指示を入力すると、ステップＳ２１以降の処理を繰り返し、編集終了の指示を入力すると、処理を終了する。
【０１１４】
次に、上述の各種編集機能の詳細を順に説明する。
（ａ）座標変換（キネマティック変換）
一般に、ある一つの身体運動は直交座標と関節座標など複数の座標系を使って表現することができる。ここで、直交座標は、ある時刻の身体の特定部位（例えば、頭、手先、関節など）の空間内位置によって身体姿勢を表現する座標であり、一方、関節座標は、身体中の関節の角度によって身体姿勢を表現する座標である。
【０１１５】
人間の運動を計測するためによく利用されるモーション・キャプチャー・システムにおいて、ビデオカメラや磁気センサを利用したシステムでは、運動が直交座標で計測され、一方、ゴニオメータを利用したシステムでは、運動が関節座標で計測される。また、運動データを再現する際、コンピュータ内に仮想的に構成した人体モデルを動かすためには、一つの運動を関節座標と直交座標の両方で表現することが有効である。したがって、ある運動データを直交座標と関節座標の両方で表現するため、２つの座標間の座標変換が必要となる。
【０１１６】
ある一つの姿勢が直交座標ではｘ＝［ｘ1 ，．．．，ｘm ］と表現され、関節座標ではｑ＝［ｑ1 ，．．．，ｑm ］と表現されたとすると、２つの座標の間には、
【０１１７】
【数２０】
0003735187.tif 000024
【０１１８】
の関係が成り立つ。ここで、（３２）式のｈは非線形のベクトル関数であり、関節座標ｑから直交座標ｘへの変換を表す。また、（３３）式のｈ-1は、ｈの逆変換を表す。このとき、速度に関しては、次式が成り立つ。
【０１１９】
【数２１】
0003735187.tif 000025
【０１２０】
ここで、Ｊは関数ｈのヤコビ行列であり、Ｊ# は広く逆行列を意味する。Ｊ# としては、  外４  （以下、ｑドットと記す）と  外５  （以下、ｘドットと記す
【０１２１】
【外４】
0003735187.tif 000026
【０１２２】
【外５】
0003735187.tif 000027
【０１２３】
）の次元が等しい場合にはＪ-1が使用され、ｑドットの次元がｘドットの次元より大きい場合には、例えば、擬似逆行列ＪT （ＪＪT ）-1などが使用される。後者の場合の逆行列としては、状況や使用目的に応じて部分的に修正されたいくつかの行列がこれまでに提案されており、それらを利用することができる。
【０１２４】
いま、ある運動を表す符号化運動データが、直交座標ではＸ＝［ｘ-k，．．．，ｘN-1 ］、関節座標ではＱ＝［ｑ-k，．．．，ｑN-1 ］と表現されたとする。このとき、（２４）、（３４）、（３５）式より、２つの座標で表現した符号化運動データの間には、次式のような関係が成り立つ。
【０１２５】
【数２２】
0003735187.tif 000028
【０１２６】
ここで、（３２）、（３４）式のｘ、ｑは、符号化前の運動データを表すのに対して、（３６）式のｘi 、ｑi は、符号化運動データを表すことに注意を要する。また、（３６）式のＪ（ｑ（ｉΔｔ））、Ｊ# （ｑ（ｉΔｔ））は、それぞれ、（３４）式のＪ（ｑ）、（３５）式のＪ# （ｑ）にｔ＝ｉΔｔを代入して得られる行列である。
（ｂ）時間に関する変換
時間に関する変換は、運動の開始時刻を遅らせたり、運動時間を伸長または短縮したりする機能を持つ。ここでは、運動開始時刻の遅延演算と運動時間の伸縮演算の２種類の演算を示す。これら時間に関するすべての演算は、直交座標と関節座標のどちらでも実行できる。
【０１２７】
いま、ある運動データｙ（ｔ）（０≦ｔ≦Ｔ）を符号化した結果をＷ＝［ｗ-k，ｗ-k+1，．．．，ｗN-1 ］とし、Ｔ＝ＮΔｔであるとする。このとき、運動開始の時刻をｊΔｔだけ遅らせる遅延演算Ｄelay（Ｗ，ｊ）（ｊ＝−ｋ，．．．，Ｎ−１）は、演算結果をＶとして、次のように作用する。
【０１２８】
【数２３】
0003735187.tif 000029
【０１２９】
すなわち、この演算は、符号化運動データＷの前半にｊ個のｗ-kを新たに付け加えて、運動の初期値にｊΔｔの間だけ留まるようにする変換である。
図１２は、０≦ｔ≦８［ｓｅｃ］の区間における変換前の運動データ（例えば、位置データ）の一例を示している。この運動データを、Δｔ＝１．０、Ｎ＝８として、３次のＢ−スプライン関数Ｂ(3) i （ｔ）（ｉ＝−３，．．．，７）を用いて符号化すると、次のような符号化運動データが得られる。
【０１３０】
Ｗ
＝［ｗ-3，ｗ-2，ｗ-1，ｗ0 ，ｗ1 ，ｗ2 ，ｗ3 ，ｗ4 ，ｗ5 ，ｗ6 ，ｗ7 ］
＝［０，０，０，１，２．７，３．５，２．７，１，０，０，０］  （３８）
図１２の区間０≦ｔ≦８には、係数ｗ0 、ｗ1 、ｗ2 、ｗ3 、ｗ4 によりそれぞれ重み付けられたＢ−スプライン関数ｗ0 Ｂ(3) 0 （ｔ）、ｗ1 Ｂ(3) 1 （ｔ）、ｗ2 Ｂ(3) 2 （ｔ）、ｗ3 Ｂ(3) 3 （ｔ）、ｗ4 Ｂ(3) 4 （ｔ）の関数形が示されている。
【０１３１】
（３８）式の符号化運動データに、開始の時刻を６秒間だけ遅らせる遅延演算Ｄelay（Ｗ，６）を作用させると、（３７）式より、変換後の符号化運動データは次のようになる。
【０１３２】
0003735187.tif 000030
（３９）式の符号化運動データにより重み付けされたＢ−スプライン関数と、それらの総和として得られる運動データを図示すると、図１３のようになる。図１３では、図１２の運動データの区間が０≦ｔ≦１４に拡張され、最初の６秒間は位置が変化していないことが分かる。
【０１３３】
また、運動時間の伸縮演算ＴemporalScale（Ｗ，λ）は、運動時間Ｔをλ倍に伸縮する変換を表す。ただし、λは実数である。演算結果をＶとすると、この演算は次のように作用する。
【０１３４】
【数２４】
0003735187.tif 000031
【０１３５】
ただし、  外６  （以下、Ｎハットと記す）は、
【０１３６】
【外６】
0003735187.tif 000032
【０１３７】
【数２５】
0003735187.tif 000033
【０１３８】
を満たし、Ｂ−スプライン関数の係数ｖi （ｉ＝−ｋ，．．．，Ｎハット−１）は、
【０１３９】
【数２６】
0003735187.tif 000034
【０１４０】
を満たす。（４２）式を満たすｖi （ｉ＝−ｋ，．．．，Ｎハット−１）を求めるには、右辺を関数ｙ（ｔ）とみなして、（１９）式に基づく図９の符号化処理を実行すればよい。
【０１４１】
例えば、（３８）式の符号化運動データに対して、運動時間を２倍に伸張する演算ＴemporalScale（Ｗ，２）を作用させると、（４２）式より、変換後の符号化運動データは次のようになる。
【０１４２】
0003735187.tif 000035
（４３）式の符号化運動データにより重み付けされたＢ−スプライン関数と、それらの総和として得られる運動データを図示すると、図１４のようになる。図１４では、図１２の運動時間が１６秒間に伸張されていることが分かる。
（ｃ）空間に関する変換
空間に関する変換として、平行移動、回転、および拡大縮小（ただし、運動時間Ｔは不変）について説明する。これらの変換は、主に直交座標での符号化運動データに対して行われる。いま、符号化運動データＷ＝［ｗ-k，．．．，ｗN-1 ］について、ｗi ∈Ｒm であるものとする。
【０１４３】
このとき、運動データをδｗ∈Ｒm だけ平行移動する演算Ｔranslate（Ｗ，δｗ）によって、符号化運動データＷは次のような符号化運動データＶに変換される。
【０１４４】
【数２７】
0003735187.tif 000036
【０１４５】
例えば、（３８）式の符号化運動データに対して、運動データを１．０だけ平行移動する演算Ｔranslate（Ｗ，２）を作用させると、（４４）式より、変換後の符号化運動データは次のようになる。
【０１４６】
Ｖ
＝［ｖ-3，ｖ-2，ｖ-1，ｖ0 ，ｖ1 ，ｖ2 ，ｖ3 ，ｖ4 ，ｖ5 ，ｖ6 ，ｖ7 ］
＝［１，１，１，２，３．７，４．５，３．７，２，１，１，１］  （４５）
（４５）式の符号化運動データにより重み付けされたＢ−スプライン関数と、それらの総和として得られる運動データを図示すると、図１５のようになる。図１５では、図１２の運動データが１．０だけ上方に平行移動していることが分かる。
【０１４７】
また、直交座標の原点に関して角度ｑだけ回転する演算Ｒotation （Ｗ，ｑ）によって、符号化運動データＷは次のような符号化運動データＶに変換される。
【０１４８】
【数２８】
0003735187.tif 000037
【０１４９】
ただし、Ｒ（ｑ）は、係数ベクトルｗi を原点に関して角度ｑだけ回転させる回転行列である。例えば、直交座標が２次元の場合は、次の行列Ｒ（ｑ）が用いられる。
【０１５０】
【数２９】
0003735187.tif 000038
【０１５１】
また、運動時間は変えないで運動データのサイズだけをλ倍する演算ＳpatialScale （Ｗ，λ）によって、符号化運動データＷは次のような符号化運動データＶに変換される。
【０１５２】
【数３０】
0003735187.tif 000039
【０１５３】
例えば、（３８）式の符号化運動データに対して、運動データのサイズを２倍にする演算ＳpatialScale （Ｗ，２）を作用させると、（４８）式より、変換後の符号化運動データは次のようになる。
【０１５４】
Ｖ
＝［ｖ-3，ｖ-2，ｖ-1，ｖ0 ，ｖ1 ，ｖ2 ，ｖ3 ，ｖ4 ，ｖ5 ，ｖ6 ，ｖ7 ］
＝［０，０，０，２，５．４，７，５．４，２，０，０，０］      （４９）
（４９）式の符号化運動データにより重み付けされたＢ−スプライン関数と、それらの総和として得られる運動データを図示すると、図１６のようになる。図１６では、図１２の運動データのサイズが全体的に２倍になっていることが分かる。
（ｄ）分割、連結、融合
次に、１つの符号化運動データを２つに分割したり、逆に複数の符号化運動データから新しい符号化運動データを作り出す編集機能について説明する。ここでは、符号化運動データの２種類の分割演算、複数の符号化運動データの連結演算、および融合演算について示す。
【０１５５】
符号化運動データＷ＝［ｗ-k，．．．，ｗN-1 ］を、第ｊ列の係数ベクトルｗj と第（ｊ＋１）列の係数ベクトルｗj+1 の間で２つの符号化運動データに分割する演算Ｃut１（Ｗ，ｊ）によって、符号化運動データＷは次のように変換される。
【０１５６】
【数３１】
0003735187.tif 000040
【０１５７】
ここで、ｗj は第ｊ番目のＢ−スプライン関数Ｂ(k) j （ｔ）の重み係数に対応している。この分割演算を作用させる運動データの例として、図１７に示すようなものを考える。
【０１５８】
図１７の運動データは、０≦ｔ≦１５［ｓｅｃ］の区間で計測されている。この運動データを、Δｔ＝１．０、Ｎ＝１５として、３次のＢ−スプライン関数Ｂ(3) i （ｔ）（ｉ＝−３，．．．，１４）を用いて符号化すると、次のような符号化運動データが得られる。
【０１５９】
0003735187.tif 000041
図１７の区間０≦ｔ≦１５には、係数ｗ-3、ｗ-2、ｗ-1、ｗ0 、ｗ1 、ｗ2 、ｗ3 、ｗ4 、ｗ5 、ｗ6 、ｗ7 、ｗ8 、ｗ9 、ｗ10、ｗ11、ｗ12、ｗ13、ｗ14によりそれぞれ重み付けられたＢ−スプライン関数ｗ-3Ｂ(3) -3（ｔ）、ｗ-2Ｂ(3) -2（ｔ）、ｗ-1Ｂ(3) -1（ｔ）、ｗ0 Ｂ(3) 0 （ｔ）、ｗ1 Ｂ(3) 1 （ｔ）、ｗ2 Ｂ(3) 2 （ｔ）、ｗ3 Ｂ(3) 3 （ｔ）、ｗ4 Ｂ(3) 4 （ｔ）、ｗ5 Ｂ(3) 5 （ｔ）、ｗ6 Ｂ(3) 6 （ｔ）、ｗ7 Ｂ(3) 7 （ｔ）、ｗ8 Ｂ(3) 8 （ｔ）、ｗ9 Ｂ(3) 9 （ｔ）、ｗ10Ｂ(3) 10（ｔ）、ｗ11Ｂ(3) 11（ｔ）、ｗ12Ｂ(3) 12（ｔ）、ｗ13Ｂ(3) 13（ｔ）、ｗ14Ｂ(3) 14（ｔ）の関数形が示されている。
【０１６０】
（５１）式の符号化運動データに、ｗ4 とｗ5 の間で分割する演算Ｃut１（Ｗ，４）を作用させると、（５０）式より、変換後の符号化運動データは次のようになる。
【０１６１】
0003735187.tif 000042
（５２）式の符号化運動データＷ(1) により重み付けされたＢ−スプライン関数と、それらの総和として得られる運動データを図示すると、図１８のようになる。また、符号化運動データＷ(2) により重み付けされたＢ−スプライン関数と、それらの総和として得られる運動データを図示すると、図１９のようになる。図１８および図１９の運動データは、図１７の運動データを２つに分割した結果を表している。
【０１６２】
また、符号化運動データＷを時刻ｔ＝ｊΔｔで２つの符号化運動データに分割する演算Ｃut２（Ｗ，ｊ）によって、符号化運動データＷは次のように変換される。
【０１６３】
【数３２】
0003735187.tif 000043
【０１６４】
例えば、（５１）式の符号化運動データに、時刻ｔ＝７Δｔ＝７で分割する演算Ｃut２（Ｗ，７）を作用させると、（５３）式より、変換後の符号化運動データは次のようになる。
【０１６５】
0003735187.tif 000044
（５４）式の符号化運動データＷ(1) により重み付けされたＢ−スプライン関数と、それらの総和として得られる運動データを図示すると、図２０のようになる。また、符号化運動データＷ(2) により重み付けされたＢ−スプライン関数と、それらの総和として得られる運動データを図示すると、図２１のようになる。図２０および図２１の運動データは、図１７の運動データを２つに分割した結果を表している。
【０１６６】
演算Ｃut１により得られた図１８の運動データと、演算Ｃut２により得られた図２０の運動データを比較すると、前者は図１７の運動データの時刻ｔ＝７の値を含んでいないのに対して、後者はその値を含んでいることが分かる。このように、演算Ｃut２は、分割時刻の前後の係数ベクトルを分割後の符号化運動データＷ(1) とＷ(2) の両方に残しているため、元の運動データの分割点付近の形状を保存しながら、符号化運動データを分割することができる。
【０１６７】
また、次のような２つの符号化運動データ
【０１６８】
【数３３】
0003735187.tif 000045
【０１６９】
を連結して１つの符号化運動データを作る演算Ｃonnect（Ｗ(1) ，Ｗ(2) ）によって、以下のような新しい符号化運動データＶが作成される。
【０１７０】
【数３４】
0003735187.tif 000046
【０１７１】
例えば、（５２）式の符号化運動データＷ(1) とＷ(2) に、演算Ｃonnect（Ｗ(1) ，Ｗ(2) ）を作用させると、（５６）式より、（５１）式の符号化運動データＷが生成される。
【０１７２】
また、（５５）式の２つの符号化運動データを融合して（重ね合わせて）１つの符号化運動データを作る演算Ｆusion （Ｗ(1) ，Ｗ(2) ）によって、以下のような新しい符号化運動データＶが作成される。
【０１７３】
【数３５】
0003735187.tif 000047
【０１７４】
ただし、（５７）式ではＮ＝ｍａｘ（Ｎ1 ，Ｎ2 ）である。Ｎ1 とＮ2 が異なる場合、（５７）式の符号化運動データＷ(1) とＷ(2) のうちで、運動時間が短い方の不足分の係数ベクトルとして０ベクトルを補足して計算する。例えば、Ｎ1 ＝Ｎ2 ＋ｊのときは、（５７）式は次のようになる。
【０１７５】
【数３６】
0003735187.tif 000048
【０１７６】
例えば、（５２）式の符号化運動データＷ(1) とＷ(2) に、演算Ｆusion （Ｗ(1) ，Ｗ(2) ）を作用させると、（５７）式より、次のような符号化運動データが生成される。
【０１７７】
0003735187.tif 000049
（５９）式の符号化運動データにより重み付けされたＢ−スプライン関数と、それらの総和として得られる運動データを図示すると、図２２のようになる。図２２の運動データは、図１８および図１９の運動データを融合した結果を表している。
（ｅ）手動による重み係数の調節
演算Ｍodify （Ｗ，ｊ，δｗ）は、運動軌跡の部分的な調節や修正を行うため、符号化運動データＷ＝［ｗ-k，．．．，ｗN-1 ］の一つの係数ベクトルｗj（ｊ＝−ｋ，．．．，Ｎ−１）にベクトルδｗを加算する演算である。この演算によって、符号化運動データＷは次のように変換される。
【０１７８】
【数３７】
0003735187.tif 000050
【０１７９】
一般に、符号化運動データは滑らかな局所的基底関数であるＢ−スプライン関数の係数ベクトルの配列であるので、ある一つの係数ベクトルの値を変化させても、その影響は局所的に留まる。また、全体の運動軌跡は常に滑らかなままである。
（ｆ）ダイナミクスを利用した変換
逆ダイナミクスを利用した変換は、位置、速度、および加速度などの運動を表現する符号化運動データを、関節トルクを表現する符号化運動データへ変換する。逆に、順ダイナミクスを利用した変換は、関節トルクを表現する符号化運動データを、運動を表現する符号化運動データに変換する。
【０１８０】
ところで、人間の腕の運動軌跡が、運動を実行する関節トルクの変化が最小となるように計画されているとする学説がある（Y.Uno, M.Kawato, and R.Suzuki: Formation and Control of Optimal Trajectory in Human Multijoint Arm Movement. Minimum Torque-Change Model. Biol. Cybern. Vol.61, pp.89-101, 1989 ）。
【０１８１】
この学説は、腕の運動を引き起こしている関節トルクの時間波形が滑らかであることを主張している。したがって、運動を表現する符号化運動データを関節トルクの符号化運動データに変換し、その後、関節トルクの符号化運動データに対して、上述したような各種の滑らかな編集処理を実行することにより、運動の自然さを保ったままの編集が可能になる。ここで、滑らかな編集処理とは、編集後の運動データが滑らかであることを意味する。
【０１８２】
いま、運動を表現する符号化運動データをＷ＝［ｗ-k，．．．，ｗN-1 ］、関節トルクを表現する符号化運動データをＵ＝［ｕ-k，．．．，ｕN-1 ］とする。このとき、ＷをＵに変換する逆ダイナミクスの演算ＩnverseＤynamics （Ｗ）は、次のように記述される。
【０１８３】
Ｕ＝ＩnverseＤynamics （Ｗ）                                （６１）
また、ＵをＷに変換する順ダイナミクスの演算ＦorwardＤynamics （Ｕ）は、次のように記述される。
【０１８４】
Ｗ＝ＦorwardＤynamics （Ｕ）                                （６２）
以上説明したような各種編集機能を用いた作業は、グラフィカル・ユーザ・インタフェース（ＧＵＩ）を利用して行われる。すなわち、編集対象の符号化運動データの指定や編集機能の選択および値の設定などは、画面上のボタンなどで表現される編集機能をマウスなどのポインティングデバイスを用いて指示することにより行われる。そして、ディスプレイ装置は、編集中および編集結果の運動を画面上に表示し、常に、編集状況をユーザにわかりやすく伝達する。
【０１８５】
本実施形態では、運動データを近似するための基底関数として、現時点で最適と考えられるＢ−スプライン関数を用いているが、一般には、他の任意の関数を用いることができる。例えば、基底関数としてＲＢＦ（radical base function ）を用いてもよい。また、人物や動物などの生物だけでなく、自動車、航空機、ロボットなどの任意の動く物体を、運動データの計測対象とすることができる。
【０１８６】
【発明の効果】
本発明によれば、時系列データとして与えられる運動データを符号化することで、運動データを効率的に保存することが可能になる。また、符号化された運動データに対して様々な編集を行い、与えられた運動データとは異なる新しい運動データを生成することもできる。したがって、運動データの再利用性が向上する。
【図面の簡単な説明】
【図１】本発明のデータ変換装置の原理図である。
【図２】運動データの処理過程を示す図である。
【図３】符号化処理の概略フローチャートである。
【図４】第１の運動データを示す図である。
【図５】情報処理装置の構成図である。
【図６】記録媒体を示す図である。
【図７】データ変換装置の構成図である。
【図８】等間隔の３次のＢ−スプライン関数を示す図である。
【図９】符号化処理の詳細フローチャートである。
【図１０】符号化運動データの変換を示す図である。
【図１１】編集処理のフローチャートである。
【図１２】第２の運動データを示す図である。
【図１３】遅延された運動データを示す図である。
【図１４】伸張された運動データを示す図である。
【図１５】平行移動後の運動データを示す図である。
【図１６】拡大された運動データを示す図である。
【図１７】第３の運動データを示す図である。
【図１８】第１の分割された運動データを示す図である。
【図１９】第２の分割された運動データを示す図である。
【図２０】第３の分割された運動データを示す図である。
【図２１】第４の分割された運動データを示す図である。
【図２２】融合した運動データを示す図である。
【符号の説明】
１  近似手段
２  格納手段
３  符号化手段
４  編集手段
５  復元手段
６  出力手段
１１  記憶装置
２１  ＣＰＵ
２２  メモリ
２３  入力装置
２４  出力装置
２４′  ディスプレイ装置
２５  外部記憶装置
２６  媒体駆動装置
２７  ネットワーク接続装置
２８  計測装置
２９  バス
３０  可搬記録媒体
３１  データベース
３２  符号化部
３３  編集部
【図１】
0003735187.tif 000051
【図２】
0003735187.tif 000052
【図３】
0003735187.tif 000053
【図４】
0003735187.tif 000054
【図５】
0003735187.tif 000055
【図６】
0003735187.tif 000056
【図７】
0003735187.tif 000057
【図８】
0003735187.tif 000058
【図９】
0003735187.tif 000059
【図１０】
0003735187.tif 000060
【図１１】
0003735187.tif 000061
【図１２】
0003735187.tif 000062
【図１３】
0003735187.tif 000063
【図１４】
0003735187.tif 000064
【図１５】
0003735187.tif 000065
【図１６】
0003735187.tif 000066
【図１７】
0003735187.tif 000067
【図１８】
0003735187.tif 000068
【図１９】
0003735187.tif 000069
【図２０】
0003735187.tif 000070
【図２１】
0003735187.tif 000071
【図２２】
0003735187.tif 000072