テラメリテールの雑魚エンカダメージ計算をやってました。UNDERTALEとどうしても同じにならないけど、 もうこれでいいかな…!どうせ中央付近でバーを止めてGするやろ…!!

今まではバーの中央からどれだけ離れているかを算出するのではなく 純粋にボタンを押したときのバーのX座標を求め、それが例えば10〜50なら攻撃力が低い、 159〜161ならクリティカル、みたいにしていました。

…だが、ウディタにはせっかく「絶対値」を求める機能があるんだからそれを使えばよかったんだ。 つまり、バーを中央で止めたらX座標は160になるんだけど、ボタンを押したときのX座標から 160を引き、その絶対値を求めるだけで中央からどれだけ離れているかの数値が得られるわけだ。

フツーなら、絶対に、すぐ思いつく…ってかセオリー…。でも自分はパカなのでそんなの気づかないんだよ…。

例えばボタンを押したときのX座標が200だったとしたらそこから160を引いて40。 中央からは40ピクセル離れていることになる。

例えばボタンを押したときにX座標が150だったとしたらそこから160を引いて「-10」。 その絶対値を求めるので10となり、中央からは10ピクセル離れていることになる。 かなり中央付近でSTOPさせている、となります。

…んで、UNDERTALEではクリティカル時にどれだけダメージ値が上昇してるのかもわからず。 なので、クリティカル時これだけ上昇すると嬉しいんじゃない?ぐらいの 数値をダメージ係数(ダメージ決定の補正に使う数値)としました。

僅かに中央からそれた時のダメージ係数は分かっているので、あとはそれ以外。 つまりかなり中央から離れた位置でボタンを押した場合のダメージ係数はどうなる?

バーを止められる範囲の横幅のピクセル数の半分を、中央からどれだけ離れているかの数値で割る…っぽいんだが、 それだと僅かに中央からそれた場合の方がダメージ数が高くなってしまう。なんで? もちろん中央のクリティカル時が一番高くなるんだけど、それより少しそれた時のダメージ係数よりも、 さらにわずかに外側だった時の方が高くなる。なんで…?

というわけでもうUNDERTALE式計算法はちょっと置いておき、 中央付近の方が外側よりもダメージ係数が高くなるような計算を作ってとりあえずこれでよし。

あとはトリエル戦の「例外」をFIGHTの中に組み込めるところは組み込めばいいかな…。 そういや昨日「トリエルさんの防御は80と表示されるが実際のバトルで使う数値は もっと低いので、大ダメージを与える時の計算にもう使えない」みたいなことを言ったけど、 よく考えたら防御力をマイナス値にすればいいということに気付きました。

UNDERTALEでそうなっているのかは分からないけど、そうすればダメージ数はめっちゃ増える。 戦う意思をなくしている状態って防御力が限界を超えて下がってたのか…。

でもGルートの一撃は戦う意思はあるはずだから、そのときは主人公の攻撃力を 上げた方がいいかな?とも思っています。まあ、全く目に見えない計算なんだけど…。 例えるならマインドシーカーの、透視か予知かのときの数値の決定のタイミングみたいな…。 わかんねーよ…!
2021年5月22日


◆目次に戻る◆






inserted by FC2 system