JP6526775B1 - Animation data compression program, animation data recovery program, animation data compression device, and animation data compression method - Google Patents

Animation data compression program, animation data recovery program, animation data compression device, and animation data compression method Download PDF

Info

Publication number
JP6526775B1
JP6526775B1 JP2017235905A JP2017235905A JP6526775B1 JP 6526775 B1 JP6526775 B1 JP 6526775B1 JP 2017235905 A JP2017235905 A JP 2017235905A JP 2017235905 A JP2017235905 A JP 2017235905A JP 6526775 B1 JP6526775 B1 JP 6526775B1
Authority
JP
Japan
Prior art keywords
frame
animation data
bone
key frame
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017235905A
Other languages
Japanese (ja)
Other versions
JP2019102025A (en
Inventor
デイビッド グッドヒュー
デイビッド グッドヒュー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Square Enix Co Ltd
Original Assignee
Square Enix Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Square Enix Co Ltd filed Critical Square Enix Co Ltd
Priority to JP2017235905A priority Critical patent/JP6526775B1/en
Application granted granted Critical
Publication of JP6526775B1 publication Critical patent/JP6526775B1/en
Publication of JP2019102025A publication Critical patent/JP2019102025A/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

【課題】データ容量を削減可能なアニメーションデータの圧縮手法を提供すること。【解決手段】圧縮対象のアニメーションデータにおける各ボーンのポーズ値、速度値を含む各種パラメータの初期値を与える最初のキーフレームを作成し、圧縮対象のアニメーションデータの対象フレームにおける各ボーンについて、回転によって動きを表現可能であるボーンが直前のキーフレームに比較して速度値が所定値以上変化したか否かを判別し、速度値が所定値以上変化したと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータについて少なくとも速度値を記録したキーフレームとして設定し、速度値が所定値以上変化していないと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータの値を削除することで、アニメーションデータの圧縮を行う。【選択図】図2An animation data compression method capable of reducing data volume is provided. An initial key frame giving initial values of various parameters including pose values and velocity values of each bone in animation data to be compressed is created, and rotation is performed on each bone in a target frame of animation data to be compressed by rotation. It is determined whether or not a bone capable of expressing motion has changed a velocity value by a predetermined value or more compared to the immediately preceding key frame, and when it is determined that the velocity value has changed by a predetermined value or more, By setting at least a velocity value as a key frame in which various parameters related to bones are recorded, and it is determined that the velocity values have not changed by a predetermined value or more, deleting values of various parameters related to the relevant bones in the frame. Compress animation data. [Selected figure] Figure 2

Description

本発明の実施形態の少なくとも1つは、仮想空間上に表現するアニメーションのデータ容量をより削減するためのアニメーションデータ圧縮プログラム、アニメーションデータ復元プログラム、アニメーションデータ圧縮装置、及びアニメーションデータ圧縮方法に関する。   At least one of the embodiments of the present invention relates to an animation data compression program, an animation data decompression program, an animation data compression apparatus, and an animation data compression method for further reducing the data volume of animation represented in virtual space.

従来、ビデオゲームにおける仮想空間上に表示するアニメーションについて、予めアニメーションデータを圧縮して保持しておき、表示するタイミングで圧縮されたアニメーションデータを復元して利用することが行われている。現代のビデオゲームエンジンは、高速ランタイム圧縮解除を提供するアルゴリズムを使用して構築されたアニメーション圧縮を特徴とする。データ容量を削減するためにも、より圧縮率の高いアニメーション圧縮のアルゴリズムが求められている。   Conventionally, with regard to animation to be displayed on a virtual space in a video game, animation data has been compressed and held in advance, and compressed animation data has been restored and used at display timing. Modern video game engines feature animation compression built using an algorithm that provides fast runtime decompression. In order to reduce the data volume, an algorithm for animation compression with a higher compression ratio is required.

従来の圧縮方法としては、例えば、アニメーションを構成する全フレームの中から所定の条件に基づいてキーフレームを設定して、アニメーションデータを間断的に存在する一連のキーフレームとして圧縮する方法が存在する。各キーフレームは、キーデータによって表されるフレームでのアニメーションポーズに対応する量子化された時間値と対になるいくつかの基本ポーズに関する量子化データ値からなる。例えば、n次元回転、n次元変換、n次元変換スケール値、n次元ブレンド形状重みなど、様々な種類のデータ値が存在する。2つのキー(データ/タイムペア)を使用して、データの各チャネルについて、Td以前の直近の最も近いキーであるTp、及び、Td以降の次の最も近いキーであるTnを使用して、所望のフレームTdの圧縮解除されたポーズを計算することは、重みW =(Td-Tp)/(Tn-Tp)の2つのキーデータ値の重み付き補間を実行するために使用される。所望のデータ値は、Dd =(1.0-W)* Dp + W * Dnとして計算される。   As a conventional compression method, for example, there is a method of setting a key frame based on a predetermined condition out of all frames constituting an animation and compressing animation data as a series of key frames existing intermittently. . Each key frame consists of quantized data values for some basic poses that are paired with the quantized time values corresponding to the animation poses at the frame represented by the key data. For example, there are various types of data values, such as n-dimensional rotation, n-dimensional transform, n-dimensional transform scale values, n-dimensional blend shape weights, and the like. Using two keys (data / time pair), for each channel of data, using Tp, the closest closest key before Td, and Tn, the next closest key after Td, Computing the decompressed pose of the desired frame Td is used to perform weighted interpolation of the two key data values with weights W = (Td−Tp) / (Tn−Tp). The desired data values are calculated as Dd = (1.0-W) * Dp + W * Dn.

アニメーションデータの圧縮方法としては、例えば、特許文献1が挙げられる。この特許文献1では、読込まれたキーフレーム情報内の各物体情報と、当該読込まれたキーフレーム情報に対して予め定める関係を有するキーフレーム情報内の対応の物体情報とを比較して、リンク情報と、相違のある状態情報とのみを含んだ物体情報を含んだ圧縮後のキーフレーム情報を媒体に出力するという手法を採用することで、例えば、新しい項目が順番に現われてくるようなアニメーションにおいて、先に出現した物体を何度も記録または伝送する必要をなくしている。   As a method of compressing animation data, for example, Patent Document 1 can be mentioned. In this patent document 1, each object information in the read key frame information is compared with corresponding object information in the key frame information having a predetermined relationship with the read key frame information, By adopting a method of outputting compressed key frame information including object information including only information and state information having differences to a medium, for example, animation in which new items appear in order , Eliminating the need to record or transmit the previously appeared object many times.

特開平10−275245号公報Japanese Patent Application Laid-Open No. 10-275245

従来の圧縮方法においては、2つのキーフレームから間のフレームを補完する際に、キーフレームに含まれる時間の情報に基づく重みを利用して補完フレームのデータ値を算出するようにしている。すなわち、キーフレームには時間情報を含ませる必要があった。この従来の圧縮方法は、データ削減に有効な圧縮方法であり、現在も様々なアニメーションにおいて適用されている。他方、特定の条件下において、この時間情報を削減することが可能であれば、より一層のデータ削減を実現することが可能となるが、そのような圧縮方法は提案されていなかった。   In the conventional compression method, when complementing a frame between two key frames, a data value of the complemented frame is calculated using a weight based on time information included in the key frame. That is, it was necessary to include time information in the key frame. This conventional compression method is an effective compression method for data reduction, and is currently applied to various animations. On the other hand, under certain conditions, if it is possible to reduce this time information, it is possible to realize further data reduction, but such a compression method has not been proposed.

本発明の少なくとも1つの実施形態の目的は、上記問題を解決し、データ容量を削減可能なアニメーションデータ圧縮プログラム、アニメーションデータ復元プログラム、アニメーションデータ圧縮装置、及びアニメーションデータ圧縮方法を提供することである。   An object of at least one embodiment of the present invention is to provide an animation data compression program, an animation data decompression program, an animation data compression apparatus, and an animation data compression method capable of solving the above problems and reducing data volume. .

非限定的な観点によると、本発明の一実施形態に係るアニメーションデータ圧縮プログラムは、仮想空間上に表示させるためのアニメーションデータであって所定の支点を中心とした回転運動によってボーンの動きを表現可能な箇所を含むアニメーションデータを圧縮する機能をコンピュータに実現させるためのアニメーションデータ圧縮プログラムであって、前記コンピュータに、圧縮対象のアニメーションデータにおける各ボーンのポーズ状態を表現するためのポーズ値、各ボーンが回転する場合の回転の速度値を含む各種パラメータの初期値を与える最初のキーフレームを作成する初期値設定機能と、圧縮対象のアニメーションデータの対象フレームにおける各ボーンについて、回転によって動きを表現可能であるボーンが直前のキーフレームに比較して速度値が所定値以上変化したか否かを判別する速度変化判別機能と、前記速度変化判別機能において速度値が所定値以上変化したと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータについて少なくとも速度値を記録したキーフレームとして設定するキーフレーム設定機能と、前記速度変化判別機能において速度値が所定値以上変化していないと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータの値を削除する削除機能とを実現させることを特徴とする。   According to a non-limiting aspect, an animation data compression program according to an embodiment of the present invention is animation data to be displayed on a virtual space, and expresses bone movement by rotational movement around a predetermined fulcrum An animation data compression program for causing a computer to realize a function of compressing animation data including possible portions, wherein pose values for expressing the pose state of each bone in the animation data to be compressed on the computer, An initial value setting function that creates the first key frame that gives initial values of various parameters including rotational speed values when bones rotate, and motions are expressed by rotation for each bone in the target frame of the animation data to be compressed Possible bones are the last key The speed change determining function of determining whether the speed value has changed by a predetermined value or more as compared with the frame, and the speed change determining function when it is determined that the speed value has changed by a predetermined value or more. A key frame setting function that sets at least a velocity value for various parameters related to bones, and the velocity change determination function determines that the velocity value has not changed by a predetermined value or more, the bone in the frame in question To realize a deletion function of deleting values of various parameters relating to.

非限定的な観点によると、本発明の一実施形態に係るアニメーションデータ復元プログラムは、アニメーションデータ圧縮プログラムによって圧縮されたアニメーションデータを復元する機能をコンピュータに実現させるためのアニメーションデータ復元プログラムであって、前記コンピュータに、復元すべきフレームについて、当該フレームに直接対応したキーフレームが存在するか否かを判別するキーフレーム判別機能と、復元すべきフレームに直接対応したキーフレームが存在する場合に、当該キーフレームで与えられる各ボーンについての各種パラメータ値を用いて当該フレームのアニメーションデータを生成するキーフレーム出力機能と、復元すべきフレームに直接対応したキーフレームが存在しない場合に、直前のキーフレームによって与えられる各ボーンについての各種パラメータ値、速度値及び直前のキーフレームからの経過時間に基づいて、当該フレームのアニメーションデータを生成するフレーム補完機能とを実現させることを特徴とする。   According to a non-limiting aspect, an animation data restoration program according to an embodiment of the present invention is an animation data restoration program for causing a computer to realize a function of restoring animation data compressed by the animation data compression program. The key frame discrimination function of determining whether or not there is a key frame directly corresponding to the frame to be restored to the computer, and the key frame directly corresponding to the frame to be restored, A key frame output function that generates animation data of the frame using various parameter values for each bone given by the key frame, and a key frame immediately before when there is no key frame directly corresponding to the frame to be restored. Therefore various parameter values for each bone given, based on the elapsed time from the speed value and the previous key frame, characterized in that to realize a frame completion of generating the animation data of the frame.

非限定的な観点によると、本発明の一実施形態に係るアニメーションデータ圧縮装置は、仮想空間上に表示させるためのアニメーションデータであって所定の支点を中心とした回転運動によってボーンの動きを表現可能な箇所を含むアニメーションデータを圧縮するためのアニメーションデータ圧縮装置であって、圧縮対象のアニメーションデータにおける各ボーンのポーズ状態を表現するためのポーズ値、各ボーンが回転する場合の回転の速度値を含む各種パラメータの初期値を与える最初のキーフレームを作成する初期値設定部と、圧縮対象のアニメーションデータの対象フレームにおける各ボーンについて、回転によって動きを表現可能であるボーンが直前のキーフレームに比較して速度値が所定値以上変化したか否かを判別する速度変化判別部と、前記速度変化判別部において速度値が所定値以上変化したと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータについて少なくとも速度値を記録したキーフレームとして設定するキーフレーム設定部と、前記速度変化判別部において速度値が所定値以上変化していないと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータの値を削除する削除部とを備えたことを特徴とする。   According to a non-limiting aspect, an animation data compression apparatus according to an embodiment of the present invention is animation data to be displayed on a virtual space, and expresses bone movement by rotational movement around a predetermined fulcrum. An animation data compression apparatus for compressing animation data including possible portions, which is a pose value for expressing the pose state of each bone in the animation data to be compressed, and a rotation speed value when each bone is rotated For each bone in the target frame of the animation data to be compressed, a bone that can represent motion by rotation is used as an immediately preceding key frame for the bones in the target frame of the animation data to be compressed. Speed to compare and determine whether the speed value has changed by more than a predetermined value And a key frame setting unit configured to set at least a velocity value for various parameters related to the bone in the frame when it is determined in the velocity change determination unit that the velocity value has changed by a predetermined value or more And a deletion unit for deleting values of various parameters related to the bone in the frame when it is determined that the speed value has not changed by the predetermined value or more in the speed change determination unit.

非限定的な観点によると、本発明の一実施形態に係るアニメーションデータ圧縮方法は、仮想空間上に表示させるためのアニメーションデータであって所定の支点を中心とした回転運動によってボーンの動きを表現可能な箇所を含むアニメーションデータを圧縮するためのアニメーションデータ圧縮方法であって、圧縮対象のアニメーションデータにおける各ボーンのポーズ状態を表現するためのポーズ値、各ボーンが回転する場合の回転の速度値を含む各種パラメータの初期値を与える最初のキーフレームを作成する初期値設定処理と、圧縮対象のアニメーションデータの対象フレームにおける各ボーンについて、回転によって動きを表現可能であるボーンが直前のキーフレームに比較して速度値が所定値以上変化したか否かを判別する速度変化判別処理と、前記速度変化判別処理において速度値が所定値以上変化したと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータについて少なくとも速度値を記録したキーフレームとして設定するキーフレーム設定処理と、前記速度変化判別処理において速度値が所定値以上変化していないと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータの値を削除する削除処理とを含むことを特徴とする。   According to a non-limiting aspect, an animation data compression method according to an embodiment of the present invention is animation data to be displayed on a virtual space, and expresses bone motion by rotational motion around a predetermined fulcrum An animation data compression method for compressing animation data including possible portions, which is a pose value for expressing the pose state of each bone in the animation data to be compressed, and a rotation speed value when each bone is rotated For each bone in the target frame of the animation data to be compressed, a bone that can represent motion by rotation is used as an immediately preceding key frame for the initial value setting processing of creating the first key frame giving initial values of various parameters including Speed to compare and compare whether the speed value has changed by more than a predetermined value A key frame setting process for setting at least a velocity value for various parameters related to the bone in the frame when it is determined that the velocity value has changed by a predetermined value or more in the change determination process and the velocity change determination process. And a deletion process of deleting values of various parameters related to the bone in the frame when it is determined that the speed value has not changed by the predetermined value or more in the speed change determination process.

本願の各実施形態により1または2以上の不足が解決される。   Each embodiment of the present application solves one or more deficiencies.

本発明の実施形態の少なくとも一つに対応するアニメーションデータ圧縮装置の構成の例を示すブロック図である。It is a block diagram showing an example of composition of an animation data compression device corresponding to at least one of an embodiment of the present invention. 本発明の実施形態の少なくとも一つに対応するアニメーションデータの圧縮処理の例を示すフローチャートである。It is a flowchart which shows the example of the compression process of animation data corresponding to at least one of embodiment of this invention. 本発明の実施形態の少なくとも一つに対応するアニメーションデータの圧縮処理の概念を説明するための説明図である。It is an explanatory view for explaining the concept of compression processing of animation data corresponding to at least one of the embodiments of the present invention. 本発明の実施形態の少なくとも一つに対応するアニメーションデータ復元装置の構成の例を示すブロック図である。It is a block diagram showing an example of composition of an animation data decompression device corresponding to at least one of an embodiment of the present invention. 本発明の実施形態の少なくとも一つに対応するアニメーションデータの復元処理の例を示すフローチャートである。It is a flowchart which shows the example of the decompression | restoration process of animation data corresponding to at least one of embodiment of this invention. 本発明の実施形態の少なくとも一つに対応するアニメーションデータの圧縮処理を行った後のアニメーションデータのフレーム構成を説明するための説明図である。It is an explanatory view for explaining frame composition of animation data after performing compression processing of animation data corresponding to at least one of the embodiments of the present invention. 本発明の実施形態の少なくとも一つに対応するアニメーションデータ圧縮装置の圧縮対象であるアニメーションの例を表した説明図である。It is an explanatory view showing an example of animation which is a compression object of an animation data compression device corresponding to at least one of the embodiments of the present invention.

以下、本発明の実施形態の例について図面を参照して説明する。なお、以下で説明する各実施形態の例における各種構成要素は、矛盾等が生じない範囲で適宜組み合わせ可能である。また、ある実施形態の例として説明した内容については、他の実施形態においてその説明を省略している場合がある。また、各実施形態の特徴部分に関係しない動作や処理については、その内容を省略している場合がある。さらに、以下で説明する各種フローを構成する各種処理の順序は、処理内容に矛盾等が生じない範囲で順不同である。   Hereinafter, embodiments of the present invention will be described with reference to the drawings. In addition, the various components in the example of each embodiment described below can be combined suitably in the range which a contradiction etc. do not produce. Moreover, about the content demonstrated as an example of a certain embodiment, the description may be abbreviate | omitted in other embodiment. In addition, the contents of operations and processes that are not related to the characterizing portion of each embodiment may be omitted. Furthermore, the order of the various processes constituting the various flows described below is random as long as no contradiction or the like occurs in the process contents.

[第1の実施形態]
以下において、本発明の一実施形態に係るアニメーションデータ圧縮装置10について説明を行う。図1は、本発明の一実施の形態におけるアニメーションデータ圧縮装置10の構成の例を示すブロック図である。図1に示すように、アニメーションデータ圧縮装置10は、アニメーションデータ取得部11と、初期値設定部12と、速度変化判別部13と、キーフレーム設定部14と、削除部15と、圧縮済データ出力部16とを少なくとも備える。
First Embodiment
Hereinafter, an animation data compression apparatus 10 according to an embodiment of the present invention will be described. FIG. 1 is a block diagram showing an example of the configuration of an animation data compression apparatus 10 according to an embodiment of the present invention. As shown in FIG. 1, the animation data compression device 10 includes an animation data acquisition unit 11, an initial value setting unit 12, a speed change determination unit 13, a key frame setting unit 14, a deletion unit 15, and compressed data. And at least an output unit 16.

本例によるアニメーションデータ圧縮装置10で扱うアニメーションデータは、骨格(以下、ボーンという)と、骨格同士を接合するジョイント部とで構成されたオブジェクトであって、ジョイント部を回転中心としたボーンの回転運動をその回転速度によって記述可能なオブジェクトに対して有効な圧縮手法を採用している。具体的には、例えば、図7に示す人型のキャラクタなどが該当する。この図7に示すキャラクタは、主要な関節部分をジョイント部としてボーンが組み合わされて構成されており、各ボーンは支点となるジョイント部を回転中心とした回転運動によって動作を表現することが可能となる。このようなキャラクタのアニメーションデータは、圧縮前の状態では、各フレームにおいて、キャラクタの姿勢状態(ポーズ状態)を表すパラメータであるポーズ値を有しており、ボーン毎にポーズ値を持たせて構成してある。すなわち、各フレーム毎に、アニメーションを仮想空間上、例えばゲーム画面上にレンダリングするために必要な情報を保持している。なお、この圧縮前のアニメーションデータは、必ずしも回転運動の速度値によって表現されたものである必要はない。   The animation data handled by the animation data compression apparatus 10 according to the present embodiment is an object composed of a skeleton (hereinafter referred to as a bone) and a joint portion joining the skeletons, and rotation of the bone centering on the joint portion. An effective compression method is adopted for an object whose motion can be described by its rotation speed. Specifically, for example, a human-shaped character shown in FIG. 7 or the like corresponds. The character shown in FIG. 7 is configured by combining bones with the main joint portion as a joint portion, and each bone can represent an action by rotational movement centering on the joint portion serving as a fulcrum. Become. The animation data of such a character has, in the state before compression, a pose value which is a parameter representing the posture state (pose state) of the character in each frame, and is configured to have a pose value for each bone. Yes. That is, for each frame, information necessary to render an animation on a virtual space, for example, a game screen, is held. Note that the animation data before compression does not necessarily have to be represented by the rotational motion velocity value.

アニメーションデータ取得部11は、圧縮処理の対象となるアニメーションデータを取得する機能を有する。   The animation data acquisition unit 11 has a function of acquiring animation data to be compressed.

初期値設定部12は、圧縮対象のアニメーションデータにおける各ボーンのポーズ状態を表現するためのポーズ値、各ボーンが回転する場合の回転の速度値を含む各種パラメータの初期値を与える最初のキーフレームを作成する機能を有する。アニメーションを構成する全てのボーンについて初期値を設定する必要があるので、最初のキーフレームは最初のフレームに登場する全てのボーンについての初期値を含んでいるといえる。なお、ボーン毎の速度値は、圧縮対象のアニメーションデータにおいて予め速度値が与えられている場合にはそれをそのまま用いるが、速度値を有していない場合には、近傍のフレーム(例えば、1つ後のフレーム)におけるボーンと比較した際の空間上のボーンの移動量と経過時間(経過フレーム数)によって当該ボーンの速度値を演算して初期値として設定するようにする。また、最初のキーフレームは、必要な初期値を与えることができればどのような形式であってもよく、例えば、イニシャルポーズキーという初期値を与えるためのフォームを用いてもよいし、ボーン毎に設けられたポーズキー(ボーンキー)によって初期値を与えるものであってもよい。また、アニメーションの途中から登場するボーンが存在する場合には、登場するフレームがそのボーンにとっての最初のフレームとなる。   The initial value setting unit 12 is a first key frame giving initial values of various parameters including a pose value for expressing the pose state of each bone in the animation data to be compressed, and a rotation speed value when each bone rotates. Have the ability to create Since it is necessary to set initial values for all bones constituting the animation, it can be said that the first key frame contains initial values for all bones appearing in the first frame. In addition, although the velocity value for each bone is used as it is if the velocity value is given in advance in the animation data to be compressed, if it does not have the velocity value, the nearby frame (for example, 1) The velocity value of the bone is calculated based on the amount of movement of the bone in space and the elapsed time (the number of elapsed frames) when compared with the bone in the next frame), and is set as an initial value. Also, the first key frame may be in any form as long as it can provide a necessary initial value, for example, a form for giving an initial value such as an initial pause key may be used, or for each bone An initial value may be given by a provided pause key (bone key). Also, if there is a bone appearing from the middle of the animation, the appearing frame is the first frame for that bone.

