【Unity】RPGを作るチュートリアルその89 イベント向けのPrefabの構成
- 2025.06.30
- RPGチュートリアル
- RPG, Unity, ゲーム開発, チュートリアル

シンプルなRPGをUnityで作るチュートリアルシリーズの89回目です。
第88回ではイベントを処理するクラスを実装しました。
今回はイベント用のスクリプトをアタッチするため、既存のNPCのゲームオブジェクトについてテンプレート用Prefabを作成していきます。
制作環境
MacBook Pro 2023 Apple M2 Max
Unity6 (6000.0.30f1) Silicon
作業内容と順序
シンプルなRPGを作る上でどんな作業が必要か、どんな順番で作っていくと良さそうか、別ページで検討しました。基本的にこの流れに沿って進めていきます。
チュートリアルの一覧
このシリーズ全体の一覧は以下のページにまとめています。
前回の内容
前回はイベントを処理するクラスを実装しました。
イベント用にPrefabを構成
イベントの機能をNPCと紐付けるにあたって、イベントを実行するために必要なゲームオブジェクトのまとまりをあらかじめ用意することで、設定時に戸惑わないようにしていきます。
今回作業したいPrefabは、
- NPC
- マップ
です。
NPCに関しては今のところPrefabにはしていませんが、イベント部分のPrefabを作ってそれをテンプレートにする形にしていきます。
マップについてはタイルマップをまとめるゲームオブジェクト、NPCをまとめるゲームオブジェクト、イベントをまとめるゲームオブジェクト、といった形でマップ内のゲームオブジェクトを整理しておきます。こうすることで、デバッグ中にもどれを変更すれば良いのか掴むための時間を減らせるかと思います。
NPCのイベント用Prefabを作成
作業をするNPCはどれでも良いのですが、心理的に色々いじっても抵抗感のないゴブリンくんで作業を行なっていきたいと思います。

イベント用のPrefabとしては、以前紹介した以下のイメージ図に沿って作成したいと思います。

ゲームオブジェクトの作成
Hierarchyウィンドウから「NPC_Goblin」のゲームオブジェクトを選択し、空のゲームオブジェクトを子オブジェクトとして作成します。名前は [EventFileData] にしました。このゲームオブジェクトがイベント用のPrefabの起点になるようにします。

次にイベントファイルに紐づくゲームオブジェクトを作成します。グラフィックの制御クラスをアタッチするゲームオブジェクトとして [EventGraphicController] を、イベントページをまとめるゲームオブジェクトとして [EventPages] をそれぞれ作成します。

グラフィックに関しては、ページと画像との対応を保持する [EventGraphicRecord] のゲームオブジェクトも1つ作成しておきます。グラフィックの変更が必要ない場合は「EventGraphicController」側でSpriteRendererやAnimatorの参照をアサインしなければOKです。

続いて「EventPages」の子オブジェクトとして [EventPage] を作成します。このゲームオブジェクトに各ページの情報を持たせます。

イベントページ内では、条件を取りまとめるゲームオブジェクトとして [Conditions] を、イベントプロセスを取りまとめるゲームオブジェクトとして [Processes] をそれぞれ作成します。また、「Conditions」の子オブジェクトとして条件用のゲームオブジェクトである [EventPageConditionFlag] も作成しておきます。

スクリプトのアタッチ
ゲームオブジェクトを作成したらスクリプトをアタッチしていきます。基本的にはゲームオブジェクトと同名のスクリプトをアタッチする形になります。
参照関係をスムーズにアサインするため、深い階層のゲームオブジェクトからスクリプトをアタッチしていきましょう。
「EventPageConditionFlag」のゲームオブジェクトを選択し、同名のスクリプトをアタッチします。フラグの名称はnullのままでOKです。

次に「EventPage」のゲームオブジェクトを選択し、こちらも同名のスクリプトをアタッチします。条件のリストや、開始プロセスの設定は実際に作っていく時に入れていきましょう。

続いてグラフィック関係のスクリプトをアタッチします。「EventGraphicRecord」のゲームオブジェクトを選択し、こちらも同名のスクリプトをアタッチします。参照関係は特に設定せず、実際に作るときにアサインします。

「EventGraphicController」のゲームオブジェクトでも同名のスクリプトをアタッチします。

最後に「EventFileData」のゲームオブジェクトでも同名のスクリプトをアタッチします。「EventGraphicController」への参照はPrefab化しても変わらないので、アサインしておきましょう。

Prefabを作成
スクリプトのアタッチが完了したら、Hierarchyウィンドウで「EventFileData」を選択し、Projectウィンドウの「Assets/Prefabs」のフォルダにドラッグ&ドロップしてPrefabを作成します。これでテンプレートとしてイベント関係のスクリプトがアタッチされたPrefabを使うことができるようになったので、イベントとして作成したいNPCやイベント用ゲームオブジェクトに組み込んでいきましょう。

マップのPrefabの構成を変更
また、各マップ用Prefabでもカテゴリごとに親オブジェクトを分けておきたいと思います。Projectウィンドウから「Assets/Prefabs/Map」のフォルダに移動し、マップ用のPrefabを選択して、Inspectorウィンドウ右上にある [Open] をクリックします。

Prefabの編集モードになったら、「Map_0001_Village」の直下に空のゲームオブジェクトを3つ作成します。名前はそれぞれ [Tilemaps]、[NPC]、[Events] にしました。もともと作成済みのタイルマップ3つについては、「Tilemaps」の子オブジェクトにします。

「Map_0000_TestMap」、「Map_0002_Field」、「Map_0003_Dungeon」のPrefabでも同様に親フォルダを作成します。
イベントを作り込んでいく際には、これらの親フォルダを使ってマップ内のゲームオブジェクトを整理しつつ進めていきたいと思います。
今回のブランチ
まとめ
今回はイベント用のスクリプトをアタッチするため、既存のNPCのゲームオブジェクトについてテンプレート用Prefabを作成しました。テンプレートがあれば毎回スクリプトのアタッチをする手間を減らせるので、多少楽できそうです。
次回はイベント機能の繋ぎ合わせと、メッセージ表示のイベントの作成を行います。
ゲーム開発の攻略チャートを作りました!
-
前の記事
【Unity】RPGを作るチュートリアルその88 イベントを処理するクラスを実装 2025.06.30
-
次の記事
【Unity】RPGを作るチュートリアルその90 メッセージ表示イベントの作成 2025.07.01
コメントを書く