【Unity】RPGを作るチュートリアルその104 各マップの移動イベントを実装
- 2025.07.10
- RPGチュートリアル
- RPG, Unity, ゲーム開発, チュートリアル

シンプルなRPGをUnityで作るチュートリアルシリーズの104回目です。
第103回ではレベルアップ時に魔法を覚える処理を実装しました。
今回はゲーム内で使用するイベントの実装を進めていきます。各マップを繋ぐマップ移動のイベントを実装していきましょう。
制作環境
MacBook Pro 2023 Apple M2 Max
Unity6 (6000.0.30f1) Silicon
作業内容と順序
シンプルなRPGを作る上でどんな作業が必要か、どんな順番で作っていくと良さそうか、別ページで検討しました。基本的にこの流れに沿って進めていきます。
チュートリアルの一覧
このシリーズ全体の一覧は以下のページにまとめています。
前回の内容
前回はレベルアップ時に魔法を覚える処理を実装しました。
各マップのイベントを実装
イベント機能について、コードの部分はある程度作成できたので、各マップで実際にイベントを組んでいきましょう。といっても村のイベントについてはイベントプロセスを実装する際にある程度作ってあるので、
- 各マップをつなぐマップ移動のイベント
- ボスゴブリンの会話と戦闘のイベント
- エンディングのイベント
を実装すれば、当初想定していたイベントとしては実装が完了します。案外進んでましたね(安心)
今回は各マップをつなぐマップ移動のイベントの部分を作成してきます。
各マップをつなぐマップ移動のイベントの作成
作成したマップ同士で移動するイベントを作成していきましょう。村からフィールドに移動するイベントは作成済みなので、こちらを複製してマップ移動させたい位置に配置していきます。
フィールドから村への移動
フィールドのマップを編集するため、Projectウィンドウから「Assets/Prefabs/Map」にある「Map_0002_Field」をHierarchyウィンドウの「Grid」の下にドラッグ&ドロップしてインスタンス化しましょう。

「Map_0001_Village」の下にある「Events」の中から「Event_MoveMap」をコピーして、「Map_0002_Field」の下にある「Events」の子オブジェクトとしてペーストします。

ペーストした「Event_MoveMap」の位置は「X」を [2.5] に、「Y」を [5.5] に設定します。これはフィールド上の村のアイコンがある位置になっています。イベントの画像が重なって見えにくい可能性があるので、「SpriteRenderer」の「Color」にて、アルファの値を「168」程度に変更しておくと両方見えるようになるかと思います。

続いて「Processes」の下にある「MoveMap」にて、「Target Map Id」の値を [1] に、「Target Position」の「X」を [7] に、「Y」を [0] に変更します。村の入り口にあるマップ移動イベントのひとつ上のタイルに移動します。

フィールドからダンジョンへの移動
ダンジョンに移動するイベントも作成しましょう。先ほど作成した「Event_MoveMap」を複製し、名前で区別できるようにそれぞれ [Event_MoveMap_Village] と [Event_MoveMap_Dungeon] にしました。

「Event_MoveMap_Dungeon」の位置は「X」を [13.5] に、「Y」を [12.5] に設定します。フィールド上のダンジョンアイコンと重なるように配置しましょう。

続いて「MoveMap」の設定を行いますが、その前に移動先の位置を特定するために「Map_0003_Dungeon」のPrefabもインスタンス化しましょう。必要に応じて表示、非表示を切り替えてください。

先行してダンジョンにも「Event_MoveMap」を複製して配置してみたところ、入り口の位置は「X」が「-3.5」、「Y」が「8.5」だったので、このひとつ右を移動先として、「Target Map Id」の値を [3] に、「Target Position」の「X」を [-3] に、「Y」を [8] に変更します。ワールド座標から0.5を引くとタイルの座標になるので、入り口の「X」が「-3.5」、そのひとつ右のタイルの「X」が「-2.5」で、ここから0.5を引いて「-3」としています。

ダンジョンからフィールドへの移動
ダンジョンからフィールドに移動するためのイベントも作成します。フィールドへの移動なので、「Map_0001_Village」の方の「Event_MoveMap」をコピーして、「Map_0003_Dungeon」の「Events」の子オブジェクトとしてペーストします。

「Event_MoveMap」の位置は「X」を [-3.5] に、「Y」を [8.5] に設定します。

「Processes」の下にある「MoveMap」にて、「Target Map Id」の値を [2] に、「Target Position」の「X」を [13] に、「Y」を [11] に変更します。フィールドのダンジョンアイコンのひとつ下のタイルに移動するようにします。

ここまでの設定が終わったら、「Map_0002_Field」と「Map_0003_Dungeon」のそれぞれで、「Overrides」のプルダウンから [Apply All] をクリックしてPrefabに変更を適用します。
動作確認
マップ間の移動について動作を確認していきましょう。「Grid」の下のすべてのマップは非表示にしておきます。

ゲームを実行して、オープニングを終わらせた後、
- 村からフィールド
- フィールドから村
- フィールドからダンジョン
- ダンジョンからフィールド
のそれぞれのマップ移動を確認します。もし移動先のズレなどがあった場合は、対応するイベントの「MoveMap」を調整していきましょう。

今回のブランチ
まとめ
今回はゲーム内で使用するイベントの実装として、各マップを繋ぐマップ移動のイベントを実装しました。マップを切り替えて行ける場所が増えていくとゲームらしさが増してきますね。
次回はボスゴブリンの会話と戦闘のイベントを実装していきたいと思います。
ゲーム開発の攻略チャートを作りました!
-
前の記事
【Unity】RPGを作るチュートリアルその103 レベルアップ時に魔法を覚える処理の実装 2025.07.10
-
次の記事
記事がありません
コメントを書く