JP2019159348A - Skinning decomposition acceleration method considering locality of weight map and skinning decomposition acceleration program of the same - Google Patents

Skinning decomposition acceleration method considering locality of weight map and skinning decomposition acceleration program of the same Download PDF

Info

Publication number
JP2019159348A
JP2019159348A JP2018040319A JP2018040319A JP2019159348A JP 2019159348 A JP2019159348 A JP 2019159348A JP 2018040319 A JP2018040319 A JP 2018040319A JP 2018040319 A JP2018040319 A JP 2018040319A JP 2019159348 A JP2019159348 A JP 2019159348A
Authority
JP
Japan
Prior art keywords
cluster
weight map
bone
skinning
determined
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.)
Granted
Application number
JP2018040319A
Other languages
Japanese (ja)
Other versions
JP6487083B1 (en
Inventor
史弥 成田
Fumiya Narita
史弥 成田
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 JP2018040319A priority Critical patent/JP6487083B1/en
Application granted granted Critical
Publication of JP6487083B1 publication Critical patent/JP6487083B1/en
Publication of JP2019159348A publication Critical patent/JP2019159348A/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Processing Or Creating Images (AREA)

Abstract

To provide a skinning decomposition acceleration technique of conversion with low memory consumption and high speed and high accuracy.SOLUTION: A skinning decomposition acceleration method applies an initial process that performs a cluster allocation processing unit 12 allocating a cluster of a bone for operating an object by applying different methods according to characteristics of the object, a system matrix reduction processing unit 13 clustering the cluster of the neighbor bone for the set bone cluster to reduce a size of a system matrix of two dimensional plan problem in a weight map update calculation so as to maintain it to a constant size, and an operation number reduction processing 14 introducing an evaluation function representing posture similarity between the objects in an animation and setting the object in a key frame in repetition operation or a resting state to a weight map update calculation target only once so as to limit a weight map update calculation number.SELECTED DRAWING: Figure 1

Description

本発明は、頂点ベースで作成された3次元オブジェクト(人物・動物・物体他)のアニメーションを3Dスキンアニメーションに変換するスキニング分解技術においてウェイトマップの局所性を考慮したスキニング分解高速化方法及び同スキニング分解高速化プログラムに関する。   The present invention relates to a skinning decomposition speed-up method in consideration of locality of weight maps in a skinning decomposition technique for converting an animation of a three-dimensional object (person, animal, object, etc.) created on a vertex basis into a 3D skin animation, and the same skinning. It relates to a high-speed decomposition program.

スキニング(処理)とは、3次元のオブジェクトを変形させる手法の1つである。静止状態のオブジェクトに対し、オブジェクトを操作するためのボーン(コントロールポイント)及びボーンが各頂点にどれくらいの影響を及ぼすかを示すウェイトマップを設定する。これにより、ボーンの姿勢を操作することで物体全体を変形させることができる。近年の実時間アプリケーションにおけるCGキャラクタのスキニング処理には、線形ブレンドスキニング法(Linear Blend Skinning 、LBS)が広く利用されている。さらに、補助骨と呼ばれる冗長なボーンを導入することによってスキンアニメーションの品質を改善するとともに,皮膚や筋肉の隆起などの複雑なスキン変形を表現する技法が実用化されている。一般的にボーンの数はオブジェクトの頂点数よりもずっと小さいため、アニメーションにおける全てのフレームのオブジェクトの頂点座標を記憶しておくよりも、オブジェクトのウェイトマップと各フレームのボーンの姿勢を記憶しておく方が、メモリ消費量の観点から効率的である。また、スキニング処理は計算コストが低く、ハードウェアで高速化することが出来る。しかしながら、スキニング処理を行う為にはオブジェクトにボーンとそれに対応するウェイトマップ、各フレームにおけるボーンの姿勢を適切に設定する必要があり、アーティストにとって大きな負担となっている。   Skinning (processing) is one of the techniques for deforming a three-dimensional object. For a stationary object, a bone (control point) for manipulating the object and a weight map indicating how much the bone affects each vertex are set. Thereby, the whole object can be deformed by manipulating the posture of the bone. For skinning processing of CG characters in recent real-time applications, a linear blend skinning (LBS) method is widely used. Furthermore, techniques for improving the quality of skin animation by introducing redundant bones called auxiliary bones and expressing complex skin deformations such as skin and muscle bulges have been put into practical use. In general, the number of bones is much smaller than the number of vertices of the object, so rather than memorizing the object's vertex coordinates for every frame in the animation, remember the object's weight map and the bone's pose for each frame. It is more efficient from the viewpoint of memory consumption. In addition, the skinning process has a low calculation cost and can be accelerated by hardware. However, in order to perform the skinning process, it is necessary to appropriately set bones, corresponding weight maps, and postures of the bones in each frame, which is a heavy burden on the artist.

そこで、頂点ベースアニメーションをよりメモリ消費量が少なく演算コストの低いスキンアニメーションへ自動で変換する技術には高い需要がある。頂点ベースアニメーションをスキンアニメーションへ変換する技術は、スキニング分解と呼ばれる。このスキニング分解の代表的なものとしては、JamesらのSkinning Mesh Animations、HaslerらのLearning Skeletons for Shape and Pose、LiらのSmooth Skinning Decomposition with Rigid Bones[SSDR]などがあり、SSDRは正確性と応用性の観点から,現在最も注目されている手法の一つである。 Therefore, there is a high demand for a technology for automatically converting vertex-based animation into skin animation that consumes less memory and has a low computation cost. The technique for converting vertex-based animation to skin animation is called skinning decomposition. Representative examples of this skinning decomposition include James et al. Skinning Mesh Animations, Hasler et al. Learning Skeletons for Shape and Pose, Li et al., Smooth Skinning Decomposition SS, and DR. From the viewpoint of sex, it is one of the methods that are currently attracting the most attention.

SSDRによるスキニング分解は線形ブレンドスキニング法の逆問題を解き、オブジェクトの例示データの集合を入力として、各例示データをもっともよく近似するようなスキニングのパラメータ(各ボーンの姿勢、ウェイトマップ)を出力する。具体的には、オブジェクトのアニメーションの1フレームごとの物体の形状を入力とし、それをもっともよく近似するような各ボーンの剛体変換行列を1フレームごとに算出する。ただしウェイトマップはアニメーション全体で1つのパラメータを算出する。SSDRは、図3(a)に示す如く、クラスタリング(Clustering)の初期化工程と、ボーンの剛体変換行列の更新(Update Bone Transformations)工程と、ウェイトマップの更新(Update Bone Transformations)工程の3工程からなる。まず、オブジェクトの例示データの似たような動きをしている部分をクラスタリングしてボーンの剛体変換行列の初期値を算出する。次にBlock Coordinate Descent法を用いてウェイトマップの更新とボーンの剛体変換行列の更新を繰り返すことで最終的なスキニングのパラメータを算出する。   Skinning decomposition by SSDR solves the inverse problem of the linear blend skinning method, and receives a set of example data of an object and outputs skinning parameters (the posture of each bone and weight map) that best approximates each example data. . Specifically, the shape of the object for each frame of the object animation is input, and a rigid transformation matrix of each bone that best approximates the shape is calculated for each frame. However, the weight map calculates one parameter for the entire animation. As shown in FIG. 3A, the SSDR includes three processes: a clustering initialization process, a bone rigid body transformation matrix update process (Update Bone Transformations) process, and a weight map update process (Update Bone Transformations) process. Consists of. First, the initial value of the bone rigid transformation matrix is calculated by clustering similar moving parts of the example data of the object. Next, the final skinning parameters are calculated by repeatedly updating the weight map and the bone rigid body transformation matrix using the Block Coordinate Descent method.

また、3次元のオブジェクトを変形させる別の手法としてブレンドシェイプがある。これは頂点数や頂点間の接続情報が同じで、形状が異なるモデルを複数用意しておき、それぞれの形をブレンドすることで新しい形状をつくり出す手法である。特にフェイシャル(顔の表情)のアニメーションを作成する際に広く用いられている。しかしながらブレンドシェイプはスキニングと比較し、(実時間で動作させるには)多くの計算量を要するという課題があった。そこで、ブレンドシェイプで作成したアニメーションをスキンアニメーションに変換する技術の需要も増大している。   Another method for deforming a three-dimensional object is a blend shape. This is a technique for creating a new shape by preparing a plurality of models having the same number of vertices and connection information between vertices but different shapes and blending each shape. It is widely used especially when creating facial (facial expression) animations. However, the blend shape has a problem that it requires a large amount of calculation (to operate in real time) as compared with skinning. Thus, there is an increasing demand for technology for converting animations created with blend shapes into skin animations.

なお、従来のスキニング処理が記載された文献としては、下記の特許文献1及び2が挙げられ、SSDR及びスキニング分解が記載された非特許文献としては下記の非特許文献1が挙げられる。   In addition, the following patent documents 1 and 2 are mentioned as a literature in which the conventional skinning process was described, and the following non-patent literature 1 is mentioned as a non-patent literature in which SSDR and skinning decomposition | disassembly were described.

特開2002−63595号公報JP 2002-63595 A 特開2004−334662号公報JP 2004-334661 A

Binh Huly Le 、Zhigang Deng著「Smooth Skinning Decomposition with Rigid Bones」、ヒーストン大学(University of Houston)、2012年、[平成28年12月25日検索]、インターネット<HTTP://GRAPHICS.CS.UH.EDU/BLE/PAPERS/2012SA−SSDR/2012_SA_SSDR_PREPRINT.PDFBinh Hul Le, Zhigan Deng, “Smooth Skinning Decomposition with Rigid Bones”, University of Heathton, 2012, [December 25, 2016, TP / S. CS. UH. EDU / BLE / PAPERS / 2012SA-SSDR / 2012_SA_SSDR_PREPRINT. PDF

前述したSSDRによるスキニング分解は可動部分が骨格等によりにより定まっているオブジェクトに対し誤差の少ないスキニングのパラメータを算出することを可能とするが、可動部分が定まっていない大きな変形をするオブジェクト(例えば布等)に対しては精度が落ちてしまうという問題がある。さらに、SSDRはブレンドシェイプで作成したアニメーションは対象としていない。 The above-described skinning decomposition by SSDR makes it possible to calculate a skinning parameter with less error for an object whose movable part is determined by a skeleton or the like. Etc.) has a problem that the accuracy is reduced. Furthermore, SSDR does not target animations created with blend shapes.

また、前述したSSDRによるスキニング分解は設定するボーンの数が増大するにつれて計算量が指数関数的に増大するという問題がある。これはウェイトマップを算出する際に解く2次計画問題のシステム行列の大きさが設定するボーンの数に比例しているためである。特に変形の大きな物体(布や衣服等)のアニメーションを精度高くスキニングで近似するというような、多数のボーンを設定する必要のある場合にこの問題が顕著に表れる。   Further, the above-described skinning decomposition by SSDR has a problem that the amount of calculation increases exponentially as the number of bones to be set increases. This is because the size of the system matrix of the quadratic programming problem solved when calculating the weight map is proportional to the number of bones to be set. In particular, this problem appears remarkably when it is necessary to set a large number of bones, such as approximating an animation of a large deformation object (cloth, clothes, etc.) with high accuracy by skinning.

