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