$teapot001.transform = $box001.transform
ティーポットの変換 を ボックスの変換に合わせる。
変換とは、位置・回転・スケールの事。
位置だけ合わせるには、transformの部分をpos(positionの省略)にする。
回転だけ合わせるには、transformの部分をrotationにする。
※この例ではティーポットが原点に居るので 意図通り回転しているけど、
原点に居ないと移動もしてしまう。詳しくは↓の記事へ
[3dsMax]rotationについて
スケールだけ合わせるには、transformの部分をscaleにする。
動画で解説されていてとてもわかりやすいです。
参考にさせていただいております。ありがとうございます。
ところで、回転の部分で一軸のみ回転を合わせるという事も可能でしょうか?
rotation.x等で実行対応可能だと思って試していたのですがどうもうまくいきません。
もしお手数で無ければお返事いただけますと助かります。
m4mさん、コメントありがとうございます。
移動と違い、回転は理解し難い箇所ですね。
簡単なシーンで説明します。
ティーポットを二つ作り、(Teapot001、Teapot002)
ティーポット1を任意に回転させてから、↓のスクリプトを実行してください。
————————————————-
–↓ティーポット1の回転を取得(Quat値)
kaiten = $’Teapot001′.rotation
–↓取得したQuat値をEulerAngles値に変換
henkan = kaiten as eulerangles
–↓Z軸は取得した値を使い、他は0にしたEulerAngles値を作成
atai = eulerAngles 0 0 -henkan.z
–↓ティーポット2の回転をゼロに設定
$’Teapot002′.rotation = (quat 0 0 0 0)
–↓rotateメソッドを使い、取得したティーポット1のZ軸の分だけ、ティーポット2を回転
rotate $’Teapot002′ atai
————————————————-
↑の書き方で、Z軸のみ回転をあわせる事が出来ると思います。
●X軸のみの場合は、該当箇所を↓の様に書き換えてください。
atai = eulerAngles -henkan.x 0 0
●Y軸のみの場合は、該当箇所を↓の様に書き換えてください。
atai = eulerAngles 0 -henkan.y 0
●回転について参考になるMAXScript公式ヘルプへのリンク
・標準変換の適用
http://help.autodesk.com/cloudhelp/2016/JPN/MAXScript-Help/files/GUID-308EA213-59FA-4F1B-AF40-FC7E658F5DD2.htm
・Quat値
http://help.autodesk.com/cloudhelp/2016/JPN/MAXScript-Help/files/GUID-C42F8CCE-CE31-49B4-9D5A-65C07D9F33FD.htm
・EulerAngles値
http://help.autodesk.com/cloudhelp/2016/JPN/MAXScript-Help/files/GUID-87BB6468-79E2-4FA2-9BAB-42E427219C4F.htm
ありがとうございます。
試してみましたところ出来ました。
本当に助かりました。
回転は難しいです。
なかなか思うようにいきません。