トップページ > 過去ログ > 記事閲覧
XY世代専用 ダメージ計算式調査スレッド
日時: 2016/01/09 11:25
名前: OZY

■説明
ポケモンXY世代のダメージ計算式を調査するスレッドです。
いろいろな補正の倍率、補正位置、補正後の処理などを実験により調査し、
推定・断定できる補正内容をこのスレッドで報告します。
全ての要素を調査したら完了です。

■調査の対象について
もうか・しんりょくなどのタイプ違いや、
こだわりハチマキ・こだわりメガネなどの物理・特殊の違いは
同じ補正として扱います。(調査の量を減らすため)

■調査のミスについて
調査は全て手作業のため、ミスが生じることが予想されます。
再び同じ条件で調査する可能性があるので、
調査に関わったポケモンはできるだけ残しておいてください。

■調査結果
>>74-75
Page: [1] [2] [3] [4] [5] [6] [7] [8]

Re: XY世代専用 ダメージ計算式調査スレッド ( No.17 )
日時: 2014/03/02 13:20
名前: SUN
参照: http://pokemon-trainer.net/

>>16 no nameさん
ありがとうございます。
○○フィールドに関しては特に調査をしていないのですが、
場に対する効果はダメージに対する補正である事が多いので、
例に習って(威力ではなく)天候補正と同じ補正位置であると推測しています。
Re: XY世代専用 ダメージ計算式調査スレッド ( No.18 )
日時: 2014/03/06 00:03
名前: OZY

お久しぶりです。3ヶ月ぶりになってしまいました。

■実験5:オーラブレイク
 特攻87:フラエッテLv51(スキルスワップで特性:フェアリーオーラ)
 威力40:ようせいのかぜ
 特防159:ジガルデ
【確認したダメージ】18回試行
 20,24,26
【結果】
 ・威力に÷1.33(×0.75)して切捨or五捨六入

■実験6:オーラブレイク
 攻撃70:クレッフィLv38(スキルスワップで特性:オーラブレイク)
 威力50:ドレインキッス
 防御149:ゼルネアス
【確認したダメージ】12回試行
 7,9
 急所13
【結果】
 ・威力に×0.75して切捨or五捨六入

■実験7:ミストフィールド半減
 特攻154:ジガルデLv70
 威力85:りゅうのはどう
 特防170:カメックス
【確認したダメージ】21回試行
 30,31,33,34,36
 急所49,51
【結果】複数の候補があります。
 ・威力に0.5倍して切捨or五捨六入
 ・+2の後に0.5倍して切捨or五捨六入
 ・乱数の後に0.5倍して切捨or五捨六入

>15
>>SUNさん
ご指摘ありがとうございます。×0.75なら今までの補正と同じですね。
四捨五入に関しては、切り上げか疑わしい場合に調べるようにします。

>16
>>no nameさん
グラスフィールドによる威力×1.5ということは、
半減の計算も同じく威力に掛かると推測します。
ついでに調査の詳細のメモなどが残っていましたら、
教えて頂いても宜しいでしょうか。
Re: XY世代専用 ダメージ計算式調査スレッド ( No.19 )
日時: 2014/03/09 09:38
名前: Yu

お久しぶりです。前の掲示板ではお世話になりました。Yuです。

ファーコートの補正が0.5倍だということが既に判明しているようですので、今回はその補正位置が「耐熱・厚い脂肪」と同じなのか「マルチスケイル」と同じなのか調査しました。
なお、以下の調査はすべて「ファーコートは0.5倍の【切り捨て】」だと仮定して進めています。

【条件】
クチート(Lv50,A150)でスキルスワップで特性「ファーコート」になったメレシー(B137)にじゃれつく「威力90,一致等倍」

・+2の前に0.5倍 ダメージ28,30,31,33,34
・マルチスケイルと同じタイミングで0.5倍 ダメージ28,29,30,31,32,33

ダメージ34が出たら補正位置は「耐熱と同じ」
ダメージ29,32が出たら補正位置は「マルチスケイルと同じ」

【結果】
ダメージ34を確認。ファーコートの補正位置は、耐熱・厚い脂肪と同じで「÷50の後、+2の前に0.5倍の切り捨て」

