[3dsMax]スクリプトコントローラーで回転がおかしくなる。

▼問題
式の欄に角度を直接入力したり、回転を割り当てた変数を入力したら、
やけに高速回転して、意図した動作にならない。

▼原因
角度の単位。
式の欄で角度を扱う場合の単位はラジアン。

▼解決方法
角度をラジアンに変換する。

▼解説
スクリプトコントローラーで、回転トラックを取得すると、角度の単位はディグリー(度)
Y軸中心に45度回転したオブジェクトの、Y回転値を取得すると、45度を取得する。

スクリプトコントローラーの式欄で回転を扱う場合の単位はラジアン(弧度)

スクリプトコントローラーの式欄で角度を入力する際、ディグリーはラジアンに変換する必要がある。

変換するにはdegToRad()関数を使う。
(degree to radian。ディグリーをラジアンにする。)

degToRad(ラジアンに変換したい角度)

degToRad(45)と入力すれば、45度がラジアンに変換され、0.785398になる。

▼具体例
スクリプトコントローラーを使用し、
ティーポット1をZ回転する、とティーポット2もZ回転するようにする。

▼手順
ティーポットを二つ制作
ティーポット1(青)、ティーポット2(茶)

ティーポット2のZ回転に、実数スクリプトコントローラーを割り当てる。


スクリプトコントローラーでz_kaitenという変数を制作。


変数z_kaitenに、ティーポット1のZ回転トラックを割り当てる。


スクリプトコントローラーの式の欄に、degToRad(z_kaiten)と入力して評価ボタンを押す。

これで、ティーポット1をZ回転させると、ティーポット2もZ回転する。

▼※-degToRad(z_kaiten)にすると、ティーポット2は逆回転する。

-degToRad(z_kaiten)*2と入力すれば、ティーポット2の回転はティーポット1の倍になる。

※スクリプトコントローラーで取得しているティーポット1のZ回転値を見たいときは、
式欄にprint z_kaitenと入力し、評価ボタンを押す。

これで、ティーポット1をZ回転させると、
左下にあるMAXScript ミニリスナーに数値が表示される。
回転値がディグリーで取得されているのが確認できる。
(MAXScriptリスナーからも値を見ることが出来る。)

※ラジアンをディグリーにするには、radToDeg()関数を使う。

広告

コメントを残す

メールアドレスが公開されることはありません。

スパム対策用の計算式と画像認証です。↓の欄を入力しないとコメントが出来ません。 *

*