HOME » » » » HERE

サムネイル画像
ゆにすち入門編(この画像は、https://www.pakutaso.com/さまから借用しています)

こんにちわ、横浜すみっこクリエイターととです。

Unityでゲームを制作して販売するまでの軌跡を描くゆにすち!入門編です!

今回は、ゲーム制作の効率にかかわるUnityの仕組み、プレハブについての解説をしていきます。

ゆにすち!シリーズとは

このシリーズではUnityでSTEAM販売を目指す!略してゆにすち!と銘打ち、モデリングもプログラミングも企画も販売も何から何までぜ~んぶド素人のととが、PCゲームを考え、制作して、販売するまでの風景を履歴として残していくものです。

この入門編では、Unityの基本的な使い方やゲームの構造について学んでいきます。

この記事のポイント!

  • プレハブは、再利用可能なゲームオブジェクトのテンプレート的な存在
  • プレハブインスタンスは、プレハブを受け継ぐコピー
  • プレハブ同士は、ネストできる
  • プレハブバリアントにより、バリエーションを持たせることができる

Contents

  1. プレハブとは
  2. プレハブ利用のメリット
  3. プレハブの作り方
  4. インスタンス化
  5. プレハブの編集
  6. プレハブのネスト
  7. 関連付けの解除
  8. オーバーライドの取り消し
  9. プレハブバリアント

プレハブとは

ゆにすち(プレハブとは、再利用可能なゲームオブジェクトのテンプレートとなるアセットのことです) プレハブとは何か

プレハブ(Prefab)とは、再利用可能なゲームオブジェクトのテンプレートとなるアセットのことです。

もう少しやわらかい表現をすると、同じゲームオブジェクトをたくさん配置したいときの複製の元となるテンプレートといった感じです。

プレハブ利用のメリット

プレハブ利用の最大のメリットは、同じゲームオブジェクトへの変更が一発で済むというところにあります。これは数が多いほど効力を発揮します。

ゆにすち(複製したゲームオブジェクトでは、それぞれに変更を加える必要があります) 単純複製したゲームオブジェクトに変更を加える場合

通常、ゲームオブジェクトを単純複製(Ctrl + D)した場合、各々は独立していてお互いに作用し合うことはありません。オリジナルを変更しても、コピーたちには一切影響を及ぼさない、ということです。

ゆにすち(プレハブアセットを変更するだけで、すべて同期して変更されます) プレハブアセットから生成した複製に変更を加える場合

一方で、プレハブアセットから生成した複製は、プレハブアセットに自動で同期します。オリジナルであるプレハブアセットを変更することにより、生成された複製もすべてその変更を受け継ぎます。

たとえば上の図のように、同じキャラクターを大量に作成し終えたところで、「やっぱり片手を上げさせておくべきだった」と考えが変わったとします。

プレハブを利用していた場合は、プレハブアセットを変更する作業の1回で済みます。

一方で、単純複製していた場合は1体ずつに同じ作業をしていかなければなりません。もしかしたら修正ミスや、修正忘れが生じてしまうかもしれません。

このようにプレハブを用いると、修正規模も抑えられるだけでなく、作業ミスや忘れ防止にも貢献してくれます。

プレハブの作り方

プレハブの作成は、とても簡単です。

ゆにすち(ゲームオブジェクトをプロジェクトウィンドウにドラッグ&ドロップします) プレハブアセットの作成

まず、シーンビューで、プレハブにしたいゲームオブジェクトを作成しておきます。

完成したらゲームオブジェクトをヒエラルキーウィンドウからプロジェクトウィンドウにドラッグ&ドロップします。

これでプレハブアセットの完成です。とても簡単です。

ゆにすち(プレハブアセットがオリジナルです) オリジナルはプレハブアセットの方

ここで注意したいのが、シーンビューで作成したゲームオブジェクトがオリジナルではない、ということです。オリジナルはプロジェクトウィンドウにあるプレハブアセットの方となります。

インスタンス化

プレハブアセットから生成した複製のことをプレハブインスタンスと呼びます。

ゆにすち(アセットをヒエラルキーウィンドウにドラッグ&ドロップします) インスタンス化

インスタンス化することも簡単で、プロジェクトウィンドウからシーンビューまたはヒエラルキーウィンドウにドラッグ&ドロップするだけです。

ゆにすち(プレハブインスタンスは、青色で表示されます) プレハブインスタンスの表示

プレハブインスタンスは、アイコンとアイテム名が青色で表示され、通常のゲームオブジェクトとは区別されます。

プレハブの編集

プレハブモードから編集

通常のプレハブモード

ゆにすち(編集には、プレハブモードを使用します) プレハブモード

プレハブの編集には、プレハブモードを使用します。いくつかモードの開き方がありますが、ここでは代表的なものを紹介します。

ゆにすち(プレハブアセットのインスペクターウィンドウから「開く」をクリックします) プレハブモードの開き方

通常のプレハブモードを開くには、プロジェクトウィンドウでプレハブアセットを選択して、インスペクターウィンドウの開くをクリックします。

ゆにすち(プレハブモード中には、スコープも絞られます) プレハブモード中のヒエラルキーウィンドウ

シーンビューの背景が青くなっていれば、プレハブモードに入れている状態です。

プレハブモード中には、ヒエラルキーウィンドウもプレハブアセットの構成要素だけに表示が絞られます。

ゆにすち(プレハブモードを抜けるには「Scenes」をクリックします) プレハブモードの終了

プレハブモードを終了するには、シーンビュー左上のScenesをクリックします。

背景付きのプレハブモード

ゆにすち(コンテキスト付きのプレハブモードも使用できます) 背景付きプレハブモード

もう1つが背景付きのプレハブモードです。シーンビュー上に配置されたプレハブインスタンスをその場で編集できます。周辺環境を考慮しながらの作業に適しています。

ゆにすち(プレハブインスタンスの「開く」をクリックします) 背景付きプレハブモードの開き方

このモードで開くには、プレハブインスタンスを選択した状態でインスペクターウィンドウの開くをクリックします。

シーンの背景がそのまま表示され続けますが、プレハブモードに入っています。プレハブに含まれないアイテムは選択もできないので、うっかりの誤操作も心配ありません。

ゆにすち(グレースケールなどにも変更可能です) グレースケール背景

シーン背景を次のように変更することも可能です。シーンビューの上のメニューから選択できます。

  • 通常
  • グレースケール
  • 非表示

オーバーライドの統合

プレハブインスタンスは、プレハブアセットの複製ですが、インスタンス個々に変更を加えることができます。これをオーバーライドといいます。

プレハブインスタンスで行った編集をプレハブアセットに統合(上書き)してしまうことも可能です。

ゆにすち(差分がハイライトされます) 青色にハイライトされた差分

プレハブインスタンスに編集を加えると、オリジナルであるプレハブアセットとの差分がハイライトされます。

ゆにすち(「オーバーライド」、「すべてを適用する」をクリックします) プレハブアセットへのオーバーライド

インスペクターウィンドウのオーバーライドすべてを適用するをクリックすると、プレハブアセットに統合されます。つまり、プレハブインスタンスとプレハブアセットとが同じ状態になります。プレハブアセットが変更されるので、ほかのプレハブインスタンスも同様の変更が反映されます。

ゆにすち(個別にオーバーライドします) 選択して個別にオーバーライド

変更点が複数ある場合、個別に適用の要否を選択することもできます。リストから適用したい変更点を選択して、適用するを選択します。

プレハブのネスト

ゆにすち(プレハブはネストできます) ネストされたプレハブ

プレハブは、ネストすることが可能です。

ネストとは、あるものの中に、それと同じ形のものが入っている構造のことです。

つまり、プレハブはプレハブを内包することができるということです。

ゆにすち(親オブジェクトをプロジェクトウィンドウにドラッグ&ドロップします) 親オブジェクトのプレハブ化

プレハブインスタンスを含んだ親ゲームオブジェクトをプロジェクトウィンドウにドラッグ&ドロップすることで、ネストされたプレハブアセットが作成できます。

ゆにすち(子オブジェクトをプロジェクトウィンドウにドラッグ&ドロップします) 子オブジェクトのプレハブ化

また、既存のプレハブアセットについて、プレハブモード中に、その一部をプロジェクトウィンドウに入れることでもネストされたプレハブアセットになります。

関連付けの解除

あるプレハブインスタンスについて、プレハブアセットとの関連付けを切って、通常のゲームオブジェクトに戻したい場合があると思います。

ゆにすち(「展開」をクリックします) プレハブインスタンスの展開

ヒエラルキーウィンドウの中からプレハブインスタンスを右クリックし、表示されるコンテキストメニューからプレハブ展開をクリックすることで、通常のゲームオブジェクトに戻すことができます。

影響を受けるのは、このプレハブインスタンスのみで、ほかのインスタンスやプレハブアセットには影響を及ぼしません。

オーバーライドの取り消し

編集を加え、オーバーライド状態にあるプレハブインスタンスについて、プレハブアセットと同じ状態に戻したい場合は、次の操作でオーバーライドを取り消すことができます。

ゆにすち(「元に戻す」をクリックします) オーバーライドの取り消し

プレハブインスタンスを選択した状態で、インスペクターウィンドウからオーバーライドすべてを元に戻すをクリックします。

変更箇所ごとに編集を取り消すことも可能です。オーバーライドから変更点を選択して、元に戻す

プレハブバリアント

ゆにすち(プレハブバリアントは、既存プレハブを元にした派生プレハブです) プレハブバリアント

ほぼ同じだけれど、色違いやパーツ違いの派生オブジェクトを作成したい、という場合があります。そんなときには、作成済みのプレハブをベースに、派生プレハブを作成することができます。これをプレハブバリアントと呼びます。

もちろんベースとしたプレハブアセットに変更を加えるとバリアントも同期して変更を受け継ぎます。

基礎部分や共通項をプレハブアセットで作成しておいて、追加・差分をバリアントで作成する、とすると管理もしやすく便利です。

ゆにすち(プレハブインスタンスをプロジェクトウィンドウにドラッグ&ドロップします) プレハブバリアントの作成

プレハブバリアントの作成方法は、プレハブインスタンスに必要な編集を加えた後、プロジェクトウィンドウにドラッグ&ドロップすることで、プレハブバリアントが作成できます。

ゆにすち(アイコンが異なります) アイコンの違い

ベースのプレハブアセットプレハブバリアントは、アイコンの違いで判別できます。ベースは水色単色ですが、バリアントはグレーの斜線が入ります。

まとめ

今回は、プレハブについてまとめてみました。オリジナルとコピーとが紐付けされていて、自動的に同期してくれるのがとても便利ですよね。プレハブバリアントについても使いこなせるようになれば手間も削減できそうです。

次回予告

Next time on... ここから始める。「スクリプト」を作ってみよう!

入門編として今回で10回を迎えましたが、一旦ここで区切り体と思います。次回からはC#の解説をしていこうと考えています。

Unityスクリプトに特化せず、広く浅くでC#の基礎やプログラミング全般の知識を中心に記事を積み上げていきたいと思いますので、引き続きお付き合いいただければ幸いです!
では、今回はこの辺で。

コメント