Skip to content

Instantly share code, notes, and snippets.

@iwkjosec
Last active July 15, 2021 16:54
Show Gist options
  • Save iwkjosec/77d634498ca3626cd197ae6f31cd3d41 to your computer and use it in GitHub Desktop.
Save iwkjosec/77d634498ca3626cd197ae6f31cd3d41 to your computer and use it in GitHub Desktop.

イナズマイレブンGO ギャラクシー 小ネタ集

小ネタ、豆知識的なものを書いておこうとしたからinzm-go3_tips.mdなんだけど火力計算がメインコンテンツになってる
世界で一番GO3の火力計算に詳しくなった。これぐらい誰かがやっててもよさそうだけど

火力計算

攻略wikiや解説ブログに載っている計算式はどれもほとんど同じだが計算が合わない(wikiはこのmdに基づいて改訂済み)
Inazuma Eleven GO Galaxy base power calculationとかでggって出てくるやつも大差ない
端数処理による誤差を明らかに超えたずれがある。つまり計算式が間違っている
スキルの効果も不明なものが多く、wiki内でもページによって違うことが書いてある始末(だいたい修正済み)

どうもまともに検証している人類が存在していないらしいので自分で調べるしかなさそう
ということで、助手に霧野君を採用して色々調べる

基本は対照実験。条件のによるbp,tpの応答から計算式を推測するだけ。GO3はbp、tp、技威力等の必要な数値がシリーズ史上最も可視化されているうえに計算式は全て一次関数の合成と線型結合だったから簡単だった。むしろGO2の二次式とかどうやって特定したんねん。
とはいえ一部エスパーが必要な場面もあった・・・

ステータスに影響するスキル

ステータスアップ10~30
各種フォースX?(キャッチだけない、スタミナフォースXもなかった)

化身 スキル 効果
プラズマシャドウSH たいきゅうのこころ スタミナ+150
プラズマシャドウOF とっぱのほこ ドリブル+150
プラズマシャドウDF てっぺきのたて ブロック+150
プラズマシャドウGK こうふくのひとみ ラッキー+150
アーサー せいなるつるぎ キック+200
グリフォン しんそくのつばさ スピード+100

ベースパワーに影響するスキル

ミニマムキラー、ヘヴィキラー、おいろけUP!、イケメンUP!、アシスト!
ラブコール、ネバーギブアップ、みんなイケイケ!

ベースパワーの計算式

var bp = (メインステータス + テクニック * 0.25) * 8 / 15
if (配置ポジションがGK) bp *= GK補正(シビレゲージ) // 1.0 ~ 1.2 or 0.5

if (GP == 0) bp *= 0.5

if (近くに選手がいる)
{
    var 補正率 = 0.05
    foreach (近くの選手) if (アシスト!所持) 補正率 *= 2
    foreach (近くの選手) bp *= 1 + 補正率
}

if (ソウル発動中) bp += SP * (相手が化身発動中 || 相手がアームド中 ? 0.8 : 0.2)
else if (化身発動中)
{
    var 補正率 = 0.2
    if (化身必殺技とコマンドバトルの状況一致 || アームドに移行) 補正率 *= 2
    if (ラブコール && 味方に別種のラヴァーズ) 補正率 *= 2
    if (ネバーギブアップ && 劣勢) 補正率 *= 1.5
    if (みんなイケイケ! && 優勢) 補正率 *= 1.2
    bp += (KP + KA) * 補正率 //アームド移行時はKPが回復するので注意
}
else if (アームド中) bp += (KP + KA) * 0.4

foreach (相手の所持スキル)
{
    if (ミニマムキラー && 小柄) bp *= 0.8
    if (ヘヴィキラー && 大柄) bp *= 0.8
    if (おいろけUP! && 男) bp *= 0.8
    if (イケメンUP! && 女) bp *= 0.8
}

bp += Lv
if (属性不利) bp *= 0.9

