Dem Bones - © Electronic Arts 2019
このツールは、Smooth Skinning Decomposition with Rigid Bones(リジッドボーンを使った滑らかなスキング分解)の実装で、サンプルメッシュセットからボーントランスフォームを使ってLinear Blend Skinning (LBS)を抽出する自動化アルゴリズムです。 Skinning Decompositionは色々なタスクで使用することができます:
-
アニメーションメッシュシーケンス(例えば、ジオメトリキャッシュ)を、有名なゲームエンジンで再生可能なLBSに変換する。
-
シェイプとスケルトンポーズからスキニングウェイトを算出する。例えば、ブレンドシェイプをLBSに変換するなど。
-
スキニングウェイトが与えられたメッシュアニメーションからボーントランスフォームを算出する。
Note
このツールは、クリーンな入力データのみを扱いします。つまり、一枚に繋がったジオメトリのみ。
このツールが処理にすごく時間がかかる場合、おそらく解を求めるのに行き詰まっています。これを修正するには、Min Non-Zero Weights
パラメータを1に設定します。
パラメータ ¶
Convert and Export
Skinning Decomposition(スキニング分解)を開始し、その結果をディスクにエクスポートします。
Export File
出力されるFBXの保存に使用するパス。
Frame Range
ここには、Skinning Decomposition(スキニング分解)に使用するフレーム範囲を指定します。
Bind Pose Frame
ここには、出力されるリグのバインド/静止ポーズとして使用するフレームを指定します。
Bones ¶
Max Number of Bones
生成されるボーンの最大の数。実際に出力される数は、変換中にもっと効率的な解が求まることによって、ここで指定した数以下に収まります。
Solve Iterations ¶
Global Iterations
変換中に処理されるグローバルの反復回数。 これは、計算しなければならない最適化の数のスカラーとして機能します。シーンが複雑なほど、この回数を上げてください。
Error Tolerance
このアルゴリズムは、反復中に小さくなる誤差を追跡し、その減少幅がこの閾値未満であれば、カウンターを増分します。 これによって、Patienceパラメータで指定された反復回数の後に何も改善が見られなかった場合、アルゴリズムが早期に最適化を停止することができます。
Patience
Error Toleranceパラメータで指定された閾値よりも段々と良くなっていることの改善が見られなかった時に、早期で反復を停止する前に待つべき反復回数。
Splitting Iterations
初期化時に適用されるクラスタリング更新の反復回数。通常では調整する必要はありません。
Transform Iterations
グローバルの反復毎のボーントランスフォーム更新の反復回数。DemBonesは、各ウェイト更新の後に複数のボーントランスフォーム更新を実行します。
Soft Constraints ¶
Translations Affinity
このソフト拘束は、ボーン移動をそのボーンでサポートされているパッチの重心に追従させます。 たいていのユースケースでは、0の値(拘束なし)が必要です。 上限値は、数値的な安定性と最適化が収束できるのかどうかによって異なります。
P-Norm
上記のパッチの重心を計算する際に使用される指数。 値が大きいほど、ボーンの重心は最大ウェイトを持つ頂点に近づきます(soft-max)。
Weights ¶
Weights Iterations
Dem Bonesは、各ボーン更新の後に複数のウェイト更新を実行します。 これらの反復は非常に処理が重く、通常では1から5の反復回数で良い結果が得られます。 この回数を上げるよりもGlobal Iterationsを上げる方が良いです。
Smoothness
生成されるソフト拘束のウェイトの滑らかさを制御します。通常では変更する必要はありません。
Step Size
Weights Smoothnessソフト拘束のステップサイズ。これは、ウェイトに対するImplicit Laplacianスムージングのステップサイズです。
Min Non-Zero Weights
変換を成功させるのに必須となる頂点毎の非ゼロウェイトの数値を指定します。