モノトーンの伝説日記

Apex Legends, Splatoon, Programming, and so on...

<mini> Apex Data ぼちぼち作ってます

 編集中ですが……

2/4 追記: ダメージ計算に関して少し書いてありますが,以下の記事に綺麗に整理し直しました。よければ参考にしてください。

mntone.hateblo.jp

 個人的に数値データをまとめたかったので,例の如く趣味程度にはじめました。

mntone.minibird.jp

 Web 上にあるデータは計算値で,数値の取り扱いが間違っていて実態と異なっていたり,ひどい感じだったので,実際に手元で調べる作業からしています……

 現状,ボルトSMG,VK-47フラットライン,R-301カービン,のみ検証済みで,ハボックライフルとG7スカウトはページこそありますが,一応計算で算出されたもので,比較はしておりません。

 一応,ヘッショ倍率に関しては以下の通り。

ヘルメットなしのヘッドショット倍率を khs とすると,

  • 0.2 + 0.8 khs,    if helmet lv. 1
  • 0.4 + 0.6 khs,    if helmet lv. 2
  • 0.5 + 0.5 khs,    if helmet lv. 3 or 4

となる。

※ 一般に,ヘルメットは順番にダメージ 10%, 20%, 25% カットと知られていますが,これはヘッショ倍率が一般的な 2 倍の場合のみ。例えば,ボルトSMG などのヘッショ倍率が低い武器では,これ以下の効果となる(具体的には計算してください)。

 ダメージ計算はまだ暫定(全ての武器に対して当てはまるか確かめていない)だけど,次の通り。

🧧モノトーン:au:@Vermeerおじさん: "ちなみに計算の手順は 1) ヘッショやレグショの計算かつ丸め演算 2) 小柄や鉄壁の計算かつ丸め…" - mstdn.jp (1/23 このトゥートを埋め込んでいましたが,より正確な計算方法を下記に示しているためリンクに変更しました)

 まあ徐々に。

1/22 追記

 G7スカウト,オルタネーターSMG,R-99 SMG,R-301カービン,P2020及びそれらの増幅バリケードのダメージのみ検証。また,VK-47フラットラインのみ,通常ダメージのみの検証。

 計算方法は,

  1. 増幅バリケードを経由した場合,基礎ダメージに ×1.2 する。それを四捨五入。
  2. ホップアップ(ハンマーポイント弾のみ検証済み)がついている場合,それに応じた倍率をかけ,四捨五入。
  3. 頭・脚などの部位ダメージに各々の倍率をかけ,四捨五入。
  4. 最後に小柄 ×1.05・鉄壁 ×0.85 をかけ,一部の武器を除いて小柄のケースでは五捨五超入(ショットガン (? EVA-8オートは確定),センチネル,クレーバーは四捨五入),それ以外は四捨五入鉄壁のみ五捨五超入,それ以外は四捨五入 (※ ここも四捨五入でいいかもしれません。まだちゃんとデータ見れてないので,現状そういう計算をしています)

という感じで計算しています。スカピやハンマーはまだどのタイミングで計算されるかは未検証です。

1/23 追記

 上記に加えてマスティフショットガンのダメージを検証済み。

 EVA-8オートやピースキーパーなど,他ブキも同じであると仮定できるのと,検証するにもかなりの時間を要するので,今後ほかのショットガンは何かのついでに検証する(ハンマーポイント弾の仕組みを調べるときにモザンビークに関しては実際の数値を調べると思います)。

 R-301 見てて思ったのですが,小柄の 5% up は普通に伊達じゃない。

mstdn.jp

mstdn.jp

cf. R-301カービン - Apex Data

 ジブとか全弾胴体(ガンシールド有効)だとすると,23 弾いるので,拡マガついてない R-301 だと 18 発しか打てないので,1 マガで倒せないと… 最低でも lv.2 extmag の 25 発を全部当てきる必要があると…w

