2016年11月14日月曜日

Freeze Transformationsその1

なんかチャネルボックスの数値がゼロになるような機能です。

まずは、選択オブジェクトのピボットが見えるよう設定を変更します。


初期状態では Off になっているので On に。
これで選択したオブジェクトのピボットが表示されるようになります。
リガーであれば表示させておくことをオススメ。

ピボットの見た目はこんなん。



おもむろにpolyCubeを作成して適当に移動・回転・拡縮します。


変形が分かりやすいようにlocalAxisを表示しています。
※メインメニューの Display -> Transform Display -> Local Rotation Axes

こんな感じのオブジェクトに Freeze Transform を実行するとこうなります。


この機能が実行されるコマンドは makeIdentity というもの。
メニュー名と一致していないのですがコマンド名から大体の処理内容が予想できますね。

フリーズ前のこんなマトリクスが
-----------------------------
x: 0.1440 -0.0708 -1.1282 0
y: 0.3970  1.1363 -0.0206 0
z: 0.8128 -0.2818  0.1214 0
t: 1.1656  2.5396  0.0000 1
-----------------------------

フリーズ後、このようになります。
------------
x: 1 0 0 0
y: 0 1 0 0
z: 0 0 1 0
t: 0 0 0 1
------------

オブジェクトのマトリクスが単位行列になってしまいました。


バインドする場合は、更に Reset Transform を実行します。


すると、ピボットが原点に移動したように見えます。
※実際は親オブジェクト基準の位置になります。

こうしておかないと、エンジンによってはピボットの差を加味してくれない場合があるので、
頂点が想定の位置とズレてくる事があります。


ちなみに、フリーズする前にリセットを行うと・・・

トランスフォームの変形がリセットされるだけなので、順番は重要。
なんとなく使ってもらわれると困る機能の一つです。


0 件のコメント:

コメントを投稿