【Unity】RPGを作るチュートリアルその84 イベントの定義用Enumを作成

【Unity】RPGを作るチュートリアルその84 イベントの定義用Enumを作成

シンプルなRPGをUnityで作るチュートリアルシリーズの84回目です。

第83回ではフラグ管理のクラスをシングルトンに変更しました。

今回はイベントに関連するクラス同士の関係を考えつつ、定義値用のEnumを作っていきたいと思います。

 

 

制作環境

MacBook Pro 2023 Apple M2 Max

Unity6 (6000.0.30f1) Silicon

 

作業内容と順序

シンプルなRPGを作る上でどんな作業が必要か、どんな順番で作っていくと良さそうか、別ページで検討しました。基本的にこの流れに沿って進めていきます。

 

チュートリアルの一覧

このシリーズ全体の一覧は以下のページにまとめています。

 

前回の内容

前回はフラグ管理のクラスをシングルトンに変更しました。

 

イベントのデータ構造

イベント機能を動作させるにあたって、データ構造を考えていきたいと思います。

概要については第80回で記載しましたが、図で表すと以下のようなイメージです。

 

イベント関連のクラスのイメージ図
イベント関連のクラスのイメージ図

 

イベントを取りまとめるクラスとして「EventFileData」というMonoBehaviourのクラスを作成し、シーン内のゲームオブジェクトにアタッチします。このゲームオブジェクトはNPCやイベント用ゲームオブジェクトの子オブジェクトにします。

さらにその子オブジェクトとして、「EventGraphicController」のクラスと「EventPage」のクラスをアタッチしたゲームオブジェクトを作成します。「EventGraphicController」はイベント用ゲームオブジェクトのグラフィックを切り替える役割で、条件に合致したページに対応するスプライトやアニメーションコントローラをセットします。例えば宝箱が閉まっている画像、空いている画像を切り替えるイメージです。

「EventPage」はイベントの処理のまとまりで、個別の処理は「EventProcess」というクラスを作成して実装します。どのページを実行するかは「EventPageCondition」のクラスを作成して、条件判定できるようにします。例えばオープニングフラグがfalseなら村長が目的を説明してくれて、trueなら目的地を伝えるメッセージを表示する、みたいな感じです。

同じキャラクターでも条件によって動作が変わるなら複数ページを持ち、常に同じ動作なら1つのページになります。

イベントの処理に関しては、シーン内に「EventProcessor」という処理用のクラスを作成し、このクラスに「EventFileData」への参照を渡して、クラスに紐づく「EventPage」の条件を確認して、条件に合致したページの「EventProcess」を順番に処理していきます。

 

イベント機能で使うEnumの作成

イベントに関しては、イベントの起動方法を選択できるようにEnumを作成します。イベントを起動する方法としては、

  • なし
  • 決定ボタン
  • タイルに乗った時
  • マップに入った時に自動で実行
  • システム側で起動

を用意しておきたいと思います。「なし」の時には条件を満たしても実行されないので、画像だけ表示させておきたい場合などに使うことを想定しています。

Enumを作成するため、Projectウィンドウから「Assets/Scripts/Enums」のフォルダを開き、空のスクリプトファイルを作成します。名前は [RpgEventTrigger] にしました。最初は「EventTrigger」にしようとしましたが、Unityに元からあるクラス名と重複するので「Rpg」をつけています。

イベントの起動方法のEnumを作成
イベントの起動方法のEnumを作成

 

作成した「RpgEventTrigger」の中身は以下のように記載しました。

上で列挙した起動方法をEnumの項目として実装しています。

このEnumについては各ページの設定でInspectorウィンドウから選択できるようにしたいと思います。

動作確認についてはイベント機能がある程度固まってきたら行いたいので、しばらく先になりそうです。

 

今回のブランチ

 

まとめ

今回はイベントに関連するクラス同士の関係を考えつつ、定義値用のEnumを実装しました。ここから長い旅が始まります。楽しみですね(白目)

次回は実行するイベントのページの条件を設定するクラスについて実装していきます。

 

     

ゲーム開発の攻略チャートを作りました!

CTA-IMAGE

「ゲームを作ってみたいけど、何から手を付けていいか分からない!」


そんなお悩みをお持ちの方向けに、todoがアプリをリリースした経験を中心に、ゲーム作りの手順や考慮すべき点をまとめたe-bookを作成しました。ゲーム作りはそれ自体がゲームのように楽しいプロセスなので、「攻略チャート」と名付けています。


ゲームを作り始めた時にぶつかる壁である「何をしたら良いのか分からない」という悩みを吹き飛ばしましょう!