夜追記

 上記に加えてモザンビークおよびそのハンマーポイント弾について調査しました。ちなみに,増幅バリケード倍率の後にホップアップ倍率がかかるようです。

 余談ですが,ハンマーポイントが付いたモザンビークはえげつないダメージが出るので,実際ゲーム内で検証すると,1 つの破片が無効化され,通常キャラに対してノーヘルのヘッショの場合 51 × 2 = 102 と表示されます。これは胴体ダメージと同じ 102 と表示されますが,このケースは 34 × 3 の 102 となります。

 小柄に対して,増幅バリケード+ハンマーポイント弾のヘッドショットをあてると,1 破片 65 ダメージになります。えげつない…

mntone.minibird.jp

1/24 追記

 ハンマーポイント弾の仕様を調べていて,結構トリッキーなことをしているみたいです。細かい逆算ロジックはわかりませんが,

 赤アーマーフルヘルス・lv.3 ヘルメットの通常個体に対して,P2020 ハンマーポイント弾をつけて頭に射撃すると,

  1. 225 - 19 dmg × 6 = 111
  2. 111 - 25 dmg = 86 (25 dmg = 11 dmg + 14 dmg ????)
  3. 86 - 44 dmg × 2 → 0

となっており,よくわからないですw どういうロジックでダメージを計算しているのか想像がつかないっていうか… 割合,倍率の逆算など複数検討してみましたが,適切と感じられるものが見つからなかったので…

 一応,検討してみたい人は以下を参考にしてください。

  • 赤アーマー(進化式ボディーシールド レベル5): 125 hp
  • HP: 100 hp
  • P2020: 通常弾 15 dmg
  • P2020 ハンマーポイント弾倍率: 2.35 倍
  • P2020 ヘッドショット倍率 khs: 1.5 倍
  • P2020 ヘルメット レベル 3 / 4 時倍率: 0.5 + 0.5 × khs = 1.25 倍

夕方 追記

■仮説1. ヘッドショット倍率を無視。

 25 dmg の内訳は,シールドに 11 dmg,肉に 14 dmg

 ここで,lv.3 メットに対するヘッドショットのダメージは 19 dmg。つまり余剰分は 8 dmg である。

 8 dmg を素ダメージ(胴体相当)は,8 dmg ÷ 1.25 = 6.4 dmg である。

 ここにハンマーポイント弾相当のダメージとして計算すると,6.4 dmg × 2.25 = 14.4 dmg。四捨五入して 14 dmg である (四捨五入された 6 dmg × 2.25 = 13.5 dmg でもこの結果になる)。本来ならここにヘッショ倍率 ×1.25 として,14 dmg × 1.25 = 17.5 dmg つまり 18 dmg になっても良さそうである。

★仮にこれが正しいのであれば,バグである。ハンマーポイント弾のダメージが正しく計算されていない。おそらく最初から割れている場合の計算は正しいので,このケースを特殊化していることで発生していると考えてもいいかも。

 今夜,他のハンマーポイント弾のケースも調べてみようと思う。

夜 追記

 あまりにもパターン分けが多いので,通常(not 小柄・鉄壁)キャラの増幅バリケードを経由しない場合のみ全パターン調べました。

