【Unity】RPGを作るチュートリアルその56 アイテムに関する行動を処理するクラス

【Unity】RPGを作るチュートリアルその56 アイテムに関する行動を処理するクラス

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

第55回では各行動を処理するクラスのうち、魔法の行動を処理するクラスを実装しました。

今回は同様に各行動を処理するクラスのうち、アイテムの行動を処理するクラスを実装していきます。

 

 

制作環境

MacBook Pro 2023 Apple M2 Max

Unity6 (6000.0.30f1) Silicon

 

作業内容と順序

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

 

チュートリアルの一覧

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

 

前回の内容

前回は各行動を処理するクラスのうち、魔法の行動を処理するクラスを実装しました。

 

アイテムに関する行動を処理するクラス

 

戦闘中の行動処理の概要
戦闘中の行動処理の概要

 

戦闘中の行動処理については、全体の制御を「BattleActionProcessor」で行なって、攻撃や魔法などの個別の行動の処理については、それぞれクラスを追加してそちらで処理させていきたいと思います。

今回はアイテムに関する行動を処理するクラスを実装していきます。

また、各行動処理のクラスで共通してメソッドを実装するように、インタフェースを実装していきます。このインタフェース自体は、第49回で実装済みなので、こちらもご参照ください。

 

アイテムに関する行動を処理するクラスの作成

前回や前々回同様、アイテムに関する行動を処理するためのスクリプトファイルを作成していきましょう。

  • 処理内で必要な参照用フィールド
  • セットアップ用メソッド
  • 行動を処理するメソッド
  • メッセージの表示を制御するメソッド

を実装していきたいと思います。セットアップ用のメソッドと行動を処理するメソッドはインタフェースによって強制されるものです。基本的には攻撃と同じようなメソッドを追加していきます。

Projectウィンドウから「Assets/Scripts/Battle/Action」のフォルダに移動し、MonoBehaviourのスクリプトファイルを作成します。名前は [BattleActionProcessorItem] にしました。

スクリプトファイルの作成
スクリプトファイルの作成

 

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

フィールドとしては、必要なクラスへの参照を保持するようにしています。こちらに関しては攻撃の行動処理クラスとほとんど同じです。

SetReferences()の中でそのフィールドに対して参照をアサインしていて、「BattleManager」を通して参照を取得するのがメインになっています。こちらも他の行動処理クラスと同じですね。

ProcessAction()では引数の行動をもとに、アイテムの行動を処理していきます。メッセージを表示するコルーチンを起動する前に、アイテムを消費させる処理を行なっています。また、アイテムに関しては効果を1つにしているため、このメソッド内で効果の計算も行なっています。

ShowItemHealMessage()ではアイテムによるHP回復が行われる場合のメッセージ表示を行います。こちらも魔法同様、効果によってメッセージが異なるので、分岐後に別のコルーチンを呼ぶようにすると良いかもしれません。チュートリアル内では回復アイテムのみの実装となるので、回復に関するメッセージ用コルーチンを用意しています。

複合的な効果を持つ消費アイテムを作るなら、魔法の定義データのように効果をリストで保持して、それをループで処理させる形が良いかと思います。単一の効果を持つ場合は、アイテムの定義データのような形にすると良いでしょう。チュートリアルなので両方のパターンを実装してみて、あとは作りたいRPGに合わせてどちらを参考にするかを選んでいくことを想定しています。

 

スクリプトのアタッチ

スクリプトを保存したら、ゲームオブジェクトの作成してスクリプトをアタッチしましょう。

 

BattleActionProcessorItemのアタッチ

Hierarchyウィンドウから「BattleParent」の下にある「Managers」から、「BattleActionProcessor」のゲームオブジェクトを選択します。「BattleActionProcessor」の下に、空のゲームオブジェクトを作成しましょう。名前は [BattleActionProcessorItem] にしました。

ゲームオブジェクトの作成
ゲームオブジェクトの作成

 

Inspectorウィンドウで今回作成した「BattleActionProcessorItem」をアタッチします。

スクリプトのアタッチ
スクリプトのアタッチ

 

動作確認については、行動関係のクラスができたタイミングで行いましょう。

 

今回のブランチ

 

まとめ

今回はアイテムに関する行動を処理するクラスを実装しました。アイテムに関しても、効果が多岐に渡る場合は個別にクラスを作ったりメソッドを分けたりすると良いかと思います。バリエーションの多さもRPGの戦闘中の楽しみに繋がっていきますからね。

次回は戦闘からの逃走に関する行動を処理するクラスを実装していきます。

 

     

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

CTA-IMAGE

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


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


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