本発明の第1の目的は、変形の大きな物体のアニメーションやブレンドシェイプにも適用可能なウェイトマップの局所性を考慮したスキニング分解高速化方法及び同スキニング分解高速化プログラムを提供することである。   A first object of the present invention is to provide a skinning decomposition speed-up method and a skinning decomposition speed-up program in consideration of the locality of a weight map that can be applied to animation and blend shapes of objects with large deformations.

本発明の第2の目的は、設定するボーンの数が増大しても計算量が爆発的に増大しないウェイトマップの局所性を考慮したスキニング分解高速化方法及び同スキニング分解高速化プログラムを提供することである。   A second object of the present invention is to provide a skinning decomposition speed-up method and a skinning decomposition speed-up program in consideration of the locality of a weight map in which the amount of calculation does not increase explosively even when the number of bones to be set increases. That is.

前記目的を達成するため本発明は、アニメーションにおける全てのフレームのオブジェクトの頂点座標を記憶しておく頂点ベースアニメーションを、オブジェクトに設定したボーンの姿勢とそれに対応するウェイトマップから形状を計算するスキンアニメーションに、コンピュータを用いて自動的に変換するウェイトマップの局所性を考慮したスキニング分解高速化方法およびプログラムにおいて、
該コンピュータに、
静止状態オブジェクトに対して、動物など可動部分が骨格等により定まっているオブジェクト、布など可動部分が定まっていない大きな変形をするオブジェクト、ブレンドシェイプで作成したオブジェクト、といったオブジェクトの特性に応じて異なる手法を適用してオブジェクトを操作するためのボーンのクラスタを割り当てる[クラスタの割り当て処理工程]と、
該[クラスタの割り当て処理工程]によって設定したボーンのクラスタに対して、近傍のボーンのクラスタのみをクラスタリングして、ウェイトマップ更新演算における2次計画問題のシステム行列の大きさを縮小し一定の大きさに保つ[システム行列縮小処理工程]と、
該[クラスタの割り当て処理工程]によって設定したボーンのクラスタに対して、アニメーション中のオブジェクト間の姿勢類似度を表す評価関数式を導入し、繰り返し動作や静止状態のキーフレームにおけるオブジェクトに対しては1度だけウェイトマップ更新演算対象とすることで、ウェイトマップ更新演算回数を制限する[演算回数低減処理]とを実行させる初期化工程の後、
該初期化工程により静止状態オブジェクトのウェイトマップ更新を行うウェイトマップ更新工程と、
該ウェイトマップ更新工程によりウェイトマップ更新を行ったアニメーション中のオブジェクトのボーンの剛体変換行列更新を行うボーンの剛体変換行列更新工程と、
を繰り返して実行させることを主な特徴とする。
特に、本発明は、第1の目的を達成するため、初期化工程の[クラスタの割り当て処理工程]において対象となるオブジェクトに応じて3通りの手法を使い分ける。
(1)動物など可動部分が骨格等によりにより定まっているオブジェクトに対しては、各クラスタごとに誤差値を計算し、誤差値が閾値以上のクラスタに新たなクラスタを割り当てていく。ただし、はじめはオブジェクト全体を1つのクラスタとする。
(2)布など可動部分が定まっていない大きな変形をするオブジェクトに対しては、最遠点サンプリング法(Farthest Point Sampling)を用いてボーンの位置を決定した結果をもとにクラスタリングを行う。
(3)ブレンドシェイプへの応用では、あらかじめ設定されているボーン(アーティストが設定したもの等)をもとにクラスタリングを行う。
また、本発明は、第2の目的を達成するため、初期化工程において、ウェイトマップの計算量を削減する手法を導入する。このウェイトマップ計算量削減手法は、各ボーンのウェイトマップを求める際に、オブジェクト全体のアニメーションでなく、そのボーンの近傍のみのアニメーションを用いて近似的に解を求める[システム行列縮小工程]と、ウェイトマップを求める際に、全てのフレームのオブジェクトの形状を用いるのではなく、似たような形状のフレームを間引く[演算回数低減処理工程]からなる。
To achieve the above object, the present invention provides a vertex-based animation for storing vertex coordinates of objects of all frames in an animation, and a skin animation for calculating a shape from the posture of a bone set for the object and a corresponding weight map. In addition, in the skinning decomposition acceleration method and program considering the locality of the weight map that is automatically converted using a computer,
To the computer,
Different methods for stationary objects depending on the characteristics of the object, such as objects whose movable parts are determined by the skeleton etc., such as animals, objects that undergo large deformations such as cloth, objects created with blend shapes, etc. Assign a cluster of bones to manipulate the object by applying [Cluster Assignment Process]
Only the neighboring bone clusters are clustered with respect to the bone cluster set in the [cluster assignment processing step], and the size of the system matrix of the quadratic programming problem in the weight map update operation is reduced to a constant size. Keep the [system matrix reduction processing step],
For the bone cluster set in the [Cluster Allocation Processing Step], an evaluation function expression representing the pose similarity between objects in the animation is introduced. After the initialization process of executing [calculation frequency reduction processing] that limits the number of weight map update calculations by setting the weight map update calculation target only once,
A weight map update step of updating the weight map of the stationary object by the initialization step;
A bone rigid body transformation matrix update step for updating a rigid transformation matrix of a bone of an object in the animation in which the weight map is updated by the weight map updating step;
The main feature is that it is repeatedly executed.
In particular, according to the present invention, in order to achieve the first object, three methods are selectively used according to the object to be processed in the [cluster allocation processing step] of the initialization step.
(1) For an object such as an animal whose movable part is determined by a skeleton or the like, an error value is calculated for each cluster, and a new cluster is assigned to a cluster whose error value is equal to or greater than a threshold value. However, the entire object is initially set as one cluster.
(2) Clustering is performed for an object that has a large deformation whose movable part is not determined, such as cloth, based on the result of determining the position of the bone using the farthest point sampling method (Farest Point Sampling).
(3) In blend shape application, clustering is performed based on preset bones (such as those set by an artist).
In order to achieve the second object, the present invention introduces a technique for reducing the amount of calculation of the weight map in the initialization process. In this weight map calculation amount reduction method, when calculating the weight map of each bone, the system matrix reduction process that approximates the solution using only the animation of the neighborhood of the bone instead of the animation of the entire object, When obtaining the weight map, the object shape of all frames is not used, but a frame having a similar shape is thinned out [calculation frequency reduction processing step].

本発明によるウェイトマップの局所性を考慮したスキニング分解高速化方法及び同スキニング分解高速化プログラムは、初期化工程において対象となるオブジェクトに応じて3通りの手法を使い分けることで、幅広い対象のアニメーションに対し高精度なスキニング分解を適用することを可能にする。具体的には、クラスタの割り当てを工夫することにより、動物など可動部分が骨格等によりにより定まっているオブジェクトに対してはSSDRよりも高精度なスキニング分解を可能にする。最遠点サンプリング法(Farthest Point Sampling)を用いることにより、布など可動部分が定まっていない大きな変形をするオブジェクトに対しても高精度なスキニング分解を可能にする。また、あらかじめ設定されているボーンを用いてSSDRを行う機能を導入することで、ブレンドシェイプへの応用も可能にする。   The skinning decomposition acceleration method and the skinning decomposition acceleration program considering the locality of the weight map according to the present invention can be applied to a wide range of animations by properly using three methods according to the object to be processed in the initialization process. On the other hand, it is possible to apply high-precision skinning decomposition. Specifically, by devising the allocation of clusters, skinning decomposition with higher accuracy than SSDR can be performed on an object such as an animal whose movable part is determined by a skeleton or the like. By using the farthest point sampling method (Farest Point Sampling), it is possible to perform highly accurate skinning decomposition even for an object that is deformed largely, such as a cloth, whose movable part is not fixed. In addition, by introducing a function of performing SSDR using a bone set in advance, it is possible to apply to a blend shape.

また、本発明によるウェイトマップの局所性を考慮したスキニング分解高速化方法及び同スキニング分解高速化プログラムは、ウェイトマップの計算量を削減する手法を導入することで、設定するボーンの数が増大しても計算量が爆発的に増大しないスキニング分解を達成する。具体的には、ウェイトマップの局所性を考慮し、各ボーンのウェイトマップを求める際に、オブジェクト全体のアニメーションでなく、そのボーンの近傍のみのアニメーションを用いて近似的に解を求める。これにより、ウェイトマップを算出する際に解くべき2次計画問題のシステム行列を縮小することを可能にし、設定するボーンの数が増大してもシステム行列をほぼ一定の大きさに保つことが出来る。また、ウェイトマップを求める際に、アニメーション中の全てのフレームのオブジェクトの形状を用いるのではなく、似たような形状のフレームを間引く工程を導入する。これにより、ウェイトマップを算出するための演算回数そのものを減らすことを可能とする。この2つのアプローチを組み合わせることで、ウェイトマップにおける計算時間を大幅に短縮し、SSDR全体の計算時間を短縮する。提案手法はSSDRの近似解を求める手法であるため、従来のSSDRと比較すると復元誤差が僅かながら大きくなってしまうが、前述のクラスタの割り当て処理の工夫と併せることで高速化と高精度化の両立を可能とする。   In addition, the skinning decomposition acceleration method and skinning decomposition acceleration program considering the locality of the weight map according to the present invention introduces a method for reducing the amount of calculation of the weight map, thereby increasing the number of bones to be set. However, it achieves skinning decomposition that does not increase explosively. Specifically, considering the locality of the weight map, when obtaining the weight map of each bone, the solution is approximately obtained using the animation only in the vicinity of the bone, not the animation of the entire object. As a result, the system matrix of the quadratic programming problem to be solved when calculating the weight map can be reduced, and the system matrix can be kept substantially constant even when the number of bones to be set increases. . In addition, when obtaining the weight map, a process of thinning out similarly shaped frames is introduced instead of using the object shapes of all the frames in the animation. This makes it possible to reduce the number of calculations for calculating the weight map. By combining these two approaches, the calculation time in the weight map is greatly reduced, and the calculation time of the entire SSDR is reduced. Since the proposed method is a method for obtaining an approximate solution of SSDR, the restoration error becomes slightly larger than that of the conventional SSDR. However, in combination with the above-described cluster allocation process, speedup and accuracy can be improved. Enables compatibility.