表示は切り捨て。トータルパワー計算に使われるのは切り捨てられていない小数
GK補正はシビレ0からブレイク直前まで1.2から1.0まで落ちる。ブレイク時は0.5。
高難易度対戦ルートではCPU側のみ表示bpにチーム毎に決まった定数を加算する。

チーム 定数
ウラゼウス 60
ジェネシス 60
カオス 60
ダークエンジェル 60
オーガ 60
ドラゴンリンク 60
ゼロ 60
ザ・ラグーン 60
ジ・エグゼラー 60
デストラクチャーズ 80
イクサルフリート 80
スペースランカーズ 80
ラストライバル 80
FF雷門 60
雷門(※無印) 60
初代イナズマジャパン 60
雷門(※GO1) 60
テンマーズ 60
エルドラドチーム01 60
エルドラドチーム02 60
エルドラドチーム03 60
クロノストーム 80
イナズマアナザージャパン 80
イナズマレジェンドジャパン 80
アースイレブン 80
ザ・キーパーソン 80
プロトコル・オメガ3.0 110
パーフェクト・カスケイド 110
レジェンドレジスタンス 130
ダークヒーローズ 130
クロノストーム 180
おこさまイレブン 90
おねえさまイレブン 90
バトルブラザーズ 110
バトルペアレンツ 110
監督軍団 110
ヒロインズ 130
ソードキャッスルズ 130
エキストラスターズ 130
コラボレーションズ 130
L5ヒーローズ 180

KPが減っているときにアームドするとKPが50ぐらい回復するので実はそこも正確に計算できない点のひとつ
3DSの浮動小数点数の精度が悪いのか結果が正確に整数になるときにでも丸め誤差で1小さい値が表示されることがある

技威力に影響するスキル

各種こころえ、ちょうわざ!、不屈の精神、化身のちょうわざ!
各種おたけび、各種いのり、各種ちかい(キーパーだけない)、みがるなからだ、いだいなかんろく、せんしのきあい、めがみのエール

トータルパワーに影響するスキル

チェインシューター、パワフルシューター、シュートブロッカー、やくびょうがみ

トータルパワーの計算式

var atk = 技威力 //進化補正込み

if (属性一致) atk *= 1.2

foreach (所持スキル)
{
    if (こころえ && 有効) atk *= 1.1
    if (ちょうわざ! && 有効) atk *= 1.2
    if (不屈の精神 && 有効) atk *= 倍率(GP) // 1.0 ~ 1.5
    if (化身のちょうわざ! && 有効) atk *= 2
}

if (いのり || ちかい || みがるなからだ || いだいなかんろく || せんしのきあい || めがみのエール) atk += 5 * 該当者数
foreach (味方の化身スキル) if (おたけび && 有効) atk += 30 

if (ダイレクトシュート) atk *= 1.1

var tp = bp * (1 + atk * 0.01)

if (相手選手の属性に有利な技) tp *= 1.1
if (               不利    ) tp *= 0.9

foreach (所持スキル)
{
    if (チェインシューター && 有効) tp *= 2
    if (シュートブロッカー所持 && 有効) tp *= 1.2
}
if (SB && ボールにパワフルシューターがついている) tp *= 0.5

if (惑星補正) tp *= 1.1

if (しっぱい!) tp *= 0.5 //失敗する可能性があるのは必殺技のみ
if (クリティカル!) tp *= やくびょうがみ所持 ? 4 : 2

if (グランドラスター) tp *= グランドラスター補正(パス人数) // 1.0 ~ 5.0

if (スキルルーレット)
{
    if (Lv.1) tp += 100
    if (Lv.2) tp += 150
    if (Lv.3) tp += 250
}