ただし、今回の条件では耐熱の場所以外に「技の威力を0.5倍」「相手の攻撃を0.5倍」「自分の防御を2倍」でも同じ結果がでるので、その位置の可能性もあります。今後、更なる検証が必要だと思われます。




それとレスの1番を見て気になったのですが、闘争心補正は切り上げではなく以下の結果から五捨六入だと思われるのでご報告します。
【条件】
ニドキング♂(Lv50,A169)でフシギバナ♂(B191)にシャドークロー(威力70,不一致等倍)

威力87(1.25倍のあと五捨六入)ならダメージ29〜35
威力88(1.25倍のあと切り上げ)ならダメージ30〜36

【結果】
ダメージ29を確認

【条件】
ニドキング♂(Lv50,A169)でアマルルガ♀(B151)にシャドークロー(威力70,不一致等倍)
威力52(0.75倍のあと五捨六入)ならダメージ22〜27
威力53(0.75倍のあと切り上げ)ならダメージ23〜28

【結果】
ダメージ22を確認
Re: XY世代専用 ダメージ計算式調査スレッド ( No.20 )
日時: 2014/03/09 16:43
名前: Yu

ダークオーラの補正位置についての調査結果を報告します。

【調査1】オーラの倍率について追調査
>14で「威力に1.33倍(4/3倍)して切捨」と結果が出ていますが、念のため追調査しました。

【条件1】
イベルタル(Lv50,C151)でランドロス(D124)に悪の波動(威力80,一致等倍)
威力106(1.33倍の切り捨て・五捨六入・4/3倍の切り捨て)ならダメージ73〜87
威力107(1.33倍の切り上げ・4/3倍の五捨六入・切り上げ)ならダメージ75〜88
【結果】
ダメージ73を確認したのでダークオーラの処理は「1.33倍の切り捨て・五捨六入・4/3倍の切り捨て」のどれか

【条件2】
イベルタル(Lv50,A151)でアマルルガ(B151)に泥棒(威力60,一致等倍)
威力79(1.33倍の切り捨て)ならダメージ45〜54
威力80(1.33倍の五捨六入・4/3倍の切り捨て)ならダメージ46〜55
【結果】
ダメージ55を確認したのでダークオーラの処理は「1.33倍の五捨六入・4/3倍の切り捨て」のどちらか

>14の結果と合わせ、「オーラの倍率は4/3倍の切り捨て」として以下の調査を進めたいと思います。


【調査2】闘争心との関係
倍率からオーラの補正位置は「ちからずく」近辺だろうと推測して闘争心との前後関係を調べました。

【条件】
ダークオーラ下、闘争心ゲッコウガ♂(Lv50,C155)でニョロトノ♂(D117)に悪の波動(威力80,一致等倍)
威力133(闘争心→オーラ)ならダメージ100〜118
威力132(オーラ→闘争心)ならダメージ99〜117
【結果】
ダメージ118を確認。処理順は闘争心→オーラ


【調査3】ちからずくとの関係
ちからずくとの前後関係を調査しました。

【条件】
ダークオーラ下、力ずくドーブル(Lv50,C38)でパルシェン(D65)にナイトバースト(威力85,不一致等倍)
威力148(力ずく→オーラ)ならダメージ34〜40
威力147(オーラ→力ずく)ならダメージ33〜39
【結果】
ダメージ33を確認。処理順はオーラ→力ずく


【まとめ】
以上の調査からダークオーラ(フェアリーオーラ)の仕様は以下のようである可能性が高いと思われます。

・倍率は威力に4/3倍で、端数処理は切り捨て
・補正位置は、闘争心→ダーク(フェアリー)オーラ→ちからずく・アナライズ・砂の力
Re: XY世代専用 ダメージ計算式調査スレッド ( No.21 )
日時: 2014/03/12 11:36
名前: SUN
参照: http://pokemon-trainer.net/

お疲れ様です。
ダメージ計算式の調査どころかツールの更新さえ出来てなくて申し訳ないです。

>>18 OZYさん
ミストフィールドに関しては推測にすぎないのですが、その候補だとやはり+2後がしっくりきますねー。

>>19-20 Yuさん
みずびたしの倍率変更の節ではお世話になりました!


