Unity カードゲームの作り方10 カード効果の発動・戦闘ダメージ処理の実装 | Unity入門の森 ゲームの作り方

Unity カードゲームの作り方10 カード効果の発動・戦闘ダメージ処理の実装

Unity 本格カードゲームの作り方 ハクスラローグライク×デッキ構築型カードバトルRPG「呪術迷宮」を作る


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

この講座はハクスラローグライク×デッキ構築型カードバトルRPG「呪術迷宮」の作り方講座の第10回です。

ここまでで戦闘システムの実装に取り掛かるために必要な準備を進めてきました。

前回は敵のUIやダメージ処理や倒したときのアニメーションなどを実装しました。

前回の記事:

Unity カードバトルゲームの作り方9 ステータスUI・カードバトルアニメーションの実装
この講座はハクスラローグライク×デッキ構築型カードバトルRPG「呪術迷宮」の作り方講座の第9回です。 前回の記事では、戦闘シーン内でプレイヤーのデッキを作りそこからカードを引いてくる処理や敵キャラクターデータの設定を行いました。 前回の記事...

この章ではいよいよカードバトル時のカード効果を発動させる処理を実現します。

呪術迷宮に特有のカードをフィールドに5枚配置し、戦闘開始すると左から順番にカード効果が発動されるシステムを実装します。


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

カード効果を発動させるプレイボード管理クラスの作成

フィールド上のカードがどこに配置されているかの情報はFieldManagerが保持していますが、このクラスに効果発動の処理まで追加するとスクリプトが長くなりすぎますね。

そこで、新たにPlayBoardManagerクラスを作成して処理を実装していきます。

BoardCardsPlayメソッドにプレイボード上のカードデータ(最大5枚分)が渡されると順番に効果処理が開始します。

効果の発動演出を後で実装するために一連の処理はDOTweenのSequence処理で組み立てていきます。Sequence内に任意の処理を組み込めるAppendCallbackメソッドを活用しましょう。

このような書式(ラムダ式と言います)でこのメソッドを呼ぶ事によって任意の処理をSequence内に追加する事が可能です。Appendによる追加なので、対象Sequenceにおいてそこまでに設定された他の処理が全て完了してから実行が始まります。

 

カードの個別の効果処理はPlayCardメソッド内に追加していきます。現在はDamage(相手のHPを減らす)効果とForceEqual(カードの強度が効果値と同じでないなら発動を無効)効果の2種類のみを実装しています。

まずDamage効果の実現のためメソッドの最初にdamagePoint変数を宣言しています。現在は相手のHPを減らせる効果がDamage効果しかないのでこの変数は不要ですが、今後別の効果を増やした時に全ての効果で「相手のHPを減らせる量」というのは合計する必要があるので変数を用意しています。

1枚のカードの中には複数の効果が含まれている場合があるのでforeach文で全ての効果を漏らさず適用していきます。foreach文を2つに分けているのは、「他の効果より先に発動させる必要のある効果(ForceEqualなど)」とそれ以外とに分割するためです。今後foreachの数は更に増やします。

foreach内ではswitch文を使用し、該当の効果をそのカードが持っているか確認し、持っていたらその効果を適用させます。

効果がDamageなら先ほど述べたようにdamagePoint変数に対してその効果量を加算します。

最後にCharacterManagerに用意していたHP変更処理を呼び出して、カードを使用したキャラから見て相手側のキャラのHPをダメージ数量分だけ減らすようにします。

 

以上の処理を呼び出すため、カード効果発動ボタンが押された時に呼び出されるFieldManager側の処理を実装していきます。

全カードの中からプレイボード上に配置されているカードを選んで配列に格納し、これをPlayBoardManagerに渡します。

FieldManager.cs (一部省略)

続きを読む

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

テストプレイすれば今回実装した効果が一通り動作することが確認できます。

現状はカードの合成機能がないので初期デッキまたはプレイヤーカードの効果を変更して試してみてください。

回復効果などを試したいときは以前作成したBattleManager.csのUpdate関数内にあるデバッグ機能でプレイヤーのHPを減らしてからカードをプレイすると確認できます。

まとめ

プレイボードに配置したカード効果を順番に発動させる処理を実装していきました。

これでカードゲームの基本であるカードをプレイすることができるようになりました。

呪術迷宮では5枚のカードをプレイする形ですが、このシステムを応用すれば様々なカードの出し方、発動のさせ方に対応したカードゲームを開発することができるはずです。

一通りのカード効果の機能を実装しましたが、まだ未実装の効果も複数あり、一度発動したらテストプレイを終えるしかない問題も残っています。

また、呪術迷宮の戦闘システムの肝となるカードの合成処理も未実装ですね。このあたりのゲームシステムをUnityで引き続き開発していきます。

次の記事:

デッキ構築型カードゲームの作り方11 連続戦闘・ステージ進行・ターン持続カード効果の実装
この講座はハクスラローグライク×デッキ構築型カードバトルRPG「呪術迷宮」の作り方講座の第11回です。 前回はカードプレイ機能の実装、左から順番に効果が発動するオリジナル戦闘システムの作成を行い、最後に呪術迷宮に登場するおおよそのカード効果...

Unity ハクスラローグライク×デッキ構築型カードゲーム「呪術迷宮」の作り方講座に戻る>>



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

コメント

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