部位 ヘルス ダメージ表示
備考
Hlm0 150 HP 23, 23, 44, 53, 53
[I] 44 → 4 + 40。23 - 4 = 19, round(round(round(19 ÷ 1.5) × 2.35) × 1.5) = 47
Hlm0 175 HP 23, 23, 23, 41, 53, 53
[I] 41 → 6 + 35。23 - 6 = 17, round(round(round(17 ÷ 1.5) × 2.35) × 1.5) = 39
Hlm0 200 HP 23, 23, 23, 23, 36, 53, 53
[I] 36 → 8 + 28。23 - 8 = 15, round(round(round(15 ÷ 1.5) × 2.35) × 1.5) = 36
Hlm0 225 HP 23, 23, 23, 23, 23, 32, 53, 53
[I] 36 → 10 + 26。23 - 10 = 13, round(round(round(13 ÷ 1.5) × 2.35) × 1.5) = 32
Hlm1 150 HP 21, 21, 34, 49, 49
Hlm1 175 HP 21, 21, 21, 27, 49, 49
Hlm1 200 HP 21, 21, 21, 21, 21, 49, 49
Hlm1 225 HP 21, 21, 21, 21, 21, 21, 49, 49, 49
Hlm2 150 HP 20, 20, 27, 46, 46
Hlm2 175 HP 20, 20, 20, 20, 46, 46, 46
Hlm2 200 HP 20, 20, 20, 20, 20, 46, 46, 46
Hlm2 225 HP 20, 20, 20, 20, 20, 20, 36, 46, 46
Hlm3 150 HP 19, 19, 24, 44, 44
2412 + 12
[II] ⌈15 - 12 ÷ 1.25⌉ = 6, round(⌊6 × 2.35⌋ × 1.25) = 18
[III] 15 - 12 ÷ 1.25 = 5.4, round(round(5.4 × 2.35) × 1.25) = 16
Hlm3 175 HP 19, 19, 19, 19, 44, 44, 44
1918 + 1
[II] ⌈15 - 18 ÷ 1.25⌉ = 1, round(⌊1 × 2.35⌋ × 1.25) = 3
[III] 15 - 18 ÷ 1.25 = 0.6, round(round(0.6 × 2.35) × 1.25) = 1
Hlm3 200 HP 19, 19, 19, 19, 19, 35, 44, 44
355 + 30
[II] ⌈15 - 5 ÷ 1.25⌉ = 11, round(⌊11 × 2.35⌋ × 1.25) = 31
[III] 15 - 5 ÷ 1.25 = 11, round(round(11 × 2.35) × 1.25) = 32
Hlm3 225 HP 19, 19, 19, 19, 19, 19, 25, 44, 44
2511 + 14
[II] ⌈15 - 11 ÷ 1.25⌉ = 7, round(⌊7 × 2.35⌋ × 1.25) = 20
[III] 15 - 11 ÷ 1.25 = 6.2, round(round(6.2 × 2.35) × 1.25) = 19
Body 150 HP 15, 15, 15, 28, 35, 35, 35
285 + 23
[II] ⌈15 - 5 ÷ 1⌉ = 10, round(⌊10 × 2.35⌋ × 1) = 23
Body 175 HP 15, 15, 15, 15, 15, 35, 35, 35
Body 200 HP 15, 15, 15, 15, 15, 15, 21, 35, 35, 35
2110 + 11
[II] ⌈15 - 10 ÷ 1⌉ = 5, round(⌊5 × 2.35⌋ × 1) = 11
Body 225 HP 15, 15, 15, 15, 15, 15, 15, 15, 28, 35, 35, 35
285 + 23
[II] ⌈15 - 5 ÷ 1⌉ = 10, round(⌊10 × 2.35⌋ × 1) = 23
Leg 150 HP 14, 14, 14, 22, 32, 32, 32
228 + 14
[II] ⌈15 - 8 ÷ 0.9⌉ = 7, round(⌊7 × 2.35⌋ × 0.9) = 14
Leg 175 HP 14, 14, 14, 14, 14, 25, 32, 32, 32
255 + 20
[II] ⌈15 - 5 ÷ 0.9⌉ = 10, round(⌊10 × 2.35⌋ × 0.9) = 21
Leg 200 HP 14, 14, 14, 14, 14, 14, 14, 29, 32, 32, 32
292 + 27
[II] ⌈15 - 2 ÷ 0.9⌉ = 13, round(⌊13 × 2.35⌋ × 0.9) = 27
Leg 225 HP 14, 14, 14, 14, 14, 14, 14, 14, 15, 32, 32, 32, 32
1513 + 2
[II] ⌈15 - 13 ÷ 0.9⌉ = 1, round(⌊1 × 2.35⌋ × 0.9) = 2
[III] 15 - 13 ÷ 0.9 = 0.556, round(round(0.556 × 2.35) × 0.9) = 1

