Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

This article is a Private article. Only a writer and users who know the URL can access it.
Please change open range to public in publish setting if you want to share this article with other users.

Physical-Burst-ProjectのCPについて

Posted at

はじめに

Physical-Burst-ProjectのCPについて気になってる人がいたので書いてみました。
アルゴリズムの解説を図とか使って解説していきます。

ゲームシステムの振り返り

このゲームにおいて、ユニットの行動は以下のプロセスで構成されます。

行動選択

image.png
以下の4種類の行動から選びます。

  • 移動
  • 襲撃
  • 待ち伏せ
  • 行動

コマンド選択(行動or戦闘のみ)

image.png
「行動」と「戦闘」を選択した場合はどのコマンドを使うか選びます。

対象 or 移動先選択

image.png
対象、範囲、移動先などを選択し、行動内容を確定させる。

これら全てを状況に合わせて選択できるようにアルゴリズムは設計されています。

CPのアルゴリズム

ヘイトについて

image.png
敵ユニットは戦闘に参加しているユニット毎に「ヘイト値」を持っており、これが一番高い味方ユニットを狙うようになっています。
攻撃を受けると、その攻撃を行ったユニットの「ヘイト値」がダメージに応じて増えるようになっています。
image.png
また、魔法などの「行動」はそのユニットに向けられたヘイト値を全て増加させます。(つまり、魔法を使うと全ての敵に狙われやすくなる)
image.png

行動選択について

image.png

全ての敵(ユニット)には攻撃可能範囲が設定されています。基本的には
$攻撃可能範囲 = 移動範囲+攻撃範囲$
であり、2回目の行動では
$攻撃可能範囲 = 攻撃範囲$
に設定されます。

この攻撃可能範囲にターゲットが入っているかどうかでCPの行動選択が行われます。

攻撃可能範囲にターゲットが入っている場合

ターゲットに「襲撃」を行います。(そのときのコマンド選択に関しては後々解説します。)
image.png

攻撃可能範囲にターゲットが入っていない場合

「移動」、「待ち伏せ」をそれぞれ50%で選ぶ。
「移動」の場合、ターゲットの方向に限界ギリギリまで移動する。
image.png

コマンド選択

襲撃を行う場合、コマンドを選択する必要があります。
コマンドには、敵ユニットの種類毎にそのコマンドの「出しやすさ」が設定してあります。
image.png
そしてそのコマンドの出しやすさを全て足して数直線を作り出し、数直線上にランダム点を打って、そこがどの技の範囲であるかによってコマンドを決定しています。
image.png
また、戦闘優先度が相対的に高い場合は攻撃系コマンドの「出しやすさ」を増やし、防御系コマンドの出しやすさを減らしています。
逆に、戦闘優先度が相対的に低い場合は攻撃系コマンドの「出しやすさ」を減らし、防御系コマンドの出しやすさを増やしています。

その他

戦闘の際に相手がバーストを行ったら、90%の確率で自分もバーストを行うようになっています。
また、不利な行動の際にも90%の確率でバーストを行います。

終わりに

今回はCPの実装について書いてみました。
結構このゲームに特化した特殊な実装ですが、何かコマンドバトルを行うゲームなどを作る際に参考になったら幸いです。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?