本発明によるウェイトマップの局所性を考慮したスキニング分解高速化方法及び同スキニング分解高速化プログラムを実行するコンピュータシステムの構成例を示す図である。It is a figure which shows the structural example of the computer system which performs the skinning decomposition speed-up method and the same skinning decomposition speed-up program which considered the locality of the weight map by this invention. 本実施例によるスキニング分解高速化プログラムの動作を説明するための図である。It is a figure for demonstrating operation | movement of the skinning decomposition | disassembly speed-up program by a present Example. 従来技術によるスキニング分解の概要を説明するための図である。It is a figure for demonstrating the outline | summary of the skinning decomposition | disassembly by a prior art. 本実施例による[ボーンの剛体変換行列更新工程]に用いる演算式を説明するための図である。It is a figure for demonstrating the arithmetic expression used for [the rigid body transformation matrix update process of a bone] by a present Example. 本実施例による[クラスタ割り当て処理工程]の原理を説明するための図である。It is a figure for demonstrating the principle of the [cluster allocation process process] by a present Example. クラスタの割り当ての際に用いるコスト関数の演算式を説明するための図である。It is a figure for demonstrating the computing equation of the cost function used in the case of allocation of a cluster. 本実施例による[ウェイトマップ更新工程]において解くべき2次計画問題を説明するための図である。It is a figure for demonstrating the secondary planning problem which should be solved in the [weight map update process] by a present Example. 本実施例による[システム行列縮小処理工程]による計算量低減工程原理を説明するための図である。It is a figure for demonstrating the calculation amount reduction process principle by the [system matrix reduction process process] by a present Example. 本実施例による[システム行列縮小処理工程]によるシステム行列の変化を説明するための図である。It is a figure for demonstrating the change of the system matrix by the [system matrix reduction process process] by a present Example. 本実施例による[システム行列縮小処理工程]における処理時間短縮効果を説明するための図である。It is a figure for demonstrating the processing time shortening effect in the [system matrix reduction process process] by a present Example. 本実施例による[システム行列縮小処理工程]における誤差の変化を説明するための図である。It is a figure for demonstrating the change of the error in the [system matrix reduction process process] by a present Example. 本実施例による[演算回数低減処理工程]の原理を説明するための図である。It is a figure for demonstrating the principle of [the calculation frequency reduction process process] by a present Example. 本実施例による[演算回数低減処理工程]に用いる演算式及び結果を説明するための図である。It is a figure for demonstrating the arithmetic expression and result which are used for [the calculation frequency reduction process process] by a present Example.

以下、本発明の一実施例によるウェイトマップの局所性を考慮したスキニング分解高速化方法を適用したスキニング分解高速化プログラムの詳細を図面を参照して説明する。   The details of the skinning decomposition acceleration program to which the skinning decomposition acceleration method considering the locality of the weight map according to one embodiment of the present invention is applied will be described below with reference to the drawings.

[構成]
本実施例による本発明によるスキニング分解高速化方法を適用したスキニング分解高速化プログラムを実行するコンピュータシステムのハードウェア構成は、図1に示す如く、本実施例によるスキニング分解高速化プログラム及びOS並びに各種データを記憶するための記憶手段であるメモリ17と、操作者が操作するキーボード等の入力手段である入力部19と、3Dアニメーション等の画像データを表示する表示部18と、静止状態オブジェクトに対してオブジェクトを操作するためのコントロールポイントと呼ばれるボーンを設定するクラスタの割り当て処理部12と、該クラスタの割り当て処理部12によってボーンを設定した複数のクラスタに対して近傍するボーンのクラスタみを集合するクラスタリングを行うシステム行列縮小処理部13と、該システム行列縮小処理部13によってクラスタリングを行ったアニメーション中のオブジェクトの内、繰り返し動作及び静止状態のオブジェクトに対するウェイトマップ更新演算回数を制限する間伐を実行する演算回数低減処理部14と、該システム行列縮小処理部13と該演算回数低減処理部14によって計算量が削減された静止状態オブジェクトのウェイトマップ更新を行うウェイトマップ更新処理部16と、該ウェイトマップ更新処理部16によって更新されたウェイトマップに対してアニメーション中のオブジェクトのボーンの剛体変換行列更新を行うボーンの剛体変換行列更新処理部15と、頂点ベースアニメーション情報を格納する頂点ベースアニメーション情報データベース(DB)10と、スキンアニメーション情報を格納するスキンアニメーション情報データベース(DB)11と、前記各部位を制御するCPU20とを備える。
[Constitution]
As shown in FIG. 1, the hardware configuration of a computer system that executes a skinning decomposition acceleration program to which the skinning decomposition acceleration method according to the present invention according to the present embodiment is applied is shown in FIG. For a memory 17 that is a storage means for storing data, an input section 19 that is an input means such as a keyboard operated by an operator, a display section 18 that displays image data such as 3D animation, and a stationary object A cluster allocation processing unit 12 for setting bones called control points for manipulating objects, and a cluster of neighboring bones for a plurality of clusters for which bones are set by the cluster allocation processing unit 12 System matrix reduction for clustering The number-of-operations reduction processing unit 14 that performs thinning to limit the number of weight map update computations for repetitive motion and stationary objects among the objects in the animation clustered by the system matrix reduction processing unit 13. A weight map update processing unit 16 for updating a weight map of a stationary object whose amount of calculation has been reduced by the system matrix reduction processing unit 13 and the calculation frequency reduction processing unit 14, and an update by the weight map update processing unit 16 A bone rigid transformation matrix update processing unit 15 for updating the rigid transformation matrix of the bone of the object being animated with respect to the weight map, a vertex-based animation information database (DB) 10 for storing vertex-based animation information, and a skin Anime It includes a skin animation information database (DB) 11 for storing ® down information, and CPU20 for controlling the respective portions.

本実施例によるスキニング分解高速化プログラムを実行するコンピュータシステムは、後述する処理を実行することによって、アニメーションにおける全てのフレームのオブジェクトの頂点座標を記憶しておく頂点ベースアニメーションを、オブジェクトに設定したボーンの姿勢とそれに対応するウェイトマップから形状を計算するスキンアニメーションに高精度・高速に変換するスキニング分解を実行する。   The computer system that executes the skinning decomposition acceleration program according to the present embodiment executes a process that will be described later, whereby a vertex-based animation that stores vertex coordinates of objects of all frames in the animation is set in the object. Skinning decomposition is performed to convert the pose and the corresponding weight map into a skin animation that calculates the shape with high accuracy and high speed.

なお図1に示した構成例は一例であり、クラスタの割り当て処理部12等の処理部の動作をメモリ17に格納したプログラムによって実行するように構成することや、他の周辺機器等を接続するように構成しても良い。
[スキニング分解方法の説明]
The configuration example shown in FIG. 1 is merely an example, and the configuration is such that the operation of the processing unit such as the cluster allocation processing unit 12 is executed by a program stored in the memory 17 or other peripheral devices are connected. You may comprise as follows.
[Description of skinning decomposition method]

