pokenote
nnamekonoosama

対戦ログ取りながらダメ計する時間がないので、自動化してみた

はじめに

レギュレーションM-A シーズン1 お疲れ様でした!

今回は最終レート2210・最終順位5106位ということで、自分としてもそれなりに満足できる結果を残せたかなと思っています。


そちらの内容も別途、自分の記録がてらまとめたいと思っているのですが、

実はポケモン対戦以上に時間をかけた(かけてしまった)ことがありまして、

それがポケモン対戦の対戦時に使える対戦ログとダメ計ツールの自作です。


結構たくさん工夫を入れられて、

これのおかげで対戦中にダメ計をする余裕がかなりできるようになりました。

簡単に真似はできないかもですが、

対戦中にもっと色々工夫したいなと思っている方の参考になればと思います。




そもそもツールを自作しようと思った経緯

ポケモンチャンピオンズのリリース当初、ちょっとザワザワしていたことありますよね?

「え、チャンピオンズのダメ計ってどうすればいいの?」


既存のポケモンの値をいじって、

擬似メガなんちゃらを爆誕させているのをたくさん見かけました。


僕はSV新規であり、ダメ計についてはポケソルのツールにゴリゴリに依存していたので、

値をいじって計算など到底できる気もせず、ずっとヤキモキしていました。

(ポケソルのダメ計が早く対応されないかなと、毎日チラチラ開く日々。。。)


そこで思いました。

最低限、まずは自分で計算できるようになろう。


色々検索した結果、以下のサイトに辿り着き、

ダメージベースという概念を知り、ダメージを暗算する方法を知りました。


なるほど、これは良いなと思い、ざっくりとこの方法でダメージを計算できるように

スプレッドシートにまとめました。

やっとこれで限定的な状況に限っての、ある程度のダメージ計算ができるようになっていました。


このときに思ったより簡単にできたので、ちょっと欲が出てきました。

あれ、これもっとちゃんと作ったら、対戦中に役立つものになるんじゃね?



対戦ログとこれまでの悩み

SVでの対戦経験を通して、ただ闇雲に対戦を重ねるだけでなく、

現在の構築の改善点やプレイングの反省をきちんと一戦一戦行うことの重要性を感じていました。


そこで、僕は常に対戦ログを取っており、その取り方も色々試行錯誤した結果、
現在は以下のようにログを取っています。

上記のログを見て、こんな風に反省(※反省というには烏滸がましいレベルで感想述べてるだけ)しています。

  • バサギリのスカーフが全く頭になく、スカーフインファを決められ初手でミミロップを落としてしまった。
    かといって、初手スカーフバサギリに対して全く有利取れるポケモンいないな。
    今後も当たるようならなんか回答用意しなきゃだなぁ。

  • シャワーズってクエスパトラのルミナコリジョンを2発入れても落ちないのかぁ。まぁ硬いもんなぁ。クイックターン使われて、ちゃんと盤面操作されてしまったなぁ。ミミロップが初手に落ちてなければまだやれることがあったなぁ。

  • 特化サザンドラがメガマフォクシーにあくのはどうを決めても一発で落ちないのか。相変わらず君は火力が絶妙に足りないね。。。
    マフォクシーはサザンドラで見ればOKと思ってたのに、事前にステロを撒くとか1サイクル回すとかしないとダメってことね、、、悲しみ。。。
     

こんな感じで対戦ログを取って、構築の改善やプレイングの反省に役立てており、

1戦1戦をきちんと振り返ったり、まとめて数戦を振り返ったりと、

対戦ログをつけることは、自分にとって必要不可欠な行為だと思っています。

(※ちなみにこの内容をCSV化して、そのままチャットGPTに分析させたりもできて面白い。)


ただ、その代償として以下のようなことに悩んでいました。

  • とにかく対戦中の時間が足りない

    • ブーストエナジーや風船がない環境のおかげで、画面を注視する必要は出てきてないことは救いですが、少なくとも45秒でダメ計をしてから技を決める余裕がないです

    • 対戦中はもちろんですが、選出の際にも参考にしたいダメ計があったりはするのですが、やはりそれも時間がないです

    • 強者のプレイ動画でよく聞く「とんぼがえりがこのダメージが入ったということは相手はいじっぱりが確定だな」のような計算をしてる暇はもっとないです

この辺り、各種ダメ計ツールが、

簡単に入力できるようにたくさんの工夫をしていただいているのは

ひしひしと感じるのですがそれでも自分は時間が足りないです。


ここで前段の話とつながります。

ログを取ってると勝手にダメ計してくれたら最高じゃね?



対戦ログとダメージ計算を連動させてみた

先ほど例に出した対戦の初手盤面、ミミロップとバサギリが相対したとして

例えば自分がインファを押したいなと思った時、こんな感じで入力してみます。

すると、ダメ計では勝手にこれを表示してくれます。

工夫したところはこんな感じです。

  • 自分のポケモンの能力ポイントの振り方が反映できているので、
    調整がやりやすいチャンピオンズとあっている
    (ログの以下の部分にポイント振りを事前に入力すれば勝手に反映される)

  • 与ダメージを割合表示でも表したことと、相手の調整によってのダメージを全て可視化したことで、瞬時に相手の振り方を判断できる
    (相手がHPと防御無振りで最高乱数引けばギリ倒せるっぽい。逆にインファ打って16%以上残ったらHやBに努力値割いていることがわかる。)



もちろんこちら、防御側の時の反映もできてて、

例えば、バサギリからとんぼがえりをくらった場合、以下のようにログを入力すれば、

こんな感じで計算結果出してくれるので、
とんぼがえりで40ダメージ入ったとしたら、相手のバサギリがA特化であることが確定します。
(※こっちはぶっちゃけダメージの割合表記はいらないっちゃいらない)

ここまできたので、ついでだったのでSラインも勝手に出せるようにしておきました。
(メガミミロップをこの素早さで使ってる人は流石にいなかっただろうな笑)


最後に

今回、改めて自分で作ることの便利さみたいなものを感じました。


もちろんポケモン対戦において便利なツールは日々開発とアップデートがされており、

その恩恵は授かりまくるべきだと思っています。


ただ、自分で作ることで、

自分の見やすいものを見やすいようにオーダーメイドできる強さは

やはりあるなと思いました。


実際に今回の僕の例だと

今まで試合中にはほぼダメ計ができていなかったのが、

一応確認しておくかのレベルでダメ計を眺める余裕を作れるまでに改善できました。

(それほど使わないだろうと思ってた素早さ比較も、実戦で結構見にいくことも多かった)


また、思わぬプラスポイントとして、

今回ダメージ計算の仕組みを一から勉強したこともあり、

時々ポケソルメンバーが細かい数字に言及していた時に

今まで「何いってんだろこの人たち」だったのが、

「あぁ、なるほど」になれたことも成長を感じれて嬉しかったです!


特にこのツールを公開しているわけではないのですが、

別に隠しているわけでもなんでもないので、興味あったり参考にしたいとかあれば

Xで連絡ください。

(ただ、まだ実装できていない機能とかめっちゃあるので、誰かにあげれるレベルではない。。。)

@CitrusinJuly