ここで、ボーンについての速度値とは、1フレームあたりのボーンの移動量を算出するために必要なパラメータである。速度値の与え方は、ボーンの移動量を算出可能であればどのようなものであってもよいが、例えば、3次元空間におけるx、y、zの各速度成分を与える手法が考えられる。また、速度値は、ボーン毎に与えられるパラメータである。例えば、人を模したオブジェクトの上腕に該当するボーンが速度値を変化させながら回転する場合であっても、前腕に該当するボーンが静止した状態であるならば、前腕のボーンの速度値は0ということになる。   Here, the velocity value for the bone is a parameter necessary to calculate the amount of movement of the bone per frame. The method of giving the velocity value may be any method as long as the movement amount of the bone can be calculated. For example, a method of giving each velocity component of x, y, z in a three-dimensional space can be considered. Also, the velocity value is a parameter given to each bone. For example, even if the bone corresponding to the upper arm of an object imitating a person rotates while changing the velocity value, if the bone corresponding to the forearm is stationary, the velocity value of the bone of the forearm is 0. It turns out that.

速度変化判別部13は、圧縮対象のアニメーションデータの対象フレームにおける各ボーンについて、回転によって動きを表現可能であるボーンが直前のキーフレームに比較して速度値が所定値以上変化したか否かを判別する機能を有する。判定の単位はボーン毎であり、ボーン毎に直前のキーフレームと比較を行って速度変化の判定を行う。速度値に関する所定値は、どのようなものであってもよいが、所定値の大小とデータ削減率は比例関係となる傾向が強く、所定値の大小と復元時のデータ再現精度は反比例関係となる傾向が強い。なお、判定対象となる速度値は、圧縮対象のアニメーションデータにおいて予め速度値が与えられている場合にはそれをそのまま用いるが、速度値を有していない場合には、近傍のフレーム(例えば、1つ前のフレーム)におけるボーンと比較した際の空間上のボーンの移動量と経過時間(経過フレーム数)によって当該ボーンの速度値を演算してから判定を行うようにする。   For each bone in the target frame of the animation data to be compressed, the speed change determination unit 13 determines whether the speed value has changed by a predetermined value or more as compared to the key frame immediately before, for each bone in the target frame of the animation data to be compressed. Has a function to determine. The unit of determination is for each bone, and each bone is compared with the previous key frame to determine the speed change. Although the predetermined value regarding the velocity value may be any value, the magnitude of the predetermined value and the data reduction rate tend to be proportional to each other, and the magnitude of the predetermined value and the data reproduction accuracy at the time of restoration are inversely proportional to each other. Tend to be It should be noted that the velocity value to be determined is used as it is when animation data to be compressed is given in advance, but if it does not have a velocity value, nearby frames (eg, The determination is made after calculating the velocity value of the bone according to the movement amount of the bone in space and the elapsed time (the number of elapsed frames) when compared with the bone in the immediately preceding frame).