提案手法は[クラスタの割り当て処理]、[システム行列縮小処理]、[演算回数低減処理]からなる。提案手法はSSDRの初期化工程の拡張であり、従来のフレームワークに容易に組み込むことが出来る。初期化工程以外の処理については、図4に示すBinh Huy及びLe Zhigang Dengによる「Smooth Skinning Decomposition with Rigid Bones」(http://graphics.cs.uh.edu/ble/papers/2012sa−ssdr/2012_SA_SSDR_preprint.pdf)の手法をそのまま適用する。
[クラスタの割り当て処理]
The proposed method consists of [cluster allocation processing], [system matrix reduction processing], and [calculation frequency reduction processing]. The proposed method is an extension of the SSDR initialization process and can be easily incorporated into a conventional framework. For processing other than the initialization step, “Smooth Skinning Decomposition with Rigid Bones” (http: //graphics.cs.uh_ed12_20/sap20_dus/sap20_dus_dr/dr/dap20/Sr20_dus_rap_dr/dap_sr20_dus_dr12 .Pdf) is applied as it is.
[Cluster allocation process]

まず、従来によるスキニング分解は、可動部分が骨格や関節により定まっているオブジェクトである「馬」の場合、図5(a)に示す如く、この「馬」の全体を1つのクラスタ(静止状態のオブジェクトを構成する複数の頂点をひとかたまりの単位)とみなし、クラスタ内で最もコスト関数の値が大きい部分(図中の○部分)に新しいクラスタを割り当て、以下同様に各クラスタ内で最もコスト関数の値が大きい部分に新しいクラスタを割り当てる作業を繰り返し行っていた。この従来手法の場合、既にコスト関数の値が十分小さく良くクラスタリングされている部分にも新たにクラスタが割り当てられ、無駄なクラスタが生じる課題と、クラスタの数は2の累乗の数で変化していくため、ユーザが好みのクラスタの数を設定できないという課題がある。   First, in the conventional skinning decomposition, in the case of a “horse” whose movable part is an object determined by a skeleton or a joint, as shown in FIG. 5A, the entire “horse” is converted into one cluster (stationary state). The multiple vertices that make up the object are considered as a unit, and a new cluster is assigned to the part with the highest cost function value in the cluster (the circle in the figure), and so on. The task of assigning a new cluster to the part with a large value was repeated. In the case of this conventional method, a cluster is newly assigned to a portion where the value of the cost function is already sufficiently small and well clustered, and there is a problem that a useless cluster is generated, and the number of clusters varies depending on the number of powers of 2. Therefore, there is a problem that the user cannot set the number of favorite clusters.

なお、本出願で述べるクラスタリング(clustering)は2つの意味で用いている。「クラスタの割り当て処理」では、似たような動きをする頂点群をひとまとめにした集合のことであり、具体的には初期化工程において、同じ剛体変換行列が与えられる頂点の集合のことを意味する。[システム行列縮小処理]では、あるクラスタとそのクラスタから第2隣接以内に存在するクラスタの集合を意味する(クラスタのクラスタリング)。コスト関数については後述する。   Note that clustering described in this application is used in two meanings. In “cluster assignment processing”, it is a set of vertices that move in a similar manner. Specifically, it means a set of vertices that are given the same rigid transformation matrix in the initialization process. To do. [System matrix reduction processing] means a cluster and a set of clusters existing within the second adjacency from the cluster (cluster clustering). The cost function will be described later.

このため本発明の[クラスタの割り当て処理]においては、図5(b)に示す如く、全てのクラスタに新たなクラスタを割り当てていくのではなく、コスト関数の値が大きいクラスタ(例えば、コスト関数の値が全体のクラスタの上位n分の1以上の部分、図示例では2以上の部分、図中の○部分)にのみ新たなクラスタを割り当てる手法を採用する。即ち、本発明は、はじめは全体を1つのクラスタとみなし、コスト関数の値が上位n分の1のクラスタに新たなクラスタを割り当てていき、クラスタの数が(ユーザが指定した値)×(n/n+1)に達したら1つずつ割り当てる。これにより、本発明は、クラスタを割り当てるべきところにクラスタを割り当てることができ、最終的な復元誤差も減少させることができる。例えば、オブジェクトが馬の場合、従来手法ではボーン(図中の○印)が揺れにより稼働量が大きい尻尾や脚の部分に集中するのに対して、本発明では一部に集中せず、稼働する部分全体にボーンを配置することができる。   Therefore, in the [cluster allocation process] of the present invention, as shown in FIG. 5B, a new cluster is not allocated to all clusters, but a cluster having a large cost function value (for example, a cost function) A method is adopted in which a new cluster is assigned only to a portion of which the value of is higher than 1 / n of the entire cluster, two or more portions in the illustrated example, and a circle portion in the drawing). In other words, the present invention initially considers the whole as one cluster, assigns a new cluster to the cluster with the cost function value of the upper 1 / n, and the number of clusters is (the value specified by the user) × ( n / n + 1) are allocated one by one. As a result, the present invention can assign a cluster where the cluster is to be assigned, and can also reduce the final restoration error. For example, when the object is a horse, the conventional method concentrates the bone (marked with a circle in the figure) on the tail or leg where the amount of operation is large due to shaking, but in the present invention it does not concentrate on the part and operates You can place bones all over the part.

なお、コスト関数とは、Binh Huy Le 及びZhigang Dengが「Robust and Accurate Skeletal Rigging from Mesh Sequences」(URL:http://graphics.cs.uh.edu/ble/papers/2014s−ske/skeleton−draft.pdf)の第3頁「Cluster splitting」の(1a)(1b)として図6に示す演算式であり、本発明ではこのコスト関数をそのまま用いる。このコスト関数は、クラスタ内の頂点がどの程度ボーンの動きに追従しているかを表す関数である。ある頂点のコスト関数の値は、スキニング分解によって算出されたパラメータを用いて再構築した形状と例示データの誤差をフレームごとに足し合わせた値と、初期形状においてその頂点が属するクラスタの重心とその頂点の距離の積として求められる。このコスト関数の値が大きいほど、頂点はそれが属するクラスタとは異なるふるまいをする。そこで本発明においては各クラスタ内でコスト関数の値が最大となる頂点を新たなクラスタを割り当てる箇所の候補とする。   Note that the cost function is “Robust and Accurate Skeletal Rigging from Mesh Sequences” (URL: http: //graphics.cs/u-s/s-u/sd. .Pdf) is an arithmetic expression shown in FIG. 6 as (1a) and (1b) of the third page “Cluster splitting”. In the present invention, this cost function is used as it is. This cost function is a function representing how much the vertices in the cluster follow the movement of the bone. The value of the cost function of a vertex is the sum of the shape reconstructed using the parameters calculated by skinning decomposition and the error of the example data for each frame, the centroid of the cluster to which the vertex belongs in the initial shape, and its It is calculated as the product of vertex distances. The higher the value of this cost function, the more different the vertex will be from the cluster to which it belongs. Therefore, in the present invention, a vertex having the maximum cost function value in each cluster is set as a candidate for a location to which a new cluster is allocated.

前記[クラスタの割り当て処理]は、可動部分が骨格等によりにより定まっているオブジェクトに対するものである。可動部分が定まっていないオブジェクト、例えば風に揺れる布等のオブジェクトの場合、柔らかいオブジェクトをスキンベースのアニメーションに変換する関連研究として下記URLに掲載されたKavanらの研究(以下、SAD:Skinning arbitrary deformations)があり、このKavanらはfarthest point sampling(以下、最遠点サンプリング法という。)を用いてボーンの位置を決定した後、ウェイトマップを設定し、dual quaternionの考え方に基づき、スキニング分解を行う。本発明では、可動部分が定まっていないオブジェクトに対しては、最遠点サンプリング法を用いてボーンの位置を決定した後、SSDRによりウェイトマップとボーンの剛体変換行列を求めることによって、SADやSSDRよりも高精度にやわらかい物体をスキニングベースのアニメーションに変換する。   [Cluster allocation processing] is for an object whose movable part is determined by a skeleton or the like. In the case of an object whose moving part is not defined, for example, an object such as a cloth swaying in the wind, Kavan et al. Kavan et al. Determine the bone position using farest point sampling (hereinafter referred to as the farthest point sampling method), set the weight map, and perform skinning decomposition based on the dual quaternion concept. . In the present invention, for an object for which a movable part has not been determined, the position of the bone is determined using the farthest point sampling method, and then the weight map and the rigid transformation matrix of the bone are obtained by SSDR, so that SAD and SSDR are obtained. Convert soft objects with higher accuracy to skinning-based animations.

<URL>
http://www.tnt.uni−hannover.de/papers/data/815/815_1.pdf
<URL>
http: // www. tnt. uni-hanover. de / papers / data / 815 / 815_1. pdf

<Kavanらの研究>
KAVAN,L.,MCDONNELL,R.,DOBBYN,S.,ZARA,J.,AND O’SULLIVAN,C.2007.Skinning arbitrary deformations. In I3D’07: Proc. of Symp. on Interactive 3D Graphics and Games, 53−60.
<Research by Kavan et al.>
KAVAN, L.A. McDonnell, R .; , DOBBYN, S. , ZARA, J. et al. , AND O'SULLIVAN, C.I. 2007. Skinning arbitrary deformations. In I3D'07: Proc. of Symp. on Interactive 3D Graphics and Games, 53-60.

前記最遠点サンプリング法(farthest point sampling)とは、静止ポーズのオブジェクトのあるサンプルボーンから最も近いサンプルボーンまでの最小距離が最大になるように、サンプルボーンを空間に配置する手法であり、詳細は、URL<https://www.cs.utah.edu/〜ladislav/kavan07skin.arbitrary/kavan07skin.arbitrary.pdf>に記載されている。   The farthest point sampling method is a technique in which sample bones are arranged in space so that the minimum distance from a sample bone having a stationary pose object to the nearest sample bone is maximized. URL <https: // www. cs. utah. edu / ~ ladislav / kavan07 skin. arbitrary / kavan07 skin. arbitrary. pdf>.

ブレンドシェイプが適用されたオブジェクトの場合、あらかじめ設定されているボーン(アーティストが設定したもの等)をもとにクラスタリングを行う。本実施例ではAutodesk Maya(Autodeskは登録商標)のスムーズスキン機能を用いてウェイトマップの初期値を計算しクラスタリングを行った。オブジェクトのボーンと頂点の位置関係からウェイトマップを計算する手法は数多く提案されているため、ここでは各自好みの手法を用いることができる   In the case of an object to which a blend shape is applied, clustering is performed based on preset bones (such as those set by an artist). In this embodiment, the initial value of the weight map was calculated and clustered using the smooth skin function of Autodesk Maya (Autodesk is a registered trademark). There are many methods for calculating weight maps from the positional relationship between the bones and vertices of an object, so you can use your own method here.

このように本実施例による[クラスタの割り当て処理]工程においては、対象となる物体の性質に応じて適切にクラスタの割り当てを行うことによって、幅広い対象のアニメーションに対し高精度なスキニング分解を適用することを可能にする。
[システム行列縮小処理]
As described above, in the [cluster assignment process] according to this embodiment, high-precision skinning decomposition is applied to a wide range of target animations by appropriately assigning clusters according to the properties of the target object. Make it possible.
[System matrix reduction processing]

次いで、スキニング分解のウェイトマップ更新工程(Update Bone−Vertex Weight Map)における2次計画問題のシステム行列の大きさを小さくする[システム行列縮小処理]を説明する。   Next, a description will be given of [system matrix reduction processing] for reducing the size of the system matrix of the quadratic programming problem in the weighting update process (Update Bone-Vertex Weight Map) of skinning decomposition.

まず、従来技術によるウェイトマップ更新工程においては線形ブレンドスキニング法の演算式をスキンウェイト(重み付け)について整理した図7に示す2次計画問題を解く必要がある。この2次計画問題は、制約条件として、スキンウェイトは負にならないこと、各頂点のスキンウェイトは合計すると1になること、各頂点に影響を与えるボーンの数はK(一般的には4)以下であるという条件が加わる。また、この最適化問題は密なシステム行列に対して解く必要がある。   First, in the weight map update process according to the prior art, it is necessary to solve the quadratic programming problem shown in FIG. 7 in which the arithmetic expressions of the linear blend skinning method are arranged in terms of skin weights (weighting). This quadratic programming problem is that the skin weight is not negative as a constraint, the skin weight of each vertex is 1 in total, and the number of bones affecting each vertex is K (generally 4) The following condition is added. Also, this optimization problem needs to be solved for a dense system matrix.

従来手法は、各頂点ごとに全てのボーンに対して2次計画問題を解いてスキンウェイトを算出し、次にスキンウェイトの値が大きい上位4つのボーンを取出し、それらに対して再び2次計画問題を解いて最終的なスキンウェイトを決定する。そのため、2次計画問題のシステム行列の大きさは設定したボーンの数に比例し、設定するボーンの数が大きくなると計算量が爆発的に増大する。   The conventional method solves the quadratic programming problem for all vertices for each vertex to calculate the skin weight, then takes the top four bones with the largest skin weight values, and again quadratic plans for them Solve the problem and determine the final skin weight. For this reason, the size of the system matrix for the quadratic programming problem is proportional to the number of bones set, and the amount of calculation increases explosively as the number of bones to be set increases.

ここで、図8(a)左側に示す如く、人体モデルに設定された各クラスタに対して、そのクラスタがある注目頂点が属するクラスタの第n近傍クラスタであることを表す値を定義することが出来る。図8(b)左側に矢印で示す如く、表面頂点aの動きは値の小さいクラスタのボーンからの影響を強く受け、値の大きいクラスタ(例えば手)のボーンからの影響はあまり受けない(ウェイトマップの局所性)。スキニングではある頂点に影響を与えるボーンの数は通常K(一般的には4)以下であるため、これら値の大きいボーンからの影響は無視することが出来る。   Here, as shown on the left side of FIG. 8A, for each cluster set in the human body model, a value indicating that the cluster is the nth neighboring cluster of the cluster to which the target vertex belongs can be defined. I can do it. As shown by the arrow on the left side of FIG. 8B, the movement of the surface vertex a is strongly influenced by the bone of the cluster having a small value, and is not significantly influenced by the bone of the cluster having a large value (for example, the hand) (weight). Map locality). In skinning, since the number of bones affecting a certain vertex is usually K (generally 4) or less, the influence from bones having a large value can be ignored.

そこで、本発明においてはオブジェクトの各頂点はそこから遠いところにあるボーンの影響は受けないという仮定のもと、スキンウェイトを算出する手法を提案する。手法は[クラスタの割り当て処理]のクラスタリングの結果を用いて各クラスタ間の隣接情報を構築する第1工程と、スキンウェイトを求める頂点が属しているクラスタ番号を取得する第2工程と、該第2工程によりクラスタ番号を取得したクラスタとそのクラスタの第2近傍以内にあるボーンを取得する第3工程と(クラスタのクラスタリング)と、該第3工程により取得したボーンのみを対象としてスキンウェイトを算出する第4工程と、該第4工程で算出したスキンウェイトのうち値が大きい上位4つのボーンを取出しそれらに対して再び2次計画問題を解き最終的なスキンウェイトを決定する第5工程からなる。   Therefore, the present invention proposes a method for calculating the skin weight under the assumption that each vertex of the object is not affected by a bone far from the object. The method includes a first step of constructing adjacent information between the clusters using the clustering result of [cluster assignment processing], a second step of obtaining a cluster number to which a vertex for obtaining a skin weight belongs, A cluster whose cluster number has been acquired in two steps, a third step for acquiring bones within the second neighborhood of the cluster (cluster clustering), and a skin weight for only the bones acquired in the third step are calculated. And a fifth step of taking out the top four bones having the largest value among the skin weights calculated in the fourth step and solving the quadratic programming problem for them again to determine the final skin weight. .

このクラスタのクラスタリングによって、図8(b)左側に示す如く、表面頂点aに対して全てのボーンに対してウェイト演算を行っていた従来手法に対し、図8(b)右側に示す如く、表面頂点aが属するクラスタの第2隣接以内のクラスタのボーンだけに演算対象を制限する。これにより、2次計画問題のシステム行列の大きさを縮小し、設定するボーンの数の依らず一定の大きさに保つことが可能になる。   By clustering this cluster, as shown in the left side of FIG. 8B, the weight calculation is performed on all the bones with respect to the surface vertex a, as shown in the right side of FIG. 8B. The calculation target is limited to only the bones of the cluster within the second adjacency of the cluster to which the vertex a belongs. As a result, the size of the system matrix of the quadratic programming problem can be reduced and kept constant regardless of the number of bones to be set.

このクラスタのクラスタリングによる効果を次に説明する。本クラスタのクラスタリングによれば、システム行列の要素数は、図9(b)左側に示す如く、従来手法ではシステム行列はボーンの数×ボーンの数の大きさであったものを、図9(b)右側に示す如く各頂点の第2近傍以内のボーンの数×第2近傍以内のボーンの数とすることができ、システム行列の大きさを小さくすることができる([システム行列縮小処理])。   The effect of clustering this cluster will be described next. According to the clustering of this cluster, as shown in the left side of FIG. 9B, the number of elements of the system matrix is the number of bones × the number of bones in the conventional method. b) As shown on the right side, the number of bones within the second neighborhood of each vertex × the number of bones within the second neighborhood can be set, and the size of the system matrix can be reduced ([system matrix reduction processing] ).

