シンプルなアクションゲームを作ってみようの第4回です。
今回はゲームを作る前にUnityエディターの操作に慣れていきたいと思います。
ヒエラルキーでの操作やシーンビューでの操作、ゲームオブジェクトの階層やワールドとローカルの違いを学習していきます。
前回のキャラクターモデルを配置する記事の前にやればよかったなぁと思いました・・・・(^_^;)
操作方法に関しては無理に全て覚えなくても使いやすいものを覚えて繰り返し使っているうちに自然と使えるようになっていくと思います。
前回はシーンにキャラクターモデルの配置を行いました。
シンプルなアクションゲームを作ってみようの他の記事は
シンプルなアクションゲームを作るのを通してUnityの使い方を学ぶカテゴリです。
から参照出来ます。
練習用のシーンを作成する
今回の操作はStage1シーンを使ってやることも出来ますが、Stage1シーンは本ゲーム用に作ったシーンなのでUnityエディターの操作練習用シーンを作成します。
ProjectウインドウのAssets/Scenesフォルダに新しくPracticeという名前のシーンを作成します(右クリック→Create→Scene)。
PracticeシーンをダブルクリックしてヒエラルキーにPracticeシーンが表示されるのを確認します。
Practiceシーンは練習用に作成したシーンなので色々なゲームオブジェクトを設置したり操作して練習してみてください。
Unityエディターでの実行
シーンにゲームオブジェクトを配置し、移動等のスクリプトが出来たらUnityエディター上で実行し動作を確認する必要があります。
赤い四角の中のボタンがプレイボタンでゲームを実行します(Ctrl+Pキーでも可能)。
青い四角の中のボタンが一時停止ボタンでゲームを一時停止します(Ctrl+Shift+Pキーでも可能)。
緑の四角の中のボタンがコマ送りボタンで1フレーム毎に実行します(コマ送りボタンを押すと一時停止になります)(Ctrl+Alt+Pキーでも可能)。
フレームとは?
1フレームはゲームの画面が描画される1画面の事で例えば60fps(Frame Per Second)であれば1秒間に60の静止画が表示されるということになります。
1秒間で動く動画は60の静止画像が連続で表示されることによって動いて見えているということになります。
空のゲームオブジェクト
ヒエラルキーウインドウ内で右クリックからCreate Emptyを選択すると空のゲームオブジェクトを作成出来ます。
空のゲームオブジェクトはTransformコンポーネントを持つだけのゲームオブジェクトでフォルダ替わりに使ったり、他のゲームオブジェクトの親として使います。
空のゲームオブジェクトの使用方法については以下の記事も参照してみてください。
ゲームオブジェクトの階層
ゲームオブジェクトは子要素にゲームオブジェクトを追加して親子関係にすることが出来ます。
上のように階層を作るにはヒエラルキーウインドウ内で右クリックから3D Object→Cubeを選択してCubeゲームオブジェクトを作成した後、Cubeを選択したまま同じようにCubeを作成し、次に作成したCubeを選択した状態でまたCubeを作成します。
ワールドとローカル
階層にしたゲームオブジェクトは自身の1つ上の階層を親、1つ下の階層を子のゲームオブジェクトと言います。
子のゲームオブジェクトのTransformの数値は親のゲームオブジェクトからの相対的な値(親の位置や回転を基準にした値)になり、ローカルの値といいます。
ルートゲームオブジェクト(一番階層の上のゲームオブジェクト)のTransformの値はローカル値でもありますが、一番親なのでワールド値(世界基準の値)でもあります。
ワールドとローカルの違いを確認する為、3つのCubeのTransformを以下のように同じ値にしてみます。
すると同じ値にしたにもかかわらずシーンビュー上のCubeの形状がそれぞれ異なります。
これはルートゲームオブジェクトの階層一つ下のCubeはルートゲームオブジェクトからの相対値で、さらにもうひとつ下のCubeは一つ上の階層のCubeからの相対値である為です。
ゲームオブジェクトのScale
ゲームオブジェクトのTransformのScaleを変更してモデルのサイズを大きくすることも出来ますが、基本的にはScaleのXYZは全て1にしておいた方が良さそうです。
これはUnityの1ユニット(Unityの単位)は1mで計算されていて、Scaleを変更することで物理演算の計算がうまくいかない可能性があります。
また親のScaleのXYZが全て1でないと子に配置したゲームオブジェクトの形状は歪みます。
元のモデルのサイズが大きい場合はモデルのImport SettingsのScale Factorで変更して調整した方がいいです。
ProjectウインドウのAssets/Standard Assets/Characters/ThirdPersonCharacter/Models/Ethan.fbxを選択した場合はインスペクタに以下のように表示されるので、モデルのスケールを変更する場合はScale Factorの数値を変更します。
練習用のCubeを設置する
ヒエラルキーやシーンビューで操作するゲームオブジェクトを作ります。
ヒエラルキー上で右クリック→3D Object→Cubeを選択しCubeを作成します。
Cubeを選択し、インスペクタのTransformの右の3つの丸を選択しResetを選択しデフォルト値にします。
ヒエラルキーでの操作
まずはヒエラルキーでの操作について見ていきます。
先ほど作ったCubeゲームオブジェクトに対して操作して確認してみてください。
キーボードとマウスの操作
ゲームオブジェクトを選択した状態でキーボードの該当するキーを押すことで複製や削除が出来ます。
キーボードの操作はWindowsの場合なのでMaxOSの場合は変わってきます。
削除
Deleteキーで選択したゲームオブジェクトを削除します。
カット
Ctrl+Xで選択したゲームオブジェクトをカットします。
カットしたゲームオブジェクトは後で紹介する貼り付けをする必要があり、貼り付けると元のゲームオブジェクトが消えます。
コピー
Ctrl+Cで選択したゲームオブジェクトをコピーします。
ゲームオブジェクトの貼り付けを行うとコピーしたゲームオブジェクトと同じ物が作成され、元のゲームオブジェクトも残ります。
貼り付け
Ctrl+Vキーを押すと、カット(Ctrl+Xキー)もしくはコピー(Ctrl+C)したゲームオブジェクトを貼り付けします。
上の例ではCtrl+CキーでCubeをコピーした後にCtrl+Vキーで貼り付けを行ったものです。
子に貼り付け
Ctrl+Shift+Vでカットもしくはコピーしたゲームオブジェクトを選択したゲームオブジェクトの子として貼り付けることが出来ます。
上の例ではCubeをCtrl+Cキーでコピーした後、Cubeを選択した状態でCtrl+Shift+Vキーを押してCubeの子としてコピーしたCubeを貼り付けています。
複製
Ctrl+Dで選択したゲームオブジェクトを複製します。
ここまでの操作はゲームオブジェクトを選択した状態で右クリックすることでメニューから選択して実行することも出来ます。
取り消し
Ctrl+Zキーを押すと直前の操作を取り消すことが出来ます。
上の例ではCtrl+DキーでCubeゲームオブジェクトを複製した後にCtrl+Zキーを押して操作を取り消しています。
やり直し
Ctrl+Yキーで直前に取り消した操作をやり直すことが出来ます。
上の例ではCtrl+DキーでCubeゲームオブジェクトを複製した後にCtrl+Zキーで複製した操作を取り消し、その後Ctrl+Yキーで直前に取り消した操作(Cubeを複製した操作)をやり直しています。
全選択
Ctrl+Aでヒエラルキーの全選択
フォーカス
ヒエラルキーのゲームオブジェクトを選択した状態でマウスのダブルクリックをするとシーンビューのゲームオブジェクトをフォーカスすることが出来ます。
名前を変更する
F2キーを押すと選択したゲームオブジェクトの名前を変更出来ます。
移動
ゲームオブジェクトをマウスドラッグすることで表示順を変更したり、別のゲームオブジェクトの子にする等の移動が出来ます。
全階層を展開
Altキーを押しながら階層を持つゲームオブジェクトをマウスの左ボタンで押すとそのゲームオブジェクトの子を全展開します。
上の例ではProjectウインドウのAssets/Standard Assets/Characters/ThirdPersonCharacter/Models/Ethan.fbxをヒエラルキー上にドラッグ&ドロップして利用しています。
通常通りEthanゲームオブジェクトをマウスの左ボタンで押した場合は一つ下の階層しか展開されませんが、Altキーを押しながらEthanをマウスの左ボタンで押すと全階層が展開されます。
階層を閉じる時もAltキーを押しながらマウスの左ボタンを押すと全階層を閉じます。
実行時に特定のゲームオブジェクトを追いかける
Unityのプレイボタンを押して実行している時にヒエラルキーでゲームオブジェクトを選択してShift+Fキーを押すとシーンビューでゲームオブジェクトを追いかけて確認することが出来ます。
ゲームオブジェクトが動くとシーンビューの画面外に出てしまって動きを確認出来ない時があるのでそんな時にShift+Fキーを使うと便利です。
他にも色々ありますが、UnityのEditメニューからショートカットキーを確認出来ます。
シーンビューでの操作
シーンビューの操作について見ていきます。
シーンビューでの視点の変更
シーンビューではマウスの中ボタンを押してドラッグすることで視点の平行移動、マウスの右ボタンを押してドラッグする事で視点の回転が出来ます。
またシーンビュー上でゲームオブジェクトを左ボタンで押すことで選択をすることが出来ます。
また
Altキーを押しながらマウスの左ボタンをドラッグするとみている視点を基点として回転が出来ます。
Altキーを押しながらマウスの中ボタンをドラッグするとその視点を平行移動出来ます。
Altキーを押しながらマウスの右ボタンをドラッグすると拡大・縮小が出来ます。
Altキーを押しながら試してみると以下のようになります。
移動・回転・拡大縮小ツール
Unityエディターの左上には移動・回転・拡大縮小を選択するツールが用意されています。
左のボタンから見ていきます。
Hand Tool
1番目がHand Toolで左ボタンと中ボタンのドラッグでシーンビューを平行移動し、右ボタンのドラッグでその場で視点の回転をします。
Qキーを押す事でもHand Toolを有効に出来ます。
Move Tool
2番目がMove Toolでヒエラルキーで選択したゲームオブジェクトに3つの矢印が表示され、各矢印をマウスでドラッグするとその軸のみ移動させることが出来ます。
またCtrlキーを押しながらドラッグするとUnityメニューのEdit→Grid And Snap Settingsで設定した値間隔で移動させることも出来ます。
真ん中に表示されているCubeのギズモをドラッグすると黄色に変わった矢印の2方向限定で動かすことが出来ます。
Wキーを押すことでMove Toolを有効にすることも出来ます。
上の例では最後にCtrlキーを押しながらドラッグしているので指定した数値単位で移動しています。
Rotate Tool
3番目がRotate Toolで各軸の色の円をドラッグすることでその軸で回転させることが出来ます。
Eキーを押す事でもRotate Toolを有効にすることが出来ます。
Scale Tool
4番目がScale Toolで各軸のCubeをドラッグすることでスケールを変更することが出来ます。
真ん中のCubeをドラッグすることでXYZ軸のスケールを同時に変更出来ます。
Rキーを押す事でもScale Toolを有効に出来ます。
Rect Tool
5番目がRect Toolで四隅に円が表示され円をドラッグすると接する2辺を変更出来、円と円の間の辺をドラッグするとその辺を変更出来ます。
中心の2重の円をドラッグするとゲームオブジェクトを移動させることが出来ます。
Tキーを押す事でもRect Toolを有効に出来ます。
Move,Rotate or Scale selected objects
6番目がMove, Rotate or Scale selected objectsで移動、回転、スケールの変更を同時に出来ます。
Yキーを押す事でも有効に出来ます。
Handle PositionとHandle Rotation
ゲームオブジェクトの移動する際の軸や回転をする際の基点を変更する切り替えボタンがあります。
Handle PositionはCenterと表示されているボタンを押すことでPivotと切り替えが出来ます。
Handle RotationはLocalと表示されているボタンを押すことでGlobalと切り替えが出来ます。
Handle Positionの
Centerは選択したゲームオブジェクトの中心を基点として回転します。
Pivotは選択した各ゲームオブジェクトの中心点を基点として回転します。
試しにCubeをもうひとつ作りCenterとPivotを切り替えて違いを確認すると以下のようになります。
Handle RotationのLocalとGlobalはローカル軸(そのゲームオブジェクト自身の軸)で動かすかワールド軸(全体の軸)で移動や回転をするかの切り替えです。
例えば元からあるCubeのTransformのRotationのYを45とした状態でMove Toolを有効にし、Handle PositionのLocalとGlobalを切り替えてみます。
ローカルとワールドの軸が切り替えられるので合わせたい方の軸に合わせて移動や回転が出来ます。
終わりに
今回はUnityのヒエラルキーとシーンビューの操作について見てきました。
シンプルなものだけ書こうと思っていたら、なんだか長くなりました・・・・(^_^;)