キーフレーム設定部14は、速度変化判別部13において速度値が所定値以上変化したと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータについて少なくとも速度値を記録したキーフレームとして設定する機能を有する。キーフレームとして設定するのはボーン毎であり、同一フレームにおいてキーフレームとして設定されるボーンもあれば削除されるボーンもあることになる。キーフレームには、ボーンの速度値を含むパラメータを設定するボーンキーをキーフレームに設定されるボーンの数だけ設けるが、これ以外に、キーフレーム自身が元のアニメーションデータにおける何番目のフレームに該当するのかの情報も併せて設定しておく。   The key frame setting unit 14 sets a function to set at least a velocity value as a key frame for various parameters related to the bone in the frame when the velocity change determination unit 13 determines that the velocity value has changed by a predetermined value or more. Have. It is set for each bone as a key frame, and some bones are set as key frames in the same frame, and some bones are deleted. The key frame is provided with bone keys for setting parameters including the velocity value of the bone as many as the number of bones set in the key frame, but other than this, the key frame itself corresponds to what number frame in the original animation data Also set the information of the.

削除部15は、速度変化判別部13において速度値が所定値以上変化していないと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータの値を削除する機能を有する。データを削除する単位はボーン毎である。   The deletion unit 15 has a function of deleting values of various parameters related to the bone in the frame when it is determined in the speed change determination unit 13 that the speed value has not changed by a predetermined value or more. The unit for deleting data is per bone.

