OMORI 畳みかけのランダム要素

畳みかけの動画に誤りが見られたので再度録画し直していた時に、ヒロの「オモリを呼ぶ」を何十回やってもオモリの攻撃が一番左のターゲットにしか向かなかったので、何かカラクリがあるのではないかと思い追加攻撃の標的のランダム性について再検証した次第です。

対象エネミーは一度に出てくる数が多くターゲットが分散されやすいと考えられるU.F.O.で、追加攻撃を効果に持つ「もう一発!」「つまずかせる」「オモリくんを見る」「オモリにパスする」「オーブリーにパスする」「オモリを呼ぶ」「オーブリーを呼ぶ」「ヒロを呼ぶ」(スイートハート戦以降)を検証する。それぞれ10回ずつ畳みかけを発動し、追加攻撃の標的がどのように分布したかを簡単に調べる。
ただし、この検証はサンプル数があまりにも少なすぎる上、U.F.O.の数も4体から7体とバラつきがあるので、正確性を著しく欠いた検証となっております。参考程度にご参照ください。


・普通に攻撃して畳みかけを発動した場合

「もう一発!」
左から1番目:10回
「つまずかせる」
左から1番目:8回
   2番目:1回
   3番目:1回
「オモリくんを見る」
左から1番目:9回
   2番目:1回
「オモリにパスする」
左から1番目:5回
   2番目:5回
「オーブリーにパスする」
左から1番目:2回
   2番目:1回
   3番目:2回
   4番目:2回
   5番目:2回
   6番目:1回
「オモリを呼ぶ」
左から1番目:10回
「オーブリーを呼ぶ」
左から1番目:4回
   2番目:3回
   3番目:3回
「ケルを呼ぶ」
左から1番目:4回
   2番目:4回
   3番目:2回

一応畳みかけを使用するキャラクターの最初の攻撃先がなるべくばらけるようにしたつもりだが、「オーブリーにパスする」以外は全体的に左に寄った結果となっている。「オーブリーにパスする」の自己啓発本での説明は「ケルがボールを投げて、オーブリーがホームランを打ち、ランダムなエネミー
1体に特大ダメージを与えるよ!」とのことで、説明通りある程度分散した結果となっている。ただ、初めにプレイヤーが設定した標的が畳みかけ前の攻撃でやられてしまう場合、そこで追加攻撃の標的を決定するプログラムが実行されない等の影響が出ているかもしれないので(具体的に言えば、同じ標的に攻撃するという畳みかけがあった時に、最初の攻撃で初めの標的がやられてしまうと、畳みかけでの攻撃の標的決定に本来適用されるはずだったプログラムが適用されず、別のもので決定してしまうだろう、というようなもの)、次は畳みかけを使用するキャラクターの最初の攻撃が外れるという場合にそれぞれの畳みかけの追加攻撃の標的がどのように分布するかを調べる。

・最初の攻撃が必ず外れるようにした場合
オモリ以外は装備を全部外すことで命中率を0にしている。オモリは装飾品「眼帯」(命中率-25%)を装備して「さいこ~」状態にすることで攻撃を外す確率を上げている。

「もう一発!」
左から1番目:2回
   2番目:3回
   3番目:3回
   4番目:2回
「つまずかせる」
左から1番目:2回
   2番目:3回
   3番目:3回
   4番目:1回
   5番目:1回
「オモリくんを見る」
左から1番目:9回
   2番目:1回
「オモリにパスする」
左から1番目:10回
「オーブリーにパスする」
左から1番目:5回
   2番目:2回
   3番目:0回
   4番目:1回
   5番目:1回
   6番目:1回
「オモリを呼ぶ」
左から1番目:10回
「オーブリーを呼ぶ」
左から1番目:0回
   2番目:8回
   3番目:2回
「ケルを呼ぶ」
左から1番目:0回
   2番目:2回
   3番目:8回

「もう一発!」と「つまずかせる」に関しては、初めの標的と畳みかけの標的が10回中10回とも一致した。一方、「オモリくんを見る」は初めの標的の位置に関わらず畳みかけの攻撃がかなり左に偏った結果となった。「オモリくんを見る」の自己啓発本での説明は「オーブリーがオモリの注意を引こうと、同じエネミーにすごく強い防御無視の攻撃をするよ!」となっているが、この検証によりこの記述が間違いであることが分かる。
これ以外に特筆すべき点としては、「オモリを呼ぶ」が左から1番目、「オーブリーを呼ぶ」が左から2番目、「ケルを呼ぶ」が左から3番目、という標的になる傾向が推測されることである。7体のU.F.Oがいた場合に「ケルを呼ぶ」を使うことを考え、U.F.O.の個体をそれぞれA1,A2,…,A7と置く。仮に「ケルを呼ぶ」の畳みかけの標的を決定するプログラムがA3を高確率で標的とするものだった場合、初めにA1またはA2を攻撃してそれらがやられたならば畳みかけの標的は左から2番目となる。また、初めにA3を攻撃して倒した場合このプログラム自体が実行されず別の標的決定プログラムが働くと考えることもできるだろう(個人的推察ではこの別の標的決定プログラムというのは標的となるか否かが左に位置するエネミーから順に確率で判定されるため、左に位置するほど標的となる確率が高いのだと勝手に思っている)。このように考えれば、普通に攻撃した場合の「ケルを呼ぶ」の標的の分布と最初の攻撃が必ず外れる場合の「ケルを呼ぶ」の標的の分布に差異が生じる現象を一応説明できる。もちろん、この議論は少ないデータから予想した仕組みを頭の中でこねくり回したただの机上の空論に過ぎず、実際にどうプログラムされているのかはゲームデータを詳細に調べないと分かり得ないことである、というのはご理解いただきたい。
上記のただの妄想よりも重要で興味深い事実として、パーティーの命中率を0の状態で「オーブリーにパスする」を使うと、なぜか空振ることなくダメージを与えられる。「オーブリーにパスする」が実は必中である隠れ仕様があるのか、はたまたバグであるのか、それはわからない。
最後に、「もう一発!」と「つまずかせる」が「同じエネミーに」攻撃する畳みかけなのか、「オモリくんを見る」が「同じエネミーに」攻撃するとは限らない畳みかけなのかを調べる。ダメージを与えられた場合と空振った場合で差異が生じる可能性があるからである。

・初めの標的と畳みかけの標的が本当に一致するのかを調べる

調べたところ、「もう一発」「つまずかせる」「オモリくんを見る」はいずれもランダムに標的を決定するということが分かった。試行回数があまりにも少なすぎるので信憑性はほとんどないが、もしかすると「もう一発」と「つまずかせる」には、空振った場合は標的を変えないという仕様が存在するかもしれない。
動画を見てもらえると分かると思うが、この検証をしている最中かなり妙なことが起きている。今回は苗モグラ??と実験ネズミで検証しているが、「つまずかせる」が苗モグラ??にしか当たらない周期と実験ネズミにしか当たらない周期が存在している。これもただの運である可能性はあるが、ここまであからさまに周期が存在していると、ただのランダムじゃないのではないかと疑わざるを得ない。


このように畳みかけの攻撃のランダム要素について検証してみたが、結論としては「よくわからない」である。バトルシステムに関するplugin等のコードを読むのが最善なのだろうが、筆者はプログラミングに精通しているわけでは全くないのでなかなか踏み出せずにいる。内部の仕様を理解して何か得られることがあればまた書き連ねたいと思います。
深夜に書いた雑な記事でしたが、最後まで読んでいただいた方ありがとうございます。

この記事が気に入ったらサポートをしてみませんか?