【Unity】3DダンジョンRPGの作り方 第18回|戦闘システム完成・セーブ&ロード実装 | Unity入門の森 ゲームの作り方

【Unity】3DダンジョンRPGの作り方 第18回|戦闘システム完成・セーブ&ロード実装

Unity 3DダンジョンRPGの作り方 ~世界樹・ウィザードリィ風ゲームを作ろう~

現場レベルのゲーム制作が、すべてここで学べます。

【永久会員チケット】

永久会員チケット|Unity入門の森

全講座を見放題で学ぶ

ソースコード・素材・プロジェクトすべて公開。
Unityの基礎から応用まで、一生使えるスキルを体系的に習得。

この講座は世界樹の迷宮やウィザードリィのような3DダンジョンRPGの作り方について説明しています。今回はその第18回目になります。

前回はダンジョン内のイベントをEntityという形で実装し、ダンジョン探索のシステムを一通り用意しました。

前回の記事:

【Unity】3DダンジョンRPGの作り方 第17回|マップギミック・イベントシステムの実装
この記事はUnityを用いた3DダンジョンRPG作り方講座の17回目になります。前回はアイテム図鑑・モンスター図鑑を実装し、ゲーム内でのやりこみ要素やコレクション要素を追加しました。RPGに限らず様々なゲーム開発に応用できるスキルです。前回...

今回は手つかずだった戦闘時の各種コマンド(スキル発動・アイテム使用・防御する・逃げる)やダメージ以外のスキル効果の実装を完了させます。またゲームを繰り返し遊ぶ上で必須となるセーブ&ロード機能も実装していきます。

【ゲームの作り方講座プレゼント中!】

全スキル効果を実装する(回復・状態異常・バフ・デバフ)

まずは戦闘ダメージ効果(DamageEffect)以外のスキル効果を実装していきます。追加実装するのは以下の効果です。

  • HealEffect(回復効果):対象のHPを回復する
  • StateEffect(状態異常効果):対象に特定の状態異常を確率で付与する
  • RemoveStateEffect(状態異常解除効果):対象の特定の状態異常を解除する
  • SpecialEffect(特殊効果):上記のどの効果にも属さない特殊な処理を行う(今回は実装しないが拡張枠として用意)

状態異常の付与に成功する確率は、使用者と対象差のLuc(運)パラメータの差で決定されます。

では、いくつかのC#スクリプトを修正していきましょう。

SkillEffect.cs

  • 回復スキル
  • 状態異常付与(運の値を考慮した確率計算付き)
  • 状態異常解除
  • 将来の拡張用フレームワーク

が追加されています。これにより、ダメージだけでなく多様なスキル効果を実装できるようになっています。

状態異常命中率はLucの差を反映させるために、設定されたスキル命中率をもとに実効命中率を計算して判定を行っています。

(54行目の変更はただコメントをまとめただけです)

SkillDataEditor.cs

SkillDataのScriptableObjectをInspectorから編集するときの拡張クラスで、ダメージ効果以外の追加にもボタン1つで対応できるようにしました。

SkillData.cs (一部省略)

SkillDataのScriptableObjectにおいて、パッシブ効果を設定できるように拡張しました。
passiveEffectTypeに文字列を入力しておけば、「そのスキルを習得しているキャラは常時〇〇の効果を得る」といった処理に利用可能です。

今回はパッシブスキル自体は作成しませんが、後ほど用意する逃走コマンドにおいてこのpassiveEffectTypeパラメータを使用します。

ActorData.cs

パッシブスキルを作成する場合に利用できるメソッドを追加しておきました。
そのアクターの指定のパッシブスキルの有無と効果量を返します。

回復スキルの実装例

アクター1人のHPを15回復します。スキルレベルにより効果量が上昇します。

状態異常スキルの実装例

スキルを使用した自分自身に確定で”Protection”の状態異常を付与します。(2ターン持続)

他の状態異常スキルを付与する際も同様です。また、これらの状態異常の定義はCharacterData.csの238-245行目、実際の処理はBattleManagerで既に実装済みです。例えば毒効果であればBattleManager.csの713行目に存在しています(最大HPの10%のダメージを与えるなど)。

状態異常解除スキルの実装例

アクター1人の”Poison”、”Stun”、”Mark”の状態異常をそれぞれ解除します。

各ジョブのスキルツリーにスキルを登録する(復習)

新しくスキルを作成したらジョブのスキルツリーにセットしてみましょう。既に作ったScriptable Objectに設定するだけですね。

 

どんなスキルを用意するか。どんなスキルツリーを作るかはあなた次第。

戦闘コマンド実装:スキル

それでは用意したスキルを戦闘で使用可能にしていきます。

まだアクタースキルを戦闘中に使用することができないので、戦闘シーンを拡張し、コマンドボタンの[SKILL]を押下することでスキル使用できるようにしていきます。

続きを読む
このコンテンツはパスワードで保護されています。 コンテンツを読みたい方はUnity入門の森ショップ(https://unityforest.shop/)で講座閲覧権を取得してね。

まとめ

これで戦闘のシステムが一通り完成し、ゲームのセーブ&ロード機能によって繰り返し遊ぶことも可能になりました。

次回の記事ではダンジョン探索中にメニュー画面を開き、アイテムやスキルを使用できるようにします。次回で3DダンジョンRPGの基本機能が完成します。

次の記事:

【Unity】3DダンジョンRPGの作り方 第19回|メニュー画面実装・ダンジョンRPGシステム完成
この講座は3Dダンジョン探索型RPGの作り方について解説しています。今回はその第19回目になります。前回は戦闘システムの仕上げとセーブ&ロード機能の実装を行いました。前回の記事:今回は戦闘していない移動画面でのスキル・アイテム使用が可能にな...

Unity 3DダンジョンRPGの作り方講座に戻る >>

【ゲームの作り方講座もプレゼント中!】

現場レベルのゲーム制作が、すべてここで学べます。

【永久会員チケット】

永久会員チケット|Unity入門の森

全講座を見放題で学ぶ

ソースコード・素材・プロジェクトすべて公開。
Unityの基礎から応用まで、一生使えるスキルを体系的に習得。

コメント

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