圧縮済データ出力部16は、圧縮処理の対象となるアニメーションデータの全てのフレームの全てのボーンについて速度変化判別部13による判別処理を行って、キーフレーム設定部14によってキーフレームとして設定されたデータを最終的に圧縮済データとして出力する機能を有する。なお、対象アニメーションデータの最後のフレームまで処理が完了した時点で、アニメーションクリップ全体のすべてのキーフレームの量子化値が決定されので、必要に応じて、圧縮済データ出力部16では、これらのキーフレームの情報に基づいて、アニメーションクリップの再生中に時系列的に発生するように、すべての値を順次書き出し、何れのボーンのデータチャネルが各キーフレームに対して新しい速度値を有するか否かを示す少量のメタデータを追加したり、可能な値の制限された範囲内でキーフレームの逆量子化に使用される各キーに関連付けられたレンジデータを追加したりすることで、最終的な圧縮済データを得る。   The compressed data output unit 16 performs determination processing by the speed change determination unit 13 on all bones of all frames of animation data to be compressed, and the data set as a key frame by the key frame setting unit 14 Is finally output as compressed data. Note that when the processing is completed up to the last frame of the target animation data, the quantized values of all key frames in the entire animation clip are determined, and the compressed data output unit 16 may, if necessary, carry out these keys. Based on the information in the frame, write out all the values sequentially so that they occur chronologically during playback of the animation clip, whether or not which bone's data channel has a new speed value for each key frame Final by adding a small amount of metadata to indicate, or by adding range data associated with each key used to dequantize the key frame within the limited range of possible values. Get compressed data.

図2は、アニメーションデータ圧縮装置10が実行する圧縮処理の例を示すフローチャートである。なお、この図2に示すフローチャートによる処理は、アニメーションデータを構成するボーン毎に行うものであり、実際には1つのフレームの全てのボーンについて処理を行ってから次のフレームに移行するという流れとなるが、説明の都合上、1つのボーンについて着目した場合の説明を行うものとする。   FIG. 2 is a flowchart showing an example of the compression process performed by the animation data compression device 10. Note that the processing according to the flowchart shown in FIG. 2 is performed for each bone constituting animation data, and in practice the processing is performed for all the bones of one frame and then the process proceeds to the next frame. However, for convenience of explanation, the description will be made in the case of focusing on one bone.

図2において、先ず、圧縮対象のアニメーションデータを取得する(ステップS101)。取得したアニメーションデータから初期値を与えるための最初のキーフレームを設定する(ステップS102)。次のフレームに移行し、当該フレームで与えられる速度値が直前のキーフレームに比較して所定値以上変化しているか否かを判別する(ステップS103)。速度値が所定値以上変化している場合(S103−Y)は、当該フレームで与えられた速度値を含むキーフレームを設定する(ステップS104)。速度値が所定値以上変化していなかった場合(S103−N)は、当該フレームの各種パラメータの値を削除する(ステップS105)。対象フレームの処理が終わったら、当該フレームが最後のフレームであるかを判別する(ステップS106)。最後のフレームでなければ(S106−N)、次のフレームに処理対象を移行(ステップS107)させて、ステップS103〜ステップS105の処理を行う。以上のステップS103〜ステップS105の処理を順次フレームを移行させながら繰り返し行って、最後のフレームについての処理が終わった段階(S106−Y)で、それまでにキーフレームに設定したデータを圧縮済データとして出力して(ステップS108)、圧縮処理を終了する。   In FIG. 2, first, animation data to be compressed is acquired (step S101). A first key frame for giving an initial value is set from the acquired animation data (step S102). The process moves to the next frame, and it is determined whether the velocity value given in the frame has changed by a predetermined value or more compared to the immediately preceding key frame (step S103). If the velocity value changes by a predetermined value or more (S103-Y), a key frame including the velocity value given in the frame is set (step S104). If the velocity value has not changed by the predetermined value or more (S103-N), the values of various parameters of the frame are deleted (step S105). When the processing of the target frame is completed, it is determined whether the frame is the last frame (step S106). If it is not the last frame (S106-N), the processing object is shifted to the next frame (step S107), and the processing of steps S103 to S105 is performed. The above-described processing of steps S103 to S105 is repeated while sequentially shifting the frames, and at the stage where the processing for the last frame is finished (S106-Y), the data set in the key frame up to that point is compressed data And the compression process is terminated (step S108).

図3は、アニメーションデータの圧縮処理の概念を説明するための説明図である。この図3は、縦軸にボーンの回転角度をとり横軸に経過時間をとったものであり、このような回転角度の変化するボーンについて圧縮処理を行った場合のキーフレーム設定箇所と削除対象となったフレーム位置を示している。圧縮対象のアニメーションデータの最初のフレームはキーフレームに設定する必要があるが、それ以降のフレームについては速度値の変化に着目し、速度値の変化量が所定値以下の場合には、そのフレームにおける当該ボーンに関するデータは削除する。図3においても、最初のキーフレームに設定したフレームを1番目としたときに、2番目から5番目までのフレームについては、速度値の変化量が所定値以下であると判別されたため、削除対象とされている。6番目のフレームについては、速度値の変化量が所定値以上となったため、キーフレームに設定している。同様の処理をアニメーション全体に対して行うことで、キーフレームに設定するフレームと削除するフレームが決定される。図3の実線の曲線が元のアニメーションデータによる回転角度の変化であり、破線で示した軌跡が復元したアニメーションデータによる回転角度の変化を表している。   FIG. 3 is an explanatory diagram for explaining the concept of compression processing of animation data. In FIG. 3, the vertical axis represents the rotation angle of the bone on the vertical axis, and the elapsed time is on the horizontal axis. Keyframe setting locations and deletion targets in the case where compression processing is performed on such a bone where the rotation angle changes Indicates the frame position at which The first frame of the animation data to be compressed needs to be set as a key frame, but for the subsequent frames, pay attention to the change in velocity value, and if the amount of change in velocity value is less than a predetermined value, that frame The data on the bone in question are deleted. Also in FIG. 3, assuming that the frame set as the first key frame is the first one, for the second to fifth frames, it is determined that the amount of change in velocity value is less than or equal to the predetermined value. It is assumed. For the sixth frame, the amount of change in velocity value is equal to or greater than a predetermined value, and thus, is set as a key frame. The same process is performed on the entire animation to determine a frame to be set as a key frame and a frame to be deleted. The curve of the solid line in FIG. 3 is the change of the rotation angle according to the original animation data, and the locus shown by the broken line represents the change of the rotation angle according to the restored animation data.

次に、本発明の一実施形態に係るアニメーションデータ復元装置20について説明を行う。図4は、本発明の一実施の形態におけるアニメーションデータ復元装置20の構成の例を示すブロック図である。図4に示すように、アニメーションデータ復元装置20は、圧縮済データ取得部21と、キーフレーム判別部22と、キーフレーム出力部13と、フーム補完部24と、復元アニメーションデータ出力部25とを少なくとも備える。   Next, an animation data restoration apparatus 20 according to an embodiment of the present invention will be described. FIG. 4 is a block diagram showing an example of the configuration of the animation data restoration device 20 according to an embodiment of the present invention. As shown in FIG. 4, the animation data restoration device 20 includes a compressed data acquisition unit 21, a key frame determination unit 22, a key frame output unit 13, a frame completion unit 24, and a restoration animation data output unit 25. At least equipped.

