1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【非公式】某会社設立記念ゲリラAdvent Calendar 2016

Day 12

【ゲリラアドカレ】UE4ゲーム実装 進捗報告 6日目(バトル画面ロジック実装 その1)

Last updated at Posted at 2016-12-14

【非公式】某会社設立記念ゲリラ Advent Calendar 2016 12日目の記事です。

FlashゲームをUE4で再実装するゲリラアドカレです。

昨日は体調不良でお休みをいただいていたため、本日更新します。
今回はバトルのロジックを組みたいと思います。
実装項目がかなり多いので、複数回に分けます。

まず、スキルは一旦後回しにして、攻撃、逃走のコマンドを実装していきます。

・注意
許可を取ってないので通常業務の空いた時間を利用して作成するため、作成中のゲーム、及びアドカレは完成保証がなければ、ゲーム自体もリリースされる保証も皆無なので、あんまり期待しないでください。

#構造体作成

バトルは情報が多いため、アクター、もしくはウィジェットを継承したブループリントにバトルに必要な変数を作成すると依存が高くなる、柔軟に対応できなくなるなど色々と問題が出るため、必要な変数をまとめる構造体を作成します。

構造体作成.png

とりあえず仮決めで以下の変数を持たせることにしました。
image

一部に新規に作成した列挙型を使用しています。

#列挙型作成

固定値を使用するなら列挙型にして選択するようにします。
列挙体作成.png

ひとまず二つの列挙型を作成しました
image

image

#GameStateBase作成

バトルの行動順をGameStateBaseに格納します。
GameInstanceに格納しても同様のことはできますが、バトルの行動順はバトル画面以外は使わないため、こういう形にしました。

とりあえずGameStateBaseを継承したブループリントクラスを作成します。
image

配列とイベントディスバッチャーを作ります。
image

#コマンド選択

UIのコマンドをクリックした時に実行する処理を書いていきます。
コマンド.png

逃走は確立で出来るようにしたいのですが、一旦確実に逃げられるようにします。
逃げに成功した場合はOpenLevelでクエスト画面を呼ぶようにします。

攻撃ボタンを押した時は攻撃を示す構造体データを割く静止して、カスタムしたGameStateBaseに格納します。
このゲームでは3人のコマンドを選ぶ必要があるため、構造体を作成したら3人コマンドを選んだか判定します。
3人選び終わった場合、この時点では一旦クエスト画面に戻すようにしています。

#イベントディスバッチャー登録

とりあえずレベルブループリントで登録したイベントディスバッチャーをバインドさせます。

image

イベントディスバッチャーで呼ばれたらこのイベントを呼び出すようにしています。
将来的にここから演出再生の呼び出しを行いたいと思っています。
image

また、キャラを選択したら画像を変えるため、バインド関数、及び簡易的なアニメーションを実装、それをイベントディスバッチャー経由で呼び出すように変えました。
スライドアニメーション.png

画像のバインド関数を作成しました。
コマンド1.png

#とりあえずコマンドを選択できるようになった

image

まだまだ先は長そうです。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?