そろそろ読まない訳にはいかないだろうということで、例のダメージ計算についての英語記事をさらっと読んでみました。
この方法がXYで踏襲されているかどうかは分かりませんが、しかしながら知っていて損はないと思います。

The Complete Damage Formula for Black & White (B/W) - Smogon University
http://www.smogon.com/bw/articles/bw_complete_damage_formula

ダメージ計算はご存知の通りこのように計算されます。

BaseDamage = ((((2 × Level) ÷ 5 + 2) * BasePower * [Sp]Atk) ÷ [Sp]Def) ÷ 50 + 2

ここで÷は余を捨てた商のみを答えとして返します。

さて、対照的に、これ以外の端数処理は全て、要素(trigger)ごとに決まった補正値(modifier)を掛け、4096で割って四捨五入する(round)という手順で計算が行われます。
例えばいのちのたまの場合は補正値が5324で、5324/4096 = 1.2998... であることから、五捨六入をしたような計算結果になります。
(* 実際には確かに四捨五入ということのようです。*)
* 間違い。四捨五入するが0.5は切り捨て→いわゆる五捨六入、のようです。

また、同じ箇所に補正値が複数ある場合、先に処理をするものから連鎖的に、2つの補正値を掛けて4096で割ったものを四捨五入して新しい補正値をつくり、最後にその箇所に補正を掛けます。
例えば、1.3倍(5324)と1.5倍(6144)で威力75に補正を掛けたい場合は
× round(75*5324/4096)=97、round(97*6144/4096)=145
と計算するのではなくて、
○ round(5324*6144/4096)=7986、round(75*7986/4096)=146
と計算するそうです。
* 上を146から訂正

(* ここから間違い

さて。
かなり衝撃的なことが書いてあるようですが。

>If the type of the move match one of its users', the STAB modifier is set to 0x1800.
訳: わざのタイプがその使用者のもの一致すれば、STAB補正値が6144に設定される。

さて、タイプ一致(STAB)補正をかける前のダメージが99だとすると

int(99*1.5) = 148
round(99*6144/4096) = 149

もう何を信用すればいいのか分からない。

ここまで *)
Re: XY世代専用 ダメージ計算式調査スレッド ( No.22 )
日時: 2014/03/12 11:29
名前: SUN
参照: http://pokemon-trainer.net/

あっ、

>if the decimal part is ≦0.5, round the result down, otherwise round it up.

って書いてあるのでやっぱり「四捨五入、ただし小数部分が0.5ピッタリのときは切り捨て」のいわゆる五捨六入ポリシーのようです。
Re: XY世代専用 ダメージ計算式調査スレッド ( No.23 )
日時: 2014/03/12 11:44
名前: SUN
参照: http://pokemon-trainer.net/

一方、補正値の連鎖については