圧縮済データ取得部21は、復元処理の対象となる圧縮済データを取得する機能を有する。   The compressed data acquisition unit 21 has a function of acquiring compressed data to be subjected to the restoration process.

キーフレーム判別部22は、復元すべきフレームについて、当該フレームに直接対応したキーフレームが存在するか否かを判別する機能を有する。圧縮済データに含まれるキーフレームには自身が何番目のフレームとして復元されるべきかを示す情報が設定されているため、復元すべきフレームに該当するキーフレームが存在するか否かを判別することができる。   The key frame determination unit 22 has a function of determining whether or not there is a key frame directly corresponding to the frame to be restored. Since the key frame included in the compressed data contains information indicating which frame it should restore, it is determined whether or not there is a key frame corresponding to the frame to be restored. be able to.

キーフレーム出力部13は、復元すべきフレームに直接対応したキーフレームが存在する場合に、当該キーフレームで与えられる各ボーンについての各種パラメータ値を用いて当該フレームのアニメーションデータを生成する機能を有する。   The key frame output unit 13 has a function of generating animation data of the frame using various parameter values for each bone given by the key frame, when there is a key frame directly corresponding to the frame to be restored. .

フーム補完部24は、復元すべきフレームに直接対応したキーフレームが存在しない場合に、直前のキーフレームによって与えられる各ボーンについての各種パラメータ値、速度値及び直前のキーフレームからの経過時間に基づいて、当該フレームのアニメーションデータを生成する機能を有する。直前のキーフレームのボーンキーによって与えられるボーンのポーズ値とボーンの速度値とを用いることにより、復元すべきフレームにおいてボーンが位置すべきポーズ状態が定まるため、これらによって演算を行って復元すべきフレームにおけるボーンのポーズ値を求めてフレームにおける当該ボーンの情報を補完する。   If there is no key frame directly corresponding to the frame to be restored, the frame complementing unit 24 is based on various parameter values for each bone given by the immediately preceding key frame, the velocity value, and the elapsed time from the immediately preceding key frame. And has a function of generating animation data of the frame. Since the pose state where the bone should be located in the frame to be restored is determined by using the bone pose value and the bone velocity value given by the bone key of the previous key frame, the frame to be operated on by these operations Find the pose value of the bone in and complement the information of the bone in the frame.

復元アニメーションデータ出力部25は、復元処理によって得られたアニメーションデータを出力する機能を有する。復元したフレームから順次出力するものであってもよいし、最終フレームまで復元した後に出力するものであってもよい。   The restoration animation data output unit 25 has a function of outputting animation data obtained by the restoration process. It may be output sequentially from the restored frame, or may be output after recovery to the final frame.

図5は、アニメーションデータ復元装置20が実行する復元処理の例を示すフローチャートである。なお、この図5に示すフローチャートによる処理は、アニメーションデータを構成するボーン毎に行うものであり、実際には1つのフレームの全てのボーンについて処理を行ってから次のフレームに移行するという流れとなるが、説明の都合上、1つのボーンについて着目した場合の説明を行うものとする。   FIG. 5 is a flowchart showing an example of the restoration processing performed by the animation data restoration device 20. Note that the processing according to the flowchart shown in FIG. 5 is performed for each bone constituting animation data, and in practice the processing is performed for all the bones of one frame, and then the process proceeds to the next frame. However, for convenience of explanation, the description will be made in the case of focusing on one bone.

図5において、先ず、復元対象の圧縮済データを取得する(ステップS201)。アニメーションデータを先頭のフレームから順次復元していくが、その際、復元対象のフレームに直接対応したキーフレームが圧縮済データの中に存在するか否かを判別する(ステップS202)。復元対象のフレームに直接対応したキーフレームが存在する場合(S202−Y)は、当該キーフレームで与えられる各ボーンについての各種パラメータ値を用いて当該フレームのアニメーションデータを生成する(S203)。復元対象のフレームに直接対応したキーフレームが存在しない場合(S202−N)は、直前のキーフレームによって与えられる各ボーンについての各種パラメータ値、速度値及び直前のキーフレームからの経過時間に基づいて、当該フレームのアニメーションデータを生成する(S204)。対象フレームの処理が終わったら、当該フレームが最後のフレームであるかを判別する(ステップS205)。最後のフレームでなければ(S205−N)、次のフレームに処理対象を移行(ステップS206)させて、ステップS202〜ステップS204の処理を行う。以上のステップS202〜ステップS204の処理を順次フレームを移行させながら繰り返し行って、最後のフレームについての処理が終わった段階(S205−Y)で、それまでに復元した全フレームのデータを復元アニメーションデータとして出力して(ステップS207)、圧縮処理を終了する。なお、図5では、全フレームのデータを復元してから出力するフローとして説明しているが、復元したフレームを順次出力するようにしてもよい。   In FIG. 5, first, compressed data to be restored is acquired (step S201). The animation data is sequentially restored from the top frame, and at that time, it is determined whether or not a key frame directly corresponding to the frame to be restored exists in the compressed data (step S202). When there is a key frame directly corresponding to the frame to be restored (S202-Y), animation data of the frame is generated using various parameter values for each bone given by the key frame (S203). If there is no key frame directly corresponding to the frame to be restored (S 202 -N), based on the various parameter values for each bone given by the immediately preceding key frame, the velocity value, and the elapsed time from the immediately preceding key frame. , Generate animation data of the frame (S204). When the processing of the target frame is completed, it is determined whether the frame is the last frame (step S205). If it is not the last frame (S205-N), the processing object is shifted to the next frame (step S206), and the processing of steps S202 to S204 is performed. The above steps S202 to S204 are repeated while sequentially shifting the frames, and at the stage where the processing for the last frame is finished (S205-Y), the data of all the frames restored so far is restored to animation data And the compression processing is ended (step S207). Although FIG. 5 is described as a flow in which data of all frames are restored and then output, the restored frames may be sequentially output.

図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」と表している。このラベル情報は、例えば、キーフレームに関する時間情報がどの速度値に関連付けられているかを知るために利用される。   FIG. 6 is an explanatory diagram for explaining a frame configuration of animation data after compression processing. FIG. 6 (a) shows data after compression by the conventional compression method using a weight based on time information included in a key frame, and FIG. 6 (b) shows a compression method according to the present example using a velocity value. Data after compression by. FIGS. 6 (a) and 6 (b) are data taking an example of the case where only three bones of bone 0, bone 1 and bone 2 are used. In the conventional data after compression shown in FIG. 6A, frames of time keys equal in number to the bones included in the key frame are provided for each key frame. Calculation of weight is performed using this time key. On the other hand, in the compressed data of this example shown in FIG. 6 (b), although the speed value is set by the bone key for each key frame, since the time key is not necessary, the frame for the time key Only the data capacity can be reduced. In the example shown in FIGS. 6 (a) and 6 (b), an initial pause key for giving an initial value of each bone and what data range each channel key is handled (number of digits of numerical data etc.) It has a channel of the data range shown. Also, a channel having label information for indicating which bone the bone key is included in in the key frame is set for each key frame. The label information indicates, for example, whether or not the bone key is included by “1” “0”, and if all bone keys are included for the three bones of bone 0, bone 1 and bone 2, “111” If the bone 1 is not included and the bone 1 and the bone 2 are included, it is represented as "011". This label information is used, for example, to know to which velocity value the time information on the key frame is associated.

