【新規性喪失の例外の表示】特許法第30条第2項適用 [刊行物1] 展示日 平成29年7月30日〜平成29年8月2日、展示会名 SIGGRAPH 2017、開催場所 ロサンゼルスコンベンションセンター [刊行物2] 開催日 平成29年8月1日〜平成29年8月2日、集会名 SIGGRAPH 2017、開催場所 ロサンゼルスコンベンションセンター [刊行物3] 平成29年7月30日掲載、掲載アドレスhttps://dl.acm.org/citation.cfm?id=3102236
(58)【調査した分野】(Int.Cl.,DB名)
仮想空間上に表示させるためのアニメーションデータであって所定の支点を中心とした回転運動によってボーンの動きを表現可能な箇所を含むアニメーションデータを圧縮する機能をコンピュータに実現させるためのアニメーションデータ圧縮プログラムであって、
前記コンピュータに、
圧縮対象のアニメーションデータにおける各ボーンのポーズ状態を表現するためのポーズ値、各ボーンが回転する場合の回転の速度値を含む各種パラメータの初期値を与える最初のキーフレームを作成する初期値設定機能と、
圧縮対象のアニメーションデータの対象フレームにおける各ボーンについて、回転によって動きを表現可能であるボーンが直前のキーフレームに比較して速度値が所定値以上変化したか否かを判別する速度変化判別機能と、
前記速度変化判別機能において速度値が所定値以上変化したと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータについて少なくとも速度値を記録したキーフレームとして設定するキーフレーム設定機能と、
前記速度変化判別機能において速度値が所定値以上変化していないと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータの値を削除する削除機能と
を実現させるアニメーションデータ圧縮プログラム。
請求項1に記載のアニメーションデータ圧縮プログラムによって圧縮されたアニメーションデータを復元する機能をコンピュータに実現させるためのアニメーションデータ復元プログラムであって、
前記コンピュータに、
復元すべきフレームについて、当該フレームに直接対応したキーフレームが存在するか否かを判別するキーフレーム判別機能と、
復元すべきフレームに直接対応したキーフレームが存在する場合に、当該キーフレームで与えられる各ボーンについての各種パラメータ値を用いて当該フレームのアニメーションデータを生成するキーフレーム出力機能と、
復元すべきフレームに直接対応したキーフレームが存在しない場合に、直前のキーフレームによって与えられる各ボーンについての各種パラメータ値、速度値及び直前のキーフレームからの経過時間に基づいて、当該フレームのアニメーションデータを生成するフレーム補完機能と
を実現させるアニメーションデータ復元プログラム。
請求項2に記載のアニメーションデータ圧縮プログラムによって圧縮されたアニメーションデータを復元する機能をコンピュータに実現させるためのアニメーションデータ復元プログラムであって、
前記コンピュータに、
復元すべきフレームについて、当該フレームに直接対応したキーフレームが存在するか否かを判別するキーフレーム判別機能と、
復元すべきフレームに直接対応したキーフレームが存在する場合に、当該キーフレームで与えられる各ボーンについての各種パラメータ値を用いて当該フレームのアニメーションデータを生成するキーフレーム出力機能と、
復元すべきフレームに直接対応したキーフレームが存在しない場合に、最初のキーフレームによって与えられる各ボーンについての各種パラメータ値、速度値、最初のキーフレームと現在のフレームまでの間に存在したキーフレームによってそれぞれ与えられた速度値の差分、及び、最初のキーフレームからの経過時間に基づいて、当該フレームのアニメーションデータを生成するフレーム補完機能と
を実現させるアニメーションデータ復元プログラム。
仮想空間上に表示させるためのアニメーションデータであって所定の支点を中心とした回転運動によってボーンの動きを表現可能な箇所を含むアニメーションデータを圧縮するためのアニメーションデータ圧縮装置であって、
圧縮対象のアニメーションデータにおける各ボーンのポーズ状態を表現するためのポーズ値、各ボーンが回転する場合の回転の速度値を含む各種パラメータの初期値を与える最初のキーフレームを作成する初期値設定部と、
圧縮対象のアニメーションデータの対象フレームにおける各ボーンについて、回転によって動きを表現可能であるボーンが直前のキーフレームに比較して速度値が所定値以上変化したか否かを判別する速度変化判別部と、
前記速度変化判別部において速度値が所定値以上変化したと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータについて少なくとも速度値を記録したキーフレームとして設定するキーフレーム設定部と、
前記速度変化判別部において速度値が所定値以上変化していないと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータの値を削除する削除部と
を備えたアニメーションデータ圧縮装置。
仮想空間上に表示させるためのアニメーションデータであって所定の支点を中心とした回転運動によってボーンの動きを表現可能な箇所を含むアニメーションデータを圧縮するためのアニメーションデータ圧縮方法であって、
圧縮対象のアニメーションデータにおける各ボーンのポーズ状態を表現するためのポーズ値、各ボーンが回転する場合の回転の速度値を含む各種パラメータの初期値を与える最初のキーフレームを作成する初期値設定処理と、
圧縮対象のアニメーションデータの対象フレームにおける各ボーンについて、回転によって動きを表現可能であるボーンが直前のキーフレームに比較して速度値が所定値以上変化したか否かを判別する速度変化判別処理と、
前記速度変化判別処理において速度値が所定値以上変化したと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータについて少なくとも速度値を記録したキーフレームとして設定するキーフレーム設定処理と、
前記速度変化判別処理において速度値が所定値以上変化していないと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータの値を削除する削除処理と
を含むアニメーションデータ圧縮方法。
【発明の概要】
【発明が解決しようとする課題】
【0006】
従来の圧縮方法においては、2つのキーフレームから間のフレームを補完する際に、キーフレームに含まれる時間の情報に基づく重みを利用して補完フレームのデータ値を算出するようにしている。すなわち、キーフレームには時間情報を含ませる必要があった。この従来の圧縮方法は、データ削減に有効な圧縮方法であり、現在も様々なアニメーションにおいて適用されている。他方、特定の条件下において、この時間情報を削減することが可能であれば、より一層のデータ削減を実現することが可能となるが、そのような圧縮方法は提案されていなかった。
【0007】
本発明の少なくとも1つの実施形態の目的は、上記問題を解決し、データ容量を削減可能なアニメーションデータ圧縮プログラム、アニメーションデータ復元プログラム、アニメーションデータ圧縮装置、及びアニメーションデータ圧縮方法を提供することである。
【課題を解決するための手段】
【0008】
非限定的な観点によると、本発明の一実施形態に係るアニメーションデータ圧縮プログラムは、仮想空間上に表示させるためのアニメーションデータであって所定の支点を中心とした回転運動によってボーンの動きを表現可能な箇所を含むアニメーションデータを圧縮する機能をコンピュータに実現させるためのアニメーションデータ圧縮プログラムであって、前記コンピュータに、圧縮対象のアニメーションデータにおける各ボーンのポーズ状態を表現するためのポーズ値、各ボーンが回転する場合の回転の速度値を含む各種パラメータの初期値を与える最初のキーフレームを作成する初期値設定機能と、圧縮対象のアニメーションデータの対象フレームにおける各ボーンについて、回転によって動きを表現可能であるボーンが直前のキーフレームに比較して速度値が所定値以上変化したか否かを判別する速度変化判別機能と、前記速度変化判別機能において速度値が所定値以上変化したと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータについて少なくとも速度値を記録したキーフレームとして設定するキーフレーム設定機能と、前記速度変化判別機能において速度値が所定値以上変化していないと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータの値を削除する削除機能とを実現させることを特徴とする。
【0009】
非限定的な観点によると、本発明の一実施形態に係るアニメーションデータ復元プログラムは、アニメーションデータ圧縮プログラムによって圧縮されたアニメーションデータを復元する機能をコンピュータに実現させるためのアニメーションデータ復元プログラムであって、前記コンピュータに、復元すべきフレームについて、当該フレームに直接対応したキーフレームが存在するか否かを判別するキーフレーム判別機能と、復元すべきフレームに直接対応したキーフレームが存在する場合に、当該キーフレームで与えられる各ボーンについての各種パラメータ値を用いて当該フレームのアニメーションデータを生成するキーフレーム出力機能と、復元すべきフレームに直接対応したキーフレームが存在しない場合に、直前のキーフレームによって与えられる各ボーンについての各種パラメータ値、速度値及び直前のキーフレームからの経過時間に基づいて、当該フレームのアニメーションデータを生成するフレーム補完機能とを実現させることを特徴とする。
【0010】
非限定的な観点によると、本発明の一実施形態に係るアニメーションデータ圧縮装置は、仮想空間上に表示させるためのアニメーションデータであって所定の支点を中心とした回転運動によってボーンの動きを表現可能な箇所を含むアニメーションデータを圧縮するためのアニメーションデータ圧縮装置であって、圧縮対象のアニメーションデータにおける各ボーンのポーズ状態を表現するためのポーズ値、各ボーンが回転する場合の回転の速度値を含む各種パラメータの初期値を与える最初のキーフレームを作成する初期値設定部と、圧縮対象のアニメーションデータの対象フレームにおける各ボーンについて、回転によって動きを表現可能であるボーンが直前のキーフレームに比較して速度値が所定値以上変化したか否かを判別する速度変化判別部と、前記速度変化判別部において速度値が所定値以上変化したと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータについて少なくとも速度値を記録したキーフレームとして設定するキーフレーム設定部と、前記速度変化判別部において速度値が所定値以上変化していないと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータの値を削除する削除部とを備えたことを特徴とする。
【0011】
非限定的な観点によると、本発明の一実施形態に係るアニメーションデータ圧縮方法は、仮想空間上に表示させるためのアニメーションデータであって所定の支点を中心とした回転運動によってボーンの動きを表現可能な箇所を含むアニメーションデータを圧縮するためのアニメーションデータ圧縮方法であって、圧縮対象のアニメーションデータにおける各ボーンのポーズ状態を表現するためのポーズ値、各ボーンが回転する場合の回転の速度値を含む各種パラメータの初期値を与える最初のキーフレームを作成する初期値設定処理と、圧縮対象のアニメーションデータの対象フレームにおける各ボーンについて、回転によって動きを表現可能であるボーンが直前のキーフレームに比較して速度値が所定値以上変化したか否かを判別する速度変化判別処理と、前記速度変化判別処理において速度値が所定値以上変化したと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータについて少なくとも速度値を記録したキーフレームとして設定するキーフレーム設定処理と、前記速度変化判別処理において速度値が所定値以上変化していないと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータの値を削除する削除処理とを含むことを特徴とする。
【発明の効果】
【0012】
本願の各実施形態により1または2以上の不足が解決される。
【発明を実施するための形態】
【0014】
以下、本発明の実施形態の例について図面を参照して説明する。なお、以下で説明する各実施形態の例における各種構成要素は、矛盾等が生じない範囲で適宜組み合わせ可能である。また、ある実施形態の例として説明した内容については、他の実施形態においてその説明を省略している場合がある。また、各実施形態の特徴部分に関係しない動作や処理については、その内容を省略している場合がある。さらに、以下で説明する各種フローを構成する各種処理の順序は、処理内容に矛盾等が生じない範囲で順不同である。
【0015】
[第1の実施形態]
以下において、本発明の一実施形態に係るアニメーションデータ圧縮装置10について説明を行う。
図1は、本発明の一実施の形態におけるアニメーションデータ圧縮装置10の構成の例を示すブロック図である。
図1に示すように、アニメーションデータ圧縮装置10は、アニメーションデータ取得部11と、初期値設定部12と、速度変化判別部13と、キーフレーム設定部14と、削除部15と、圧縮済データ出力部16とを少なくとも備える。
【0016】
本例によるアニメーションデータ圧縮装置10で扱うアニメーションデータは、骨格(以下、ボーンという)と、骨格同士を接合するジョイント部とで構成されたオブジェクトであって、ジョイント部を回転中心としたボーンの回転運動をその回転速度によって記述可能なオブジェクトに対して有効な圧縮手法を採用している。具体的には、例えば、
図7に示す人型のキャラクタなどが該当する。この
図7に示すキャラクタは、主要な関節部分をジョイント部としてボーンが組み合わされて構成されており、各ボーンは支点となるジョイント部を回転中心とした回転運動によって動作を表現することが可能となる。このようなキャラクタのアニメーションデータは、圧縮前の状態では、各フレームにおいて、キャラクタの姿勢状態(ポーズ状態)を表すパラメータであるポーズ値を有しており、ボーン毎にポーズ値を持たせて構成してある。すなわち、各フレーム毎に、アニメーションを仮想空間上、例えばゲーム画面上にレンダリングするために必要な情報を保持している。なお、この圧縮前のアニメーションデータは、必ずしも回転運動の速度値によって表現されたものである必要はない。
【0017】
アニメーションデータ取得部11は、圧縮処理の対象となるアニメーションデータを取得する機能を有する。
【0018】
初期値設定部12は、圧縮対象のアニメーションデータにおける各ボーンのポーズ状態を表現するためのポーズ値、各ボーンが回転する場合の回転の速度値を含む各種パラメータの初期値を与える最初のキーフレームを作成する機能を有する。アニメーションを構成する全てのボーンについて初期値を設定する必要があるので、最初のキーフレームは最初のフレームに登場する全てのボーンについての初期値を含んでいるといえる。なお、ボーン毎の速度値は、圧縮対象のアニメーションデータにおいて予め速度値が与えられている場合にはそれをそのまま用いるが、速度値を有していない場合には、近傍のフレーム(例えば、1つ後のフレーム)におけるボーンと比較した際の空間上のボーンの移動量と経過時間(経過フレーム数)によって当該ボーンの速度値を演算して初期値として設定するようにする。また、最初のキーフレームは、必要な初期値を与えることができればどのような形式であってもよく、例えば、イニシャルポーズキーという初期値を与えるためのフォームを用いてもよいし、ボーン毎に設けられたポーズキー(ボーンキー)によって初期値を与えるものであってもよい。また、アニメーションの途中から登場するボーンが存在する場合には、登場するフレームがそのボーンにとっての最初のフレームとなる。
【0019】
ここで、ボーンについての速度値とは、1フレームあたりのボーンの移動量を算出するために必要なパラメータである。速度値の与え方は、ボーンの移動量を算出可能であればどのようなものであってもよいが、例えば、3次元空間におけるx、y、zの各速度成分を与える手法が考えられる。また、速度値は、ボーン毎に与えられるパラメータである。例えば、人を模したオブジェクトの上腕に該当するボーンが速度値を変化させながら回転する場合であっても、前腕に該当するボーンが静止した状態であるならば、前腕のボーンの速度値は0ということになる。
【0020】
速度変化判別部13は、圧縮対象のアニメーションデータの対象フレームにおける各ボーンについて、回転によって動きを表現可能であるボーンが直前のキーフレームに比較して速度値が所定値以上変化したか否かを判別する機能を有する。判定の単位はボーン毎であり、ボーン毎に直前のキーフレームと比較を行って速度変化の判定を行う。速度値に関する所定値は、どのようなものであってもよいが、所定値の大小とデータ削減率は比例関係となる傾向が強く、所定値の大小と復元時のデータ再現精度は反比例関係となる傾向が強い。なお、判定対象となる速度値は、圧縮対象のアニメーションデータにおいて予め速度値が与えられている場合にはそれをそのまま用いるが、速度値を有していない場合には、近傍のフレーム(例えば、1つ前のフレーム)におけるボーンと比較した際の空間上のボーンの移動量と経過時間(経過フレーム数)によって当該ボーンの速度値を演算してから判定を行うようにする。
【0021】
キーフレーム設定部14は、速度変化判別部13において速度値が所定値以上変化したと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータについて少なくとも速度値を記録したキーフレームとして設定する機能を有する。キーフレームとして設定するのはボーン毎であり、同一フレームにおいてキーフレームとして設定されるボーンもあれば削除されるボーンもあることになる。キーフレームには、ボーンの速度値を含むパラメータを設定するボーンキーをキーフレームに設定されるボーンの数だけ設けるが、これ以外に、キーフレーム自身が元のアニメーションデータにおける何番目のフレームに該当するのかの情報も併せて設定しておく。
【0022】
削除部15は、速度変化判別部13において速度値が所定値以上変化していないと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータの値を削除する機能を有する。データを削除する単位はボーン毎である。
【0023】
圧縮済データ出力部16は、圧縮処理の対象となるアニメーションデータの全てのフレームの全てのボーンについて速度変化判別部13による判別処理を行って、キーフレーム設定部14によってキーフレームとして設定されたデータを最終的に圧縮済データとして出力する機能を有する。なお、対象アニメーションデータの最後のフレームまで処理が完了した時点で、アニメーションクリップ全体のすべてのキーフレームの量子化値が決定されので、必要に応じて、圧縮済データ出力部16では、これらのキーフレームの情報に基づいて、アニメーションクリップの再生中に時系列的に発生するように、すべての値を順次書き出し、何れのボーンのデータチャネルが各キーフレームに対して新しい速度値を有するか否かを示す少量のメタデータを追加したり、可能な値の制限された範囲内でキーフレームの逆量子化に使用される各キーに関連付けられたレンジデータを追加したりすることで、最終的な圧縮済データを得る。
【0024】
図2は、アニメーションデータ圧縮装置10が実行する圧縮処理の例を示すフローチャートである。なお、この
図2に示すフローチャートによる処理は、アニメーションデータを構成するボーン毎に行うものであり、実際には1つのフレームの全てのボーンについて処理を行ってから次のフレームに移行するという流れとなるが、説明の都合上、1つのボーンについて着目した場合の説明を行うものとする。
【0025】
図2において、先ず、圧縮対象のアニメーションデータを取得する(ステップS101)。取得したアニメーションデータから初期値を与えるための最初のキーフレームを設定する(ステップS102)。次のフレームに移行し、当該フレームで与えられる速度値が直前のキーフレームに比較して所定値以上変化しているか否かを判別する(ステップS103)。速度値が所定値以上変化している場合(S103−Y)は、当該フレームで与えられた速度値を含むキーフレームを設定する(ステップS104)。速度値が所定値以上変化していなかった場合(S103−N)は、当該フレームの各種パラメータの値を削除する(ステップS105)。対象フレームの処理が終わったら、当該フレームが最後のフレームであるかを判別する(ステップS106)。最後のフレームでなければ(S106−N)、次のフレームに処理対象を移行(ステップS107)させて、ステップS103〜ステップS105の処理を行う。以上のステップS103〜ステップS105の処理を順次フレームを移行させながら繰り返し行って、最後のフレームについての処理が終わった段階(S106−Y)で、それまでにキーフレームに設定したデータを圧縮済データとして出力して(ステップS108)、圧縮処理を終了する。
【0026】
図3は、アニメーションデータの圧縮処理の概念を説明するための説明図である。この
図3は、縦軸にボーンの回転角度をとり横軸に経過時間をとったものであり、このような回転角度の変化するボーンについて圧縮処理を行った場合のキーフレーム設定箇所と削除対象となったフレーム位置を示している。圧縮対象のアニメーションデータの最初のフレームはキーフレームに設定する必要があるが、それ以降のフレームについては速度値の変化に着目し、速度値の変化量が所定値以下の場合には、そのフレームにおける当該ボーンに関するデータは削除する。
図3においても、最初のキーフレームに設定したフレームを1番目としたときに、2番目から5番目までのフレームについては、速度値の変化量が所定値以下であると判別されたため、削除対象とされている。6番目のフレームについては、速度値の変化量が所定値以上となったため、キーフレームに設定している。同様の処理をアニメーション全体に対して行うことで、キーフレームに設定するフレームと削除するフレームが決定される。
図3の実線の曲線が元のアニメーションデータによる回転角度の変化であり、破線で示した軌跡が復元したアニメーションデータによる回転角度の変化を表している。
【0027】
次に、本発明の一実施形態に係るアニメーションデータ復元装置20について説明を行う。
図4は、本発明の一実施の形態におけるアニメーションデータ復元装置20の構成の例を示すブロック図である。
図4に示すように、アニメーションデータ復元装置20は、圧縮済データ取得部21と、キーフレーム判別部22と、キーフレーム出力部13と、フーム補完部24と、復元アニメーションデータ出力部25とを少なくとも備える。
【0028】
圧縮済データ取得部21は、復元処理の対象となる圧縮済データを取得する機能を有する。
【0029】
キーフレーム判別部22は、復元すべきフレームについて、当該フレームに直接対応したキーフレームが存在するか否かを判別する機能を有する。圧縮済データに含まれるキーフレームには自身が何番目のフレームとして復元されるべきかを示す情報が設定されているため、復元すべきフレームに該当するキーフレームが存在するか否かを判別することができる。
【0030】
キーフレーム出力部13は、復元すべきフレームに直接対応したキーフレームが存在する場合に、当該キーフレームで与えられる各ボーンについての各種パラメータ値を用いて当該フレームのアニメーションデータを生成する機能を有する。
【0031】
フーム補完部24は、復元すべきフレームに直接対応したキーフレームが存在しない場合に、直前のキーフレームによって与えられる各ボーンについての各種パラメータ値、速度値及び直前のキーフレームからの経過時間に基づいて、当該フレームのアニメーションデータを生成する機能を有する。直前のキーフレームのボーンキーによって与えられるボーンのポーズ値とボーンの速度値とを用いることにより、復元すべきフレームにおいてボーンが位置すべきポーズ状態が定まるため、これらによって演算を行って復元すべきフレームにおけるボーンのポーズ値を求めてフレームにおける当該ボーンの情報を補完する。
【0032】
復元アニメーションデータ出力部25は、復元処理によって得られたアニメーションデータを出力する機能を有する。復元したフレームから順次出力するものであってもよいし、最終フレームまで復元した後に出力するものであってもよい。
【0033】
図5は、アニメーションデータ復元装置20が実行する復元処理の例を示すフローチャートである。なお、この
図5に示すフローチャートによる処理は、アニメーションデータを構成するボーン毎に行うものであり、実際には1つのフレームの全てのボーンについて処理を行ってから次のフレームに移行するという流れとなるが、説明の都合上、1つのボーンについて着目した場合の説明を行うものとする。
【0034】
図5において、先ず、復元対象の圧縮済データを取得する(ステップS201)。アニメーションデータを先頭のフレームから順次復元していくが、その際、復元対象のフレームに直接対応したキーフレームが圧縮済データの中に存在するか否かを判別する(ステップS202)。復元対象のフレームに直接対応したキーフレームが存在する場合(S202−Y)は、当該キーフレームで与えられる各ボーンについての各種パラメータ値を用いて当該フレームのアニメーションデータを生成する(S203)。復元対象のフレームに直接対応したキーフレームが存在しない場合(S202−N)は、直前のキーフレームによって与えられる各ボーンについての各種パラメータ値、速度値及び直前のキーフレームからの経過時間に基づいて、当該フレームのアニメーションデータを生成する(S204)。対象フレームの処理が終わったら、当該フレームが最後のフレームであるかを判別する(ステップS205)。最後のフレームでなければ(S205−N)、次のフレームに処理対象を移行(ステップS206)させて、ステップS202〜ステップS204の処理を行う。以上のステップS202〜ステップS204の処理を順次フレームを移行させながら繰り返し行って、最後のフレームについての処理が終わった段階(S205−Y)で、それまでに復元した全フレームのデータを復元アニメーションデータとして出力して(ステップS207)、圧縮処理を終了する。なお、
図5では、全フレームのデータを復元してから出力するフローとして説明しているが、復元したフレームを順次出力するようにしてもよい。
【0035】
図6は、圧縮処理を行った後のアニメーションデータのフレーム構成を説明するための説明図である。
図6(a)は、キーフレームに含まれる時間の情報に基づく重みを利用した従来の圧縮方法による圧縮後のデータであり、
図6(b)は、速度値を用いた本例による圧縮方法による圧縮後のデータである。
図6(a)(b)ともにボーン0、ボーン1及びボーン2の3つのボーンのみで構成されている場合を例にしたデータである。
図6(a)に示す従来の圧縮後のデータは、キーフレーム毎にそのキーフレームに含まれるボーンと同数の時間キーの枠が設けられている。この時間キーを用いて重みの演算を行っている。これに対して、
図6(b)に示す本例の圧縮後のデータは、キーフレーム毎のボーンキーによって速度値の設定は行うが、時間キーが必要なくなるため、時間キーのための枠の分だけデータ容量を削減することができる。なお、
図6(a)(b)に示す例では、各ボーンの初期値を与えるイニシャルポーズキーと、各チャネルキーがどのようなデータ範囲で扱われているか(数値データの桁数など)を示すデータレンジのチャネルを有している。また、キーフレーム毎にそのキーフレームに何れのボーンについてのボーンキーが含まれているかを示すためのラベル情報を有したチャネルが設定されている。ラベル情報は、例えばボーンキーを含むか否かを「1」「0」で表すものとし、ボーン0、ボーン1、ボーン2の3つのボーンについて、全てのボーンキーが含まれている場合には「111」とし、ボーン0が含まれずボーン1とボーン2が含まれる場合には「011」と表している。このラベル情報は、例えば、キーフレームに関する時間情報がどの速度値に関連付けられているかを知るために利用される。
【0036】
以上に説明したように、第1の実施形態の一側面として、仮想空間上に表示させるためのアニメーションデータであって所定の支点を中心とした回転運動によってボーンの動きを表現可能な箇所を含むアニメーションデータを圧縮するためのアニメーションデータ圧縮装置が、アニメーションデータ取得部11と、初期値設定部12と、速度変化判別部13と、キーフレーム設定部14と、削除部15と、圧縮済データ出力部16とを備え、圧縮対象のアニメーションデータにおける各ボーンのポーズ状態を表現するためのポーズ値、各ボーンが回転する場合の回転の速度値を含む各種パラメータの初期値を与える最初のキーフレームを作成し、圧縮対象のアニメーションデータの対象フレームにおける各ボーンについて、回転によって動きを表現可能であるボーンが直前のキーフレームに比較して速度値が所定値以上変化したか否かを判別し、速度値が所定値以上変化したと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータについて少なくとも速度値を記録したキーフレームとして設定し、速度値が所定値以上変化していないと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータの値を削除するようにしたので、データ容量を削減可能なアニメーションデータの圧縮処理を行うことが可能となる。
【0037】
すなわち、キーフレームに記録するボーンの情報として速度値を採用することにより、前後のキーフレームの時間情報を用いずとも補完データを生成可能となるため、時間キーの枠の分だけデータ容量を削減することが可能となる。また、ボーンが等速度の回転運動を行うような場合には次に速度変化量が所定値以上となるまでそのボーンのボーンキーを設ける必要がなくなる。よって、多くのフレームを間引いてキーフレーム数を減らすことで全体のデータ容量を削減することが可能となる。
【0038】
[第2の実施形態]
第1の実施形態においては、圧縮処理においてキーフレームに設定する際はボーンについて速度値を記録するものとして説明を行った。これに対して、第2の実施形態として、速度値に替えて、速度値の差分を記録するようにしてもよい。
【0039】
圧縮処理時に、最初のキーフレームについては速度値を記録しておく必要があるが、以降の処理対象のフレームにおいては直前のキーフレームと比較したときに速度値の変化量が所定値以上となったフレームをキーフレームとして設定する際に、速度値を記録するのではなく、直前のキーフレームと比較した際の速度値の差分を記録するようにする。
【0040】
復元処理時には、最初のキーフレームに設定された速度値と、それ以降のキーフレームにそれぞれ設定された速度値の差分とを用いることで処理対象のフレームの直前のキーフレームの速度値が算出できる。直前のキーフレームの速度値が算出できた後のフレームの補完処理については、第1の実施形態と同様である。なお、現実的には、対象のキーフレームの速度値を算出する際に演算を容易にするために、1つ前のキーフレームの速度値をメモリに保持する構成とすれば、対象のキーフレームの速度値を算出する度に、最初のキーフレームに設定された速度値と、それ以降のキーフレームにそれぞれ設定された速度値の差分とに基づいて最初から全て演算し直す必要がなくなる。
【0041】
速度値に替えて、速度値の差分を記録する場合、速度値を記録する場合に比較して、各ボーンキーのデータ値は、ゼロに近い分布に正規化され、一般にかなり狭い範囲の可能な値に収まる。従来のアニメーション圧縮技法では、各キーを量子化するために同様に狭い範囲を定義することも可能であるが、多くの異なるチャネルのデータを扱う場合にはより多くの異なるレンジデータを定義して使用する必要である。これは、主に、各範囲の中心が任意の非ゼロ値だからである。しかし、この新しい方法では、すべての範囲がゼロに近い範囲に集中するため、非常に多くの異なるレンジデータの定義がデータストリームに存在する必要性を排除することにより、合計でより少ないデータ量とすることが可能となる。ただし、ゼロに近い範囲に収まる可能性が高いとはいえ、キーの小さなサブセットが、ほとんどのキーに使用される典型的なレンジデータによって定義した範囲内に存在しない値を有する可能性がある。したがって、より大きなビット幅のレンジデータを使用するための手段は、このサブセット内のキーにも同様に必要である。複数の範囲サイズが用意され、キーはその値に最も厳密に拘束される範囲を使用して符号化され、各キーを解凍するときに事前定義された範囲のどれを使用すべきかを示すメタデータとしてのレンジデータを記録すすることで、この問題を解消することができる。大多数のボーンキーは、データレンジが狭い範囲に収まることから、速度の差分を記録する場合の方が記録に要するビット数が少なくて済む。よって、全体としてデータ容量を削減することが可能となる。
【0042】
[第3の実施形態]
第1及び第2の実施形態においては、キーフレームにおいてボーンの速度値又は速度値の差分を設定するものとして説明を行った。第1及び第2の実施形態では、速度値又は速度値の差分は、例えば、3次元空間におけるx、y、zの各速度成分で与えられるものとして説明したが、この第3の実施形態においては、速度値又は速度値の差分について、回転速度軸データと回転速度振幅データとによって速度値又は速度値の差分を設定するようにする。
【0043】
機械的な歯車や車両のホイールなどのように、安定した軸回りを回転する状態を表現したアニメーションについては、ボーンの回転運動を回転速度軸データと回転速度振幅データとで表現する方がデータ容量の削減につながる可能性がある。というのも、安定した軸回りを回転する状態の場合、1つのキーフレームにおいて軸の位置を回転速度軸データによって与えてしまえば、軸の位置が変化しない限りそれ以降のキーフレームにおいても回転速度軸データを省略することが可能となる。そして、軸の回りを回る際の回転速度について変化が所定値以上となった場合にキーフレームにおいて回転速度振幅データを更新するようにする。
【0044】
軸の回りを回転する回転速度をスカラー値で回転速度振幅データとして与える手法を採用すれば、安定した軸回りを回転する状態であれば、キーフレームにおいて回転速度軸データを更新する回数は少なくなり、キーフレームにおいて回転速度振幅データのみを更新すればよいことになるため、データ容量を削減することが可能となる。
【0045】
以上に説明したように、本願の各実施形態により1または2以上の不足が解決される。なお、夫々の実施形態による効果は、非限定的な効果または効果の一例である。
【0046】
なお、上述した各実施形態において、アニメーションデータ圧縮装置10及びアニメーションデータ復元装置20は、自己が備える記憶装置に記憶されている各種制御プログラム(例えば、アニメーションデータ圧縮プログラム、アニメーションデータ復元プログラム)に従って、上述した各種の処理を実行するものであってもよい。
【解決手段】圧縮対象のアニメーションデータにおける各ボーンのポーズ値、速度値を含む各種パラメータの初期値を与える最初のキーフレームを作成し、圧縮対象のアニメーションデータの対象フレームにおける各ボーンについて、回転によって動きを表現可能であるボーンが直前のキーフレームに比較して速度値が所定値以上変化したか否かを判別し、速度値が所定値以上変化したと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータについて少なくとも速度値を記録したキーフレームとして設定し、速度値が所定値以上変化していないと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータの値を削除することで、アニメーションデータの圧縮を行う。