🔙 トップページに戻る

【なかモンAI検証】回復スキル選択ロジック完全解明!性格ごとの隠れた有意差とは

※ 文章の肉付けはAIに任せたので、ところどころで誇張表現が少しありますが、データは筆者がしっかりと検証して分析したものなので、結構正しいと思います(100%正しい保証はもちろんありません。反例が見つかったらぜひ教えてください!
(なお、AIによる誇張が激しい部分は筆者がこっそり取り消し線や太字にて修正・追記しておりますw)

【重要】本項を読んで理解しても、1ミリも強くなれません(笑)
次のGPで今より良い成績を残したいと本気で思っている人は労力に見合わないので、スルー推奨です

0. 【前置き】

なかまモンスターのグランプリや対戦において、「なぜそこで全体回復を撃ってくれないのか!」「そこで単体回復は無駄打ちだろ!」とAIの挙動に泣かされた経験は誰にでもあるはずです。
本記事では、検証に検証を重ねてついに解明された「回復行動のAIロジック」を公開します。
これを理解すれば、これまで運だと思われていた行動をある程度コントロールし、安定した勝率を叩き出すことが可能になります。可能になりません。ただししっかり理解すればGP中のモヤモヤは減らせるかも。

1. 【結論】回復行動のAIロジック完全フローチャート

まずは結論から。モンスターがどの回復スキルを使用するか(あるいは使用しないか)は、以下のフローチャートに従って決定されています。(画面拡大して見てください・・・。)

graph TD %% 統合された前提条件ノード Note["
【HP割合】
HP割合(%) = floor(現在HP / 最大HP × 100)
※floor = 小数点以下切り捨て

【性格別のHP回復行動閾値(%)】
・おせっかい:80%以下
・ずのう:70%以下
・ぬけめ / きれもの:50%以下
・ちから / いっぴき / むっつり:30%以下
・おおぐらい:20%以下
(※公式のあそびかた参照)
"] style Note fill:#ffffcc,stroke:#ffcc00,stroke-width:2px,color:#333,stroke-dasharray: 5 5 Start(["回復行動の判定開始"]) --> Step1{"① HP割合HP回復行動閾値以下の仲間の数は?"} %% 0体ルート Step1 -- "0体" --> End0(["回復行動を行わない"]) %% 1体以上(ループ処理)ルート Step1 -- "1体以上" --> LoopInit["② 手持ちの回復スキルを
消費MPが少ない順(昇順)に並べ、ループ開始"] LoopInit --> LoopProcess["③ 次のスキルを取り出し、
HP割合HP回復行動閾値以下の仲間達の、回復後HP割合を算出
※単体回復の場合はHP割合が一番低い仲間に使用する
※回復量は「下限値」を使用する"] LoopProcess --> Check90{"④ HP割合HP回復行動閾値以下の仲間達の
回復後HP割合がすべて90%以上?"} %% ショートサーキット(早期終了) Check90 -- "YES" --> End1(["その回復スキルで決定"]) %% ループ継続 Check90 -- "NO" --> CheckMore{"リストに未評価の
スキルは残っているか?"} CheckMore -- "YES" --> LoopProcess %% ループを抜けきった場合の最終判定(タイブレーク処理) CheckMore -- "NO" --> Eval1["⑤ HP割合HP回復行動閾値以下の仲間達の回復後HP割合の最低値が
最も高くなるスキルを候補にする。
同率なら次に低い値...と、順に比較する"] Eval1 --> CheckTie1{"候補が複数あるか?
(同率の場合に複数となる)"} CheckTie1 -- "NO" --> End2_1(["その回復スキルで決定"]) CheckTie1 -- "YES" --> Eval3["⑥ HP回復行動閾値以上の仲間の回復後HP割合の最低値が最も高くなるスキルを候補にする。
同率なら次に低い値...と、順に比較する"] Eval3 --> CheckTie3{"候補が複数あるか?
(同率の場合に複数となる)"} CheckTie3 -- "NO" --> End2_3(["その回復スキルで決定"]) CheckTie3 -- "YES" --> End2_4(["消費MPが最も少ない回復スキルで決定"]) classDef default fill:#f9f9f9,stroke:#333,stroke-width:2px; classDef decision fill:#e1f5fe,stroke:#0288d1,stroke-width:2px; classDef endpoint fill:#e8f5e9,stroke:#388e3c,stroke-width:2px; classDef process fill:#fff3e0,stroke:#f57c00,stroke-width:2px; classDef loop fill:#f3e5f5,stroke:#8e24aa,stroke-width:2px; classDef tiebreak fill:#fffde7,stroke:#fbc02d,stroke-width:2px; class Step1,Check90,CheckMore,CheckTie1,CheckTie3 decision; class LoopInit,LoopProcess loop; class Eval1,Eval3 tiebreak; class End0,End1,End2_1,End2_3,End2_4 endpoint;

2. フローチャートの簡単な解説

たぶん元々ある程度仕組みを知ってる人は図を見るだけで理解できると思います!!(理解できた方は以下は読み飛ばしてもらってOKです!お疲れさまでした!)

は?意味わからんぞ??という人のために図の中の重要なステップを解説します!!

【Step1】 HP割合HP回復行動閾値以下の仲間の数を算出

Step1 フロー拡大図
ここは割と見たまんまですね。なので説明は割愛します(ぉぃ
重要な点は、HP割合を比較する際は全てにおいて小数点以下切り捨ての整数で比較してます。これだけ押さえて次へ進みましょう。

【Step3】HP割合HP回復行動閾値以下の仲間達の、回復後HP割合を算出

Step3 フロー拡大図
少しだけ難しくなってきました。前半と後半に分けましょう。

前半『HP割合HP回復行動閾値以下の仲間達』

最大HPが順番に1014, 1079, 1244, 987(ずのうメイデン) のパーティー構成だとします。

全体攻撃で全員320ダメージを喰らってメイデンの行動ターンとなりました。

現在HPとHP割合はそれぞれ694(68%), 759(70%), 924(74%), 647(65%)です。(HP割合は小数点切り捨ててくださいね)

つまり1番目と2番目(!)と4番目の仲間の計3体がHP回復行動閾値以下の仲間となります。
2番目は70.3%とかですが、切り捨てて70%なので含まれる扱いなのがミソ(死語)です。表現全部AIのせいにできるのわりと便利だな

後半『回復後HP割合を算出』

カイフクゴエイチピーワリアイ・・・(謎)。
音にすると謎ですが、文字通り回復後のHP割合のことです(小泉)
図の注釈にも書いてますが、回復後HP割合を算出する際の回復量は下限値(要するに一番下振れた時の回復量)で計算されます。
また、ホイミなどの単体回復は一番HP割合が低い仲間につかった状態で計算されます。

【Step4】HP割合HP回復行動閾値以下の仲間達の回復後HP割合がすべて90%以上?

Step4 フロー拡大図
注意点として、Step3同様閾値以下の仲間達だけを見てます。つまり先の例だと3番目の仲間(74%)についてはここでは無視です。
実際に 694(68%), 759(70%), 924(74%), 647(65%)回復後HP割合をシミュレートしてみましょう。

めでたしめでたし。



・・・え?3番目を無視した効果がよくわからないって?

まぁ、ちょっとややこしいので一旦後回しにして流れを追うのを優先しましょう(後段で書きます)
と言っても、ここまで理解できたらもうあと少しです。もう難しいことはないんじゃないかな・・・(フラグ)

【Step5】HP割合HP回復行動閾値以下の仲間達の回復後HP割合の最低値が
最も高くなるスキルを候補にする

Step5 フロー拡大図

『回復後HP割合の最低値が最も高くなる』

高いのか低いのかようわからん文章キター!!/(^o^)\

冷静に見ていきましょう。
えーと、つまり、、、

ピンチな仲間達の回復後の状態を眺めて、いっちゃんピンチなやつが少しでもマシな状態になるように頑張るってこと!!!!

疲れたので一気に雑になりました。が、この方がなんか案外わかりやすいんでわ!?(少なくとも小泉構文よりは)

【Step6】HP回復行動閾値以上の仲間の回復後HP割合の最低値が最も高くなるスキルを候補にする

Step6 フロー拡大図
Step5で同率だった場合に通る判定です。
具体的にメイデンのよくあるスキルセットを例にすると、ホイミとハッスルどっちを使っても同じだった場合です。

同じってあんた、そんなんめったにないやつじゃない?気にしなくていいよね??

って思いがちですが、思い出してください、小数点切り捨てられるので、思ったより同じになる幅が多いんです。
HPが1000付近の環境だとまぁざっくり回復量の数値で10差くらいまでは、割合にして切り捨てると同じ値になり得そうですよね?
ここで同率だった場合にはピンチじゃない味方(閾値を超えてる味方)の方にも視野を広げて見てくれます。
たとえばわかりやすくホイミとハッスルが回復量まったく同じ状態だとします。

味方のHP割合
100%, 50%, 100%, 100%
で、回復後HP割合が50%→89%な状況だったとしたらホイミします。
100%, 50%, 100%, 99%
だったらハッスルします。という感じです(賢いですね~)

では復習ですが、同じようにホイミとハッスルの回復量が同じ状態で
100%, 50%, 100%, 100%
で、回復後HP割合が50%→90%な状況だったら?・・・もちろんホイミしますね。
じゃぁ
100%, 50%, 100%, 99%
だったら?

答え↓(ドラッグで反転して見てね)
ホイミですね。

ほうら、簡単でしょ(頭こんがらがりまくり)
間違えた人はフローチャート見直しましょう(Step4ですね)。むずい(><。)

3. 🚨超重要:ここからが本題!攻略への応用ポイントなんども言うけど攻略にはつながらない。ただ、抑えておきたい(知っておきたい)ポイントを振り返ります

このロジックが判明したことで、性格ごとの「隠れた有意差」「回復量調整の重要性」が浮き彫りになりました。

💡 性格ごとの「隠れた有意差」〜おせっかいとずのうの壁〜

これまで性格の違いは単に回復行動をするかどうかだけに影響していると思われていましたが、実は全体回復するか単体回復するかどうかにまで影響が出てくることがわかりました
は?そんなことある??と思いますよね。解説します。

【具体例】パーティのHP割合が「60%, 79%, 100%, 100%」のような状況
前項の【Step4】で後回しにした話です。ずのうは『79%』の仲間を無視するが、おせっかいは救おうとするという状況でどうなるのか。詳しく見ていきましょう。
手持ち:ホイミ(MP小 / 回復量中)、ハッスル(MP大 / 回復量中)

🧠 「ずのう」の場合(閾値70%)

ピンチだと判定される対象は「60%」の1体のみです。

  1. ホイミで60%の仲間を全快近く(90%以上)まで回復すると試算
  2. ピンチな仲間(1体)が90%以上になったため、ホイミで即決定!

結果、79%で削られている仲間は放置されます。

🤝 「おせっかい」の場合(閾値80%)

ピンチだと判定される対象は「60%」と「79%」の2体になります。

  1. ホイミで60%の仲間は全快近く(90%以上)まで回復しますが、79%の仲間はそのまま。
  2. ピンチな仲間(2体)のうち1体は90%未満なので判定は継続。次のスキルの試算へ進みます
  3. ハッスルで2人とも90%以上に回復すると試算し、ハッスルで決定!
は??
HP回復行動の閾値ってこんなところにも効いてくるの???聞いてないし!!おせっかい優秀すぎワロタwww

性格格差が今まで思ってたのよりは少し広がったと言えるのかもしれません。

💡 ② 全体回復の回復量を単体回復以上にする重要性

古のザオマラー全盛の頃からさんざん言われていたように、全体回復を上回る単体回復スキル(ベホイミさん)があるのは良くないという話は改めて言うまでもないですが、 それについては
というような0か1かという抗えない状態(ベホイミの回復量を全体回復で超えることが現状無理なため)だったので知ってさえいれば他の人と差が付くことはないものでした。

ところがハッスルブレイク実装後で頑張れば他の人と大きく差が付くようになってしまいました。 そう、とくぎHP回復の継承玉を盛ることで、「ホイミ>ハッスル」の回復量を「ホイミ<ハッスル」に逆転させることができるからですね。 極メイデンのステータスでとくぎHP回復の継承玉AAを継承させると、結構な割合で「ホイミ≒ハッスル」になります(性格、成長次第)
この状態だとフローのいろんな判定箇所で「同率」になってホイミが選ばれるケースが増えてしまいます。

「ホイミ<ハッスル」とするのが大事ですが、さらになるべくその差を広げたほうがホイミが選ばれるケースが少なくなるため、頑張ってSA継承を目指しましょう(運営やってんなーw)

AIの挙動を理解すれば、あなたのヒーラーはもっと輝きます。ナナレーターでこの数値を再現して、最強の構成を見つけ出しましょう!(まだ回復ロジック変更してないけどな!)

🔙 トップページに戻る