3DCGbook

映像プロダクションに所属しています。主に毎日のアウトプットを配信していこうと思います。

弧度法と度数法

自分がゲーム業界にいた頃にプログラマに「ラジアン単位で…」とか言われて、
「は?んだそれ?」となったのを今でも覚えています。

さて、Mayaと何が関係あるか…ということから。
まずMayaのデフォルトは度数法(degrees)です。
もう一つ弧度法(radians)があります。
簡単に言うとMayaには、角度の単位が二つありますよってことです。

さて、
f:id:blendcomp:20150210012843j:plain
このノード、見たことありますでしょうか。

Rotate値を使って何かを動かす時にこのノードが作られることが多いです。
単位を変換する時に作られます。
これは、radianからdegreeに一度変換しています。
AnimCurveUAノードのinputにはdouble型しか入らないので変換する必要があります。

さて、このunitConversionノードの中身を見てみましょう。
unitConversion1.conversionFactor には 57.295779513082323 という数値が入っています。
一見謎ですね。

ここで弧度法(radians)というものが出てきます。
ラジアン - Wikipedia内に、

1ラジアンは度数法では約57.295 78° (180°/π) に相当する。

という記載がありますね。これのことです。

例えば、

1.driverに60度入ってるとします。60度をラジアンにするには、60に(π/180.0)を掛けます。
PI = 3.1415926535897932
60.0*(PI/180.0)
# Result: 1.0471975511965976 # 
2.さっきの答えをconversionFactorの数値と掛けます。
1.0471975511965976 * 57.295779513082323
# Result: 59.999999999999993 # 

このようにほぼ60度という結果が返ってきました。
Mayaは見えないところで、単位を合わせる為にノードを作って繋いでいます。

このunitConversionを作らない方法は、常にradian単位で作業すれば作られません。
が、そんな設定でアニメーションをつけられる人はいるわけもなく…いるかもしれませんが(笑)
一応、PreferencesのAugularからradiansにもできるので神様はチャレンジしてみてください。