きんのいれば

ポケモンGB世代の老兵によるメモ入れ場。

初代の戦闘中のステータスの補正の解釈

 戦闘中のステータス補正には、初期値現在値に対する二種類の補正がある。

初期値》… 場に繰り出したときに最初に読み込まれる実数値のこと。

現在値》… 素早さ計算やダメージ計算で読み込まれる現在値のこと。

初期値に対する補正とはステータスランクの変化(能力変化*1・補助効果*2とも言う)がそれであり、ランクの変化自体は足し算だが、そのランクで決まっている補正値を初期値へ改めてかけ直すことになる。例えば、実数値100のポケモンが1ランク上がって+1となり、3/2倍で150になっているとき、更にランクを1上げて+2ランクになったからといって、現在値150が2(=4/2)倍になって300になるわけではなく、現在値は無視して初期値100の2倍の200になる。ステータスランクの変化はいつの時代も初期値に対する補正になる(そんな大事な補正要素にも関わらず、第七世代までゲーム画面上で可視化することができなかった)

現在値に対する補正とはステータスランクの変化以外のステータスに対する補正であり、火傷、麻痺などの状態異常、経験値の獲得できる戦闘におけるジムバッジの補正がこれに当てはまる。なお、優先順位の高い初期値に対する補正のステータスランクが更新されたときは、それに連動して現在値に対する補正も改めて再度計算しないと辻褄が合わなくなる。

初代特有のステータス変化からの現在値再計算処理のミス

ヒストリアカップ2016*Resurrection!」のエキシビションマッチにて戦闘中のステータス変化について話題となり、参加者のかけるさんの解説(ポケモン赤緑青ピカチュウ 状態異常による能力低下について)によって結果はわかってるのだが、どうしてこういう仕様になっているのかというところが腑に落ちなかったので、本来はどういう処理をすべきだったのかということと比較をしてみた。

《本来されるべき(?)だった処理》

  1. ステータスランクが足し算、引き算される
  2. 現在値を捨て、初期値(実数値)に新たなランクに基づいて現在値生成
  3. こうげきランクが変化したなら火傷の補正のみ、
    すばやさランクが変化したなら麻痺の補正のみをかけ直す
  4. 経験値の獲得できる戦闘ならバッジの補正もかけ直す。ただし、変化したランクとバッジの補正対象が同じところだけをかけ直す。
  • こうげきランクが変化→グレーバッジのみ
  • ぼうぎょランクが変化→オレンジバッジのみ
  • すばやさランクが変化→ピンクバッジのみ
  • とくしゅランクが変化→クリムゾンバッジのみ

…となるものだと考えるわけだが、実際は、

  1. ステータスランクが足し算、引き算される
  2. 現在値を捨て、初期値(実数値)に新たなランクに基づいて現在値生成
  3. ステータスランク変化発生時に攻め側:火傷・麻痺の補正を再計算しない
    ステータスランク変化発生時に守る側:火傷・麻痺の補正を再計算する
  4. 経験値の獲得できる戦闘ならバッジの補正もかけ直す。このとき、ランクとバッジの補正対象のステータスは一致している必要なく、場に出した時同様すべてが再計算される

…という仕様でつくってしまったため、

  • 自分のターンの能力変化で自分ではなく相手の状態異常が再計算される
    (なお、影分身を積んでも自分の火傷や麻痺が無視されたりしません。ただ、再計算されないだけです。物理攻撃力の現在値が変わらなければ、火傷適応済みの物理攻撃力のままであり、それが再計算されなかったところで火傷が無視されていることにはならないからです)
  • ステータスランクの変化を起こすだけでバッジの補正を重ねがけできる

瞬間的な補正

ちなみに初代GB以外の作品においては、このような現象は「ポケモンスタジアム金銀」を覗いて起こらない。恐らくだが、それらの作品の火傷や麻痺の補正は現在値補正ではなく、リフレクターや太い骨、力持ちのように素早さ比較やダメージ計算のときに改めてチェックして瞬間的に補正をかけて計算するようにしているのではないかと思われる。だから第五世代で登場するイカサマで相手の火傷を無視できるのだ。それは瞬間値ではなく、現在値を参照しているからということになる。もし、仮に初代にイカサマがあったとするならば、相手の火傷の補正だけが影響することになるだろう。このような処理の方がずっとスマートであり、鈍いのように二種類以上のステータスを同時に変化させる技も登場させられるようになっている。

瞬間値》… 素早さ比較・ダメージ計算のときのみの補正を加味した値。
(※GB世代で999という現在値の上限をこのときに超えられる)

なお、初代での瞬間的補正は、リフレクターと光の壁のみ。これらは現在値補正でも良かったかのように思われるが、特殊攻撃力特殊防御力が共通ステータスだったため、特殊防御力だけを2倍にするためにはダメージ計算時にのみ、瞬間的に2倍にする必要があったというわけ。後の作品では、場の効果、持ち物、特性も瞬間的な補正に当てはまる。

最後に

久しぶりに(いつも?)何が言いたいのか分からない文章になってしまいましたが、麻痺状態の高速移動は麻痺を無視するのではなく自分のターン中に誰かのステータスランク変動が起こるとき、状態異常の再計算が攻め側ではなく守り側だけにかかる仕様のため、高速移動で素早さ現在値を更新しても自分の麻痺が再計算されないだと思う(長い

これで合ってる? メガトランセル種市の復習終わり。

*1:「ポケモンスタジアム」の実況より

*2:金銀から登場した自己暗示の技メッセージより