雑擬似コードなのでスキルが有効かどうかの判定を&& 有効ですませている。スキル効果を別でまとめるべき
条件分岐がtruefalseかは計算を追う側で判断してねみたいなところが多い
必殺技を使わない場合の技威力はオーラ発動なしのシュート、ヘディングが8、それ以外は全部15
表示は切り捨て。表示が互角な場合でも勝敗判定には小数部分まで使われている気がする
高難易度対戦ルートではCPU側のみ技威力に表示bpに足したのと同じ定数を加算する。tp計算につかうbpは定数を足していないもの

トータルパワーがさらに変化する場合

上の式で計算されるシュートのトータルパワーはシュートを打った瞬間のトータルパワー
キーパーに到達したときにはトータルパワーがシュートの滞空時間に比例して減少する
また、シュートチェインやシュートブロック、カウンターシュートによるシュートパワーの増減には計算式で確定したトータルパワーに対してさらに別の計算による補正がかかる

以下、歴史的経緯によりシュートチェイン自体の説明みたいなのが多い

シュートチェイン

シュートチェインで加算されるトータルパワー

var cp = tp * 0.5
if (チェイン元のシュートと使用技の属性一致) cp *= 1.1

シュートブロック

SBのトータルパワーがSBされるシュートのトータルパワーより大きい場合ブロック
そうでない場合、ブロック技ならパワーダウン。シュート技ならミス

パワーダウンで減算されるトータルパワー

var dp = tp * 0.4
if (シュートの属性に対して使用技が属性有利) dp *= 1.25
if (シュートの属性に対して使用技が属性不利) dp *= 0.75

ブロック成功時、SBSかつ元のシュートがカウンターシュートでなければカウンターシュートになる

カウンターシュートのトータルパワー

if (SBされるシュートと使用技の属性一致) tp *= 1.1
var sp = (tp + SBされるシュートのトータルパワー) * 1.1

時間による減衰

シュートのトータルパワー減衰量は単位時間当たり一定の割合。ペナルティエリアに正面から侵入した直後にGKの待機位置に向かうシュートはGKに届いたとき約0.9倍される。センターマークからのロングシュートで0.7倍ほど
シュートパワーの単位時間当たり減衰量はSCやSBの度に再計算されるはず。だから同じ位置から同じ場所への同威力シュートを同威力シュートブロックでパワーダウンする場合、できるだけ後ろでブロックしたほうが最終的なパワーは下がると思う
GKにシュートが届く前にパワーがゼロになるような減衰の効く位置は多分ない(センターマークで0.7倍なので自GKがロングシュートを放ってもせいぜい0.4倍で相手GKに届く)

ロングシューターはたぶんいくらでも重なる。アテナ3体出して天馬のシュートで6個かかると思う
ロングシューターの効果は途中でチェインしてもかかり、ほかの選手がチェインした後もつづくらしい
複数の選手に分割してロングシューターを持たせた場合は一番多く持ってる選手のものだけ?(累積和ではなく累積Maxらしい?)

コマンドバトルの相手

明白なケース
シュート、シュートチェインは相手GK
ドリブル/ブロックは接触した相手選手

非自明なケース
ブロック技によるシュートブロックはシュートの始動者。チェイン役ではない
シュート技によるシュートブロックは相手GK。シュート始動者でもチェイン役でもない
キャッチはシュート始動者。チェイン役ではない

スキル、化身スキルの効果

スキルの効果と重複

攻略wikiに書きました

化身スキル効果

攻略wikiに移しました

フォース系はベンチにも効果がある
個人技威力上昇スキルは味方のフィールドにいる選手をカウントする(最大11人で+55)

「化身を宿した選手」
化身アタックだけ?オーラダメージ技は?

最高値

別Gistに分離しました

称号

別Gistに分離しました

wiki修正

もう攻略wikiの7割は私が改訂した(元が酷すぎる)

化身 全面改訂しました 化身と技の色を属性による色分けに変えるとかまだやることはある
入手方法の表記を統一したい

その他

