Prefabを活用してclusterワールド作成を効率化しよう!

今回は「Prefab」についての記事です。

UnityにはPrefabという、制作済みオブジェクトをテンプレートとして保存し、複製可能なアセットとして利用できる仕組みがあります。
Prefab化すると、元となるオブジェクトの「Inspector上の設定」「子のオブジェクト」をそのまま引き継ぐことができます。

ワールド作成を効率化するのに便利なので、ぜひ活用してみてください!

Prefabのメリット

Prefabは複製したオブジェクトを一括で変更したい時に便利です。

オブジェクトを「Copy&Paste」または「Duplicate」で複製した場合、後からこれらのオブジェクトをすべて変更をするのに、ひとつずつ変更していくことになり手間がかかります。

たとえば、以下の4つの「Cube」をすべて縦長にして、色も変えたいとします。

ひとつずつInspectorの「Scale」を変更して、、、

Materialもひとつずつ変更していく必要があります。

しかし、Prefabを活用すると、、、

Prefabに変更を加えるだけでPrefabから配置したオブジェクトにも変更が反映されます!

対象のオブジェクトすべてに変更の操作を行わずにすみます。
Prefabは変更するオブジェクトが多ければ多いほど便利になります。
ぜひ活用してみてください!

Prefabをつくる

それでは、早速Prefabをつくっていきましょう!
今回は信号機のモデルを準備しました。

Hierarchyは以下のようになっています。
「Traffic Light」という空のGameObjectの中に柱やレンズ部分などが入っています。

  • Prefabにしたいオブジェクトを「Hierarchy」ウィンドウから「Project」ウィンドウにドラッグ&ドロップしましょう。

すると、ProjectウィンドウにPrefabが生成されます。
Prefabが生成されるとHierarchy上のオブジェクトのアイコンと文字の色が変化します。
これはPrefabが存在していることを表しています。

オブジェクトのPrefab化はこれで完了です。
簡単ですね!

  • Prefab化したオブジェクトを配置したいときは、SceneまたはHierarchyにPrefabをドラッグ&ドロップしてください。

Prefabを編集する

Prefabを編集することで、Prefabから複製したオブジェクトを一括で変更できます。

  • ProjectウィンドウのPrefabを選択し、Inspectorの「OpenPrefab」をクリックします。

すると、HierarchyとSceneビューが変化し、そのPrefabを編集できる状態になります。

  • この動作は、Hierarchyのオブジェクト名の右にある「>」アイコンをクリック
  • または、ProjectウィンドウにあるPrefabをダブルクリックでも行うことができます。

表示されたウィンドウでPrefabを編集すると、Sceneに配置されている複製したオブジェクトも変更されます。

Prefabから以下のように信号機を配置しました。

試しにPrefabの信号機を縦向きにしてみましょう。

すると、Prefabから配置したオブジェクトも一括で変更されました!

Prefabを解除する

複製したオブジェクトを一括で変更できるのは便利です。
しかし、「Prefabから配置したけど、このオブジェクトだけは変更したくない」という場合もあるでしょう。

その場合はPrefabと配置したオブジェクトの連携を解除し、変更されないようにできます。

方法は簡単です。

  • Hierarchy上のPrefabと、連携を解除したいオブジェクトを選択し、右クリックメニューから「Unpack Prefab」をクリックします。

解除されたオブジェクトはアイコンと文字の色が元に戻ります。

これでオブジェクトはPrefabでの一括変更の影響を受けないようになりました!

まとめ

ワールド制作時に、同じオブジェクトを大量に配置する際にPrefabは便利です。
ぜひ活用してみて下さい。

また、少し複雑ですが「Prefab Variant」というものもあります。
こちらは、あるPrefabをベースに、変更を加えたPrefabを新しく作成するというものです。
興味がある方は詳しい内容が下記リンク先にありますので、ぜひ参考にしてみて下さい。

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

Cluster Creators Guide|バーチャル空間での創作を学ぶならをもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む