以上に説明したように、第1の実施形態の一側面として、仮想空間上に表示させるためのアニメーションデータであって所定の支点を中心とした回転運動によってボーンの動きを表現可能な箇所を含むアニメーションデータを圧縮するためのアニメーションデータ圧縮装置が、アニメーションデータ取得部11と、初期値設定部12と、速度変化判別部13と、キーフレーム設定部14と、削除部15と、圧縮済データ出力部16とを備え、圧縮対象のアニメーションデータにおける各ボーンのポーズ状態を表現するためのポーズ値、各ボーンが回転する場合の回転の速度値を含む各種パラメータの初期値を与える最初のキーフレームを作成し、圧縮対象のアニメーションデータの対象フレームにおける各ボーンについて、回転によって動きを表現可能であるボーンが直前のキーフレームに比較して速度値が所定値以上変化したか否かを判別し、速度値が所定値以上変化したと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータについて少なくとも速度値を記録したキーフレームとして設定し、速度値が所定値以上変化していないと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータの値を削除するようにしたので、データ容量を削減可能なアニメーションデータの圧縮処理を行うことが可能となる。   As described above, as one aspect of the first embodiment, it is animation data to be displayed on a virtual space, and includes a portion capable of expressing the movement of a bone by rotational movement about a predetermined fulcrum. An animation data compression apparatus for compressing animation data includes an animation data acquisition unit 11, an initial value setting unit 12, a speed change determination unit 13, a key frame setting unit 14, a deletion unit 15, and output of compressed data A first key frame giving initial values of various parameters including a pose value for expressing the pose state of each bone in the animation data to be compressed, a speed value of rotation when each bone rotates, and a section 16 Create and move by rotation for each bone in the target frame of animation data to be compressed It is determined whether the speed value has changed by a predetermined value or more as compared to the key frame that can be represented, and when it is determined that the speed value has changed by a predetermined value or more, the bone related to the frame in the frame Since various parameters are set as key frames recording at least velocity values, and it is determined that the velocity values have not changed by a predetermined value or more, the values of various parameters relating to the bone in the frame are deleted. It becomes possible to perform compression processing of animation data which can reduce data volume.

すなわち、キーフレームに記録するボーンの情報として速度値を採用することにより、前後のキーフレームの時間情報を用いずとも補完データを生成可能となるため、時間キーの枠の分だけデータ容量を削減することが可能となる。また、ボーンが等速度の回転運動を行うような場合には次に速度変化量が所定値以上となるまでそのボーンのボーンキーを設ける必要がなくなる。よって、多くのフレームを間引いてキーフレーム数を減らすことで全体のデータ容量を削減することが可能となる。   That is, by adopting the velocity value as bone information to be recorded in the key frame, complementary data can be generated without using the time information of the previous and subsequent key frames, so the data capacity is reduced by the time key frame. It is possible to In addition, when the bone performs rotational motion at constant velocity, it is not necessary to provide the bone key of the bone until the amount of change in velocity reaches a predetermined value or more next time. Therefore, it is possible to reduce the total data capacity by thinning many frames and reducing the number of key frames.

[第2の実施形態]
第1の実施形態においては、圧縮処理においてキーフレームに設定する際はボーンについて速度値を記録するものとして説明を行った。これに対して、第2の実施形態として、速度値に替えて、速度値の差分を記録するようにしてもよい。
Second Embodiment
The first embodiment has been described on the assumption that the velocity value is recorded for the bone when setting a key frame in the compression processing. On the other hand, in the second embodiment, the difference between the velocity values may be recorded instead of the velocity value.

圧縮処理時に、最初のキーフレームについては速度値を記録しておく必要があるが、以降の処理対象のフレームにおいては直前のキーフレームと比較したときに速度値の変化量が所定値以上となったフレームをキーフレームとして設定する際に、速度値を記録するのではなく、直前のキーフレームと比較した際の速度値の差分を記録するようにする。   At the time of compression processing, it is necessary to record the velocity value for the first key frame, but in the subsequent frames to be processed, the amount of change in velocity value becomes equal to or more than the predetermined value when compared with the immediately preceding key frame. When setting a frame as a key frame, the velocity value is not recorded, but the difference between the velocity values when compared with the immediately preceding key frame is recorded.

復元処理時には、最初のキーフレームに設定された速度値と、それ以降のキーフレームにそれぞれ設定された速度値の差分とを用いることで処理対象のフレームの直前のキーフレームの速度値が算出できる。直前のキーフレームの速度値が算出できた後のフレームの補完処理については、第1の実施形態と同様である。なお、現実的には、対象のキーフレームの速度値を算出する際に演算を容易にするために、1つ前のキーフレームの速度値をメモリに保持する構成とすれば、対象のキーフレームの速度値を算出する度に、最初のキーフレームに設定された速度値と、それ以降のキーフレームにそれぞれ設定された速度値の差分とに基づいて最初から全て演算し直す必要がなくなる。   At the time of restoration processing, the velocity value of the key frame immediately before the frame to be processed can be calculated by using the velocity value set in the first key frame and the difference between the velocity values set in the subsequent key frames. . The complementing process of the frame after the velocity value of the immediately preceding key frame can be calculated is the same as that of the first embodiment. Note that, in reality, if the speed value of the immediately preceding key frame is held in the memory in order to facilitate the calculation when calculating the speed value of the target key frame, the target key frame Every time the velocity value is calculated, it is not necessary to recalculate all from the beginning based on the velocity value set in the first key frame and the difference between the velocity values set in the subsequent key frames.

速度値に替えて、速度値の差分を記録する場合、速度値を記録する場合に比較して、各ボーンキーのデータ値は、ゼロに近い分布に正規化され、一般にかなり狭い範囲の可能な値に収まる。従来のアニメーション圧縮技法では、各キーを量子化するために同様に狭い範囲を定義することも可能であるが、多くの異なるチャネルのデータを扱う場合にはより多くの異なるレンジデータを定義して使用する必要である。これは、主に、各範囲の中心が任意の非ゼロ値だからである。しかし、この新しい方法では、すべての範囲がゼロに近い範囲に集中するため、非常に多くの異なるレンジデータの定義がデータストリームに存在する必要性を排除することにより、合計でより少ないデータ量とすることが可能となる。ただし、ゼロに近い範囲に収まる可能性が高いとはいえ、キーの小さなサブセットが、ほとんどのキーに使用される典型的なレンジデータによって定義した範囲内に存在しない値を有する可能性がある。したがって、より大きなビット幅のレンジデータを使用するための手段は、このサブセット内のキーにも同様に必要である。複数の範囲サイズが用意され、キーはその値に最も厳密に拘束される範囲を使用して符号化され、各キーを解凍するときに事前定義された範囲のどれを使用すべきかを示すメタデータとしてのレンジデータを記録すすることで、この問題を解消することができる。大多数のボーンキーは、データレンジが狭い範囲に収まることから、速度の差分を記録する場合の方が記録に要するビット数が少なくて済む。よって、全体としてデータ容量を削減することが可能となる。   When recording the difference between the velocity values instead of the velocity values, the data values of each bone key are normalized to a distribution close to zero as compared with the case of recording the velocity values, and generally, a relatively narrow range of possible values Fit in With conventional animation compression techniques, it is also possible to define a narrow range to quantize each key as well, but when dealing with data from many different channels, define more different range data It is necessary to use. This is mainly because the center of each range is an arbitrary non-zero value. However, with this new method, all ranges are concentrated to near zero ranges, thus eliminating the need for a very large number of different range data definitions to be present in the data stream, resulting in a smaller amount of data in total It is possible to However, although it is likely to be in the range close to zero, a small subset of keys may have values that are not within the range defined by the typical range data used for most keys. Thus, means for using larger bit-width range data are required for keys in this subset as well. Multiple range sizes are provided, and keys are encoded using the range that is most tightly bound to their value, and metadata indicating which of the predefined ranges should be used when decompressing each key This problem can be solved by recording the range data as. Most bone keys have a narrow data range, so recording speed differences requires fewer bits for recording. Therefore, it is possible to reduce the data capacity as a whole.

[第3の実施形態]
第1及び第2の実施形態においては、キーフレームにおいてボーンの速度値又は速度値の差分を設定するものとして説明を行った。第1及び第2の実施形態では、速度値又は速度値の差分は、例えば、3次元空間におけるx、y、zの各速度成分で与えられるものとして説明したが、この第3の実施形態においては、速度値又は速度値の差分について、回転速度軸データと回転速度振幅データとによって速度値又は速度値の差分を設定するようにする。
Third Embodiment
The first and second embodiments have been described as setting the velocity value of the bone or the difference between the velocity values in the key frame. In the first and second embodiments, the velocity value or the difference between the velocity values is described as being given by, for example, the x, y, and z velocity components in the three-dimensional space, but in the third embodiment In the velocity value or the difference of the velocity value, the velocity value or the velocity value difference is set by the rotational velocity axis data and the rotational velocity amplitude data.

機械的な歯車や車両のホイールなどのように、安定した軸回りを回転する状態を表現したアニメーションについては、ボーンの回転運動を回転速度軸データと回転速度振幅データとで表現する方がデータ容量の削減につながる可能性がある。というのも、安定した軸回りを回転する状態の場合、1つのキーフレームにおいて軸の位置を回転速度軸データによって与えてしまえば、軸の位置が変化しない限りそれ以降のキーフレームにおいても回転速度軸データを省略することが可能となる。そして、軸の回りを回る際の回転速度について変化が所定値以上となった場合にキーフレームにおいて回転速度振幅データを更新するようにする。   For animation that expresses stable rotation around an axis, such as mechanical gears or wheels of a vehicle, it is better to represent bone rotational motion with rotational speed axis data and rotational speed amplitude data as data capacity May lead to a reduction in For example, in the case of stable axis rotation, if the position of the axis is given by the rotational speed axis data in one key frame, the rotational speed will also be in subsequent key frames as long as the position of the axis does not change. It is possible to omit axis data. Then, the rotational speed amplitude data is updated in the key frame when the change in the rotational speed when rotating around the axis reaches a predetermined value or more.

