| On this page | |
| Since | 21.0 |
ローカル空間の静止行列と一連の変換パラメータから、トランスフォーム合成ロジックを用いてローカル空間行列を構築します。 これは、静止ポーズを基準としたトランスフォームのアニメーションにおいて直感的な手法です。
ローカルの静止行列は、オブジェクトの初期の位置、向き、サイズを表現します。 従来の行列乗算を用いて静止位置を基準にオブジェクトをアニメーションさせると、特に静止トランスフォームのスケールに関して、予期しない、あるいは、望ましくない結果が生じる可能性があります。
-
静止行列にスケールが適用されている場合、オブジェクトのスケールに加えて、オブジェクトの位置が変化する可能性があります。オブジェクトが以前にアニメーションされていた場合、これだと単にオブジェクトのサイズを変更するだけの意図であったにもかかわらず、そのアニメーションの結果が変わってしまいます。
-
静止行列に不均一なスケールが適用されている場合、意図しないシアーが生じ、オブジェクトが回転した時に形状が変化する可能性があります。
トランスフォームモード ¶
このノードには、トランスフォームパラメータとローカル空間の静止行列を合成するための“モード”が3つ用意されています:
モード |
トランスフォームの挙動 |
|---|---|
0 |
Pre-transform local = scale * restlocal.scale * (shear + restlocal.shear) *
rotate * translate * restlocal.rotate * restlocal.translate
このモードは、従来の親子トランスフォーム(コンポーネントパラメータが子を表現し、静止行列が親を表現します)と同様の挙動を示しますが、静止行列のスケールとシアーは、パラメータのローカル空間で適用されます。 |
1 |
Post-transform local = restlocal.scale * scale * (restlocal.shear + shear) *
restlocal.rotate * rotate * restlocal.translate * translate
まず最初に静止トランスフォームが適用され、その後に、回転パラメータと移動パラメータが、その静止トランスフォームの位置をピボットポイントとして適用されます(事実上、回転と移動が静止トランスフォームの上に重ね合わせるように処理されます)。 スケールパラメータおよびシアーパラメータは、“Pre-transform”モードと同様に、ローカルトランスフォームのスケールおよびシアーと合成されます。 |
2 |
Override Transform local = scale * shear * rotate * translate パラメータコンポーネントからトランスフォームを形成して、静止行列を無視します。 |
入力 ¶
restlocal:
Matrix4
トランスフォームパラメータと合成するローカル空間の静止行列。
t:
Vector3
移動。
r:
Vector3
オイラー角で表現された回転(単位は度)。
s:
Vector3
スケール。
sh:
Vector3
シアー係数(XY、XZ、YZ).
p:
Vector3
トランスフォームパラメータを適用するピボットの位置。 デフォルトは原点です。
pr:
Vector3
トランスフォームパラメータを適用するピボットの向き(XYZのオイラー角で、単位は度)。 デフォルトは回転なしです。
xord:
Int
トランスフォームパラメータの適用順。 デフォルトは、スケール → 回転 → 移動です。 トランスフォーム順を参照してください。
rord:
Int
回転順。 デフォルトは、X → Y → Zです。 回転順を参照してください。
mode:
Int
トランスフォームモード。 これは、トランスフォームパラメータと静止行列の合成方法に影響します。 デフォルトは“Pre-Transform”です。
出力 ¶
localxform:
Matrix4
合成された出力トランスフォーム。
| See also |