【Maya初心者向け】オブジェクトのワールド座標を再取得する

どうも!Maya太郎です!

この二ヶ月、とても忙しくてブログをまともに更新できない日々が続いています(汗)

で、先日
ちょっとした動画を作るために久しぶりにMASHを使いました。
ブログ記事用に調べた時以来で
基本的な使い方は覚えていましたが
個々のノードの役割などは半分以上忘れていました!

そのMASHを使う過程で
ちょっと行き詰ったことがあり
数時間悩んだ末、解決できたのですが
その解決方法に繋がったのが今回の小技です。

「とっくに知ってるぜ!」という方も大勢いらっしゃるでしょうし
他の方法でも同様の事ができるのかもしれませんが
もし知らなかったらラッキーと思って読んでください!

 


ローカル座標とワールド座標って?

3DCGを学ぶ上で「グローバル(ワールド)」「ローカル」の二つの座標系があることは
経験上なんとなく理解できていると思います。

身近な例で言えば

・ワールド座標…地図上で示される(東経XXX度・北緯XXX度)正確な座標のように
世界で唯一の場所を示す位置情報(絶対値)

・ローカル情報…自宅から北へ500m、XX駅から北西に200m
というように身近な地点を基点にした相対値

Mayaでは他のCGソフトと同様に、ふたつの座標系を使い分けていますが
ちょっと使い分けが分かりにくい操作系になっており
なかなか説明が難しいのですが…(という事で割愛)


作りたてのプリミティブなど
シーンの原点にあるオブジェクトは、当然ながら位置情報は(0,0,0)になっています。

移動すると、原点からの相対的な位置情報として数値が変わります。

 

しかしこの数値、
トランスフォームのフリーズをすると、
現在地をオブジェクトの原点(0,0,0)として
ここを起点とした座標表示になります。(これがフリーズというやつ?)

フリーズを設定する以外でも
オブジェクトを加工する過程で
他のオブジェクトと結合したり、逆に分離したり
いろんな編集機能を使っていると、この情報は簡単に崩れてしまう事も多々あります。

作業過程で、
再度この現在位置をワールド座標系に戻したい場合…
先日、Maya太郎はその点で悩んだのですが
いろいろ調べてみると
アトリビュートには、ピボット情報の中に
ワールド座標系らしき情報が入っています。

これを利用できる機能はどこかと探してみました。
それが以下の方法です。

 

(0,0,0)の状態で

修正→ピボットをベイク処理

(0,0,0)→(5,0,-4)になりました。
現在のピボット(中心点)の原点からの距離が正確にアトリビュートに反映されました。

 

この機能は、オブジェクトのピボットポイント(中心点)の位置に影響されるので
ピボットポイント(中心点)を適正に調整しておかないと意味がありませんよ!

 

何かの機会に役立てれば…

では!