UnityのCreate Emptyの使い方

Unityのヒエラルキー上で右クリックするとCreate Emptyという空のゲームオブジェクトを作成する事が出来ます。

このCreate Emptyで作成した空のゲームオブジェクトの用途について考えてみます。

スポンサーリンク

空のゲームオブジェクトを使う

空のゲームオブジェクトを作成する

まずは空のゲームオブジェクトを作成してみましょう。

ヒエラルキー上で右クリック→Create Emptyを選択します。

Create Emptyの作り方

空のゲームオブジェクトを作成するとGameObjectという名前の空のゲームオブジェクトが作成されます。

出来た空のゲームオブジェクト

GameObjectを選択すると

空のゲームオブジェクトのインスペクタ

インスペクタに↑のようにTransformだけが設定されている事がわかります。

用途1-全体を管理出来る-

空のゲームオブジェクトの一つの使い方を試してみます。

空のゲームオブジェクトの名前をStageに変更し、その子要素にゲームステージの部品を配置していきます。

空のゲームオブジェクトの子要素にオブジェクトを設置

↑のようにStageの子要素にCubeが配置されました。

空のゲームオブジェクトの初期位置

↑が作成したゲームステージで床以外の坂や山等はCubeを変形しStageの子要素に配置した状態です。

ゲームステージの部品はStageの子要素なので、いざゲームステージをずらしたいと思った時に個々の部品をそれぞれ移動する必要がありません。

Stageを選択し移動させればゲームステージ全体を移動する事が出来ます。

その為、まとめて管理したいゲームオブジェクトを空のゲームオブジェクトの子要素に配置しておけばそれぞれの位置や角度はそのままに全体を移動させる事が出来ます。

空のゲームオブジェクトを移動させる

↑がStageを動かした後の状態です。

それぞれの部品の配置はそのままで全体を移動させる事が出来ます。

用途2-子要素のモデルを簡単に変更出来る-

もうひとつの用途はキャラクターの当たり判定や移動スクリプト等を空のゲームオブジェクトに取り付け、その子要素にキャラクターモデルを配置すれば

いつでもキャラクターモデルを取り変える事が出来るようになります。

空のゲームオブジェクトを作成し名前をEmptyCharaとします。

EmptyCharaにはCharacterControllerの取り付けと設定、キャラクター操作スクリプトを取りつけます。

子要素にキャラクターモデルを配置し、Animatorにキャラクター用のAnimatorを設定します。

これらの設定については

Unityで3Dキャラクターモデルを配置し、キャラクターをCharacterControllerの機能を使って移動させるようなプログラミングをしてみます。

等を参考にしてください。

ヒエラルキーは

空のゲームオブジェクトの子要素にモデルを配置

↑のような階層になります。

空のゲームオブジェクトにコライダやスクリプトを取り付け

空のゲームオブジェクトであるEmptyCharaにキャラクター操作関連のコンポーネントを取りつけています。

キャラクターモデルのAnimatorを設定

キャラクターモデルのAnimatorにはキャラクター用のAnimatorControllerを設定するだけです。

Animatorは子要素のキャラクターモデルが持っているのでキャラクター操作スクリプトでは子要素から取得するようにします。

子要素からAnimatorを取得する以外は通常と同じです。

これで設定が完了したのでキャラクターを動かしてみましょう。

空のゲームオブジェクトの操作スクリプトで動かしたEthan

↑のように問題なくキャラクターのEthanが動きました。

ここでキャラクターのモデルをEthanからゾンビのキャラクターに変更する必要が出たとします。

操作スクリプト等は親のEmptyCharaに設定しているので子要素のキャラクターモデルだけを変更すればいい事になります。

子要素のキャラクターモデルを変更する

↑のようにゾンビのキャラクターモデルを配置しAnimatorの設定とTransform情報のResetだけをします。

子要素のゾンビモデルのインスペクタ

↑がゾンビキャラクターのインスペクタです。

位置情報は親要素からの相対値になるのでScaleは1、PositionとRotationは0にします。

これでキャラクターモデルの変更が完了しましたので動かしてみましょう。

空のゲームオブジェクトの操作スクリプトで動かしたゾンビ

↑のようにゾンビキャラクターも問題なく動きました。

このように簡単にキャラクターモデルを変更する事が出来ますが、キャラクターモデルのボーンの子要素に武器を装備させたりスクリプトを設定していたりすると、

単純なモデルの変更とはいかないので注意が必要です。

武器もスクリプトもキャラクター操作スクリプト内の処理でコンポーネントを取り付けるようにすればこの問題は解決しそうです。

スクリプトで武器やスクリプトの取り付けを行おうとするとそれはそれで大変にはなりますが・・・・・。

スポンサーリンク

記事をシェアして頂ける方はこちら

フォローして頂くとやる気が出ます