●トランスフォームの乗算について1
オブジェクトのトランスフォームに、
自身の反転したトランスフォームを右から掛けると、
原点に移動し、スケールと回転はリセットされる。
↓ $Teapot001.transform = $Teapot001.transform * inverse $Teapot001.transform
●トランスフォームの乗算について2
回転させていないオブジェクトAが原点にある。そのAのトランスフォームに、
原点から離れたオブジェクトBのトランスフォームを右から掛けると、
オブジェクトAは、オブジェクトBに位置と向きが揃う。スケールは乗算される。
例
ティーポット赤と緑のスケールは[1,1,2]( [X軸,Y軸,Z軸] )
↓ $TeapotRed.transform = $TeapotRed.transform * $TeapotGreen.transform
結果:ティーポット赤のスケールは[1,1,4]になる。
※乗算する順番は重要。
基準にしたいオブジェクトのトランスフォームは右から(後から)掛ける。
スケールを編集している場合は、計算の結果が意図通りにならなくなる。
スケールが歪む例1:
○:ティーポット緑のトランスフォームを右から掛けた
×:ティーポット緑のトランスフォームを左から掛けた
○:ティーポット赤のスケールは[1,1,4]
×:ティーポット赤のスケールは[1,1.08118,3.69966]
スケールが歪む例2:
ティーポット青はローカルX方向、
ティーポット緑はローカルZ方向にスケールを編集してある。
↓初期状態
↓初期状態から、適切な乗算
$TeapotBlue.transform = $TeapotBlue.transform * $TeapotGreen.transform
ティーポット緑のスケールが[1,1,2]、
ティーポット青のスケールが[2,1,1]の場合
計算したあと、ティーポット青のスケールは[2,1,2]になる。
↓初期状態から、適切でない乗算
$TeapotBlue.transform = $TeapotGreen.transform * $TeapotBlue.transform
歪んでしまった
●Autodesk 3dsMax公式ヘルプへのリンク
Matrix3 値