flash
maya

MAYAの"トランスフォームのフリーズ"をFlashに置き換えて理解する

More than 1 year has passed since last update.

Flash のアニメーターとして活躍されていた方の中には、最近では MAYA のアニメーターとして活躍している方も多いと聞きます。自分はエンジニアなのですが、3Dグラフィック周辺を担当しているため、MAYAをいじる事も多いです。
MAYAでのモデリングのフィニッシュ時におまじないのようにやれと言われる トランスフォームのフリーズ を理解するのに Flash に当てはめて考えたらわかりやすかった気がするので、記事として残しておこうと思います。 これから MAYA を触ることになる Flash 経験者などの役に立てばと。

トランスフォームのフリーズ前

image.png
MAYAでのフリーズ前のトランスフォームノード(+シェイプノード)が、 Flash上では仮に上の図のような状態だと考えます。座標値が100,100で、回転・拡大縮小の中心点(=ピボットポイント)は MovieClip の中心点と同じとしてあります。

MC定義
image.png

MovieClip 自体はこのような状態です。(先の図の1階層下)シェイプの中心に原点があります。ここまでいたって普通の状態です。

トランスフォームのフリーズ後

image.png
Flashで表すと、このような状態であると考えられます。
パッと見はフリーズ前の状態と変わりません。回転・拡大縮小のピボットポイントは顔の中心にありますが、 MovieClip の原点はよくみると顔のずっと外側、座標値が0,0 の位置に移動しています。これはどう言うことでしょう?

MC定義
image.png

MovieClip 定義はこのような状態です。シェイプの左上に原点が移動しています。正しく言い換えるとシェイプ全体の位置が右下に移動しています。

このような構成にすると、パラメーター的には位置が0,0、回転が0、大きさが1のデフォルト値であるのに、それぞれに変異がある状態を作ることができます。(この例では位置しか移動していませんが。)
回転がデフォルト40度で30度~50度の間でアニメーションさせるより、デフォルト状態を0度と考えて-10度~10度の間でコントロールする方が扱いやすいし元の状態にもリセットしやすいと言うわけです。これが トランスフォームのフリーズ の狙いです。Flash でもこのような方法があってもよかったかもしれません。(もう1階層Graphic や MovieClipで包んでしまえば同じような事ができてしまうわけですが!)

補足

補足ですが、MAYAではピボット値を拡大縮小と回転で別々に持つことができます。(Flashでは両者で1つのピボット) また、トランスフォームのフリーズを行うと、上記の例で言うシェイプの移動を行う transformGeometry と言う種類の履歴がトランスフォームノードに追加されます。
image.png

補足

上記の例は実際に人型の素材で解説するとなおわかりやすい気がしますね。Flashの戦士の誰かに任せたぞ。。
なお、マヤ道!という本では、この辺りが漫画で詳しく説明されています。若干内容が難しいですが、気軽になんども読めるのでおすすめです。
https://www.borndigital.co.jp/book/5764.html