竜太のテクニカルメモ

物理やへっぽこなゲーム作りについて易しく解説するよ

ユニティちゃんライセンス

このブログはユニティちゃんライセンス条項の元に提供されています

Unityで3Dのゲームを作る(4)

前回は立方体が重力で平面の床に落下するのを確認しました.今回は再びMove Toolの使用法の解説に戻りたいと思います.さて,前回Movo Toolでは立方体の3つの矢印をドラッグするとその矢印の向きに立方体を移動できました.実はこの操作は立方体だけでなく例えばカメラや光源に対しても行うことができます.特にカメラの移動は重要なので見てみることにしてみましょう.HierarchyビューでMain Cameraを選択します.Sceneビューで必要であればマウスのホイールを回してズームアウトし,カメラがSceneビューに表示されるようにします.その状態でMove Toolを選択すると,立方体のときと同じように3つの矢印が生えます.ここで前回は説明しなかったのですが,Hand Toolなどが収められているパネルの右側を見てください:

f:id:lagrangian:20210123163945p:plain
PivotとGlobal
左側にPivotあるいはCenter,右側にLocalあるいはGlobalと表示されてますね.左側のPivotとCenterの違いは少し難しいのですが,例えば回転で親オブジェクトに子オブジェクトが付いていて全体を選択している場合,Pivotはあくまでも親オブジェクトの中心を軸に回転させますが,Centerは親オブジェクトと子オブジェクトの中心を軸に回転します.ただし,単一のオブジェクトを選択した際には特に違いはありませんので,現時点ではそういうものがあるのだな程度の認識で大丈夫です.一方右側のGlobalとLocalの違いは結構Unity初学者にとっても重要です.簡単に言うとGlobalは世界全体の共通の軸を向きにとることを意味し,ローカルはそのオブジェクトの向いている向きを座標軸に取る違いがあります.カメラを例にとりましょう.HierarchyビューでMain Cameraを選択しMove Toolを選んだ状態でまず,Localをクリックしてみましょう:
f:id:lagrangian:20210123165512p:plain
Main Cameraの座標軸をLocalに選んだとき
分かりやすいようにSceneビューの向きを変えていますが,明らかに右上のSceneギズモ
f:id:lagrangian:20210123165928p:plain
Sceneギズモ
と異なる向きをMain Cameraの座標軸が向いています.Sceneギズモは同じSceneの世界全体のGlobalな座標軸の向きを表していますので,この場合,Main CameraのLocalな座標軸は世界の座標軸とは異なる向きを向いていることになります.特にCameraは全てLocal座標軸の(X,Y,Z) = (0,0,0)からX軸を右側に正,Y軸を上側に正,Z軸を奥向きに撮影するようになっています.つまり,撮影する座標はGlobal座標で操作する方が分かりやすい場合も多いのですが,撮影する角度と方向についてはRotate Toolを使用した場合,Local座標を使用すると撮影対象の向きに座標軸が回転するという性質があることになります.もちろんGlobal座標での回転では座標軸は全く移動しませんのでこれはこれで使い方によっては便利です:
f:id:lagrangian:20210123171428p:plain
Main Cameraの座標軸をGlobalに選んだとき
上のビューはMain Cameraの座標軸をGlobalに選んだものです.パースの関係上,一見Sceneギズモと異なる向きを向いていますが,実際には同じ向きを指しています.重要なのはCameraの座標軸をGlobalに選んだ場合,Cameraの撮影の向きとGlobal座標軸の間に特定の関係はないということです.

ここでようやくMove Toolの使い方を大体全部ご説明できるようになりました. Globalに取った時はGlobalの,Localに取った時はLocalの選択した座標軸の方向に移動できるのがMove Toolです.また,中央の3つの面をドラッグするとその面内で移動できます.例えばGlobal座標の(X,Y,Z) = (0,0,0 )に立方体があるとき立方体のGlobal座標が選択されているならX-Y面の正方形を選択時はドラッグするとX-Y平面内,つまりZ=0の面内を立方体の中心が移動します.ここでSceneビューでMain Cameraを移動しながら,InspectorのTransformのPositionを見てください.Global座標を選んでいる場合は選択した軸の成分を表す数値だけが変化してますね.当たり前ですね.一方Local座標軸を選んだ場合はTransformのPositionがGlobal座標を表示しているので,軸の向きがLocalとGlobalで一緒などの特別の場合を除き,2つ以上の座標成分が変化しているはずです.実は位置に限らず回転,スケールもSceneビューで操作するのとInspectorビューで操作するのは操作方法が違うだけで全く一緒なのです.しいて違いを上げるとすれば,Sceneビューでの操作はより直感的で,InspectorビューのTransformで指定するのはより正確な値を指定できるという違いになります.状況に応じて使い分けられるようになっておきましょう.

次回はRotate Tool,Scale Toolについて解説します.


ゲーム制作ランキング

にほんブログ村 ゲームブログ ゲーム制作へ
にほんブログ村