【Unity】RPGでの敵とのランダムエンカウントプログラムを作ってみた!
おはようございます。おーみんです。
パーティクルシステムで竜巻(っぽいもの)制作。
— うるとらおーみん (@Ooooooomin_365) August 31, 2019
そしてフィールド歩いてたら敵とのエンカウント時のトランジションも設定完了(アルゴリズムはランダムエンカウント)。
明日はバトルシーンや仲間作りとかそういうのもやっていこ〜!#unity #今日の積み上げ pic.twitter.com/OL0BLb4TAA
ドラクエやFFなどのRPGでは定番中の定番である敵とのエンカウント!
今回はその実装方法について書いていこうと思います。
RPGのエンカウントは2種類ある
エンカウントのアルゴリズムは2種類あります。
→フィールドを歩いていたら一定確率で敵と遭遇(止まっているときは遭遇しない)
→敵があらかじめ見えており、戦いたい敵をある程度選べる
※今回僕が作ったのは「ランダムエンカウント」です。
エンカウントプログラム
必要なロジックは以下の2つ。
・キャラクターが止まっているときはエンカウントは発生しない
・一定確率でエンカウント発生
それらを考慮して書いたプログラムが以下になります。
(※エンカウントに関する部分は24~29行目です。)
Rigidbodyを実装しているキャラクターの速度は25行目のように"rb.velocity.magnitude"で求めることが出来ます。
ランダムエンカウントは単純にRandom関数で特定の値が出力されるのを待つという感じですね~。
29行目で条件を指定してあげれば完成です。
Random.Rangeの範囲はステージによって適度に変えていく必要がありますが、とりあえずはこんな感じでw