1
1

More than 5 years have passed since last update.

【ゲリラアドカレ】UE4ゲーム実装 進捗報告 7日目(ランダムエンカウントロジック)

Last updated at Posted at 2016-12-15

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

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

今回はバトル画面の実装を一旦置き、ランダムエンカウントの判定ロジックを組みます。

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

参考にしたサイト

DQ1,2(SFC)エンカウント判定に関する解析結果

こちらに書いてある内容をそのまま実装したいと思います。
ちなみにオリジナルのエンカウント判定計算式は知りません。
というかむしろこちらも知りたい

大人の事情ということでご了承ください。

関数ライブラリを作成

エンカウント判定は関数ライブラリで実装したいと思います。
コンテンツブラウザ右クリックで下のブループリントから、「ブループリント関数ライブラリ」を選択します。
ライブラリ.png

ランダムエンカウント処理を実装

早速関数ライブラリにランダムエンカウント処理を実装します。

image

かなり長くなったため、一部グラフを折りたたんでいます。
stageIdと歩数を元に計算していきます。

まずエンカウント指数と歩数しきい値のArrayを作成します。
image

作成が終了したら、ステージIDから、エンカウント指数としきい値をローカル変数にセットします。
image

続いて単純歩数によるエンカウント指数の除算処理を行います。
image

現状では12歩まで指数に除算補正が入るということになります。

続いて地形タイプに応じた歩数によるエンカウント指数の乗算処理を行います。

image

歩数としきい値を判定し、エンカウント指数に乗算処理による補正を行っています。
最後にエンカウント判定を行います。

image
最大255のランダム値 < 補正済みのエンカウント指数がtrueの時、エンカウントをしたとみなします。

関数ライブラリ呼び出し

最後にエンカウント処理を呼び出します。

image

このようにブループリントの関数検索で先ほど作った関数ライブラリが呼び出せるようになります。
image

ランダムエンカウントが出来た!

ランダムエンカウントができるようになりました。

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