この[システム行列縮小処理]によって本発明は処理時間を短縮することができ、例えば、オブジェクトが変位の大きい布の場合、図10(a)に示す如く、図右方に示した従来手法ではボーン数が20以上になると急激にウェイト演算時間(ウェイトマップ更新処理演算時間)が上昇するのに対し、本発明では図左方に示す如くボーン数が20以上になってもウェイト演算時間の増加を抑えることができ、これは図10(b)に示した馬に対するウェイト演算時間及び図10(c)に示した人物顔に対するウェイト演算時間に対しても同様である。   By this [system matrix reduction processing], the present invention can shorten the processing time. For example, in the case where the object is a cloth having a large displacement, as shown in FIG. When the number becomes 20 or more, the weight calculation time (weight map update processing calculation time) suddenly increases. However, in the present invention, the weight calculation time increases even when the number of bones exceeds 20 as shown in the left side of the figure. This is the same for the weight calculation time for the horse shown in FIG. 10 (b) and the weight calculation time for the human face shown in FIG. 10 (c).

また、この[システム行列縮小処理]によれば、ウェイトマップ更新後の復元誤差の増加も抑えることができ、例えば、オブジェクトが変位の大きい布の場合、図11(a)に示す如く、図右方に示した従来手法と図左方に示した本発明と比べても復元誤差が増加せず、これは図11(b)に示した馬に対する復元誤差及び図11(c)に示した復元誤差においても同様である。なお、この工程単独で従来手法よりも精度が高くものではないが、近似的に解を求めても復元誤差はほとんど増加せず、クラスタの割り当て処理の工夫とあわせると従来手法と比較して精度が向上する。
[演算回数低減処理]
Further, according to this [system matrix reduction processing], an increase in restoration error after updating the weight map can also be suppressed. For example, when the object is a cloth having a large displacement, as shown in FIG. Compared with the conventional method shown in FIG. 6 and the present invention shown on the left side of the figure, the restoration error does not increase. This is the restoration error for the horse shown in FIG. 11B and the restoration shown in FIG. The same applies to errors. Note that this process alone is not more accurate than the conventional method, but even if an approximate solution is found, the recovery error hardly increases, and when combined with the cluster allocation process, it is more accurate than the conventional method. Will improve.
[Calculation count reduction processing]

次に、本発明は、[システム行列縮小処理]に続いて、2次計画問題を解く回数を低減するための[演算回数低減処理]を採用する。この[演算回数低減処理]は、アニメーション中にはオブジェクトが繰り返し動作をしたり静止しているシーンが存在することに着目し、これら繰り返し動作及び静止状態のキーフレームに対しては1度だけウェイトマップ更新演算を行うことによって演算回数を低減する(間伐処理)。例えば、図12(a)に示す馬が走行するアニメーションにおいては、馬の走行姿勢が類似したフレームが存在することや、図12(b)に示す洋服がなびく形状が類似したフレームが存在する点に着目し、これら繰り返し動作及び静止状態のキーフレームにおけるオブジェクトに対しては1度だけウェイトマップ更新演算対象として選択する。   Next, the present invention employs [calculation number reduction processing] for reducing the number of times of solving the quadratic programming problem following [system matrix reduction processing]. This [number-of-calculations reduction processing] pays attention to the fact that there are scenes in which the object repeatedly moves or is stationary during the animation. Reduce the number of operations by performing map update operations (thinning processing). For example, in the animation in which a horse travels as shown in FIG. 12 (a), there is a frame with a similar running posture of the horse, and there is a frame with a similar shape fluttering clothes as shown in FIG. 12 (b). Focusing on the above, the object in the repetitive motion and stationary key frame is selected as a weight map update calculation target only once.

この間伐処理を行うために本発明は、図13(a)に示す如く、アニメーション中のオブジェクト間の姿勢類似度を表す評価関数式を導入し、例えば図13(b)左端に示す馬の首部分のボーンj1に対して右側に示す時刻tのレスト(静止)ポーズからt=t1への変換を
j1 t1、t=t2への変換を
j1 t2としたとき、
j1 t1とRj1 t2との差の
フロベニウスノルムの値が所定の閾値以下の場合に2つの姿勢が似ていると評価し、この似ている姿勢のキーフレームに対して1度だけウェイトマップ更新演算対象として選択する。
In order to perform this thinning process, the present invention introduces an evaluation function expression representing the posture similarity between objects in the animation as shown in FIG. 13 (a), for example, the neck of the horse shown at the left end of FIG. 13 (b). When the conversion from the rest (stationary) pose at the time t shown on the right side to t = t1 is R j1 t1 and the conversion to t = t2 is R j1 t2 with respect to the partial bone j1,
When the Frobenius norm value of the difference between R j1 t1 and R j1 t2 is equal to or smaller than a predetermined threshold value, the two postures are evaluated to be similar, and the weight map is only once for a key frame having the similar posture. Select as update calculation target.

この間伐処理によって図13(c)に示す如く、例えば馬動作のウェイトマップ更新演算対象となるキーフレーム数48をキーフレーム数11に低減することができる。
[動作]
With this thinning process, as shown in FIG. 13C, for example, the number 48 of key frames that are subject to weight map update calculation for horse motion can be reduced to the number 11 of key frames.
[Operation]

次に本実施形態によるスキニング分解高速化方法を採用したスキニング分解高速化プログラムの動作を説明する。
本実施例によるスキニング分解高速化プログラムは、図1に示すメモリ17に格納され、CPU20が、頂点ベースアニメーション情報をスキンアニメーション情報にスキニング分解するものであって、図2に示す如く、次に述べる各ステップにより初期化工程とスキニング分解工程を実行する。
Next, the operation of the skinning decomposition acceleration program employing the skinning decomposition acceleration method according to the present embodiment will be described.
The skinning decomposition acceleration program according to the present embodiment is stored in the memory 17 shown in FIG. 1, and the CPU 20 performs skinning decomposition on the vertex-based animation information into skin animation information. As shown in FIG. An initialization process and a skinning decomposition process are executed in each step.

前記初期化工程は、次の各ステップにより実行される。
(1)ステップS201:
頂点ベースアニメーション情報DB10から処理対象の頂点ベースアニメーション情報をメモリに読み込むステップ。
(2)ステップS210:
前記ステップS201により読み込んだ頂点ベースアニメーション情報の静止オブジェクトに対して、動物など可動部分が骨格等により定まっているオブジェクト、布など可動部分が定まっていない大きな変形をするオブジェクト、ブレンドシェイプで作成したオブジェクト、といったオブジェクトの特性に応じて異なる手法を適用してオブジェクトを操作するためのボーンのクラスタを割り当てる[クラスタの割り当て処理工程]のステップ。
The initialization process is executed by the following steps.
(1) Step S201:
Reading the vertex-based animation information to be processed from the vertex-based animation information DB 10 into a memory;
(2) Step S210:
Objects whose movable parts such as animals are determined by skeletons, objects such as cloth, which are largely deformed and objects created by blend shapes, with respect to the stationary object of the vertex-based animation information read in step S201 [Cluster allocation processing step] step of assigning bone clusters for manipulating the object by applying different methods depending on the characteristics of the object.

このステップS210は次のステップにより成る。
(3)ステップS211:
オブジェクトにブレンドシェイプが適用されており、アーティストによってボーンが設定されているか否かを判定するステップ。
(4)ステップS212:
前記ステップS211によりオブジェクトにブレンドシェイプが適用されていないと判定したとき、可動部分が骨格等によりにより定まっているオブジェクトであるか、可動部分が定まっていない大きな変形をするオブジェクトであるか否かを判定するステップ。
(5)ステップS213:
前記ステップS212により可動部分が骨格等により定まっているオブジェクトと判定したとき、各クラスタごとに誤差値を計算し、誤差値が閾値以上のクラスタに新たなクラスタを割り当てていくステップ。ただし、はじめはオブジェクト全体を1つのクラスタとする。
(6)ステップS214:
前記ステップS212において可動部分が定まっていない大きな変形をするオブジェクト(布等)と判定したとき、最遠点サンプリング法(Farthest Point Sampling)を用いてボーンの位置を決定した結果をもとにクラスタリングを行うステップ。
(7)ステップS215:
前記ステップS211においてオブジェクトにブレンドシェイプが適用されていると判断したとき、あらかじめ設定されているボーン(アーティストが設定したもの等)をもとにクラスタリングを行うステップ。
Step S210 includes the following steps.
(3) Step S211:
Determining whether a blend shape has been applied to the object and a bone has been set by the artist.
(4) Step S212:
When it is determined in step S211 that the blend shape is not applied to the object, it is determined whether or not the movable part is an object that is determined by a skeleton or the like, or an object that undergoes a large deformation in which the movable part is not determined. Determining.
(5) Step S213:
A step of calculating an error value for each cluster and assigning a new cluster to a cluster having an error value equal to or greater than a threshold when it is determined in step S212 that the movable part is an object determined by a skeleton or the like. However, the entire object is initially set as one cluster.
(6) Step S214:
When it is determined in step S212 that the object (cloth or the like) undergoes a large deformation with no movable part determined, clustering is performed based on the result of determining the bone position using the farthest point sampling method (Farest Point Sampling). Step to perform.
(7) Step S215:
When it is determined in step S211 that a blend shape is applied to the object, clustering is performed based on preset bones (such as those set by an artist).