アームド時のKP回復量は50ぐらい。よくわからない
コマンドバトルに負けると化身の超技の消費KP増加分が消費されない 多分バグ
合体化身を出して化身解除された選手をベンチに下げるとオーラ枠が空く 多分バグ
ハーフタイムでのTPGP回復量は多分20%
夏未、五条の対戦ルートの敵はベースパワー+60 秋は+180
ソウルストライクはシュートとペガサスR?が300でそれ以外は250
技威力補正は通常技に有効か?無の心得で通常技が強化されたりする・・・?→無効、されない GP139のきりのがGP28ぐらいから汗をかきはじめた 多分最大GPの20%から汗をかき始める
化身、アームド、ソウル状態での通常技の消費も謎
コマンドバトル時の味方の並びは接触したときに近い方が下。ボールに近いのか味方に近いのか敵に近いのかは知らん
ライオンのソウルがLv2になるのに必要なベースパワーは100 この辺も調べたいか?
公式のヘルプ「ドリブル値がドリブル速度に影響する」まじで?
クリティカル率は ラッキー * 0.04 %
技は進化した次から威力が上がる。化身は進化した瞬間から。表示上もそう。 キャッチされてもポストに当たるシュートでもSBSでもSBBでもしっぱい!でも発動回数に加算される。

bp、tpはプログラマが気違いなのかなぜか小数で計算されている。整数でやれ。無印のトータルテクニックは整数なのに
ちょうざわ!、化身のちょうわざ!が重複したときの消費も小数で計算され、最後に切り捨て
威力90の技を最終進化1.4倍したら126になる。これは整数で計算されている(binary64でFloor[90 * 1.4] == 125)
でもコメントに書いた信助のトータルパワーは切り捨てても整数のはずなのに1小さくなる。3DSってARM11?

シビレ

通常技のシビレは シュート5、キャッチ0、パンチ0
化身必殺技のシビレ・オーラダメージはSH 30、OF 10、DF 10、GK -30。でも化身にオーラダメージ与えられないような・・・
究極進化シビレシュート(100)を化身(-30)で止めるときはスタミナ164でぎりぎり一発ブレイクしない。170は過剰
SC、SBでシビレは変わらないと思う

化身のコマンドバトル

通常技の消費KPがわからない
以下どちらも化身状態
とっぱ vs ブロック -> トータルパワーで勝負
化身アタック vs 化身アタック -> KPがKAの分けずられる。0になった方は負ける。両方0だとボールがはじかれる。両方0でない場合はトータルパワー勝負
とっぱ vs 化身アタック or 化身アタック vs ブロック -> アタックされた側はKPが0になると負け。そうでない場合は勝ち。
化身必殺技 vs ブロック -> ブロックのトータルパワー0 化身必殺技のオーラダメージは10のはずなのにKPが減らない
アームド必殺技 vs ブロック -> ブロックのトータルパワー0 ブロック側はクリティカルあり

タクティクス

TTP = チームLv + 51
負けたときのTTP消費は0.3倍
相手がTを使っても自分のTボタンは有効なまま。相手のTにあわせてTを出して負けた後も。
同威力だと後出しが勝つ
ボックスロックディフェンスでボールを奪うのはボール保持者に4番目に近いFPってまじ?
ボール保持者をプレスしているとき、攻撃Tで保持者が移動してもプレスがかかったまま
Tはダウンした選手を復活させる効果がある。競り合いに負けた直後に選手が移動しないTを使うとコマンドバトルに持ち込める
Tは引いた誘導線を消す効果がある。横抜け狙いで選手が走りこんでくるときに無移動T発動でパスミスを誘発することができる

ロングシュートキャンセル?上抜け?

忘れもしない、歴戦の対戦ルート(冬海)の右ルート、林の英雄たち(フィールド:ラトニーク)との対戦中、相手のモツ鍋がサイドの中距離からロングシュートを打ったと思ったらキャンセルされて、かわりにロングパスのようなボールが飛んできてキーパーの手前で撥ねてそのまま頭上を通過しキャッチ技を発動することさえできずにゴールを許した。なんだあれ
普通にロングシュートをキャンセルしても少し前に転がるだけで再現できない

