(57)【要約】【課題】データ容量を削減可能なアニメーションデータの圧縮手法を提供すること。【解決手段】圧縮対象のアニメーションデータにおける各ボーンのポーズ値、速度値を含む各種パラメータの初期値を与える最初のキーフレームを作成し、圧縮対象のアニメーションデータの対象フレームにおける各ボーンについて、回転によって動きを表現可能であるボーンが直前のキーフレームに比較して速度値が所定値以上変化したか否かを判別し、速度値が所定値以上変化したと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータについて少なくとも速度値を記録したキーフレームとして設定し、速度値が所定値以上変化していないと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータの値を削除することで、アニメーションデータの圧縮を行う。【選択図】図２
2019102025.tif 000002
【特許請求の範囲】
【請求項１】
仮想空間上に表示させるためのアニメーションデータであって所定の支点を中心とした回転運動によってボーンの動きを表現可能な箇所を含むアニメーションデータを圧縮する機能をコンピュータに実現させるためのアニメーションデータ圧縮プログラムであって、
前記コンピュータに、
圧縮対象のアニメーションデータにおける各ボーンのポーズ状態を表現するためのポーズ値、各ボーンが回転する場合の回転の速度値を含む各種パラメータの初期値を与える最初のキーフレームを作成する初期値設定機能と、
圧縮対象のアニメーションデータの対象フレームにおける各ボーンについて、回転によって動きを表現可能であるボーンが直前のキーフレームに比較して速度値が所定値以上変化したか否かを判別する速度変化判別機能と、
前記速度変化判別機能において速度値が所定値以上変化したと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータについて少なくとも速度値を記録したキーフレームとして設定するキーフレーム設定機能と、
前記速度変化判別機能において速度値が所定値以上変化していないと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータの値を削除する削除機能と
を実現させるアニメーションデータ圧縮プログラム。
【請求項２】
前記キーフレーム設定機能は、速度値に替えて、直前のキーフレームと比較した際の速度の差分の値を少なくとも記録したキーフレームとして設定するようにした
請求項１記載のアニメーションデータ圧縮プログラム。
【請求項３】
請求項１に記載のアニメーションデータ圧縮プログラムによって圧縮されたアニメーションデータを復元する機能をコンピュータに実現させるためのアニメーションデータ復元プログラムであって、
前記コンピュータに、
復元すべきフレームについて、当該フレームに直接対応したキーフレームが存在するか否かを判別するキーフレーム判別機能と、
復元すべきフレームに直接対応したキーフレームが存在する場合に、当該キーフレームで与えられる各ボーンについての各種パラメータ値を用いて当該フレームのアニメーションデータを生成するキーフレーム出力機能と、
復元すべきフレームに直接対応したキーフレームが存在しない場合に、直前のキーフレームによって与えられる各ボーンについての各種パラメータ値、速度値及び直前のキーフレームからの経過時間に基づいて、当該フレームのアニメーションデータを生成するフレーム補完機能と
を実現させるアニメーションデータ復元プログラム。
【請求項４】
請求項２に記載のアニメーションデータ圧縮プログラムによって圧縮されたアニメーションデータを復元する機能をコンピュータに実現させるためのアニメーションデータ復元プログラムであって、
前記コンピュータに、
復元すべきフレームについて、当該フレームに直接対応したキーフレームが存在するか否かを判別するキーフレーム判別機能と、
復元すべきフレームに直接対応したキーフレームが存在する場合に、当該キーフレームで与えられる各ボーンについての各種パラメータ値を用いて当該フレームのアニメーションデータを生成するキーフレーム出力機能と、
復元すべきフレームに直接対応したキーフレームが存在しない場合に、最初のキーフレームによって与えられる各ボーンについての各種パラメータ値、速度値、最初のキーフレームと現在のフレームまでの間に存在したキーフレームによってそれぞれ与えられた速度値の差分、及び、最初のキーフレームからの経過時間に基づいて、当該フレームのアニメーションデータを生成するフレーム補完機能と
を実現させるアニメーションデータ復元プログラム。
【請求項５】
仮想空間上に表示させるためのアニメーションデータであって所定の支点を中心とした回転運動によってボーンの動きを表現可能な箇所を含むアニメーションデータを圧縮するためのアニメーションデータ圧縮装置であって、
圧縮対象のアニメーションデータにおける各ボーンのポーズ状態を表現するためのポーズ値、各ボーンが回転する場合の回転の速度値を含む各種パラメータの初期値を与える最初のキーフレームを作成する初期値設定部と、
圧縮対象のアニメーションデータの対象フレームにおける各ボーンについて、回転によって動きを表現可能であるボーンが直前のキーフレームに比較して速度値が所定値以上変化したか否かを判別する速度変化判別部と、
前記速度変化判別部において速度値が所定値以上変化したと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータについて少なくとも速度値を記録したキーフレームとして設定するキーフレーム設定部と、
前記速度変化判別部において速度値が所定値以上変化していないと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータの値を削除する削除部と
を備えたアニメーションデータ圧縮装置。
【請求項６】
仮想空間上に表示させるためのアニメーションデータであって所定の支点を中心とした回転運動によってボーンの動きを表現可能な箇所を含むアニメーションデータを圧縮するためのアニメーションデータ圧縮方法であって、
圧縮対象のアニメーションデータにおける各ボーンのポーズ状態を表現するためのポーズ値、各ボーンが回転する場合の回転の速度値を含む各種パラメータの初期値を与える最初のキーフレームを作成する初期値設定処理と、
圧縮対象のアニメーションデータの対象フレームにおける各ボーンについて、回転によって動きを表現可能であるボーンが直前のキーフレームに比較して速度値が所定値以上変化したか否かを判別する速度変化判別処理と、
前記速度変化判別処理において速度値が所定値以上変化したと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータについて少なくとも速度値を記録したキーフレームとして設定するキーフレーム設定処理と、
前記速度変化判別処理において速度値が所定値以上変化していないと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータの値を削除する削除処理と
を含むアニメーションデータ圧縮方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態の少なくとも１つは、仮想空間上に表現するアニメーションのデータ容量をより削減するためのアニメーションデータ圧縮プログラム、アニメーションデータ復元プログラム、アニメーションデータ圧縮装置、及びアニメーションデータ圧縮方法に関する。
【背景技術】
【０００２】
従来、ビデオゲームにおける仮想空間上に表示するアニメーションについて、予めアニメーションデータを圧縮して保持しておき、表示するタイミングで圧縮されたアニメーションデータを復元して利用することが行われている。現代のビデオゲームエンジンは、高速ランタイム圧縮解除を提供するアルゴリズムを使用して構築されたアニメーション圧縮を特徴とする。データ容量を削減するためにも、より圧縮率の高いアニメーション圧縮のアルゴリズムが求められている。
【０００３】
従来の圧縮方法としては、例えば、アニメーションを構成する全フレームの中から所定の条件に基づいてキーフレームを設定して、アニメーションデータを間断的に存在する一連のキーフレームとして圧縮する方法が存在する。各キーフレームは、キーデータによって表されるフレームでのアニメーションポーズに対応する量子化された時間値と対になるいくつかの基本ポーズに関する量子化データ値からなる。例えば、ｎ次元回転、ｎ次元変換、ｎ次元変換スケール値、ｎ次元ブレンド形状重みなど、様々な種類のデータ値が存在する。２つのキー（データ／タイムペア）を使用して、データの各チャネルについて、Td以前の直近の最も近いキーであるTp、及び、Td以降の次の最も近いキーであるTnを使用して、所望のフレームTdの圧縮解除されたポーズを計算することは、重みW =（Td-Tp）/（Tn-Tp）の2つのキーデータ値の重み付き補間を実行するために使用される。所望のデータ値は、Dd =（1.0-W）* Dp + W * Dnとして計算される。
【０００４】
アニメーションデータの圧縮方法としては、例えば、特許文献１が挙げられる。この特許文献１では、読込まれたキーフレーム情報内の各物体情報と、当該読込まれたキーフレーム情報に対して予め定める関係を有するキーフレーム情報内の対応の物体情報とを比較して、リンク情報と、相違のある状態情報とのみを含んだ物体情報を含んだ圧縮後のキーフレーム情報を媒体に出力するという手法を採用することで、例えば、新しい項目が順番に現われてくるようなアニメーションにおいて、先に出現した物体を何度も記録または伝送する必要をなくしている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１０−２７５２４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来の圧縮方法においては、２つのキーフレームから間のフレームを補完する際に、キーフレームに含まれる時間の情報に基づく重みを利用して補完フレームのデータ値を算出するようにしている。すなわち、キーフレームには時間情報を含ませる必要があった。この従来の圧縮方法は、データ削減に有効な圧縮方法であり、現在も様々なアニメーションにおいて適用されている。他方、特定の条件下において、この時間情報を削減することが可能であれば、より一層のデータ削減を実現することが可能となるが、そのような圧縮方法は提案されていなかった。
【０００７】
本発明の少なくとも１つの実施形態の目的は、上記問題を解決し、データ容量を削減可能なアニメーションデータ圧縮プログラム、アニメーションデータ復元プログラム、アニメーションデータ圧縮装置、及びアニメーションデータ圧縮方法を提供することである。
【課題を解決するための手段】
【０００８】
非限定的な観点によると、本発明の一実施形態に係るアニメーションデータ圧縮プログラムは、仮想空間上に表示させるためのアニメーションデータであって所定の支点を中心とした回転運動によってボーンの動きを表現可能な箇所を含むアニメーションデータを圧縮する機能をコンピュータに実現させるためのアニメーションデータ圧縮プログラムであって、前記コンピュータに、圧縮対象のアニメーションデータにおける各ボーンのポーズ状態を表現するためのポーズ値、各ボーンが回転する場合の回転の速度値を含む各種パラメータの初期値を与える最初のキーフレームを作成する初期値設定機能と、圧縮対象のアニメーションデータの対象フレームにおける各ボーンについて、回転によって動きを表現可能であるボーンが直前のキーフレームに比較して速度値が所定値以上変化したか否かを判別する速度変化判別機能と、前記速度変化判別機能において速度値が所定値以上変化したと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータについて少なくとも速度値を記録したキーフレームとして設定するキーフレーム設定機能と、前記速度変化判別機能において速度値が所定値以上変化していないと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータの値を削除する削除機能とを実現させることを特徴とする。
【０００９】
非限定的な観点によると、本発明の一実施形態に係るアニメーションデータ復元プログラムは、アニメーションデータ圧縮プログラムによって圧縮されたアニメーションデータを復元する機能をコンピュータに実現させるためのアニメーションデータ復元プログラムであって、前記コンピュータに、復元すべきフレームについて、当該フレームに直接対応したキーフレームが存在するか否かを判別するキーフレーム判別機能と、復元すべきフレームに直接対応したキーフレームが存在する場合に、当該キーフレームで与えられる各ボーンについての各種パラメータ値を用いて当該フレームのアニメーションデータを生成するキーフレーム出力機能と、復元すべきフレームに直接対応したキーフレームが存在しない場合に、直前のキーフレームによって与えられる各ボーンについての各種パラメータ値、速度値及び直前のキーフレームからの経過時間に基づいて、当該フレームのアニメーションデータを生成するフレーム補完機能とを実現させることを特徴とする。
【００１０】
非限定的な観点によると、本発明の一実施形態に係るアニメーションデータ圧縮装置は、仮想空間上に表示させるためのアニメーションデータであって所定の支点を中心とした回転運動によってボーンの動きを表現可能な箇所を含むアニメーションデータを圧縮するためのアニメーションデータ圧縮装置であって、圧縮対象のアニメーションデータにおける各ボーンのポーズ状態を表現するためのポーズ値、各ボーンが回転する場合の回転の速度値を含む各種パラメータの初期値を与える最初のキーフレームを作成する初期値設定部と、圧縮対象のアニメーションデータの対象フレームにおける各ボーンについて、回転によって動きを表現可能であるボーンが直前のキーフレームに比較して速度値が所定値以上変化したか否かを判別する速度変化判別部と、前記速度変化判別部において速度値が所定値以上変化したと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータについて少なくとも速度値を記録したキーフレームとして設定するキーフレーム設定部と、前記速度変化判別部において速度値が所定値以上変化していないと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータの値を削除する削除部とを備えたことを特徴とする。
【００１１】
非限定的な観点によると、本発明の一実施形態に係るアニメーションデータ圧縮方法は、仮想空間上に表示させるためのアニメーションデータであって所定の支点を中心とした回転運動によってボーンの動きを表現可能な箇所を含むアニメーションデータを圧縮するためのアニメーションデータ圧縮方法であって、圧縮対象のアニメーションデータにおける各ボーンのポーズ状態を表現するためのポーズ値、各ボーンが回転する場合の回転の速度値を含む各種パラメータの初期値を与える最初のキーフレームを作成する初期値設定処理と、圧縮対象のアニメーションデータの対象フレームにおける各ボーンについて、回転によって動きを表現可能であるボーンが直前のキーフレームに比較して速度値が所定値以上変化したか否かを判別する速度変化判別処理と、前記速度変化判別処理において速度値が所定値以上変化したと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータについて少なくとも速度値を記録したキーフレームとして設定するキーフレーム設定処理と、前記速度変化判別処理において速度値が所定値以上変化していないと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータの値を削除する削除処理とを含むことを特徴とする。
【発明の効果】
【００１２】
本願の各実施形態により１または２以上の不足が解決される。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態の少なくとも一つに対応するアニメーションデータ圧縮装置の構成の例を示すブロック図である。
【図２】本発明の実施形態の少なくとも一つに対応するアニメーションデータの圧縮処理の例を示すフローチャートである。
【図３】本発明の実施形態の少なくとも一つに対応するアニメーションデータの圧縮処理の概念を説明するための説明図である。
【図４】本発明の実施形態の少なくとも一つに対応するアニメーションデータ復元装置の構成の例を示すブロック図である。
【図５】本発明の実施形態の少なくとも一つに対応するアニメーションデータの復元処理の例を示すフローチャートである。
【図６】本発明の実施形態の少なくとも一つに対応するアニメーションデータの圧縮処理を行った後のアニメーションデータのフレーム構成を説明するための説明図である。
【図７】本発明の実施形態の少なくとも一つに対応するアニメーションデータ圧縮装置の圧縮対象であるアニメーションの例を表した説明図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施形態の例について図面を参照して説明する。なお、以下で説明する各実施形態の例における各種構成要素は、矛盾等が生じない範囲で適宜組み合わせ可能である。また、ある実施形態の例として説明した内容については、他の実施形態においてその説明を省略している場合がある。また、各実施形態の特徴部分に関係しない動作や処理については、その内容を省略している場合がある。さらに、以下で説明する各種フローを構成する各種処理の順序は、処理内容に矛盾等が生じない範囲で順不同である。
【００１５】
［第１の実施形態］
以下において、本発明の一実施形態に係るアニメーションデータ圧縮装置１０について説明を行う。図１は、本発明の一実施の形態におけるアニメーションデータ圧縮装置１０の構成の例を示すブロック図である。図１に示すように、アニメーションデータ圧縮装置１０は、アニメーションデータ取得部１１と、初期値設定部１２と、速度変化判別部１３と、キーフレーム設定部１４と、削除部１５と、圧縮済データ出力部１６とを少なくとも備える。
【００１６】
本例によるアニメーションデータ圧縮装置１０で扱うアニメーションデータは、骨格（以下、ボーンという）と、骨格同士を接合するジョイント部とで構成されたオブジェクトであって、ジョイント部を回転中心としたボーンの回転運動をその回転速度によって記述可能なオブジェクトに対して有効な圧縮手法を採用している。具体的には、例えば、図７に示す人型のキャラクタなどが該当する。この図７に示すキャラクタは、主要な関節部分をジョイント部としてボーンが組み合わされて構成されており、各ボーンは支点となるジョイント部を回転中心とした回転運動によって動作を表現することが可能となる。このようなキャラクタのアニメーションデータは、圧縮前の状態では、各フレームにおいて、キャラクタの姿勢状態（ポーズ状態）を表すパラメータであるポーズ値を有しており、ボーン毎にポーズ値を持たせて構成してある。すなわち、各フレーム毎に、アニメーションを仮想空間上、例えばゲーム画面上にレンダリングするために必要な情報を保持している。なお、この圧縮前のアニメーションデータは、必ずしも回転運動の速度値によって表現されたものである必要はない。
【００１７】
アニメーションデータ取得部１１は、圧縮処理の対象となるアニメーションデータを取得する機能を有する。
【００１８】
初期値設定部１２は、圧縮対象のアニメーションデータにおける各ボーンのポーズ状態を表現するためのポーズ値、各ボーンが回転する場合の回転の速度値を含む各種パラメータの初期値を与える最初のキーフレームを作成する機能を有する。アニメーションを構成する全てのボーンについて初期値を設定する必要があるので、最初のキーフレームは最初のフレームに登場する全てのボーンについての初期値を含んでいるといえる。なお、ボーン毎の速度値は、圧縮対象のアニメーションデータにおいて予め速度値が与えられている場合にはそれをそのまま用いるが、速度値を有していない場合には、近傍のフレーム（例えば、１つ後のフレーム）におけるボーンと比較した際の空間上のボーンの移動量と経過時間（経過フレーム数）によって当該ボーンの速度値を演算して初期値として設定するようにする。また、最初のキーフレームは、必要な初期値を与えることができればどのような形式であってもよく、例えば、イニシャルポーズキーという初期値を与えるためのフォームを用いてもよいし、ボーン毎に設けられたポーズキー（ボーンキー）によって初期値を与えるものであってもよい。また、アニメーションの途中から登場するボーンが存在する場合には、登場するフレームがそのボーンにとっての最初のフレームとなる。
【００１９】
ここで、ボーンについての速度値とは、１フレームあたりのボーンの移動量を算出するために必要なパラメータである。速度値の与え方は、ボーンの移動量を算出可能であればどのようなものであってもよいが、例えば、３次元空間におけるｘ、ｙ、ｚの各速度成分を与える手法が考えられる。また、速度値は、ボーン毎に与えられるパラメータである。例えば、人を模したオブジェクトの上腕に該当するボーンが速度値を変化させながら回転する場合であっても、前腕に該当するボーンが静止した状態であるならば、前腕のボーンの速度値は０ということになる。
【００２０】
速度変化判別部１３は、圧縮対象のアニメーションデータの対象フレームにおける各ボーンについて、回転によって動きを表現可能であるボーンが直前のキーフレームに比較して速度値が所定値以上変化したか否かを判別する機能を有する。判定の単位はボーン毎であり、ボーン毎に直前のキーフレームと比較を行って速度変化の判定を行う。速度値に関する所定値は、どのようなものであってもよいが、所定値の大小とデータ削減率は比例関係となる傾向が強く、所定値の大小と復元時のデータ再現精度は反比例関係となる傾向が強い。なお、判定対象となる速度値は、圧縮対象のアニメーションデータにおいて予め速度値が与えられている場合にはそれをそのまま用いるが、速度値を有していない場合には、近傍のフレーム（例えば、１つ前のフレーム）におけるボーンと比較した際の空間上のボーンの移動量と経過時間（経過フレーム数）によって当該ボーンの速度値を演算してから判定を行うようにする。
【００２１】
キーフレーム設定部１４は、速度変化判別部１３において速度値が所定値以上変化したと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータについて少なくとも速度値を記録したキーフレームとして設定する機能を有する。キーフレームとして設定するのはボーン毎であり、同一フレームにおいてキーフレームとして設定されるボーンもあれば削除されるボーンもあることになる。キーフレームには、ボーンの速度値を含むパラメータを設定するボーンキーをキーフレームに設定されるボーンの数だけ設けるが、これ以外に、キーフレーム自身が元のアニメーションデータにおける何番目のフレームに該当するのかの情報も併せて設定しておく。
【００２２】
削除部１５は、速度変化判別部１３において速度値が所定値以上変化していないと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータの値を削除する機能を有する。データを削除する単位はボーン毎である。
【００２３】
圧縮済データ出力部１６は、圧縮処理の対象となるアニメーションデータの全てのフレームの全てのボーンについて速度変化判別部１３による判別処理を行って、キーフレーム設定部１４によってキーフレームとして設定されたデータを最終的に圧縮済データとして出力する機能を有する。なお、対象アニメーションデータの最後のフレームまで処理が完了した時点で、アニメーションクリップ全体のすべてのキーフレームの量子化値が決定されので、必要に応じて、圧縮済データ出力部１６では、これらのキーフレームの情報に基づいて、アニメーションクリップの再生中に時系列的に発生するように、すべての値を順次書き出し、何れのボーンのデータチャネルが各キーフレームに対して新しい速度値を有するか否かを示す少量のメタデータを追加したり、可能な値の制限された範囲内でキーフレームの逆量子化に使用される各キーに関連付けられたレンジデータを追加したりすることで、最終的な圧縮済データを得る。
【００２４】
図２は、アニメーションデータ圧縮装置１０が実行する圧縮処理の例を示すフローチャートである。なお、この図２に示すフローチャートによる処理は、アニメーションデータを構成するボーン毎に行うものであり、実際には１つのフレームの全てのボーンについて処理を行ってから次のフレームに移行するという流れとなるが、説明の都合上、１つのボーンについて着目した場合の説明を行うものとする。
【００２５】
図２において、先ず、圧縮対象のアニメーションデータを取得する（ステップＳ１０１）。取得したアニメーションデータから初期値を与えるための最初のキーフレームを設定する（ステップＳ１０２）。次のフレームに移行し、当該フレームで与えられる速度値が直前のキーフレームに比較して所定値以上変化しているか否かを判別する（ステップＳ１０３）。速度値が所定値以上変化している場合（Ｓ１０３−Ｙ）は、当該フレームで与えられた速度値を含むキーフレームを設定する（ステップＳ１０４）。速度値が所定値以上変化していなかった場合（Ｓ１０３−Ｎ）は、当該フレームの各種パラメータの値を削除する（ステップＳ１０５）。対象フレームの処理が終わったら、当該フレームが最後のフレームであるかを判別する（ステップＳ１０６）。最後のフレームでなければ（Ｓ１０６−Ｎ）、次のフレームに処理対象を移行（ステップＳ１０７）させて、ステップＳ１０３〜ステップＳ１０５の処理を行う。以上のステップＳ１０３〜ステップＳ１０５の処理を順次フレームを移行させながら繰り返し行って、最後のフレームについての処理が終わった段階（Ｓ１０６−Ｙ）で、それまでにキーフレームに設定したデータを圧縮済データとして出力して（ステップＳ１０８）、圧縮処理を終了する。
【００２６】
図３は、アニメーションデータの圧縮処理の概念を説明するための説明図である。この図３は、縦軸にボーンの回転角度をとり横軸に経過時間をとったものであり、このような回転角度の変化するボーンについて圧縮処理を行った場合のキーフレーム設定箇所と削除対象となったフレーム位置を示している。圧縮対象のアニメーションデータの最初のフレームはキーフレームに設定する必要があるが、それ以降のフレームについては速度値の変化に着目し、速度値の変化量が所定値以下の場合には、そのフレームにおける当該ボーンに関するデータは削除する。図３においても、最初のキーフレームに設定したフレームを１番目としたときに、２番目から５番目までのフレームについては、速度値の変化量が所定値以下であると判別されたため、削除対象とされている。６番目のフレームについては、速度値の変化量が所定値以上となったため、キーフレームに設定している。同様の処理をアニメーション全体に対して行うことで、キーフレームに設定するフレームと削除するフレームが決定される。図３の実線の曲線が元のアニメーションデータによる回転角度の変化であり、破線で示した軌跡が復元したアニメーションデータによる回転角度の変化を表している。
【００２７】
次に、本発明の一実施形態に係るアニメーションデータ復元装置２０について説明を行う。図４は、本発明の一実施の形態におけるアニメーションデータ復元装置２０の構成の例を示すブロック図である。図４に示すように、アニメーションデータ復元装置２０は、圧縮済データ取得部２１と、キーフレーム判別部２２と、キーフレーム出力部１３と、フーム補完部２４と、復元アニメーションデータ出力部２５とを少なくとも備える。
【００２８】
圧縮済データ取得部２１は、復元処理の対象となる圧縮済データを取得する機能を有する。
【００２９】
キーフレーム判別部２２は、復元すべきフレームについて、当該フレームに直接対応したキーフレームが存在するか否かを判別する機能を有する。圧縮済データに含まれるキーフレームには自身が何番目のフレームとして復元されるべきかを示す情報が設定されているため、復元すべきフレームに該当するキーフレームが存在するか否かを判別することができる。
【００３０】
キーフレーム出力部１３は、復元すべきフレームに直接対応したキーフレームが存在する場合に、当該キーフレームで与えられる各ボーンについての各種パラメータ値を用いて当該フレームのアニメーションデータを生成する機能を有する。
【００３１】
フーム補完部２４は、復元すべきフレームに直接対応したキーフレームが存在しない場合に、直前のキーフレームによって与えられる各ボーンについての各種パラメータ値、速度値及び直前のキーフレームからの経過時間に基づいて、当該フレームのアニメーションデータを生成する機能を有する。直前のキーフレームのボーンキーによって与えられるボーンのポーズ値とボーンの速度値とを用いることにより、復元すべきフレームにおいてボーンが位置すべきポーズ状態が定まるため、これらによって演算を行って復元すべきフレームにおけるボーンのポーズ値を求めてフレームにおける当該ボーンの情報を補完する。
【００３２】
復元アニメーションデータ出力部２５は、復元処理によって得られたアニメーションデータを出力する機能を有する。復元したフレームから順次出力するものであってもよいし、最終フレームまで復元した後に出力するものであってもよい。
【００３３】
図５は、アニメーションデータ復元装置２０が実行する復元処理の例を示すフローチャートである。なお、この図５に示すフローチャートによる処理は、アニメーションデータを構成するボーン毎に行うものであり、実際には１つのフレームの全てのボーンについて処理を行ってから次のフレームに移行するという流れとなるが、説明の都合上、１つのボーンについて着目した場合の説明を行うものとする。
【００３４】
図５において、先ず、復元対象の圧縮済データを取得する（ステップＳ２０１）。アニメーションデータを先頭のフレームから順次復元していくが、その際、復元対象のフレームに直接対応したキーフレームが圧縮済データの中に存在するか否かを判別する（ステップＳ２０２）。復元対象のフレームに直接対応したキーフレームが存在する場合（Ｓ２０２−Ｙ）は、当該キーフレームで与えられる各ボーンについての各種パラメータ値を用いて当該フレームのアニメーションデータを生成する（Ｓ２０３）。復元対象のフレームに直接対応したキーフレームが存在しない場合（Ｓ２０２−Ｎ）は、直前のキーフレームによって与えられる各ボーンについての各種パラメータ値、速度値及び直前のキーフレームからの経過時間に基づいて、当該フレームのアニメーションデータを生成する（Ｓ２０４）。対象フレームの処理が終わったら、当該フレームが最後のフレームであるかを判別する（ステップＳ２０５）。最後のフレームでなければ（Ｓ２０５−Ｎ）、次のフレームに処理対象を移行（ステップＳ２０６）させて、ステップＳ２０２〜ステップＳ２０４の処理を行う。以上のステップＳ２０２〜ステップＳ２０４の処理を順次フレームを移行させながら繰り返し行って、最後のフレームについての処理が終わった段階（Ｓ２０５−Ｙ）で、それまでに復元した全フレームのデータを復元アニメーションデータとして出力して（ステップＳ２０７）、圧縮処理を終了する。なお、図５では、全フレームのデータを復元してから出力するフローとして説明しているが、復元したフレームを順次出力するようにしてもよい。
【００３５】
図６は、圧縮処理を行った後のアニメーションデータのフレーム構成を説明するための説明図である。図６（ａ）は、キーフレームに含まれる時間の情報に基づく重みを利用した従来の圧縮方法による圧縮後のデータであり、図６（ｂ）は、速度値を用いた本例による圧縮方法による圧縮後のデータである。図６（ａ）（ｂ）ともにボーン０、ボーン１及びボーン２の３つのボーンのみで構成されている場合を例にしたデータである。図６（ａ）に示す従来の圧縮後のデータは、キーフレーム毎にそのキーフレームに含まれるボーンと同数の時間キーの枠が設けられている。この時間キーを用いて重みの演算を行っている。これに対して、図６（ｂ）に示す本例の圧縮後のデータは、キーフレーム毎のボーンキーによって速度値の設定は行うが、時間キーが必要なくなるため、時間キーのための枠の分だけデータ容量を削減することができる。なお、図６（ａ）（ｂ）に示す例では、各ボーンの初期値を与えるイニシャルポーズキーと、各チャネルキーがどのようなデータ範囲で扱われているか（数値データの桁数など）を示すデータレンジのチャネルを有している。また、キーフレーム毎にそのキーフレームに何れのボーンについてのボーンキーが含まれているかを示すためのラベル情報を有したチャネルが設定されている。ラベル情報は、例えばボーンキーを含むか否かを「１」「０」で表すものとし、ボーン０、ボーン１、ボーン２の３つのボーンについて、全てのボーンキーが含まれている場合には「１１１」とし、ボーン０が含まれずボーン１とボーン２が含まれる場合には「０１１」と表している。このラベル情報は、例えば、キーフレームに関する時間情報がどの速度値に関連付けられているかを知るために利用される。
【００３６】
以上に説明したように、第１の実施形態の一側面として、仮想空間上に表示させるためのアニメーションデータであって所定の支点を中心とした回転運動によってボーンの動きを表現可能な箇所を含むアニメーションデータを圧縮するためのアニメーションデータ圧縮装置が、アニメーションデータ取得部１１と、初期値設定部１２と、速度変化判別部１３と、キーフレーム設定部１４と、削除部１５と、圧縮済データ出力部１６とを備え、圧縮対象のアニメーションデータにおける各ボーンのポーズ状態を表現するためのポーズ値、各ボーンが回転する場合の回転の速度値を含む各種パラメータの初期値を与える最初のキーフレームを作成し、圧縮対象のアニメーションデータの対象フレームにおける各ボーンについて、回転によって動きを表現可能であるボーンが直前のキーフレームに比較して速度値が所定値以上変化したか否かを判別し、速度値が所定値以上変化したと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータについて少なくとも速度値を記録したキーフレームとして設定し、速度値が所定値以上変化していないと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータの値を削除するようにしたので、データ容量を削減可能なアニメーションデータの圧縮処理を行うことが可能となる。
【００３７】
すなわち、キーフレームに記録するボーンの情報として速度値を採用することにより、前後のキーフレームの時間情報を用いずとも補完データを生成可能となるため、時間キーの枠の分だけデータ容量を削減することが可能となる。また、ボーンが等速度の回転運動を行うような場合には次に速度変化量が所定値以上となるまでそのボーンのボーンキーを設ける必要がなくなる。よって、多くのフレームを間引いてキーフレーム数を減らすことで全体のデータ容量を削減することが可能となる。
【００３８】
［第２の実施形態］
第１の実施形態においては、圧縮処理においてキーフレームに設定する際はボーンについて速度値を記録するものとして説明を行った。これに対して、第２の実施形態として、速度値に替えて、速度値の差分を記録するようにしてもよい。
【００３９】
圧縮処理時に、最初のキーフレームについては速度値を記録しておく必要があるが、以降の処理対象のフレームにおいては直前のキーフレームと比較したときに速度値の変化量が所定値以上となったフレームをキーフレームとして設定する際に、速度値を記録するのではなく、直前のキーフレームと比較した際の速度値の差分を記録するようにする。
【００４０】
復元処理時には、最初のキーフレームに設定された速度値と、それ以降のキーフレームにそれぞれ設定された速度値の差分とを用いることで処理対象のフレームの直前のキーフレームの速度値が算出できる。直前のキーフレームの速度値が算出できた後のフレームの補完処理については、第１の実施形態と同様である。なお、現実的には、対象のキーフレームの速度値を算出する際に演算を容易にするために、１つ前のキーフレームの速度値をメモリに保持する構成とすれば、対象のキーフレームの速度値を算出する度に、最初のキーフレームに設定された速度値と、それ以降のキーフレームにそれぞれ設定された速度値の差分とに基づいて最初から全て演算し直す必要がなくなる。
【００４１】
速度値に替えて、速度値の差分を記録する場合、速度値を記録する場合に比較して、各ボーンキーのデータ値は、ゼロに近い分布に正規化され、一般にかなり狭い範囲の可能な値に収まる。従来のアニメーション圧縮技法では、各キーを量子化するために同様に狭い範囲を定義することも可能であるが、多くの異なるチャネルのデータを扱う場合にはより多くの異なるレンジデータを定義して使用する必要である。これは、主に、各範囲の中心が任意の非ゼロ値だからである。しかし、この新しい方法では、すべての範囲がゼロに近い範囲に集中するため、非常に多くの異なるレンジデータの定義がデータストリームに存在する必要性を排除することにより、合計でより少ないデータ量とすることが可能となる。ただし、ゼロに近い範囲に収まる可能性が高いとはいえ、キーの小さなサブセットが、ほとんどのキーに使用される典型的なレンジデータによって定義した範囲内に存在しない値を有する可能性がある。したがって、より大きなビット幅のレンジデータを使用するための手段は、このサブセット内のキーにも同様に必要である。複数の範囲サイズが用意され、キーはその値に最も厳密に拘束される範囲を使用して符号化され、各キーを解凍するときに事前定義された範囲のどれを使用すべきかを示すメタデータとしてのレンジデータを記録すすることで、この問題を解消することができる。大多数のボーンキーは、データレンジが狭い範囲に収まることから、速度の差分を記録する場合の方が記録に要するビット数が少なくて済む。よって、全体としてデータ容量を削減することが可能となる。
【００４２】
［第３の実施形態］
第１及び第２の実施形態においては、キーフレームにおいてボーンの速度値又は速度値の差分を設定するものとして説明を行った。第１及び第２の実施形態では、速度値又は速度値の差分は、例えば、３次元空間におけるｘ、ｙ、ｚの各速度成分で与えられるものとして説明したが、この第３の実施形態においては、速度値又は速度値の差分について、回転速度軸データと回転速度振幅データとによって速度値又は速度値の差分を設定するようにする。
【００４３】
機械的な歯車や車両のホイールなどのように、安定した軸回りを回転する状態を表現したアニメーションについては、ボーンの回転運動を回転速度軸データと回転速度振幅データとで表現する方がデータ容量の削減につながる可能性がある。というのも、安定した軸回りを回転する状態の場合、１つのキーフレームにおいて軸の位置を回転速度軸データによって与えてしまえば、軸の位置が変化しない限りそれ以降のキーフレームにおいても回転速度軸データを省略することが可能となる。そして、軸の回りを回る際の回転速度について変化が所定値以上となった場合にキーフレームにおいて回転速度振幅データを更新するようにする。
【００４４】
軸の回りを回転する回転速度をスカラー値で回転速度振幅データとして与える手法を採用すれば、安定した軸回りを回転する状態であれば、キーフレームにおいて回転速度軸データを更新する回数は少なくなり、キーフレームにおいて回転速度振幅データのみを更新すればよいことになるため、データ容量を削減することが可能となる。
【００４５】
以上に説明したように、本願の各実施形態により１または２以上の不足が解決される。なお、夫々の実施形態による効果は、非限定的な効果または効果の一例である。
【００４６】
なお、上述した各実施形態において、アニメーションデータ圧縮装置１０及びアニメーションデータ復元装置２０は、自己が備える記憶装置に記憶されている各種制御プログラム（例えば、アニメーションデータ圧縮プログラム、アニメーションデータ復元プログラム）に従って、上述した各種の処理を実行するものであってもよい。
【産業上の利用可能性】
【００４７】
本発明の実施形態の一つによれば、ボーンの回転運動をその回転速度によって記述可能なオブジェクトに関するアニメーションデータの圧縮処理に有用である。
【符号の説明】
【００４８】
１０              アニメーションデータ圧縮装置
１１              アニメーションデータ取得部
１２              初期値設定部
１３              速度変化判別部
１４              キーフレーム設定部
１５              削除部
１６              圧縮済データ出力部
２０              アニメーションデータ復元装置
２１              圧縮済データ取得部
２２              キーフレーム判別部
２３              キーフレーム出力部
２４              フレーム補完部
２５              復元アニメーションデータ出力部
【図１】
2019102025.tif 000003
【図２】
2019102025.tif 000004
【図３】
2019102025.tif 000005
【図４】
2019102025.tif 000006
【図５】
2019102025.tif 000007
【図６】
2019102025.tif 000008
【図７】
2019102025.tif 000009