前記ステップS213値ステップS214、ステップS215に続いて本実施例による初期化工程は次のステップを実行する。
(8)ステップS220:
前記ステップS210により設定したボーンのクラスタに対して、近傍のボーンのクラスタのみをクラスタリングして、ウェイトマップ更新演算における2次計画問題のシステム行列の大きさを縮小し一定の大きさに保つ[システム行列縮小処理工程]のステップ。
(9)ステップS230:
前記ステップS210により設定したボーンのクラスタに対して、アニメーション中のオブジェクト間の姿勢類似度を表す評価関数式を導入し、繰り返し動作や静止状態のキーフレームにおけるオブジェクトに対しては1度だけウェイトマップ更新演算対象とすることで、ウェイトマップ更新演算回数を制限する[演算回数低減処理]のステップ。
Following the step S213 value step S214 and step S215, the initialization process according to this embodiment executes the following steps.
(8) Step S220:
Only the neighboring bone clusters are clustered with respect to the bone clusters set in the step S210, and the size of the system matrix of the quadratic programming problem in the weight map update operation is reduced and kept constant [System Matrix reduction process step].
(9) Step S230:
For the bone cluster set in step S210, an evaluation function formula representing posture similarity between objects in animation is introduced, and the weight map is only once for objects in repetitive motion or stationary key frames. [Calculation number reduction process] step of limiting the number of weight map update calculations by setting an update calculation target.

前記初期化工程に続いて次のスキニング分解工程を実行する。
(10)ステップS240:
前記ステップS230によりウェイトマップ更新演算対象として選択したアニメーション中のオブジェクトのウェイトマップ更新を行うウェイトマップ更新工程のステップ。
(11)ステップS250:
前記ステップS240によりウェイトマップ更新を行ったアニメーション中のオブジェクトのボーンの剛体変換行列更新を行うボーンの剛体変換行列更新工程のステップ。
Following the initialization step, the next skinning decomposition step is performed.
(10) Step S240:
A step of a weight map update step of updating the weight map of the object in the animation selected as the weight map update calculation target in step S230;
(11) Step S250:
A bone rigid transformation matrix updating step for updating the bone rigid transformation matrix of the object bone in the animation in which the weight map is updated in step S240.

(12)ステップS260:
前記ステップS250に続いて、ユーザが設定した回数だけスキニング分解処理を反復して処理を行ったか否かを判定し、ユーザが設定した回数の処理を行っていないと判定したとき、前記該ウェイトマップ更新工程のステップS220に戻るステップ。
(13)ステップS270:
前記ステップS260によりユーザが設定した回数だけスキニング分解処理を反復して処理を行ったと判定したとき、スキンアニメーション情報をスキンアニメーション情報DB11に出力するステップ。
(12) Step S260:
Subsequent to step S250, it is determined whether the skinning decomposition process has been repeated for the number of times set by the user, and the weight map is determined when it is determined that the process has not been performed for the number of times set by the user. Returning to step S220 of the update process.
(13) Step S270:
A step of outputting skin animation information to the skin animation information DB 11 when it is determined in step S260 that the skinning decomposition process has been repeated for the number of times set by the user.

なお、本例においては、ステップS212における可動部分が骨格等によりにより定まっているオブジェクトか可動部分が定まっていない大きな変形をするオブジェクトかの判定は、オペレータが設定して良いし、オブジェクトの外的形状や輪郭によるパターンマッチング等によりCPUが判定しても良い。   In this example, whether the movable part in step S212 is an object determined by the skeleton or the like or an object that undergoes a large deformation in which the movable part is not determined may be set by the operator, The CPU may determine by pattern matching based on the shape or outline.

また、ステップS210におけるオブジェクトを操作するためのボーンの設定をオペレータ操作により行っても良い。   Further, bone setting for operating the object in step S210 may be performed by an operator operation.

さらに、前記ステップS220では、スキンウェイトの更新演算において第2隣接以内にあるボーンを2次計画問題の計算の対象とする例を説明したが、本発明はこれに限られるものではなく、第n隣接以内にあるボーン(nは整数)を2次計画問題の計算の対象とすることや、単純に距離の近いボーンを2次計画問題の計算の対象としても良い。   Furthermore, in the step S220, an example has been described in which bones within the second adjacency are subjected to calculation of the quadratic programming problem in the skin weight update calculation. However, the present invention is not limited to this, and the nth Bones within the adjacent range (n is an integer) may be the target of calculation of the quadratic programming problem, or bones that are close to each other may be simply calculated as the target of calculation of the quadratic programming problem.

10 頂点ベースアニメーション情報データベース(DB)、
11 スキンアニメーション情報データベース(DB)、
12 初期化処理部、14 間伐処理部、15 骨格変換更新処理部、
16 ウェイトマップ更新処理部、17 メモリ、18 表示部、
19 入力部、20 CPU
10 vertex-based animation information database (DB),
11 Skin animation information database (DB),
12 initialization processing unit, 14 thinning processing unit, 15 skeleton conversion update processing unit,
16 weight map update processing unit, 17 memory, 18 display unit,
19 input unit, 20 CPU

前記目的を達成するため本発明は、アニメーションにおける全てのフレームのオブジェクトの頂点座標を記憶しておく頂点ベースアニメーションを、オブジェクトに設定したボーンの姿勢とそれに対応するウェイトマップから形状を計算するスキンアニメーションに、コンピュータを用いて自動的に変換するウェイトマップの局所性を考慮したスキニング分解高速化方法およびプログラムにおいて、
該コンピュータに、
静止状態のオブジェクトに対して、動物など可動部分が骨格等により定まっているオブジェクト、布など可動部分が定まっていない大きな変形をするオブジェクト、ブレンドシェイプで作成したオブジェクト、といったオブジェクトの特性に応じて異なる手法を適用してオブジェクトを操作するためのボーンのクラスタを割り当てる[クラスタの割り当て処理工程]と、
該[クラスタの割り当て処理工程]によって設定したボーンのクラスタに対して、近傍のボーンのクラスタのみをクラスタリングして、ウェイトマップ更新演算における2次計画問題のシステム行列の大きさを縮小し一定の大きさに保つ[システム行列縮小処理工程]と、
該[クラスタの割り当て処理工程]によって設定したボーンのクラスタに対して、アニメーション中のオブジェクト間の姿勢類似度を表す評価関数式を導入し、繰り返し動作や静止状態のキーフレームにおけるオブジェクトに対しては1度だけ2次計画問題を解くウェイトマップ更新演算対象とすることで、ウェイトマップ更新演算回数を制限する[演算回数低減処理]とを実行させる初期化工程の後、
該初期化工程により静止状態オブジェクトのウェイトマップ更新を行うウェイトマップ更新工程と、
該ウェイトマップ更新工程によりウェイトマップ更新を行ったアニメーション中のオブジェクトのボーンの剛体変換行列更新を行うボーンの剛体変換行列更新工程と、
を繰り返して実行させることを主な特徴とする。 特に、本発明は、第1の目的を達成するため、初期化工程の[クラスタの割り当て処理工程]において対象となるオブジェクトに応じて3通りの手法を使い分ける。 (1)動物など可動部分が骨格等によりにより定まっているオブジェクトに対しては、各クラスタごとに誤差値を計算し、誤差値が閾値以上のクラスタに新たなクラスタを割り当てていく。ただし、はじめはオブジェクト全体を1つのクラスタとする。 (2)布など可動部分が定まっていない大きな変形をするオブジェクトに対しては、最遠点サンプリング法(Farthest Point Sampling)を用いてボーンの位置を決定した結果をもとにクラスタリングを行う。 (3)ブレンドシェイプへの応用では、あらかじめ設定されているボーン(アーティストが設定したもの等)をもとにクラスタリングを行う。 また、本発明は、第2の目的を達成するため、初期化工程において、ウェイトマップの計算量を削減する手法を導入する。このウェイトマップ計算量削減手法は、各ボーンのウェイトマップを求める際に、オブジェクト全体のアニメーションでなく、そのボーンの近傍のみのアニメーションを用いて近似的に解を求める[システム行列縮小工程]と、ウェイトマップを求める際に、全てのフレームのオブジェクトの形状を用いるのではなく、似たような形状のフレームを間引く[演算回数低減処理工程]からなる。
To achieve the above object, the present invention provides a vertex-based animation for storing vertex coordinates of objects of all frames in an animation, and a skin animation for calculating a shape from the posture of a bone set for the object and a corresponding weight map. In addition, in the skinning decomposition acceleration method and program considering the locality of the weight map that is automatically converted using a computer,
To the computer,
The object of the stationary state, the movable portion such as an animal varies depending on the characteristics of the object the object, such as that created objects definite by skeleton like, objects to large variations not determined moving parts such as cloth, a blend Shape Assign a cluster of bones for manipulating the object by applying a method [cluster assignment process]
Only the neighboring bone clusters are clustered with respect to the bone cluster set in the [cluster assignment processing step], and the size of the system matrix of the quadratic programming problem in the weight map update operation is reduced to a constant size. Keep the [system matrix reduction processing step],
For the bone cluster set in the [Cluster Allocation Processing Step], an evaluation function expression representing the pose similarity between objects in the animation is introduced. After an initialization process of executing [calculation frequency reduction processing] that limits the number of weight map update calculations by setting the weight map update calculation target to solve the secondary planning problem only once,
A weight map update step of updating the weight map of the stationary object by the initialization step;
A bone rigid body transformation matrix update step for updating a rigid transformation matrix of a bone of an object in the animation in which the weight map is updated by the weight map updating step;
The main feature is that it is repeatedly executed. In particular, according to the present invention, in order to achieve the first object, three methods are selectively used according to the object to be processed in the [cluster allocation processing step] of the initialization step. (1) For an object such as an animal whose movable part is determined by a skeleton or the like, an error value is calculated for each cluster, and a new cluster is assigned to a cluster whose error value is equal to or greater than a threshold value. However, the entire object is initially set as one cluster. (2) Clustering is performed for an object that has a large deformation whose movable part is not determined, such as cloth, based on the result of determining the position of the bone using the farthest point sampling method (Farest Point Sampling). (3) In blend shape application, clustering is performed based on preset bones (such as those set by an artist). In order to achieve the second object, the present invention introduces a technique for reducing the amount of calculation of the weight map in the initialization process. In this weight map calculation amount reduction method, when calculating the weight map of each bone, the system matrix reduction process that approximates the solution using only the animation of the neighborhood of the bone instead of the animation of the entire object, When obtaining the weight map, the object shape of all frames is not used, but a frame having a similar shape is thinned out [calculation frequency reduction processing step].

Claims (8)