軸の回りを回転する回転速度をスカラー値で回転速度振幅データとして与える手法を採用すれば、安定した軸回りを回転する状態であれば、キーフレームにおいて回転速度軸データを更新する回数は少なくなり、キーフレームにおいて回転速度振幅データのみを更新すればよいことになるため、データ容量を削減することが可能となる。   If a method is adopted in which the rotational speed that rotates around the axis is given as a scalar value as rotational speed amplitude data, the number of times the rotational speed axis data is updated in the key frame decreases if it is a stable rotation around the axis. Since it is only necessary to update the rotational speed amplitude data in the key frame, it is possible to reduce the data capacity.

以上に説明したように、本願の各実施形態により1または2以上の不足が解決される。なお、夫々の実施形態による効果は、非限定的な効果または効果の一例である。   As explained above, each embodiment of the present application solves one or more deficiencies. In addition, the effect by each embodiment is an example of a non-limiting effect or an effect.

なお、上述した各実施形態において、アニメーションデータ圧縮装置10及びアニメーションデータ復元装置20は、自己が備える記憶装置に記憶されている各種制御プログラム(例えば、アニメーションデータ圧縮プログラム、アニメーションデータ復元プログラム)に従って、上述した各種の処理を実行するものであってもよい。   In each of the above-described embodiments, the animation data compression apparatus 10 and the animation data restoration apparatus 20 execute various control programs (for example, an animation data compression program, an animation data restoration program) stored in a storage device provided therein. The various processes described above may be executed.

本発明の実施形態の一つによれば、ボーンの回転運動をその回転速度によって記述可能なオブジェクトに関するアニメーションデータの圧縮処理に有用である。   According to one embodiment of the present invention, it is useful for compression processing of animation data on an object whose rotational motion can be described by its rotational speed.

10 アニメーションデータ圧縮装置
11 アニメーションデータ取得部
12 初期値設定部
13 速度変化判別部
14 キーフレーム設定部
15 削除部
16 圧縮済データ出力部
20 アニメーションデータ復元装置
21 圧縮済データ取得部
22 キーフレーム判別部
23 キーフレーム出力部
24 フレーム補完部
25 復元アニメーションデータ出力部
DESCRIPTION OF SYMBOLS 10 animation data compression apparatus 11 animation data acquisition part 12 initial value setting part 13 speed change discrimination | determination part 14 key frame setting part 15 deletion part 16 compressed data output part 20 animation data decompression | restoration apparatus 21 compressed data acquisition part 22 key frame discrimination | determination part 23 key frame output unit 24 frame complement unit 25 restored animation data output unit

Claims (6)

仮想空間上に表示させるためのアニメーションデータであって所定の支点を中心とした回転運動によってボーンの動きを表現可能な箇所を含むアニメーションデータを圧縮する機能をコンピュータに実現させるためのアニメーションデータ圧縮プログラムであって、
前記コンピュータに、
圧縮対象のアニメーションデータにおける各ボーンのポーズ状態を表現するためのポーズ値、各ボーンが回転する場合の回転の速度値を含む各種パラメータの初期値を与える最初のキーフレームを作成する初期値設定機能と、
圧縮対象のアニメーションデータの対象フレームにおける各ボーンについて、回転によって動きを表現可能であるボーンが直前のキーフレームに比較して速度値が所定値以上変化したか否かを判別する速度変化判別機能と、
前記速度変化判別機能において速度値が所定値以上変化したと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータについて少なくとも速度値を記録したキーフレームとして設定するキーフレーム設定機能と、
前記速度変化判別機能において速度値が所定値以上変化していないと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータの値を削除する削除機能と
を実現させるアニメーションデータ圧縮プログラム。
An animation data compression program for causing a computer to realize a function of compressing animation data including a portion capable of expressing a bone motion by a rotational movement about a predetermined fulcrum, which is animation data to be displayed on a virtual space And
On the computer
An initial value setting function that creates an initial key frame giving initial values of various parameters including a pose value for expressing the pose state of each bone in animation data to be compressed, and a speed value of rotation when each bone rotates When,
And a speed change determination function that determines whether the speed value has changed by a predetermined value or more as compared with the immediately preceding key frame, for each bone in the target frame of the animation data to be compressed, as compared with the immediately preceding key frame. ,
A key frame setting function of setting at least a velocity value as a key frame for recording various parameters related to the bone in the frame when it is determined that the velocity value has changed by a predetermined value or more in the velocity change determination function;
An animation data compression program that realizes a deletion function of deleting values of various parameters related to the bone in the frame when it is determined in the speed change determination function that the speed value has not changed by a predetermined value or more.
前記キーフレーム設定機能は、速度値に替えて、直前のキーフレームと比較した際の速度の差分の値を少なくとも記録したキーフレームとして設定するようにした
請求項1記載のアニメーションデータ圧縮プログラム。
The animation data compression program according to claim 1, wherein the key frame setting function sets, as a key frame recorded at least, a value of a difference in speed when compared with the immediately preceding key frame, instead of the speed value.
請求項1に記載のアニメーションデータ圧縮プログラムによって圧縮されたアニメーションデータを復元する機能をコンピュータに実現させるためのアニメーションデータ復元プログラムであって、
前記コンピュータに、
復元すべきフレームについて、当該フレームに直接対応したキーフレームが存在するか否かを判別するキーフレーム判別機能と、
復元すべきフレームに直接対応したキーフレームが存在する場合に、当該キーフレームで与えられる各ボーンについての各種パラメータ値を用いて当該フレームのアニメーションデータを生成するキーフレーム出力機能と、
復元すべきフレームに直接対応したキーフレームが存在しない場合に、直前のキーフレームによって与えられる各ボーンについての各種パラメータ値、速度値及び直前のキーフレームからの経過時間に基づいて、当該フレームのアニメーションデータを生成するフレーム補完機能と
を実現させるアニメーションデータ復元プログラム。
An animation data restoration program for causing a computer to realize a function of restoring animation data compressed by the animation data compression program according to claim 1.
On the computer
A key frame determination function of determining whether or not there is a key frame directly corresponding to the frame to be restored;
A key frame output function of generating animation data of the frame using various parameter values for each bone given by the key frame, when there is a key frame directly corresponding to the frame to be restored;
If there is no key frame directly corresponding to the frame to be restored, animation of the frame is performed based on the various parameter values for each bone given by the previous key frame, the velocity value, and the elapsed time from the previous key frame. An animation data restoration program that realizes a frame interpolation function that generates data.
請求項2に記載のアニメーションデータ圧縮プログラムによって圧縮されたアニメーションデータを復元する機能をコンピュータに実現させるためのアニメーションデータ復元プログラムであって、
前記コンピュータに、
復元すべきフレームについて、当該フレームに直接対応したキーフレームが存在するか否かを判別するキーフレーム判別機能と、
復元すべきフレームに直接対応したキーフレームが存在する場合に、当該キーフレームで与えられる各ボーンについての各種パラメータ値を用いて当該フレームのアニメーションデータを生成するキーフレーム出力機能と、
復元すべきフレームに直接対応したキーフレームが存在しない場合に、最初のキーフレームによって与えられる各ボーンについての各種パラメータ値、速度値、最初のキーフレームと現在のフレームまでの間に存在したキーフレームによってそれぞれ与えられた速度値の差分、及び、最初のキーフレームからの経過時間に基づいて、当該フレームのアニメーションデータを生成するフレーム補完機能と
を実現させるアニメーションデータ復元プログラム。
An animation data restoration program for causing a computer to realize a function of restoring animation data compressed by the animation data compression program according to claim 2.
On the computer
A key frame determination function of determining whether or not there is a key frame directly corresponding to the frame to be restored;
A key frame output function of generating animation data of the frame using various parameter values for each bone given by the key frame, when there is a key frame directly corresponding to the frame to be restored;
If there is no keyframe directly corresponding to the frame to be restored, various parameter values for each bone given by the first keyframe, velocity values, keyframes existing between the first keyframe and the current frame An animation data restoration program for realizing a frame complementing function of generating animation data of the frame based on the difference between the velocity values given by and the elapsed time from the first key frame.
仮想空間上に表示させるためのアニメーションデータであって所定の支点を中心とした回転運動によってボーンの動きを表現可能な箇所を含むアニメーションデータを圧縮するためのアニメーションデータ圧縮装置であって、
圧縮対象のアニメーションデータにおける各ボーンのポーズ状態を表現するためのポーズ値、各ボーンが回転する場合の回転の速度値を含む各種パラメータの初期値を与える最初のキーフレームを作成する初期値設定部と、
圧縮対象のアニメーションデータの対象フレームにおける各ボーンについて、回転によって動きを表現可能であるボーンが直前のキーフレームに比較して速度値が所定値以上変化したか否かを判別する速度変化判別部と、
前記速度変化判別部において速度値が所定値以上変化したと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータについて少なくとも速度値を記録したキーフレームとして設定するキーフレーム設定部と、
前記速度変化判別部において速度値が所定値以上変化していないと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータの値を削除する削除部と
を備えたアニメーションデータ圧縮装置。
An animation data compression apparatus for compressing animation data that is animation data to be displayed on a virtual space, the animation data including a portion capable of expressing the movement of a bone by rotational movement about a predetermined fulcrum,
An initial value setting unit that creates an initial key frame giving initial values of various parameters including a pose value for expressing the pose state of each bone in the animation data to be compressed, and a speed value of rotation when each bone rotates When,
A velocity change determination unit that determines whether the velocity value has changed by a predetermined value or more as compared with the immediately preceding key frame for each bone in the target frame of the animation data to be compressed, as compared with the immediately preceding key frame; ,
A key frame setting unit configured to set at least a velocity value as a key frame in which various parameters related to the bone in the frame are determined when the velocity change determining unit determines that the velocity value has changed by a predetermined value or more;
An animation data compression apparatus comprising: a deletion unit that deletes values of various parameters related to the bone in the frame when it is determined in the speed change determination unit that the velocity value has not changed by a predetermined value or more.
仮想空間上に表示させるためのアニメーションデータであって所定の支点を中心とした回転運動によってボーンの動きを表現可能な箇所を含むアニメーションデータを圧縮するためのアニメーションデータ圧縮方法であって、
圧縮対象のアニメーションデータにおける各ボーンのポーズ状態を表現するためのポーズ値、各ボーンが回転する場合の回転の速度値を含む各種パラメータの初期値を与える最初のキーフレームを作成する初期値設定処理と、
圧縮対象のアニメーションデータの対象フレームにおける各ボーンについて、回転によって動きを表現可能であるボーンが直前のキーフレームに比較して速度値が所定値以上変化したか否かを判別する速度変化判別処理と、
前記速度変化判別処理において速度値が所定値以上変化したと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータについて少なくとも速度値を記録したキーフレームとして設定するキーフレーム設定処理と、
前記速度変化判別処理において速度値が所定値以上変化していないと判別された場合に、当該フレームにおける当該ボーンに関する各種パラメータの値を削除する削除処理と
を含むアニメーションデータ圧縮方法。
An animation data compression method for compressing animation data, which is animation data to be displayed on a virtual space and includes a portion capable of expressing the movement of a bone by a rotational movement about a predetermined fulcrum,
Initial value setting processing for creating the first key frame giving initial values of various parameters including the pose value for expressing the pose state of each bone in the animation data to be compressed, and the speed value of rotation when each bone rotates When,
Speed change determination processing for determining whether or not a bone capable of expressing movement by rotation has changed a speed value by a predetermined value or more as compared with the immediately preceding key frame for each bone in a target frame of animation data to be compressed; ,
A key frame setting process of setting at least a velocity value as a key frame recording various parameters related to the bone in the frame when it is determined that the velocity value has changed by a predetermined value or more in the velocity change determination process;
A deletion process of deleting values of various parameters related to the bone in the frame when it is determined in the speed change determination process that the speed value has not changed by a predetermined value or more.
JP2017235905A 2017-12-08 2017-12-08 Animation data compression program, animation data recovery program, animation data compression device, and animation data compression method Active JP6526775B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017235905A JP6526775B1 (en) 2017-12-08 2017-12-08 Animation data compression program, animation data recovery program, animation data compression device, and animation data compression method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017235905A JP6526775B1 (en) 2017-12-08 2017-12-08 Animation data compression program, animation data recovery program, animation data compression device, and animation data compression method