きりにゃんのセリフ

GO3全セリフ#L129-L137 9種類かあと3つは

用語定義、独自用語など

bp:ベースパワー
tp:トータルパワー
SBB:ブロック技によるシュートブロック
SBS:シュート技によるシュートブロック。カウンターシュートとは別の概念(公式の説明では混同されている)
シュートブロック(SB):SBBとSBSの総称
シュートパワー:ボールが保持している(シュートが空中で飛んでいるときの)トータルパワー。SBまたはキャッチ時に対決するときのトータルパワー。 シュート技を打った瞬間のトータルパワーは含まない。 特徴は切り上げ表示であること。

@iwkjosec
Copy link
Author

iwkjosec commented Jun 17, 2021

クリティカル!について

niku-qさん曰くクリティカル率 = ラッキー * 0.0004だがこれはおそらく正しい。
クリティカル!のスキルはクリティカル率1.5倍という説があったが実際には1.2倍であり、重複しない(どうして・・・)
ごうえんじ×ふぶきのクリティカル!×3は役立たずでテルミン×しのくまの方が上(その場合のクリティカル率は約0.41)

ごうえんじ×ふぶき ラッキー659 クリティカル!×3
旧理論値 0.88965 = 659 * 0.0004 * 1.5 * 1.5 * 1.5
実測値  0.317 = 41 / 129
新理論値 0.31632 = 659 * 0.0004 * 1.2

大介さんの非公式GCGの動画ではヒロトサンライトのみやびののプラズマシャドウGKのクリティカル率は本人談で約1/4 = 0.25ということらしい。みやびののステータスが2020の五本勝負の動画のときと変わっていなければ理論値は0.24144 = (353 + 150) * 0.0004 * 1.2であるから話が合う。

[以下 実験予定]
テルミン×しのくま

テルミン×しのくま クリティカル!

@iwkjosec
Copy link
Author

計算が合わない新現象

プラズマシャドウGKを発動したときの化身補正に使われるTOTALの値が正しい値より1小さい疑いがある。

var bp = ((86 + 121 * 0.25) * 8 / 15 * 1.2 + 256 * 0.4 + 99);
var tp = bp * (1 + 256 * 0.01);
(bp, tp).ToString().Dump();
// calc (275.8, 981.8480000000001)
// real (275, 980) 
var bp = (86 + 121 * 0.25) * 8 / 15 * 1.2 + (256 - 32) * 0.4 + 99;
var tp = bp * (1 + 256 * 0.01) * 1.1;
(bp, tp).ToString().Dump();
// calc (263, 1029.9080000000001)
// real (262, 1028) 
var bp = (543 + 116 * 0.25) * 8 / 15 * 1.2 + 256 * 0.4 + 99;
var tp = bp * (1 + 256 * 1.2 * 0.01);
(bp, tp).ToString().Dump();
// calc (567.48, 2310.77856)
// real (567, 2309)
var bp = (543 + 116 * 0.25) * 8 / 15 * 1.2 + 256 * 0.4 + 99;
var tp = bp * (1 + 256 * 1.2 * 4 * 0.01) * 1.1;
(bp, tp).ToString().Dump();
// calc (567.48, 8294.741664000001)
// real (567, 8288)

今度は正常

var bp = (543 + 116 * 0.25) * 8 / 15 * 1.2 + (256 - 46) * 0.4 + 99;//kp 82
var tp = bp * (1 + 256 * 1.2 * 4 * 0.01) * 1.1 * 2;
(bp, tp).ToString().Dump();
// calc (549.0799999999999, 16051.585088)
// real (549, 16051)

どうなってるんだ・・・?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment