こんにちわ、横浜すみっこクリエイター
です。Unityでゲームを制作して販売するまでの軌跡を描くゆにすち!の入門編です!
今回は、ゲーム制作の効率にかかわるUnityの仕組み、プレハブについての解説をしていきます。
ゆにすち!シリーズとは
このシリーズではUnityでSTEAM販売を目指す!略してゆにすち!と銘打ち、モデリングもプログラミングも企画も販売も何から何までぜ~んぶド素人の が、PCゲームを考え、制作して、販売するまでの風景を履歴として残していくものです。
この入門編では、Unityの基本的な使い方やゲームの構造について学んでいきます。
この記事のポイント!
- プレハブは、再利用可能なゲームオブジェクトのテンプレート的な存在
- プレハブインスタンスは、プレハブを受け継ぐコピー
- プレハブ同士は、ネストできる
- プレハブバリアントにより、バリエーションを持たせることができる
Contents
プレハブとは
プレハブ(Prefab)とは、再利用可能なゲームオブジェクトのテンプレートとなるアセットのことです。
もう少しやわらかい表現をすると、同じゲームオブジェクトをたくさん配置したいときの複製の元となるテンプレートといった感じです。
プレハブ利用のメリット
プレハブ利用の最大のメリットは、同じゲームオブジェクトへの変更が一発で済むというところにあります。これは数が多いほど効力を発揮します。
通常、ゲームオブジェクトを単純複製(Ctrl + D)した場合、各々は独立していてお互いに作用し合うことはありません。オリジナルを変更しても、コピーたちには一切影響を及ぼさない、ということです。
一方で、プレハブアセットから生成した複製は、プレハブアセットに自動で同期します。オリジナルであるプレハブアセットを変更することにより、生成された複製もすべてその変更を受け継ぎます。
たとえば上の図のように、同じキャラクターを大量に作成し終えたところで、「やっぱり片手を上げさせておくべきだった」と考えが変わったとします。
プレハブを利用していた場合は、プレハブアセットを変更する作業の1回で済みます。
一方で、単純複製していた場合は1体ずつに同じ作業をしていかなければなりません。もしかしたら修正ミスや、修正忘れが生じてしまうかもしれません。
このようにプレハブを用いると、修正規模も抑えられるだけでなく、作業ミスや忘れ防止にも貢献してくれます。
プレハブの作り方
プレハブの作成は、とても簡単です。
まず、シーンビューで、プレハブにしたいゲームオブジェクトを作成しておきます。
完成したらゲームオブジェクトをヒエラルキーウィンドウからプロジェクトウィンドウにドラッグ&ドロップします。
これでプレハブアセットの完成です。とても簡単です。
ここで注意したいのが、シーンビューで作成したゲームオブジェクトがオリジナルではない、ということです。オリジナルはプロジェクトウィンドウにあるプレハブアセットの方となります。
インスタンス化
プレハブアセットから生成した複製のことをプレハブインスタンスと呼びます。
インスタンス化することも簡単で、プロジェクトウィンドウからシーンビューまたはヒエラルキーウィンドウにドラッグ&ドロップするだけです。
プレハブインスタンスは、アイコンとアイテム名が青色で表示され、通常のゲームオブジェクトとは区別されます。
プレハブの編集
プレハブモードから編集
通常のプレハブモード
プレハブの編集には、プレハブモードを使用します。いくつかモードの開き方がありますが、ここでは代表的なものを紹介します。
通常のプレハブモードを開くには、プロジェクトウィンドウでプレハブアセットを選択して、インスペクターウィンドウの開くをクリックします。
シーンビューの背景が青くなっていれば、プレハブモードに入れている状態です。
プレハブモード中には、ヒエラルキーウィンドウもプレハブアセットの構成要素だけに表示が絞られます。
プレハブモードを終了するには、シーンビュー左上のScenesをクリックします。
背景付きのプレハブモード
もう1つが背景付きのプレハブモードです。シーンビュー上に配置されたプレハブインスタンスをその場で編集できます。周辺環境を考慮しながらの作業に適しています。
このモードで開くには、プレハブインスタンスを選択した状態でインスペクターウィンドウの開くをクリックします。
シーンの背景がそのまま表示され続けますが、プレハブモードに入っています。プレハブに含まれないアイテムは選択もできないので、うっかりの誤操作も心配ありません。
シーン背景を次のように変更することも可能です。シーンビューの上のメニューから選択できます。
- 通常
- グレースケール
- 非表示
オーバーライドの統合
プレハブインスタンスは、プレハブアセットの複製ですが、インスタンス個々に変更を加えることができます。これをオーバーライドといいます。
プレハブインスタンスで行った編集をプレハブアセットに統合(上書き)してしまうことも可能です。
プレハブインスタンスに編集を加えると、オリジナルであるプレハブアセットとの差分がハイライトされます。
インスペクターウィンドウのオーバーライド > すべてを適用するをクリックすると、プレハブアセットに統合されます。つまり、プレハブインスタンスとプレハブアセットとが同じ状態になります。プレハブアセットが変更されるので、ほかのプレハブインスタンスも同様の変更が反映されます。
変更点が複数ある場合、個別に適用の要否を選択することもできます。リストから適用したい変更点を選択して、適用するを選択します。
プレハブのネスト
プレハブは、ネストすることが可能です。
ネストとは、あるものの中に、それと同じ形のものが入っている構造のことです。
つまり、プレハブはプレハブを内包することができるということです。
プレハブインスタンスを含んだ親ゲームオブジェクトをプロジェクトウィンドウにドラッグ&ドロップすることで、ネストされたプレハブアセットが作成できます。
また、既存のプレハブアセットについて、プレハブモード中に、その一部をプロジェクトウィンドウに入れることでもネストされたプレハブアセットになります。
関連付けの解除
あるプレハブインスタンスについて、プレハブアセットとの関連付けを切って、通常のゲームオブジェクトに戻したい場合があると思います。
ヒエラルキーウィンドウの中からプレハブインスタンスを右クリックし、表示されるコンテキストメニューからプレハブ > 展開をクリックすることで、通常のゲームオブジェクトに戻すことができます。
影響を受けるのは、このプレハブインスタンスのみで、ほかのインスタンスやプレハブアセットには影響を及ぼしません。
オーバーライドの取り消し
編集を加え、オーバーライド状態にあるプレハブインスタンスについて、プレハブアセットと同じ状態に戻したい場合は、次の操作でオーバーライドを取り消すことができます。
プレハブインスタンスを選択した状態で、インスペクターウィンドウからオーバーライド > すべてを元に戻すをクリックします。
変更箇所ごとに編集を取り消すことも可能です。オーバーライドから変更点を選択して、元に戻す
プレハブバリアント
ほぼ同じだけれど、色違いやパーツ違いの派生オブジェクトを作成したい、という場合があります。そんなときには、作成済みのプレハブをベースに、派生プレハブを作成することができます。これをプレハブバリアントと呼びます。
もちろんベースとしたプレハブアセットに変更を加えるとバリアントも同期して変更を受け継ぎます。
基礎部分や共通項をプレハブアセットで作成しておいて、追加・差分をバリアントで作成する、とすると管理もしやすく便利です。
プレハブバリアントの作成方法は、プレハブインスタンスに必要な編集を加えた後、プロジェクトウィンドウにドラッグ&ドロップすることで、プレハブバリアントが作成できます。
ベースのプレハブアセットとプレハブバリアントは、アイコンの違いで判別できます。ベースは水色単色ですが、バリアントはグレーの斜線が入ります。
まとめ
今回は、プレハブについてまとめてみました。オリジナルとコピーとが紐付けされていて、自動的に同期してくれるのがとても便利ですよね。プレハブバリアントについても使いこなせるようになれば手間も削減できそうです。
次回予告
Next time on... ここから始める。「スクリプト」を作ってみよう!
入門編として今回で10回を迎えましたが、一旦ここで区切り体と思います。次回からはC#の解説をしていこうと考えています。
Unityスクリプトに特化せず、広く浅くでC#の基礎やプログラミング全般の知識を中心に記事を積み上げていきたいと思いますので、引き続きお付き合いいただければ幸いです!
では、今回はこの辺で。
コメント
コメントを投稿