>M'' = ((M * M') + 0x800) >> 12

と書いてあって、ややこしいようですがこれは四捨五入の常套手段ですので、こっちは例外なしの四捨五入です。
Re: XY世代専用 ダメージ計算式調査スレッド ( No.24 )
日時: 2014/03/12 22:39
名前: Yu

>21
ものによって切り捨てだったり、五捨六入だったり、切り上げだったりするカラクリはこんなところにあったんですね。なんだかややこしい話になってきました。


↓ここから検証
XYからの新要素の検証ではないですが、ネットの定説と異なる結果がでたので報告します。
>8や>9のリンク先にもあるようにネット上では「さきどり」の補正位置は「+2以降」あるいは「乱数後」というのが定説のようですが、それとは異なる結果があらわれました。


【条件1】
ファイアロー(Lv50,A101)でハピナス(B26)にさきどり(ワイルドボルト)(威力90,不一致等倍)
威力・+2〜乱数前:197,199,201,204,206,208,211,213,215,218,220,222,225,227,229,232
攻撃・+2前:196,198,200,203,205,207.210,212,214,217,219,221,224,226,228,231
乱数後:196,199,201,204,205,208,211,213,216,217,220,222,225,226,229,232
【結果】
ダメージ211と218を確認
この時点で可能性として「威力」「+2〜乱数前」が残る

【条件2】
ファイアロー(Lv50,A101)でハピナス(B26)にさきどり(じならし)(威力60,不一致等倍)
威力:131,133,134,136,137,139,141,142,144,145,147,148,150,151,153,155
+2〜乱数前:132,134,135,137,138,140,141,143,145,146,148,149,151,152,154,156
【結果】
3回攻撃してダメージ155,136,136
以上の結果から「さきどり」の補正位置は「威力に1.5倍」

【条件3】
ファイアロー(Lv50,A101)@こぶしのプレートでハピナス(B26)@ヨプの実にさきどり(かわらわり)(威力75,不一致2倍)
威力135(プレート→さきどり)なら
197,199,201,204,206,208,211,213,215,218,220,222,225,227,229,232
威力134(さきどり→プレート)なら
196,198,200,203,205,207.210,212,214,217,219,221,224,226,228,231
【結果】
3回攻撃してダメージ211,229,201。さきどりはプレートよりも後

【条件4】
闘争心ファイアロー♂(Lv50,A101)でハピナス♀(B26)にさきどり(ワイルドボルト)(威力90,不一致等倍)
威力101(さきどり→異性闘争心)なら
147,149,151,153,154,156,158,160,161,163,165,167,168,170,172,174
威力100(異性闘争心→さきどり)なら
146,147,149,151,153,154,156,158,159,161,163,165,166,168,170,172
【結果】
ダメージ174,160を確認。さきどりは闘争心よりも前。


【まとめ】
以上の結果から
・「さきどり」の補正位置は「威力」
・威力内での補正位置は「プレート→さきどり→闘争心」(手助け・テクニシャンと同じ箇所)
である可能性が高いと言えると思います。

※おまけ
気になってBWでも調査したところ、BWでも威力補正という結果になりました。気づかなかっただけで、第5世代から仕様変更していたのかもしれません。
Re: XY世代専用 ダメージ計算式調査スレッド ( No.25 )
日時: 2014/03/13 12:51
名前: SUN
参照: http://pokemon-trainer.net/

>>24 Yuさん
お疲れ様です!

http://www.smogon.com/bw/articles/bw_complete_damage_formula#bp-mods

BWの場合は確かに威力補正のようで、また処理はこの表の順番で行われているようです。その順番は

闘争心(Rivalry)→プレート(Type boosting items, plates, incenses)→さきどり(Me First)

ということのようです。
重要なのは、BWにおいてはこの順番に威力の補正がなされるのではなく、この順番に威力用の補正値が積算されていき、最終的に得られた補正値で威力を補正することです。

プレート(4915)とさきどり(6144)を使った場合、
補正値は round(4915*6144/4096) = 7373
威力は round-(75*7373/4096) = 135

とうそうしん(3072)とさきどり(6144)を使った場合、
補正値は round(3072*6144/4096) = 4608
威力は round-(90*4608/4096) = 101

となります。
ここで、roundは四捨五入、round-は0.5ちょうどを切り捨て、それ以外は四捨五入、を意味します。
つまりYuさんの検証結果はBWの手法が継承されている可能性を否定しない、ということになりますね。
要素が複数ある場合にBW手法と矛盾があるかどうかの検証はおそらく必要だと思いますが、
矛盾がないということであれば、補正の順番は気にする必要がないと思います。
差が出ないことはないですがごく稀ですし、検証も相当大変だと思うので。
Re: XY世代専用 ダメージ計算式調査スレッド ( No.26 )
日時: 2014/03/14 10:12
名前: SUN
参照: http://pokemon-trainer.net/

五捨五超入、という言葉があるようです。
今後はこの言葉を使うべきではないかと思います。

この言葉を使ってまとめると、

・威力、攻撃、防御に対する補正、及びダブル補正、天候補正、最終補正(Final modifier; リフレクターなど)は五捨五超入
・威力・攻撃・防御・最終補正がそれぞれ複数ある場合、先に補正値を2つずつ連鎖的に積算して四捨五入
・補正値は4096に対する整数値で定義され、例えば1.3倍の場合は5324 (5324/4096 = 1.2998...) が用いられる
・その他の箇所ではこの補正値の概念は使わず、単純に切り捨て

ということになります。

Page: [1] [2] [3] [4] [5] [6] [7] [8]