Since | 17.0 |
matrix [] solvefbik(matrix xforms[], int parents[], dict jointoptions[], matrix targetxforms[], int targets[], dict targetoptions[], int iters, float tolerance, int pinroot)
matrix [] solvefbik(matrix xforms[], int parents[], int targets[], matrix targetxforms[], int iters)
matrix [] solvefbik(matrix xforms[], int parents[], int targets[], matrix targetxforms[], int iters, float tolerance, int pinroot)
matrix [] solvefbik(matrix xforms[], int parents[], int targets[], matrix targetxforms[], int iters, float tolerance, int pinroot, float targetweights[], int targetpriorities[], int targetdepths[])
matrix [] solvefbik(matrix xforms[], int parents[], int targets[], matrix targetxforms[], int iters, float tolerance, int pinroot, float targetweights[], int targetpriorities[], int targetdepths[], int targettypes[], matrix targetoffsets[])
matrix [] solvefbik(matrix xforms[], int parents[], int targets[], matrix targetxforms[], int iters, float tolerance, int pinroot, float targetweights[], int targetpriorities[], int targetdepths[], matrix goalxforms[], vector4 constrainedxforms[], vector jointlimits[])
matrix [] solvefbik(matrix xforms[], int parents[], int targets[], matrix targetxforms[], int iters, float tolerance, int pinroot, float targetweights[], int targetpriorities[], int targetdepths[], int targettypes[], matrix targetoffsets[], matrix goalxforms[], vector4 constrainedxforms[], vector jointlimits[])
以下の場合は空っぽの配列を返します:
-
xforms
がparents
と同じサイズでない。 -
targets
がtargetxforms
と同じサイズでない。 -
goalxforms
、constrainedxforms
、jointlimits
の配列が空っぽでないものの、xforms
と同じサイズでない。
goalxforms
、constrainedxforms
、jointlimits
のパラメータは、Agent Configure Joints SOPで生成される形式のものを指定してください。
xforms
計算されるリグ内のすべてのトランスフォームのワールドトランスフォーム。
parents
各トランスフォームの親トランスフォームインデックス。-1の値はルートを示します。
jointoptions
ジョイントのオプションパラメータを指定します。有効なキーは以下のとおりです:
limit_goalxform
親トランスフォームの空間で円錐の位置と向きを指定したmatrix
。
Agent Configure Jointsで生成されたアトリビュートからこれを設定することができます。
limit_constrainedxform
子トランスフォームの空間でツイスト軸、Up軸、Out軸の向きを指定したvector4
(クォータニオン)。
Agent Configure Jointsで生成されたアトリビュートからこれを設定することができます。
limit_angles
各軸の最大回転角度(単位は度)を指定したvector
。
Agent Configure Jointsで生成されたアトリビュートからこれを設定することができます。
targets
スケルトン内のエンドエフェクターのトランスフォームインデックスのリスト。
targetxforms
エンドエフェクターのターゲットワールドトランスフォームのリスト。このリストの順番はtargets
と同じです。
targetoptions
ターゲットのオプションパラメータを指定します。有効なキーは以下のとおりです:
weight
ターゲットの重要度を指定したfloat
。
複数のターゲットが同じ優先度の時は、相対ウェイトが高いターゲットの方へ優先されて到達するようになります。
デフォルト値は1.0
です。
priority
ターゲットの優先度を指定したint
。
優先度の低いターゲットほど優先度の高いターゲットに干渉することができません。
例えば、優先度を使用することで、スケルトンの上半身を操作する時に足を着地させたままにすることができます。
デフォルト値は0
です。
depth
ゴールトランスフォームに到達させるために調整可能な親ジョイントの数を指定したint
。
マイナスのdepth
は、チェーン全体が影響を受けることを意味します。
デフォルト値は-1
です。
target_type
エンドエフェクターがターゲットトランスフォームの位置や向きに合わせる方法を指定したint
。
0
の値(デフォルト)は位置のみのターゲットを示し、1
は向きのみのターゲットを示し、2
は位置と向きの両方に合わせます。
3
の値はスケルトンの重心を制御するターゲットを示します(targets
のトランスフォームインデックスは使用されません)。
Only one center of mass target can be provided.
joint_offset
ソルバがゴールトランスフォームに整列させようとするトランスフォームを生成するためにジョイントトランスフォームと組み合わせるローカル空間トランスフォームを指定したmatrix
。
これを使用することで、ジョイントからオフセットしたところ(例えば、ボーンの終端)にターゲットを配置することができます。
iters
実行する反復回数の最大数。
tolerance
パラメータを使用すれば、ソルバを早く終了させることができます。
tolerance
収束をチェックする時に使用する許容値。デフォルトは1e-5です。
位置がこの許容値内に収束すれば、アルゴリズムが停止します。
0にすると、ソルバは常にiters
の反復回数をそのまま実行します。
pinroot
ルートを移動させずに開始位置にピン留めするかどうか。 これは、例えば、エージェントのスケルトンのサブセットを計算する時に役立ちます。 デフォルトは0(オフ)です。
targetweights
各エンドエフェクターのウェイトを含んだリスト。このリストの順番はtargets
と同じです。
複数の子ジョイントを持ったジョイントに関しては、正規化されたウェイトが位置の決定に使用されます。
つまり、他のターゲットよりもウェイトの高いターゲットの方に到達するようになります。
デフォルトのウェイトは1.0です。
targetpriorities
各エンドエフェクターの優先度レベルを含んだリスト。このリストの順番はtargets
と同じです。
低い優先度レベルのターゲットほど、高い優先度レベルのターゲットへの影響が弱くなります。
例えば、優先度レベルを使用することで、足のターゲットを常に最優先させると同時に上半身のターゲットの相対ウェイトを制御することができます。
デフォルトの優先度は0です(つまり、すべてのターゲットの優先度は同じです)。
targetdepths
各エンドエフェクターに対して、ターゲットトランスフォームに到達できるように調整可能なチェーン内のターゲットよりも上流のジョイント数を指定します。 マイナスの値を使用することで、ターゲットより上流のすべてのジョイントが影響を受けるように指定することができます。 デフォルトの深度は-1です。
targettypes
各エンドエフェクターのターゲットタイプを含んだリスト。このリストの順番はtargets
と同じです。
このターゲットタイプを使用することで、エンドエフェクターがターゲットトランスフォーム(targetxforms
)の位置または向きに合わせる方法を指定することができます。
0
の値は、位置のみのターゲットを意味し、1
の値は、向きのみのターゲットを意味し、2
(デフォルト)の値は位置と向きの両方に合わせます。
targetoffsets
各エンドエフェクターの追加ローカル空間トランスフォームを含んだリスト。このリストの順番はtargets
と同じです。
このトランスフォームは、エンドエフェクターのジョイントトランスフォームと組み合わさって、ソルバがターゲットトランスフォームに整列させようとするトランスフォームを生成します。
これを使用することで、ジョイントからのオフセット位置(例えば、ボーンの端)にターゲットを配置することができます。
goalxforms
Agent Configure Jointsで生成されるような一部のジョイント拘束。 空っぽの配列は、ジョイント拘束がないことを示します。
constrainedxforms
Agent Configure Jointsで生成されるような一部のジョイント拘束。 空っぽの配列は、ジョイント拘束がないことを示します。
jointlimits
Agent Configure Jointsで生成されるような一部のジョイント拘束。 空っぽの配列は、ジョイント拘束がないことを示します。
See also | |
crowds | |
solve | |
transform |