Publications (2)

Publication Number Publication Date
JP6526775B1 true JP6526775B1 (en) 2019-06-05
JP2019102025A JP2019102025A (en) 2019-06-24

Family

ID=66730665

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017235905A Active JP6526775B1 (en) 2017-12-08 2017-12-08 Animation data compression program, animation data recovery program, animation data compression device, and animation data compression method

Country Status (1)

Country Link
JP (1) JP6526775B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111161365A (en) * 2019-12-30 2020-05-15 珠海金山网络游戏科技有限公司 Method and device for compressing skeleton animation data
CN111773700A (en) * 2020-07-24 2020-10-16 网易(杭州)网络有限公司 Animation data processing method and device
CN115115750A (en) * 2021-03-19 2022-09-27 盛趣信息技术(上海)有限公司 Unity3d animation data compression method and system

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112288838A (en) * 2020-10-27 2021-01-29 北京爱奇艺科技有限公司 Data processing method and device

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3422684B2 (en) * 1998-03-25 2003-06-30 株式会社ナムコ Data processing method, and storage medium storing program according to the method
JP3777054B2 (en) * 1998-09-28 2006-05-24 株式会社ナムコ Sampling data compression system and data compression method
JP2984927B1 (en) * 1998-11-12 1999-11-29 株式会社超高速ネットワーク・コンピュータ技術研究所 Video transfer method and communication network system
JP3569201B2 (en) * 2000-06-05 2004-09-22 株式会社スクウェア・エニックス Computer-readable recording medium and method for recording a program for displaying a scene in which a specific character makes contact with another character, and a game apparatus
WO2012107952A1 (en) * 2011-02-08 2012-08-16 三菱電機株式会社 Meter display device

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111161365A (en) * 2019-12-30 2020-05-15 珠海金山网络游戏科技有限公司 Method and device for compressing skeleton animation data
CN111161365B (en) * 2019-12-30 2023-05-09 珠海金山数字网络科技有限公司 Compression method and device for bone animation data
CN111773700A (en) * 2020-07-24 2020-10-16 网易(杭州)网络有限公司 Animation data processing method and device
CN111773700B (en) * 2020-07-24 2024-05-10 网易(杭州)网络有限公司 Animation data processing method and device
CN115115750A (en) * 2021-03-19 2022-09-27 盛趣信息技术(上海)有限公司 Unity3d animation data compression method and system

Also Published As

Publication number Publication date
JP2019102025A (en) 2019-06-24

Similar Documents

Publication Publication Date Title
JP6526775B1 (en) Animation data compression program, animation data recovery program, animation data compression device, and animation data compression method
US8310485B1 (en) Creating animation effects
US11836843B2 (en) Enhanced pose generation based on conditional modeling of inverse kinematics
CN110166757B (en) Method, system and storage medium for compressing data by computer
US11648480B2 (en) Enhanced pose generation based on generative modeling
CN108492338B (en) Compression method and device for animation file, storage medium and electronic device
WO2000041139A1 (en) Three-dimensional skeleton data compressing device
US10504248B2 (en) Machine learning applied to textures compression or upscaling
CN104091607A (en) Video editing method and device based on IOS equipment
US20070182744A1 (en) Polynomial encoding of vertex data for use in computer animation of cloth and other materials
CN111986298A (en) Two-dimensional code technology-based keyframe animation effect sharing method
CN115587523A (en) High dynamic space self-adaptive fluid simulation method, equipment and storage medium
US7995065B2 (en) Animation reproducing apparatus and method
US20050007371A1 (en) Three-dimensional animation system and method using evolutionary computation
US9396574B2 (en) Choreography of animated crowds
US8237719B1 (en) Pose-structured animation interface
US9342510B1 (en) State handles
KR20210077201A (en) Method for making 3D character animation
KR101760610B1 (en) Method for providing rigging tool and apparatus for providing rigging tool
CN114827695A (en) Video recording method, video recording apparatus, electronic apparatus, and storage medium
US20070216711A1 (en) Abstracting transform representations in a graphics API
JP5522736B2 (en) Image super-resolution apparatus and program thereof
US8077183B1 (en) Stepmode animation visualization
KR100826155B1 (en) Animation implementation method using reduced motion capture database and animation playback device for the same
CN116958285A (en) Compression method and device for bone animation, electronic equipment and storage medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171208

A80 Written request to apply exceptions to lack of novelty of invention

Free format text: JAPANESE INTERMEDIATE CODE: A80

Effective date: 20171221

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181204

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20190201

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190409

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190508

R150 Certificate of patent or registration of utility model

Ref document number: 6526775

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250