Unityの「プレハブ」機能を活用して、作業を効率化しよう

Unityの「Prefab」という機能を利用すると、一度つくったものを再利用したり、同じものを複数設置する際にまとめて編集できるようになります。
分かりにくい部分もありますが、慣れるとかなり便利な機能なので試してみましょう。

Prefabのつくり方・使い方

始めに基本的な使い方を解説します。

  • まずはScene上で普段通りオブジェクトを作成します。
  • これをPrefabにするには、オブジェクトをHierarchyからProjectウインドウにドラッグ&ドロップします。
  • [オブジェクト名].prefabというファイルが作成され、またHierarchy上の表示が青い文字とアイコンに変わります。
    • ※すでにあるPrefabファイルの上にドラッグ&ドロップすると、Prefabファイルを上書きして保存することができます。
  • 作成されたPrefabファイルをSceneにドラッグ&ドロップすると、同じオブジェクトを設置することができます。

オブジェクトをそのまま複製するのではなく、Prefabにしておくことでさまざまなメリットがあります。

Prefabの編集──変更が同じPrefabすべてに反映

Project上のPrefabファイルをダブルクリックすると、SceneがPrefabの編集画面に切り替わります。
この画面でPrefabの中身を編集すると、Scene上の同じPrefabすべてに反映させることができます
※PrefabをScene上に設置したものは「Prefab Instance」と呼ばれます。

例えばPrefabにオブジェクトを追加してみましょう。Prefabを編集してSceneに戻ると、同じように変更されていることが分かります。

ちなみにPrefabの編集はHierarchy上のInstanceを右クリックして「Prefab>Open Asset in Isolation」からもできます。また「Prefab>Open Asset In Context」を選択するとSceneに設置されたまま編集することができます。

Prefabの上書き──必要な部分だけ上書き変更をする

「ほとんど同じだが少しだけ違う」といったものをつくりたい場合、SceneにPrefabを設置してから必要な部分だけ設定を上書き変更することができます。

例として、色の異なる花火をつくってみます。Scene上に花火のPrefabを複数設置し、ひとつだけ選択します。選択した花火について、普通のオブジェクトと同様にParticle Systemの色(Start Color)を変更してみましょう。

こうすると、基本的な部分は他のInstanceと同じで、変更した部分だけが異なるオブジェクトをつくることができます。上書きされたパラメーターは元のPrefabでの変更の影響を受けなくなります

上書きされたパラメーターはInspector上で強調表示されます。また、そのパラメーターを右クリックして「Revert」を選択すると元のPrefabの値に戻したり、「Apply to Prefab」を選択すると元のPrefabに変更を適用し、すべてのInstanceを変更することができます。

また、上書きしたInstanceを同様の手順でPrefab化すると、「Original Prefab」「Prefab Variant」のどちらにするかという選択画面が表示されます。
「Original Prefab」を選択すると元のPrefabの影響を受けない別のPrefabになりますが、「Prefab Variant」を選択すると元のPrefabの影響を残したまま、上書きした部分だけが異なるPrefabをつくることができます。

パッケージに書き出して別のプロジェクトで利用する

オブジェクトをPrefab化するとアセットとして扱えるようになるため、パッケージに書き出して別のプロジェクトにインポートすることができるようになります。

Project上で書き出したいPrefabを選択して、上部メニューの「Assets>Export Package」を選択します。
書き出すアセットの一覧が表示されるため、必要なアセットにすべてチェックがついていることを確認して「Export」をクリックします。ファイル保存画面で保存場所と名前を決めて保存し、作成された「.unitypackage」ファイルを別のプロジェクトにインポートすると、そのプロジェクトで同じPrefabを利用することができます。

オブジェクトをPrefab化して利用することで、調整が簡単になったり別のワールドに再利用できたりといったメリットがあります。便利な機能を活用してワールド制作を効率化しましょう!

記事をシェアしてワールド制作を盛り上げよう!