という感じで,上から 3 4 つ分の計算をしてみたのですが,あっていませんね…

 これ,小数点以下も実は反映されてたりするんですかね? だとすると,一つ目は 22.5, 22.5, 44.375 (5 + 39.375), 52.875, 52.875 となりますね。

 そう考えると,ショットガンのダメージ表記は実はうそをついていると考えたほうがいいのかもしれません。データ表示用に整数化処理を行うが,破片ごとに整数化がなされており,内部データと実際の表記にそこそこのズレが発生するみたいな。それこそ,マスティフなんか,16.25 × 8 の 130 ダメージなのに,破片ごとに整数化処理された結果,表記上は 16 × 8 の 128 ダメージと表示される,みたいな?

 こればっかりはそういう条件をうまく作って検証するしかなさそうです。ピースキーパーで鉄壁の lv. 3 メットの頭に全弾ヘッドショットで表記上は 99 ですが,これが 105.1875 (10 × 0.85 × 11 × 1.125) になるか。

 いえ,耐えました。

f:id:mntone:20210124214859p:plain

 まだ検討させてください……

1/30 追記

 モザンビークで検証していないので,以下の一般式が P2020 のように当てはまるかわかりませんが,今日は遅いので簡潔に一般化した式を書かせてください。

round { (部位倍率) × ⌊(ハンマーポイント弾倍率) × { (基礎ダメージ) - (残りシールド値) }⌋}, if (残りシールド値) < (基礎ダメージ)

round { (部位倍率) × (基礎ダメージ) }, if (残りシールド値) ≥ (基礎ダメージ)

 基本的に,基礎ダメージを超えているダメージはハンマーポイント弾を無効化したダメージに同じ値になります。中途のハンマーポイントダメージの計算部分だけ,floor 関数を採用しているのは謎ですが,これが正しい結果となりました(現状,小柄・鉄壁かつ増幅バリケードを除く通常キャラクターのみ検証しています)。

 ちなみにこちらの wiki を参考にしています。floor 部分は載っていませんが。

P2020 - Apex Legends Wiki

 もっと Excel 表とにらめっこして早く気づいていればよかったのですがね… 近日中に増幅バリケード経由での結果やモザンビークについても調べ,実際の確定数を自動計算するためのスクリプトを書き上げようと思います。

1/31 追記

 小柄・鉄壁に関しても,上の式で算出された値に,round(damage × mul) で問題なく求まりました。

 ちなみに増幅バリケードを経由した場合,if の条件分岐に使う基礎ダメージも計算に使う基礎ダメージもその増幅された値が採用(P2020 の場合 18 ダメージとなる)されます(手元で調べた分はすべてこの方法に一致しています,ただしすべてを調べるのは大変なため,一部は抜けですが。【非増幅・増幅】×(【通常・小柄・鉄壁】×【ノーヘル・Hlm1・Hlm2・Hlm3・胴・脚】-【小柄】×【脚】)×【150・175・200・225】=136 通り)。

 よく調査していましたら,「○○.5」 といった値を処理する場合,捨てるという五捨五超入を採用していそうです。現状,小柄のウィングマンHSノーヘルおよびスカピつきウィングマンHS白ヘルが 94.5 で 94 となっていること。そして,小柄のVK-47フラットラインHS青ヘルが 31.5 で 31 となっていること。この 2 パターンのみ確認しており,ほかのパターンも現状あるか不明です。計算値と実測値の照合を現在進めており,その検証が終わったページから具体的に終わったとわかるようにそのうちページに照合をつけておきたいと思います。ただ,計算ロジックを多少まだ修正するのでそれが終わってからですが。

かなり追記

 ちなみに,「○○.5」 になる組合せとして,10, 30, 50, 70, 90, 110, 130, …, 290, ... という感じになります。調べていくと,

  • EVA-8オートHS白ヘルが 10 × 1.05 = 10.5(1 つの破片だけ当てます)
  • ピースキーパー胴が 10 × 1.05 = 10.5(1 つの破片だけ当てます)
  • VK-47フラットラインHS青ヘルが 30 × 1.05 = 31.5
  • センチネル胴が 70 × 1.05 = 73.5
  • ウィングマンHSノーヘルが 90 × 1.05 = 94.5
  • スカピウィングマンHS白ヘルが 90 × 1.05 = 94.5
  • ロングボウHSノーヘルが 110 × 1.05 = 115.5
  • クレーバー.50スナイパーHS紫ヘルが 290 × 1.05 = 304.5

