2DRPGの作り方23 ボス戦イベントを作成してシンボルエンカウントさせよう | Unity入門の森 ゲームの作り方

2DRPGの作り方23 ボス戦イベントを作成してシンボルエンカウントさせよう

Unity C# 2DRPGゲームの作り方 ~ドラクエ風レトロRPGを作ろう!~


Unity入門の森オリジナル本格ゲーム制作講座はこちら
11種類の本格ゲームの全ソースコード公開・画像&動画による解説付き

前回の記事でダンジョンマップにアイテム取得用の宝箱イベントを置けるようになりました。

前回の記事:

2DRPGの作り方22 Unityでアイテムが手に入る宝箱の作り方をマスターしよう
前回までで敵との戦闘に関わるシステムを全て作り終えました。 ランダムエンカウントで敵と戦うドラクエ風のRPGに欠かせない処理が出来上がりましたね。 前回の記事: 今回の記事では、RPGでプレイヤーに喜びを与えるアイテム(宝箱)をダンジョンマ...

今回の記事では、RPGのクライマックスを飾るボス戦を作ります。まずはボス戦イベントをダンジョンマップに追加していきます。

通常のランダムエンカウントではなく、ダンジョンマップで可視化されたボス戦イベントを作成し、プレイヤーが近づいたらボス戦が始まるようにします。

戦闘に関するスクリプトや敵グループの作成法などは通常戦闘と同じなので過去スクリプトやアセット構造を使いまわしていきます。


【Line登録者限定のプレゼントもあるよ!】

ボス戦イベントの作成

それではボス戦イベントの作成・プレハブ設定・ダンジョンマップに配置していきます。

ボスを表すイベントクラスの作成

まず最初に「BossEvent」クラスを実装していきます。

新しく「BossEvent.cs」というスクリプトを作成してください。保存先はお好みでOKですが、記事ではAssets > Scripts > MassEventフォルダーに保存しています。

「BossEvent.cs」の内容は次のものにしてください。

実装できましたら、メニューのAssets > Create > MassEvent > Boss Eventから「BossEvent」を作成してください。

設定内容は以下のようにしてください。

また、後で必要になるのでボス用の「Enemy」アセットと「EnemyAI」アセット、「EncounterEnemies」アセットを追加で作成してください。設定パラメータはお好みで。

(ボス戦で逃げられなくしたい場合は、ボス用の「EncounterEnemies」アセットの「EscapeSuccess」を調節すればOKです)

ボス用のスクリプトを追加

次にボス用のコンポーネントを追加します。

「Boss.cs」というスクリプトを新しく作成してください。保存先はお好みでOKですが、記事ではAssets > Scriptsフォルダーに保存しています。

「Boss.cs」の内容は次の内容にしてください。

「Boss」コンポーネントは「CharacterBase」コンポーネントを継承したクラスになります。

「MassEvent」フィールドにボスの内容を表す「BossEvent」クラスを設定します。

また、イベント発生時に戦闘シーンに入り、倒したらマップ上から削除する処理も「BossEvent」クラスと組み合わせて実装してます。

ボスのプレハブの作成

次にボスのプレハブを作成していきます。

次の手順でGameObjectを作成してください。

  • 「CharacterPrefab」をシーンに配置し名前を「Boss」に変更してください。

作成した「Boss」はプレハブ化してください。

プレハブ化の際は「TODO」のPrefab Variantとして作成してください。

また、シーンにある「Boss」は削除してください。

「Boss」プレハブの設定内容は次のものにしてください。

使用する画像は次のものです(敵の画像と同じです)。インポート後に適切に分割してください。戦闘用とダンジョン配置用ではpivotが異なることに注意(ダンジョン用はBottom Centerになるはず)。

Bossプレハブ

ここまででボスを配置する準備ができましたので次はダンジョンマップに実際に配置していきます。

ダンジョンマップに配置する

それでは「DungeonMap」プレハブに「Boss」プレハブを配置していきます。

記事では次の画像のように配置しました。

マップにボスを配置したもの

配置ができましたら再生し、動作を確認してください。

ボスに移動しようとしたら戦闘シーンに切り替わり、ボスと戦闘するようになっていればOKです。

また、ボスを倒した後にマップ上のボスが削除されていればOKです。

ちなみに戦闘に負けた際はそのままマップシーンに戻りますが、これらの処理は後ほどの記事でゲームオーバー処理を作って整えていくので今はこのままでOKです。

まとめ

今回の記事ではボスをマップに配置できるようにしてきました。

ボスも村人や回復屋などと同じ感じで追加できましたね。一度作っておいたスクリプトや設定を再利用できる形にしておくことで後半の開発が楽になってきました。オブジェクト指向開発のいいところですね。

この記事で作成したボスや一度開いた宝箱はダンジョンマップから出てまた入った時に復活するようになっています。

このあたりの調整はセーブ機能の実装時に改良していきます。しばらくはこの状態でいきます。

今回の内容をまとめると以下のようになります。

  • ボス用の「MassEvent」クラスを追加
  • ボス用のコンポーネントの実装
  • ボス用のプレハブを作成
  • ダンジョンマップにボスを配置した。
  • ボスを倒したらマップ上から消すようにした。

それでは次の記事に行ってみましょう!

2DRPGの作り方24 ゲームオーバー処理とゲームクリア処理を実装する
前回の記事でボス戦を実装し、いよいよRPGゲームとして欠かせない要素の大部分が仕上がってきました。 前回の記事: ですが、まだゲーム完成まではもう少しやることが残っています。ゲームの流れを制御する部分ですね。今回の記事ではゲームの終着地点で...

 

UnityとC#で作る2DRPGゲームの作り方講座に戻る>>



Unity入門の森オリジナル本格ゲーム制作講座はこちら
11種類の本格ゲームの全ソースコード公開・画像&動画による解説付き

コメント

タイトルとURLをコピーしました