アニメーションにおける全てのフレームのオブジェクトの頂点座標を記憶しておく頂点ベースアニメーションを、オブジェクトに設定したボーンの姿勢とそれに対応するウェイトマップから形状を計算するスキンアニメーションに、コンピュータを用いて自動的に変換するウェイトマップの局所性を考慮したスキニング分解高速化方法であって、
該コンピュータに、
前記静止状態オブジェクトに対して、動物など可動部分が骨格等により定まっているオブジェクト、布など可動部分が定まっていない大きな変形をするオブジェクト、ブレンドシェイプで作成したオブジェクト、といったオブジェクトの特性に応じて異なる手法を適用してオブジェクトを操作するためのボーンのクラスタを割り当てる[クラスタの割り当て処理工程]と、
該[クラスタの割り当て処理工程]によって設定したボーンのクラスタに対して、近傍のボーンのクラスタのみをクラスタリングして、ウェイトマップ更新演算における2次計画問題のシステム行列の大きさを縮小し一定の大きさに保つ[システム行列縮小処理工程]と、
該[クラスタの割り当て処理工程]によって設定したボーンのクラスタに対して、アニメーション中のオブジェクト間の姿勢類似度を表す評価関数式を導入し、繰り返し動作や静止状態のキーフレームにおけるオブジェクトに対しては1度だけウェイトマップ更新演算対象とすることで、ウェイトマップ更新演算回数を制限する[演算回数低減処理]とを実行させる初期化工程の後、
該初期化工程により静止状態オブジェクトのウェイトマップ更新を行うウェイトマップ更新工程と、
該ウェイトマップ更新工程によりウェイトマップ更新を行ったアニメーション中のオブジェクトのボーンの剛体変換行列更新を行うボーンの剛体変換行列更新工程と、
を繰り返して実行させるウェイトマップの局所性を考慮したスキニング分解高速化方法。
A vertex-based animation that stores the vertex coordinates of objects in all frames in the animation is automatically converted using a computer to a skin animation that calculates the shape from the posture of the bone set in the object and the corresponding weight map. A skinning decomposition speedup method considering the locality of the weight map to be performed,
To the computer,
Depending on the characteristics of the stationary object, depending on the characteristics of the object, such as an object whose movable part is determined by a skeleton, such as an animal, an object that undergoes a large deformation such as a cloth, an object created by a blend shape, etc. Assign a cluster of bones for manipulating the object by applying a method [cluster assignment process]
Only the neighboring bone clusters are clustered with respect to the bone cluster set in the [cluster assignment processing step], and the size of the system matrix of the quadratic programming problem in the weight map update operation is reduced to a constant size. Keep the [system matrix reduction processing step],
For the bone cluster set in the [Cluster Allocation Processing Step], an evaluation function expression representing the pose similarity between objects in the animation is introduced. After the initialization process of executing [calculation frequency reduction processing] that limits the number of weight map update calculations by setting the weight map update calculation target only once,
A weight map update step of updating the weight map of the stationary object by the initialization step;
A bone rigid body transformation matrix update step for updating a rigid transformation matrix of a bone of an object in the animation in which the weight map is updated by the weight map updating step;
A skinning decomposition acceleration method that takes into account the locality of the weight map that is repeatedly executed.
前記[クラスタの割り当て処理工程]において、
前記コンピュータに、
前記オブジェクトにブレンドシェイプが適用されており、アーティストによってボーンが設定されているかを判断する第1工程と、
該第1工程によりオブジェクトにブレンドシェイプが適用されていると判断したとき、あらかじめ設定されているボーン(アーティストが設定したもの等)をもとにクラスタリングを行う第2工程と、
該第2工程によりオブジェクトにブレンドシェイプが適用されていないと判断したとき、可動部分が骨格等によりにより定まっているオブジェクトであるか、可動部分が定まっていない大きな変形をするオブジェクトであるかを判定する第3工程と、
該第3工程により可動部分が骨格等によりにより定まっているオブジェクトと判定したとき、各クラスタごとに誤差値を計算し、誤差値が閾値以上のクラスタに新たなクラスタを割り当てていく第4工程と、
該第3工程により可動部分が定まっていない大きな変形をするオブジェクトと判定したとき、最遠点サンプリング法を用いてボーンの位置を決定した結果をもとにクラスタリングを行う第5工程と、
を実行させる請求項1に記載のウェイトマップの局所性を考慮したスキニング分解高速化方法。
In the [cluster allocation processing step],
In the computer,
A first step of determining whether a blend shape has been applied to the object and a bone has been set by the artist;
A second step of performing clustering based on preset bones (such as those set by an artist) when it is determined that a blend shape is applied to the object in the first step;
When it is determined that the blend shape is not applied to the object in the second step, it is determined whether the movable part is an object determined by a skeleton or the like, or an object undergoing a large deformation with no movable part determined. A third step to perform,
A fourth step of calculating an error value for each cluster and allocating a new cluster to a cluster having an error value equal to or greater than a threshold when it is determined in the third step that the movable part is an object determined by a skeleton or the like; ,
A fifth step of performing clustering based on the result of determining the position of the bone using the farthest point sampling method when it is determined in the third step that the object is a large deformation whose movable part is not determined;
The skinning decomposition speed-up method in consideration of the locality of the weight map according to claim 1, wherein:
前記[システム行列縮小処理工程]において、
前記コンピュータに、
前記[クラスタの割り当て処理]のクラスタリングの結果を用いて各クラスタ間の隣接情報を構築する第6工程と、
前記スキンウェイトを求める頂点が属しているクラスタ番号を取得する第7工程と、
該第7工程によりクラスタ番号を取得したクラスタとそのクラスタの第2近傍以内にあるボーンを取得する第8工程と(クラスタのクラスタリング)、
該第8工程により取得したボーンのみを対象としてスキンウェイトを算出する第9工程と、
該第9工程で算出したスキンウェイトのうち値が大きい上位4つのボーンを取出しそれらに対して再び2次計画問題を解き最終的なスキンウェイトを決定する第10工程と、
を実行させる請求項1に記載のウェイトマップの局所性を考慮したスキニング分解高速化方法。
In the [system matrix reduction processing step],
In the computer,
A sixth step of constructing adjacent information between the clusters using the clustering result of the [cluster allocation process];
A seventh step of acquiring a cluster number to which the vertex for obtaining the skin weight belongs;
An eighth step of obtaining a cluster whose cluster number has been obtained in the seventh step and a bone within the second neighborhood of the cluster (cluster clustering);
A ninth step of calculating skin weights only for bones acquired in the eighth step;
A tenth step of taking out the top four bones having a large value among the skin weights calculated in the ninth step and solving the quadratic programming problem for them again to determine a final skin weight;
The skinning decomposition speed-up method in consideration of the locality of the weight map according to claim 1, wherein:
前記[演算回数低減処理]において、
前記コンピュータに、
前記[クラスタの割り当て処理工程]によって設定したボーンのクラスタに対して、アニメーション中のオブジェクト間の姿勢類似度を表す評価関数式を導入する第11工程と、
該第11工程で導入した評価関数式を用いて任意の2つのキーフレーム間の評価関数式の値を算出する第12工程と
該第12工程で算出した評価関数式の値が閾値以下であるかを判断する第13工程と、
該第13工程で評価関数式の値が閾値以下であると判断したとき、いずれか片方のキーフレームのみをウェイトマップ更新演算対象とする第14工程と、
を実行させる請求項1に記載のウェイトマップの局所性を考慮したスキニング分解高速化方法。
In the [Calculation frequency reduction process],
In the computer,
An eleventh step of introducing an evaluation function expression representing a posture similarity between objects in the animation to the cluster of bones set in the [cluster allocation processing step];
A twelfth step of calculating a value of an evaluation function equation between any two key frames using the evaluation function equation introduced in the eleventh step; and a value of the evaluation function equation calculated in the twelfth step is equal to or less than a threshold value. A thirteenth step for determining whether or not
A fourteenth step in which, when it is determined in the thirteenth step that the value of the evaluation function formula is equal to or less than a threshold, only one of the key frames is a weight map update calculation target;
The skinning decomposition speed-up method in consideration of the locality of the weight map according to claim 1, wherein:
アニメーションにおける全てのフレームのオブジェクトの頂点座標を記憶しておく頂点ベースアニメーションを、オブジェクトに設定したボーンの姿勢とそれに対応するウェイトマップから形状を計算するスキンアニメーションに、コンピュータを用いて自動的に変換するウェイトマップの局所性を考慮したスキニング分解高速化プログラムであって、
該コンピュータに、
前記静止状態オブジェクトに対して、動物など可動部分が骨格等により定まっているオブジェクト、布など可動部分が定まっていない大きな変形をするオブジェクト、ブレンドシェイプで作成したオブジェクト、といったオブジェクトの特性に応じて異なる手法を適用してオブジェクトを操作するためのボーンのクラスタを割り当てる[クラスタの割り当て処理工程]と、
該[クラスタの割り当て処理工程]によって設定したボーンのクラスタに対して、近傍のボーンのクラスタのみをクラスタリングして、ウェイトマップ更新演算における2次計画問題のシステム行列の大きさを縮小し一定の大きさに保つ[システム行列縮小処理工程]と、
該[クラスタの割り当て処理工程]によって設定したボーンのクラスタに対して、アニメーション中のオブジェクト間の姿勢類似度を表す評価関数式を導入し、繰り返し動作や静止状態のキーフレームにおけるオブジェクトに対しては1度だけウェイトマップ更新演算対象とすることで、ウェイトマップ更新演算回数を制限する[演算回数低減処理]とを実行させる初期化工程の後、
該初期化工程により静止状態オブジェクトのウェイトマップ更新を行うウェイトマップ更新工程と、
該ウェイトマップ更新工程によりウェイトマップ更新を行ったアニメーション中のオブジェクトのボーンの剛体変換行列更新を行うボーンの剛体変換行列更新工程と、
を繰り返して実行させるためのウェイトマップの局所性を考慮したスキニング分解高速化プログラム。
A vertex-based animation that stores the vertex coordinates of objects in all frames in the animation is automatically converted using a computer to a skin animation that calculates the shape from the posture of the bone set in the object and the corresponding weight map. A skinning decomposition acceleration program that takes into account the locality of the weight map to be
To the computer,
Depending on the characteristics of the stationary object, depending on the characteristics of the object, such as an object whose movable part is determined by a skeleton, such as an animal, an object that undergoes a large deformation such as a cloth, an object created by a blend shape, etc. Assign a cluster of bones for manipulating the object by applying a method [cluster assignment process]
Only the neighboring bone clusters are clustered with respect to the bone cluster set in the [cluster assignment processing step], and the size of the system matrix of the quadratic programming problem in the weight map update operation is reduced to a constant size. Keep the [system matrix reduction processing step],
For the bone cluster set in the [Cluster Allocation Processing Step], an evaluation function expression representing the pose similarity between objects in the animation is introduced. After the initialization process of executing [calculation frequency reduction processing] that limits the number of weight map update calculations by setting the weight map update calculation target only once,
A weight map update step of updating the weight map of the stationary object by the initialization step;
A bone rigid body transformation matrix update step for updating a rigid transformation matrix of a bone of an object in the animation in which the weight map is updated by the weight map updating step;
A fast skinning decomposition program that takes into account the locality of the weight map to execute repeatedly.
前記[クラスタの割り当て処理工程]において、
前記コンピュータに、
前記オブジェクトにブレンドシェイプが適用されており、アーティストによってボーンが設定されているかを判断する第1工程と、
該第1工程によりオブジェクトにブレンドシェイプが適用されていると判断したとき、あらかじめ設定されているボーン(アーティストが設定したもの等)をもとにクラスタリングを行う第2工程と、
該第2工程によりオブジェクトにブレンドシェイプが適用されていないと判断したとき、可動部分が骨格等によりにより定まっているオブジェクトであるか、可動部分が定まっていない大きな変形をするオブジェクトであるかを判定する第3工程と、
該第3工程により可動部分が骨格等によりにより定まっているオブジェクトと判定したとき、各クラスタごとに誤差値を計算し、誤差値が閾値以上のクラスタに新たなクラスタを割り当てていく第4工程と、
該第3工程により可動部分が定まっていない大きな変形をするオブジェクトと判定したとき、最遠点サンプリング法を用いてボーンの位置を決定した結果をもとにクラスタリングを行う第5工程と、
を実行させるための請求項5に記載のウェイトマップの局所性を考慮したスキニング分解高速化プログラム。
In the [cluster allocation processing step],
In the computer,
A first step of determining whether a blend shape has been applied to the object and a bone has been set by the artist;
A second step of performing clustering based on preset bones (such as those set by an artist) when it is determined that a blend shape is applied to the object in the first step;
When it is determined that the blend shape is not applied to the object in the second step, it is determined whether the movable part is an object determined by a skeleton or the like, or an object undergoing a large deformation with no movable part determined. A third step to perform,
A fourth step of calculating an error value for each cluster and allocating a new cluster to a cluster having an error value equal to or greater than a threshold when it is determined in the third step that the movable part is an object determined by a skeleton or the like; ,
A fifth step of performing clustering based on the result of determining the position of the bone using the farthest point sampling method when it is determined in the third step that the object is a large deformation whose movable part is not determined;
The skinning decomposition acceleration program in consideration of the locality of the weight map according to claim 5 for executing
前記[システム行列縮小処理工程]において、
前記コンピュータに、
前記[クラスタの割り当て処理]のクラスタリングの結果を用いて各クラスタ間の隣接情報を構築する第6工程と、
前記スキンウェイトを求める頂点が属しているクラスタ番号を取得する第7工程と、
該第7工程によりクラスタ番号を取得したクラスタとそのクラスタの第2近傍以内にあるボーンを取得する第8工程と(クラスタのクラスタリング)、
該第8工程により取得したボーンのみを対象としてスキンウェイトを算出する第9工程と、
該第9工程で算出したスキンウェイトのうち値が大きい上位4つのボーンを取出しそれらに対して再び2次計画問題を解き最終的なスキンウェイトを決定する第10工程と、
を実行させるための請求項5に記載のウェイトマップの局所性を考慮したスキニング分解高速化プログラム。
In the [system matrix reduction processing step],
In the computer,
A sixth step of constructing adjacent information between the clusters using the clustering result of the [cluster allocation process];
A seventh step of acquiring a cluster number to which the vertex for obtaining the skin weight belongs;
An eighth step of obtaining a cluster whose cluster number has been obtained in the seventh step and a bone within the second neighborhood of the cluster (cluster clustering);
A ninth step of calculating skin weights only for bones acquired in the eighth step;
A tenth step of taking out the top four bones having a large value among the skin weights calculated in the ninth step and solving the quadratic programming problem for them again to determine a final skin weight;
The skinning decomposition acceleration program in consideration of the locality of the weight map according to claim 5 for executing
前記[演算回数低減処理]において、
前記コンピュータに、
前記[クラスタの割り当て処理工程]によって設定したボーンのクラスタに対して、アニメーション中のオブジェクト間の姿勢類似度を表す評価関数式を導入する第11工程と、
該第11工程で導入した評価関数式を用いて任意の2つのキーフレーム間の評価関数式の値を算出する第12工程と
該第12工程で算出した評価関数式の値が閾値以下であるかを判断する第13工程と、
該第13工程で評価関数式の値が閾値以下であると判断したとき、いずれか片方のキーフレームのみをウェイトマップ更新演算対象とする第14工程と、
を実行させるための請求項5に記載のウェイトマップの局所性を考慮したスキニング分解高速化プログラム。
In the [Calculation frequency reduction process],
In the computer,
An eleventh step of introducing an evaluation function expression representing a posture similarity between objects in the animation to the cluster of bones set in the [cluster allocation processing step];
A twelfth step of calculating a value of an evaluation function equation between any two key frames using the evaluation function equation introduced in the eleventh step; and a value of the evaluation function equation calculated in the twelfth step is equal to or less than a threshold value. A thirteenth step for determining whether or not
A fourteenth step in which, when it is determined in the thirteenth step that the value of the evaluation function formula is equal to or less than a threshold, only one of the key frames is a weight map update calculation target;
The skinning decomposition acceleration program in consideration of the locality of the weight map according to claim 5 for executing
JP2018040319A 2018-03-07 2018-03-07 Skinning decomposition acceleration method and skinning decomposition acceleration program considering locality of weight map Active JP6487083B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018040319A JP6487083B1 (en) 2018-03-07 2018-03-07 Skinning decomposition acceleration method and skinning decomposition acceleration program considering locality of weight map

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018040319A JP6487083B1 (en) 2018-03-07 2018-03-07 Skinning decomposition acceleration method and skinning decomposition acceleration program considering locality of weight map

