R-TYPE TACTICSⅠ・ⅡCOSMOS の検証記録
このブログのデータは試行を繰り返すことによる平均・最大値・最小値の数学的分析によるデータです。解析データは使用しておりません。また、誤りが含まれる可能性もあります。
当然ですがデータ含めて無断転載禁止です。
ジルファードさん曰く「R-TYPE TACTICS12COSMOS検証学会」らしいので、今後はある程度数学を使っていく。
記事中では長いので勝手に「コスモス学会」などと省略して書くこともあります。
リンク:同じく検証勢のジルファードさんのブログ。いつもお世話になっております。
・武器種別・属性
-攻撃属性:知る限りでは光学、機械、生物、氷、火炎、時空波、粒子、思念、化学、フォース
-装甲属性:機械(R-9A、ゲインズなど)、生物(バイド生命機体、ベルメイト、フォースなど)、氷(氷塊だけ)、その他(グリッドロックとか、TACTICS2のラスボスとか)。その他属性は、あらゆる攻撃からのダメージ倍率が等倍になる。
種別:直進光学兵器、誘導ミサイル、粒子兵器...など。攻撃方法と攻撃属性がなんとなくわかる。
種別の中に別に属性と言うものがある。基本的には種別と属性が一致するが、一致しないものは以下の通り
-物理攻撃:機械属性と生物属性がある。
機械属性:超音波魚雷、パイルバンカーなど
生物属性:アイビーロッド、ダリアヴァインなど
-体当たり:機械、生物、フォース属性がある。
機械属性:体当たりHなど
生物属性:体当たりB、アンカーアタックなど
フォース:フォースシュート、レーザークロー
不明:激突(色々と仕様が特殊)
-誘導/直進ミサイル:機械、生物、氷属性がある。
機械:追尾ミサイルなど
生物:目玉追尾ミサイルなど
氷属性:高速氷弾(Ⅱ含む)のみ
-バイド体液:生物属性
-機銃:原則光学兵器扱い
-高熱兵器:すべて火炎属性
-ドプルゲンMAX系統武器
分類は「貫通光学兵器」だが実際は生物属性。水中でも減衰しない。
-カラドボルグ砲系統武器
分類は「貫通光学兵器」だが実際は水中で減衰しない。属性は不明(ドプルゲンと違って燃料奪取のようなわかりやすい指標がない)
攻撃方法:直進、誘導、偏向。直進武器は障害物の影響を受け、ダメージ減衰になる。と思っていたのだが直進ミサイルや射程3以上の直進武器はなぜか減衰しない。射程3以上に関してはPSP版からそうだったのだが、直進ミサイルはCOSMOSからのような...バグ?
ダメージは攻撃属性と装甲属性の組み合わせで補正がかかる。また、属性ごとに固有の特徴を持つ場合がある。
-属性相性
光学属性
特徴:地形減衰を受ける
機械に対して1.0倍
生物に対して1.1倍
機械属性
機械に対して1.0倍
生物に対して1.2倍
体当たりで使うと機械っぽい音がする
生物属性
特徴:生物以外に燃料奪取効果(0~5?)。奪えないこともある。燃料が満タンだと相手の燃料を減らすだけで、攻撃者の燃料は回復しない。これは移動開始時の燃料を参照するため、燃料MAXから移動して生物属性攻撃で燃料奪取を行なっても燃料は回復しない。
機械に対して1.2倍
生物に対して1.0倍
氷に対して0.9倍
体当たりで使うと生物っぽい音がする
氷属性
機械に対して1.1倍¹⁾
生物に対して1.1倍¹⁾
「高速氷弾」系統だけ
火炎属性
機械に対して1.0倍
生物に対して1.25倍
時空波属性
機械に対して1.0倍
生物に対して1.1倍?(正確な値は未検証、概算値)
粒子属性
機械に対して1.0倍
生物に対して1.1倍
思念属性
機械に対して1.0倍
生物に対して1.15倍
化学属性
機械に対して1.1倍¹⁾
生物に対して1.2倍¹⁾
フォース属性
機械に対して1.0倍
生物に対して1.2倍
武器「フォースシュート」「レーザークロー」だけ。
体当たりで使うと生物っぽい音がする
その他属性
特徴:迎撃不可
機械に対して1.0倍
生物に対して1.2倍
とあるユニットの武器「激突」だけ。
この武器を持つユニットが機械属性だったので、体当たり武器の中で「激突」だけが特殊な仕様を持つと見て良い。攻撃属性にはその他属性なんてなかった
・乱数
このゲームのダメージ乱数は通常攻撃ならば1.000~0.575の一様乱数。これは絶対の原則とみてよさそう。ただし反撃では乱数自体を1.00~1.425へ変更する補正が入る(後述)
これは実験データからの推測だが、1.00~1.00±α、α≃0.425の乱数を引いていて、通常攻撃は符号がマイナス(つまり1.00~約0.58)、反撃は符号がプラス(つまり約1.00~約1.42)になっているのではないだろうか。
この導出は、HP最大の相手への反撃ゲインズクロー75ダメージが300回に1回発生(1.42倍では発生せず、1.43倍では頻度が説明できない。75ダメージを出すには最低でも1.424倍しなければならない)、また、ゲインズ2の陽電子砲は、HP最大の相手に対して最低ダメージは59→このことから乱数下限は最低でも0.575以上。反撃と通常攻撃の乱数範囲の類似性から、上記の乱数範囲の正負を反転させる仮説を用いてα=0.425、通常攻撃ならば1.000~0.575の範囲をとり、反撃ならば1.425~1.000の範囲をとると考えられる。
つまり、通常攻撃ならば最小ダメージは最大ダメージの約0.58倍になり、平均ダメージは最大ダメージの約0.79倍になるが、ダメージ計算に 足し算や引き算があるとこの原則からちょっとずれる。が、うまく調整すればこの原則にあてはめられる(体当たりの項を参照)
この「平均値は最大値の約0.79倍になる」という法則は検証の上で非常に便利。数学的に見れば一様分布だから当たり前なんだけどね。
・小数点
少なくとも小数点第一位までは確実に考慮されている。実際の精度は不明、(double)float型なら小数点以下第2位以降も考慮されているかもしれないが、簡単のためとりあえず小数点以下一位までで考えておく。
ユニットに表示されるHPはHP:1を除いて小数点以下切り捨てとなるので、同じHP:10でも10.0~10.9のブレがある。例外として、HP:1は0.1~1.9までを表している。なので、1残りはほかの値の2倍出やすかったりする。HP:1のユニットに鹵獲を仕掛けて倒しちゃったり成功したりするのはこのため。
以降、この切り捨て&HP:1の処理を丸め処理と言う。
HP制ユニットに与えたダメージは、(攻撃前丸めHP)-(攻撃後丸めHP)となる。
基本的に乱数や相性の関係で与ダメージは少数が含まれるが、表示される数値には上記のような整数への丸め処理が行われている。
例えば、HP:100.0の相手に9.3ダメージを与えた場合、与ダメージは10、残りHP90として表示される。
燃料が条件の鹵獲でHP制ユニットに鹵獲弾を当ててHPが全く減らないことがあるのは小数点が原因。
例)残りHP100.9、鹵獲弾ダメージ0.70→鹵獲後HPは100.2 これに丸め処理を適用すると鹵獲前後でHP:100となり、MAP上で表記がバグる。
この検証は、COSMOS編No.20序盤のゲインズ3改にロックオンビームを一発当ててから鹵獲を試みると再現しやすい。
-熟練度と小数点
熟練度補正がかかったパラメータは、(元のパラメータ)×(倍率)の小数点を切り上げたもの。例えばプリンセスアイビーのACE威力は96×1.18=113.28、この小数点を切り上げて114。
ただ、この切り上げ後パラメーターが内部で小数点を持つかについては不明。少なくとも回避は切り上げた値を計算で用いていて小数点がない(すべて自然数)のように見受けられるが...
倍率はパラメーターごとに異なり、
威力、HP、命中率の場合:1.18
回避率の場合:1.2
回避のみ特例で1.2倍に強化される。
-命中率&回避率と小数点
「反射レーザー」のような命中が60%の武器は、マップに配置すると命中が61%になる。これはおそらく浮動小数点による誤差へ小数点切り上げ処理が行われて生じた誤差と見られる。
実際の値が60%なのか61%なのかは迎撃でいい数値を計算してやってみないとわかんない...
・回避/回避行動/防御・回避に専念する
基本的にMAP攻撃(波動砲、デコイ爆破、亜空間バスターなどの複数機にヒットする攻撃)は必中で回避不可。通常兵器(レーザー、ミサイルなど)は回避できる
-回避計算式
たぶんこう
(回避率)=(機体回避)×(回避補正:もし回避行動を選ぶならx倍)+(地形回避)-(武器命中率)
回避補正は1Hexユニットならx=1.5倍となる。ここには占有HEX数による減衰が入る(後述)
ノーチェイサーならバルムンクをよけられる(なお1%ほどの確率の模様)
例えば、地形回避付き44型戦闘機の対目玉ミサイルの回避率は
45×1.5+10-40=37.5%、4割弱と考えればかなり回避される。
また、被反撃側は回避行動をとるので回避が上がる。
回避行動が発動する条件は、
1.相手に有効な反撃迎撃手段がない
2.コマンドで「防御/回避に専念する」を選択する
3.索敵外から攻撃され、反撃迎撃手段が選択できない
4.被反撃側
の4つ。
ところで、「防御」は少なくともダメージについては何も効果がないようにみえるが、バグなのか、それともダメージ軽減ではない効果があるのか?
コスモス学会では以前のバージョン(Switch2,1.0.5)ではムーラやレディのこの式に当てはまらない回避を確認していたが、Switch2版1.0.6以降では確認できないので不具合だった可能性が高い。
-回避減衰
回避行動の補正が、占有HEX数で減衰する。
回避補正の式は
(回避補正)=1+(0.5/(占有HEX数))とみられる
タブロック、ボルドのような元から占有HEXの多いユニットに限らず、フォース付き戦闘機も2HEXユニット扱いとして回避減衰する。なんで?
・迎撃
以下、単位%のものは[%]と記し、原則として○○率や確率は0~1の表現で記します。
-相殺率
過去にIrem公式から出ていた資料から考えると
(相殺率)=(迎撃命中率)×[(迎撃武器威力)/(攻撃武器威力)]×[(迎撃側HP比)/(攻撃側HP比)]
HP比とは、(現在HP)/(最大HP)のこと。編隊制ユニットでも残機比率ではなく内部HPを参照する。
また、最低保証相殺率は10[%]で、どれだけ威力が低い武器でも、どれだけHPが低くても10[%]だけ相殺率がかかる。
90[%]以上の相殺率の場合、相殺率は100[%]となって相手の攻撃を完全に相殺する。この場合は体当たり/それ以外問わずそもそもダメージ計算を行わない模様。
これらは戦闘アニメにも反映される。相殺率が高いほど相手のミサイルなどを打ち落とすことができ、低いと素通りする。
-対体当たり:体当たり攻撃側へのダメージの詳細は「体当たりを行う相手への迎撃ダメージ計算式(体当たり&迎撃)」で記す。
先に相手にダメージを与える。パターンは
1.迎撃を選択したが、守り切れずダメージを受ける
2.迎撃を選択し、相手を破壊してダメージを受けない
3.迎撃を選択し、相手を破壊しなかったがダメージは完全相殺する。
4.迎撃を選択し、相手にダメージを与えたうえで体当たりを回避する。
の4パターン。
また、迎撃ダメージは相殺率を基にした割合ダメージで、最低保証ダメージとして25ダメージは与えられ、上限として115ダメージまで与えられる。ダメージ計算式は後の「体当たりを行う相手への迎撃ダメージ計算式(体当たり&迎撃)」で記す。
押しつけ/押し出しかどうかは迎撃ダメージには影響しない。
また、乱数がかからないためまったく同一の条件下ならば全く同一のダメージが出る
・基本的なダメージ計算式
(威力)×(残機補正)×(乱数)×(相性補正)
基本的にはこの認識でOK。残機補正は(現在残機)/(最大機体数)で、編隊ユニットだけの補正。HP制ユニットはまったく威力減衰しないので、HP:1でもタブロックなら十分火力が出る(ただし迎撃はされやすくなる)
これは体当たり系の処理以外で適用できる。反撃の場合も、乱数を反撃仕様の乱数で解釈すれば問題ない。
一般化するとこうなるだろう
(ダメージ)={(威力)×(残機補正or1-相殺率)×(1から1±0.425の乱数)×(地形減衰)+(固定値加算)}×(相性補正)
乱数の範囲が+の値を用いるのは反撃時、-の値を用いるのは通常攻撃時。迎撃による攻撃者へのダメージは別の式を用いる。
迎撃時は相殺率がかかり、残機補正がかからないように見えるが...
・ダメージ計算式(迎撃がある場合)
(与ダメージ)=(威力)×(残機補正)×(乱数)×(相性補正)×(1-相殺率)
相殺率が1の場合は与ダメージが0となることがわかる。
これを整理すると、
(与えるダメージ)=[(威力)-(迎撃命中率)×[(迎撃武器威力)]×[(迎撃側HP比)/(攻撃側HP比)]×(乱数)×(相性補正)×(残機補正)
大まかに考えると、迎撃の際は迎撃威力に迎撃武器命中率倍の減衰補正がかかると考えられる。
なお、特に使用武器による相殺率減衰などはない。
これは体当たりでも同様。
・体当たりのダメージ計算式(迎撃含む)
たぶんこう
(与ダメージ)={(威力)×(残機補正)×(乱数)×(1-(相殺率))+(押しつけ補正:25)}×(相性補正)
残機1のキャンサーでも、フォース相手なら押しつけで40ダメージほど出るので油断は禁物。
体当たりの場合は相殺率による減衰が素の威力のみにかかり、押しつけ補正分は相殺されない。なので、押しつけ体当たりの迎撃に失敗すると25ダメージは確実に受けてしまう。
なお、相殺率が1となった場合はそもそもダメージ計算を行わない模様。
属性相性について、基本的に攻撃属性は自身の装甲属性と同じ(フォースシュート系とレーザークローのみ、例外として生命属性装甲からフォース属性攻撃をする)
・体当たりを行う相手への迎撃ダメージ計算式(体当たり&迎撃)
相殺率・ダメージ計算式は通常の迎撃と変化しないが、先に相手にダメージを与える。
相手に与えるダメージは武器ごとに迎撃ダメージ倍率が決まっているわけではなく、相殺率を参照する相手の残りHPに対する割合ダメージであり、
(与ダメージ)=(相殺率)×A×(相手の残りHP) の割合ダメージ。
ただし、A=1.05(迎撃武器の射程が1の場合)、0.85(迎撃武器の射程が2以上の場合)。このAは攻撃者へ迎撃で与えるダメージにのみ作用し、相殺率には作用しない。
上下限があり、最低保証として25ダメージ、最大ダメージ上限として115ダメージの制限がかかっている。これがないとナルキッソスで四十四型戦闘機をワンパンしてしまうので...
この上下限処理は、(相殺率)×A×(相手の残りHP)を計算した後、もし上下限に引っかかるようであれば値を修正するという処理に見える。例えば相殺率50%、射程2、相手の残りHP500の場合は与ダメージ212.5、ここへ上限の修正を入れて115ダメージ、といった具合。
相殺率の計算の上では素の威力のみを参照していて、押しつけや属性相性などのダメージ補正は参照しない。また、被迎撃側へのダメージは地形補正による威力・命中率低下と、熟練度を除いた属性相性などのダメージ補正を参照しない。
-再掲:相殺率の式
(相殺率)=(迎撃命中率)×[(迎撃武器威力)/(攻撃武器威力)]×[(迎撃側HP比)/(攻撃側HP比)]
最低保証0.1、完全相殺率0.9(0.9以上の場合は1.0として扱う)
与ダメージを約分して書き下すと
(与ダメージ)=(迎撃命中率)×[(迎撃武器威力)/(攻撃武器威力)]×[(迎撃側現在HP)/(迎撃側最大HP)]×(攻撃側最大HP)×(1.05or0.85)
と概算できる。ただし、先に記した通り実際は相殺率により最低相殺率(0.1)、完全相殺(相殺率0.9以上なら1.0として扱う)、迎撃ダメージ最低保証(25)、迎撃ダメージ最大値(115)の制約を受けることに注意したい。
つまり、同じHP比で射程、命中、威力が同じ武器を使えば、全く同じ相手に対して全く同じダメージを与えられる。
例えば、使用武器は射程1のディフェンスレーザー(ACE)、攻撃側機体スタンダード・フォース、攻撃側・防御側ともにHP最大とすると、相殺率は
(相殺率)=0.75×59/60×1/1=0.7375、つまり相殺率73.75%、完全迎撃不可で被弾する。
与ダメージは、A=1.05なので
(与ダメージ)=(相殺率)×1.05×120=0.7375×1.05×120=92.925、HPの小数点切り捨てをして残りHP27(27.1)の見かけ上93ダメージ。
使用武器は射程2のバリア弾(ACE)、攻撃側機体ガウパー、攻撃側・防御側ともにHP最大とすると、相殺率は
(相殺率)=1.00×60/75×1/1=0.80、相殺率80となり完全迎撃不可で被弾する。
与えるダメージはA=0.85なので
(与ダメージ)=(相殺率)×0.85×120=81.6,HPの小数点以下切り捨てして残りHP38(38.4)の見かけ上82ダメージ
↑のガウパーを自己修復2回分(12.0)回復させ、バリア弾で迎撃する(ただし、迎撃者のHPは全回復させる)
(相殺率)=1.00×60/75×1/(50.4/120)=1.9>0.9
相殺率が0.9を超えるので、完全迎撃扱いとなり(相殺率)=1として扱う。また、完全迎撃なので被弾しない。
与えるダメージは、
(与ダメージ)=(相殺率)×0.85×50.4=1×0.85×50.4=42.84ダメージ,残りHPは50.4-42.84=7.56,小数点以下を切り捨てて残りHP7。見かけ上与えたダメージは50-7=43ダメージ。
迎撃ダメージが上下限の場合でも相殺率には影響しない。
完全相殺の場合、相殺率は1なので射程1の武器なら相手のHP100%の割合ダメージを与え、射程2の武器なら相手のHP85%の割合ダメージを与える。
・反撃
基本的には未検証の範囲だが、通常攻撃の反撃はデータが揃った
基本的な反撃補正はダメージ乱数を1.425~1.00の一様乱数に変更する補正がある。データはゲインズクローで反撃、属性相性なし、地形減衰なしで最大75,最小53(HP最大の相手への反撃なので小数点考慮すると52.xか)、平均62.1、理論平均は約62.9なので誤差の範疇か
※データを増やしたので平均は現在の値と異なりますが未更新
-体当たりへの反撃
体当たりへの反撃には35ダメージの固定値ボーナスが入り、これは属性相性を除いた一切の補正を無視する。具体的には次の通り
(反撃ダメージ)={(威力)×(残機補正)×(1.00~1.425の乱数)×(地形減衰)+反撃補正:35}×(属性相性補正)
データはHP最大のゲインズ3at水中(減衰率50%)への体当たり反撃バイド粒子弾(威力10)が37ダメージ→
(計算値)={10×0.2×0.5×(1.00~1.425の乱数)+35}×1.0=36.0~36.42
小数点を考慮すれば、最低乱数以外この計算結果と一致
データ② HP最大のゲインズ3(通常空間)への体当たり反撃ゲインズクローが最低89、最大109、平均値97.6。nが少ないので88は引けていないが、↑の計算式の結果および、平均から35を引いた値が乱数の平均値収束条件と一致する。
体当たりへの反撃は少しデータがあり、判明しているだけでも
・確実に残機補正はかかる
・光学兵器の地形減衰を無視する補正が乗る
・武器威力による最終ダメージの差が小さい(バイド粒子弾でもバイド体液でも光子バルカンでも差が大きくて10程度)
ということがわかっている。
・亜空間
機体のスピードを2倍にする(+分は考慮しないというか、そもそも+を持つ亜空間機のスピードはn.45なので2倍しても2n.9でプラス分が影響しない)。燃料消費が1.5倍(小数点以下原則切り上げ)となるが、1HEX移動のみ燃料消費は1で済む。また、自軍ターン開始時に亜空間状態の自軍ユニットは燃料を1消費する。
亜空間状態で燃料が切れると時空の狭間につぶされて撃墜される。
全ての地形を無視できるが、ユニット型の障害物(氷とか壁)は無視できない。
復帰可能状態でZOCに敵がいると通常空間に強制復帰させられ、敵から接触してきた場合カウンターが行われるが、復帰不能地形で接敵した場合は敵の行動を即座に終了させる。
・スピード
スピードn+の+による増加分は機体により異なっている。基本0.9(以上かも)or0.45加算されている。
0.9(以上)加算される機体:ゲインズ3改(加速)、アイビーフォース、工作機系統、アローヘッド後期量産型、ニヴルヘイム級、ファインモーションなど。大多数の移動力n+はこちら。例えばアイビーフォースの内部移動力は3.9扱いで、冥王星でも3HEX移動できる数値。
0.45加算される機体:バイドシステム、マッドフォレスト、アンフィビアン、ミスティーレディーなど。移動力3+もしくは4+のバイド系生命機体。例えばバイドシステムαの内部移動力は3.45扱いなので、アイビーフォース等と異なり冥王星や森林などの地形は2HEXしか移動できない。
・敵の思考ロジック
-手加減AI
手加減AIが存在するように思える。具体的には行動条件を満たしてからの初回行動のみ、2つ以上の使用武器候補があるならば最善選択肢ではなく、2番目の選択肢を取るように見える。例えば波動砲が溜まった四十四型が、初回行動で攻撃する時だけ赤レーザーを使う...と言った具合。取りうる選択肢が1つだけの場合は攻撃しないといったことはなく、容赦なく最善の選択肢が飛んでくる。
ただし、アクティベート条件を満たさない場合はそもそも行動しないように見える。
-壁抜け索敵
敵は間違いなく壁抜けで索敵して行動を決めている。ただし、壁を考慮した索敵範囲の機体しか攻撃できない。これが機体の射程を参照しているのか索敵を参照しているのかは不明だが、COSMOS編No.20のヒュロスはこちらの初期配置により1ターン目の移動位置が異なっている。ずるい。
・熟練度
内部で経験値が蓄積していて、その経験値に応じた熟練度が付く。
Δ1個で経験値400、以降400加算ごとにΔがつく。Δ4つで🍀1つ分、🍀の数だけパラメーターがアップする。ACEで🍀5個=Δ20個(経験値8000)
-熟練度アップ条件
・敵ユニットに攻撃...与ダメージが経験値
・敵ユニットを撃破...20pt
・攻撃を受け、ダメージを耐える(フレンドリーファイアでもOK)...(被ダメージ)×2
・敵の攻撃を迎撃する...40pt※
・敵の攻撃を回避する...40pt
・補給する...?pt
・修理する...100pt
・トレジャーを回収する...40pt
・基地を建設する...?pt
なお、迎撃に関してはおそらく浮動小数点誤差により熟練度0から40回迎撃してもΔ4(=🍀1)にならない。ここから粒子弾攻撃等でわずかに経験値を与えてあげると🍀1になる。
また、被ダメージによる熟練度は小数点も考慮しているので、ダメージをいちいち記録して熟練度上昇量を見たとき、計算上はレベルアップ条件をみたしているのにレベルアップしないことがある。これは表示されるダメージの小数点処理の影響(小数点の項を参照)
-熟練度ダウン条件
・被弾時に撃墜される...20%から25%ダウンする。
これはACEから1回の撃墜で差が出ることは経験値をカウントしなければわからないが、ACEから経験値を加えることなく2回撃破するとΔの数が最大20×0.8^2=12.8~12個、最小20×0.75^2=11.25~11個と計算でき、実際Δ12個の場合とΔ11個の場合が確認できることからも明らかとなる。
参考文献(引用箇所)
1)R-TYPETACTICS12COSMOS メモ,
,ジルファードさん作成.
©Granzella Inc. "R-TYPE" is a trademark and/or copyright of IREM SOFTWARE ENGINEERING INC.