with redraw off( with animate on( for kyuusu in selection do( for i=1 to 36 do( slidertime = i iti = kyuusu.pos kaiten = quat 10 kyuusu.dir kaiten = kaiten as matrix3 kyuusu.transform *= kaiten kyuusu.pos = iti ) ) ) )
●使い方
回転させたいオブジェクトを選択して、↑のスクリプトを実行。
※コピペはMAXScriptリスナーではなく、MAXScriptエディタへ。
リスナーでは複数行のコードを実行できない。
●処理内容
選択したオブジェクトそれぞれのローカルZ軸を中心にして、
10度の回転をフレーム毎に行う。
●説明
・ with redraw off():
このカッコ内のスクリプト実行中はビューが更新されない。
・ with animate on():
このカッコ内のスクリプトによる変更はキーが打たれる。
・ for:
forループ文
・ iti = kyuusu.pos:
変数itiにオブジェクトの位置を入れる。
・ kaiten = quat 10 kyuusu.dir:
オブジェクトのローカルZを軸とした10度の回転を、
quat値で変数kaitenに入れる。
・ kaiten = kaiten as matrix3
変数kaitenに入ったquat値をmatrix3値に変換して、
変数kaitenに入れる。
・ kyuusu.transform *= kaiten
オブジェクトのトランスフォーム(matrix3値)に、
変数kaitenに入ったmatrix3値を乗算する。
・ kyuusu.pos = iti:
オブジェクトの位置を、変数itiに入った値にする。
●3dsMax公式ヘルプへのリンク
スクリプトでのプログラム フロー制御
For ループ
ノード変換プロパティの使い方
Quat 値
Matrix3 値