Publications (2)

Publication Number Publication Date
JP6487083B1 JP6487083B1 (en) 2019-03-20
JP2019159348A true JP2019159348A (en) 2019-09-19

Family

ID=65802313

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018040319A Active JP6487083B1 (en) 2018-03-07 2018-03-07 Skinning decomposition acceleration method and skinning decomposition acceleration program considering locality of weight map

Country Status (1)

Country Link
JP (1) JP6487083B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7049515B1 (en) * 2021-11-11 2022-04-06 株式会社Cygames Information processing equipment, programs and drawing methods

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111402369B (en) * 2020-03-10 2023-11-03 京东科技控股股份有限公司 Interactive advertisement processing method and device, terminal equipment and storage medium
CN111462071B (en) * 2020-03-30 2023-08-04 浙江核睿医疗科技有限公司 Image processing method and system
CN111696184B (en) * 2020-06-10 2023-08-29 上海米哈游天命科技有限公司 Bone skin fusion determination method, device, equipment and storage medium
JP6933758B1 (en) * 2020-06-29 2021-09-08 株式会社スクウェア・エニックス Information processing program, information processing device and information processing method
CN112509099B (en) * 2020-11-30 2024-02-06 北京百度网讯科技有限公司 Avatar driving method, apparatus, device and storage medium
CN112562043B (en) * 2020-12-08 2023-08-08 北京百度网讯科技有限公司 Image processing method and device and electronic equipment
CN115049767B (en) * 2022-08-17 2022-11-04 深圳泽森软件技术有限责任公司 Animation editing method and device, computer equipment and storage medium
CN115526966B (en) * 2022-10-12 2023-06-30 广州鬼谷八荒信息科技有限公司 Method for realizing virtual character expression display by scheduling five sense organs
CN115661307B (en) * 2022-11-11 2023-03-21 阿里巴巴(中国)有限公司 Clothing animation generation method and device
CN115661310B (en) * 2022-12-22 2023-03-14 海马云(天津)信息技术有限公司 Virtual digital human expression approximation method and device, storage medium and electronic equipment
CN116628289B (en) * 2023-07-25 2023-12-01 泰能天然气有限公司 Heating system operation data processing method and strategy optimization system
CN116958331B (en) * 2023-09-20 2024-01-19 四川蜀天信息技术有限公司 Sound and picture synchronization adjusting method and device and electronic equipment

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004334662A (en) * 2003-05-09 2004-11-25 Namco Ltd Image generative system, program, and information storage medium
JP2011065492A (en) * 2009-09-18 2011-03-31 Konami Digital Entertainment Co Ltd Image processing apparatus, image processing method and program
JP2016110652A (en) * 2014-12-05 2016-06-20 ダッソー システムズDassault Systemes Computer-implemented method for designing avatar with at least one garment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004334662A (en) * 2003-05-09 2004-11-25 Namco Ltd Image generative system, program, and information storage medium
JP2011065492A (en) * 2009-09-18 2011-03-31 Konami Digital Entertainment Co Ltd Image processing apparatus, image processing method and program
JP2016110652A (en) * 2014-12-05 2016-06-20 ダッソー システムズDassault Systemes Computer-implemented method for designing avatar with at least one garment

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
向井 智彦: "線形ブレンドスキニングのための例示ベース補助骨リグ構築", 情報処理学会 論文誌 VOL.56 NO.11, vol. Vol.56 No.11 (Nov. 2015), JPN6018049693, 15 November 2015 (2015-11-15), JP, pages 2141 - 2150, ISSN: 0003940523 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7049515B1 (en) * 2021-11-11 2022-04-06 株式会社Cygames Information processing equipment, programs and drawing methods

Also Published As

Publication number Publication date
JP6487083B1 (en) 2019-03-20

Similar Documents

Publication Publication Date Title
JP6487083B1 (en) Skinning decomposition acceleration method and skinning decomposition acceleration program considering locality of weight map
JP6967090B2 (en) Human body contour key point detection method, image processing method, equipment and devices
US9836879B2 (en) Mesh skinning technique
CN106846499B (en) Virtual model generation method and device
CN111033560A (en) Information processing device, model data creation program, and model data creation method
CN112102480B (en) Image data processing method, apparatus, device and medium
KR20230004837A (en) Generative nonlinear human shape model
CN112395786A (en) Automatic stacking of clothing pattern
Iwamoto et al. Multi‐layer Lattice Model for Real‐Time Dynamic Character Deformation
WO2023185703A1 (en) Motion control method, apparatus and device for virtual character, and storage medium
CN114998490B (en) Virtual object generation method, device, equipment and storage medium
US20190057167A1 (en) Method and module for transforming a shape of an object
Mousas et al. Evaluating the covariance matrix constraints for data-driven statistical human motion reconstruction
CN110176063B (en) Clothing deformation method based on human body Laplace deformation
CN114677572A (en) Object description parameter generation method and deep learning model training method
Pan et al. Automatic skinning and weight retargeting of articulated characters using extended position-based dynamics
CN108805876A (en) Using biomechanical model magnetic resonance and ultrasonoscopy can deformable registration
Chen et al. Skeleton-driven surface deformation through lattices for real-time character animation
CN113811923A (en) Combined three-dimensional deformation model
Capell et al. Physically based rigging for deformable characters
CN110148202B (en) Method, apparatus, device and storage medium for generating image
Chen et al. A data-driven approach to efficient character articulation
JP7100842B2 (en) Model analysis device, model analysis method, and model analysis program
CN107316343A (en) A kind of model treatment method and apparatus based on data-driven
Ganellari et al. Fast many-core solvers for the Eikonal equations in cardiovascular simulations

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180307

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181219

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190118

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: 20190212

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190220

R150 Certificate of patent or registration of utility model

Ref document number: 6487083

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