です。

f:id:mntone:20210131115701p:plain
小柄にEVA-8オート 頭(白ヘルメット) 11

f:id:mntone:20210131233009p:plain
小柄にピースキーパー胴 11

f:id:mntone:20210131115917p:plain
小柄にVK-47フラットライン 頭(青ヘルメット) 31

f:id:mntone:20210131114833p:plain
小柄にセンチネル胴 74

f:id:mntone:20210131120318p:plain
小柄にウィングマン 頭(ノーヘル) 94

f:id:mntone:20210131120155p:plain
小柄にスカピウィングマン 頭(白ヘルメット) 94

f:id:mntone:20210131115057p:plain
小柄にロングボウDMR 頭(ノーヘル) 115

f:id:mntone:20210131115322p:plain
小柄にクレーバー.50スナイパー 頭(紫ヘルメット) 305

 なんですかこれ…… 処理バラバラじゃないですか…

武器 部位 ダメージ 捨てるor入れる
EVA-8オート HS白ヘル 10 × 1.05 = 10.5 → 11
10 × 0.85 = 8.5 → 9

ピースキーパー 10 × 1.05 = 10.5 → 11
10 × 0.85 = 8.5 → 9

VK-47フラットライン HS青ヘル 30 × 1.05 = 31.5 → 31
30 × 0.85 = 25.5 → 26

センチネル 70 × 1.05 = 73.5 → 74
70 × 0.85 = 59.5 → 60

ウィングマン HSノーヘル 90 × 1.05 = 94.5 → 94
90 × 0.85 = 76.5 → 77

スカピウィングマン HS白ヘル 90 × 1.05 = 94.5 → 94
90 × 0.85 = 76.5 → 77

ロングボウ HSノーヘル 110 × 1.05 = 115.5 → 115
110 × 0.85 = 93.5 → 94

クレーバー.50スナイパー HS紫ヘル 290 × 1.05 = 304.5 → 305
290 × 0.85 = 246.5 → 247

  • SR(厳密に,DMR は除く) と SG: 入れる
  • その他: 捨てる

とかなのかな? SR はダメージ大きくなったほうがいいですし,SG は 1 破片のダメージが小さいので,それを上げたほうが全体として上がる傾向にあるので,SG らしいとか? 理由はともかくとして,そういうグループ分けで処理させておきますかね(まあ確認できたものから専用フラグでも追加してそれだけ切り上げる関数に切り替える感じしかないかな)。ダメージの大きさはさほど関係なさそうです。

もうちょっと追記

 上の表に鉄壁のケースを入れてみました。鉄壁だと全部入れているっぽいので,小柄の場合のみの特殊処理って思ってもいいかもしれませんね。書いてないのは未調査ということで。

 増幅バリケード経由した小柄も四捨五入を使っている可能性?

  • 増幅バリケード経由センチネルHS青ヘルが 170 × 1.05 = 178.5 → 179, 170 × 0.85 = 144.5 → 145 となっている。

夜追記 具体的なダメージ値を調べていると…

 L-スターとスピットファイア,同じ基礎ダメージなのに何度調べても増幅バリケード経由の脚に対するダメージがそれぞれ違う(しかも決まった値)。

f:id:mntone:20210131225216p:plainf:id:mntone:20210131225201p:plain
通常の脚に対するダメージの比較

f:id:mntone:20210131225230p:plainf:id:mntone:20210131225247p:plain
鉄壁の脚に対するダメージの比較

 いろいろと謎すぎる事案ですね,これ…

2/4 追記

 L-スターとスピットファイアは脚の倍率が 0.8 ではなく 0.75 のようです。それで正しく計算できます。