ポケモン対戦AIを作りたい!
こんにちは、なおまると申します。
ポケモンとテクノロジーを掛け合わせておもしろいことができないかを日々考えています。
かねてよりポケモン対戦AIを作りたいと考えており、活動記録を残す意味でも現状を記事に書き起こそうと思います。
対戦AIについて
2017年にAlphaGoが囲碁世界王者を倒したニュースを見たときのワクワク感を今でも覚えています。手数の分岐が将棋より圧倒的に多い囲碁では、AIが人間に勝つには時間がかかると言われていましたが、思えばあの頃からディープラーニングによるAIブームが来ていました。
個人的には競技としてのポケモン対戦は将棋や囲碁にかなり近いと思っています。正確には駒に細工をできる将棋のような理解をしています。例えば、私の銀は斜め後ろには進めないが、横に進める等のように、私のハバタクカミはCSベースこだわり眼鏡、誰かのハバタクカミはHBベース甘える痛み分けと、同じポケモンでも育て方によって全く異なる駒になります。
ポケモン対戦は端的に言うと選択肢が10個(技選択4×テラスタル考慮2+交代2)と意外とシンプルです。しかしながら、ゲームの不完全情報性だったり、上述したポケモンの型の匿名性というところが、対戦AIの構築を難しくさせているのかなあとほんやり考えています。
さて、対戦AIについては、やはりニューラルネットワークを用いて構築することが必要と考えました。ポケモン対戦AIについては論文もあったり色んな方々が研究しているので、興味のある方はぜひ見てみてください。
データ集め
ニューラルネットワークの学習には大量の学習データが必要になります。ポケモン対戦は将棋や囲碁と違って正式な棋譜というのが残されていません。そこで今回はPokemon ShowdownのReplayという対戦ログを活用することを考えました。
Pokemon Showdownとは、Smogonという世界最大のポケモンコミュニティが運営している、Webブラウザでポケモン対戦ができるサイトです。ポケモンの育成が不要であり、常に数万人のアクティブユーザ、数千のアクティブな対戦が行われているため、海外ではかなり広く利用されています。
Pokemon ShowdownではVGCルールやシングル6vs6が主流であり、Regulation Dのシングル3vs3の対戦は少ないものの、7/22時点でも既に1500程度の対戦ログが公開されています。余談ですが、一時期対戦データ集めのためにくろこさんのメンバーシップに登録し、生放送のアーカイブから対戦ログを書き起こすことをしていました。(あまりに非効率なため挫折しました)
実際のPokemon Showdown Replayの対戦ログの例は以下のような見た目です。
これを後述するニューラルネットワーク学習データのフォーマットにパースする必要があります。Showdown ReplayについてはWeb APIが公開されており、Pythonプログラムによって条件をつけて機械的に取得することが可能になっています。
AIにどのように学習させるか?
ニューラルネットワークで肝になるのがインプットとアウトプットです。機械学習はインプットとアウトプットの相関モデルをプログラムに考えてもらうものだと思っています。学習のためにはある程度合理的なインプットとアウトプットを人間で定義する必要があります。
将棋や囲碁と同じく、ポケモン対戦AIでのインプットを対戦の戦況、アウトプットを行動選択と定義しました。具体的には以下になります。
<インプット>
- 自分/相手の対戦ポケモンの図鑑番号
- 自分/相手の対戦ポケモンのタイプ
- 自分/相手の対戦ポケモンの残りHP
- 自分/相手の対戦ポケモンの種族値(ランク補正込み)
- 自分/相手の対戦ポケモンの状態異常
- 自分/相手のベンチポケモンの図鑑番号
- 自分/相手のベンチポケモンのタイプ
- 自分/相手のベンチポケモンの残りHP
- リフレクター/ひかりの壁の有無
- テラスタル権の有無
- 天候
- フィールド
- トリックルームの有無
<アウトプット>
- 対面のポケモンに効果抜群の攻撃
- 対面のポケモンに効果普通の攻撃
- 対面のポケモンに効果いまひとつ以下の攻撃
- 対面操作攻撃
- 先制攻撃
- 積み技
- 回復技
- 積み技、回復技以外の変化技
- ベンチポケモン1への交代
- ベンチポケモン2への交代
※1~8はテラスタルあり/なし
課題がいくつかあります。
インプットについて、対戦ログからはアイテムが不明となっています。自分のアイテムは行動選択に大いに影響する要素と思われますが、泣く泣く含めることができていません。
アウトプットについて、上述したとおりポケモン対戦の行動選択はテラスタル含めても10通りと意外とシンプルです。しかしながら、大量の対戦ログの中ではそれぞれポケモンの採用技も違えば技配置も違います。そのためアウトプットにはかなり苦慮しています。現状上記のような18通りとしていますが、今後も試行錯誤を続けます。
学習状況
ニューラルネットワークのハイパーパラメータ(中間層の数、要素数、バッチサイズ、ドロップアウト、エポック数等)はよしなに設定しています。
学習が進むにつれて、訓練データに対する正答率は上がっているものの、検証データ(未知のデータ)に対する正答率は上がっておらず、頭を悩ませているのがいまいまの状況です。
今後の課題
- インプット/アウトプットを見直す
- ハイパーパラメータのチューニング
AI Team Builder、それで勝って嬉しいか?
こんにちは、なおまると申します。
先日AIが構築を考えてくれるアプリ「AI Team Builder」のSV対応をリリースし、かなりの反響をいただきました。そんな中で賛否色々な反応があったので、私が個人的に思うところを書いていこうと思います。
AI Team Builderとは
AI Team Builderとは好きなポケモンを入力すると、それを含めた良い感じの構築をAIが提案してくれるというアプリです。
私自身こんなアプリあったら一生ポチポチするのになぁと思って開発しました。
実は剣盾の頃からありましたが、SV対応してからメディアに取り上げていただき、ありがたいことに利用者が大幅に増加しました。
まだ遊んだことがない方はぜひ一度遊んでみてください。
それで勝って嬉しいか?
アプリの存在がかなりのユーザへリーチしたこともあり、Twitte等で少し議論が起こりました。
「科学のちからってすげー!」
「それで勝って嬉しいか?」
「(批判的な意見に対して)強い構築でも100%勝てるわけではない」
「ポケモン対戦で一番楽しい構築を考えるという行為をAIに任せる意味がわからない」
「初心者がまともな構築で対戦回数をこなすためには良いのでは」
素直に称賛してくれる声、批判的な声、それに対して反論する声。アプリ開発者としては議論が起こること自体嬉しい限りでした。私の意見をほとんど代弁してくださっている方もいたりしましたが、改めて私がAI Team Builderについて思うことを書いておこうと思います。
思考を放棄するツールではない
AI Team Builderについて様々な意見を見たときに私が思ったのは、このアプリは思考を放棄するツールではないということ。これは世にあるAIと名を冠するものすべてに言えることだと思っています。
便利な技術が世に溢れるにつれて人間に求められる能力は、いかに技術をうまく利用できるかだと思っています。「AIが言っているから」と盲目になるのではなく、人間が結果を吟味する必要があるでしょう。時にはAIの答えから閃きを得ることもあると期待しています。AI Team Builderはそんなツールになれば良いなと個人的には思っています。
一方で私が感嘆してしまった意見がありました。「対戦初心者は自走するためにまともな構築で対戦回数をこなす必要がある。まともな構築で対戦をこなすことで学びがあり、自走できるようになる。AI Team Builderはその一助となりうる」といったものです。
この意見は私のぼんやりした考えを見事に言語化しているなと驚きました。私自身剣盾で対戦デビューした頃は自分で構築を考えたいが、正しい道を進んでいるかわからず、四苦八苦した記憶があります。対戦に興味があるけど難しそう、という方の背中を押すようなツールになることができれば、それより嬉しいことはありません。
今後の展望
幸か不幸かSVでは目まぐるしくルールが変わるため、そのたびにAIを学習し直させてリリースしていく予定です。
その他にも何か面白いことができないかと常に考えています。相手の6体を入力するとテラスタイプを予想するAIツールというのを考えていましたが、精度があまり上がらないのとポケモンHOMEが解禁されたことを受けて、「ポケモンHOMEでよくね」と頓挫してしまいました。
こんなことできたら面白そうというアイディアがあれば是非コメントしてもらえると嬉しいです。
最後まで読んでいただきありがとうございました。
ポケモン剣盾新ルール最強コンビを科学してみた
ポケモン剣盾シリーズ12では禁止伝説2体の使用が可能となります。
興味深いルールなので、禁止伝説2体の組み合わせをそれぞれ採点し、机上論最強の組み合わせを模索してみました。
◆採点方法
シリーズ12では禁止伝説同士の殴り合いが主になると考えられます。
禁止伝説26体の組み合わせ325通りそれぞれについて、敵の325通りのコンビに対してどれだけ強いかを基準に採点していきます。
肝となる採点アルゴリズムは以下になります。
(最大与ダメージ - 最大被ダメージ + 自HP実数値 - 敵HP実数値 + 自S実数値 - 敵S実数値)× 敵使用率に応じた定数
上記を自禁伝ポケモン2体×敵禁伝ポケモン2体で算出・合算し、それを敵の組み合わせ325通りに対してそれぞれ算出・平均したものを、そのコンビのスコアとします。
◆前提条件
採点に際しての前提条件を念のため記載しておきます。読み飛ばしていただいて構いません。
- 禁止伝説26体はミュウツー、ホウオウ、ルギア、カイオーガ、グラードン、レックウザ、ディアルガ、パルキア、ギラティナ(アナザーフォルム)、ギラティナ(オリジンフォルム)、ゼクロム、レシラム、ブラックキュレム、ホワイトキュレム、ゼルネアス、イベルタル、ジガルデ、ソルガレオ、ルナアーラ、日食ネクロズマ、月食ネクロズマ、ザシアン、ザマゼンタ、黒バドレックス、白バドレックス、ムゲンダイナとする。
- 努力値振りは0とする。
- 個体値はいずれも31とする。
- 性格補正はなしとする。
- ポケモンの技はシーズン25の技採用率上位4つの攻撃技とする。
- ダメージ計算の乱数は1とする。
- カイオーガ、グラードン対面の天候の上書きはないものとする。(面倒なので)
- 特性マルチスケイル、ファントムガードは被ダメージを3/4にするものとする。(2回攻撃して1.5回分と仮定)
- 「使用率に応じた定数」はシーズン25での使用率を参考に、最上位を1.0として0.05刻みで小さくなっていくものとする。なお、21~26位は一律0.05とする。
- ダイマックスは考慮しない。
◆結果
結果は以下のようになりました。
No | pokemon1 | pokeno2 | score |
1 | kyogre | zacian | 122 |
2 | zamazenta | zacian | 107 |
3 | zacian | dialga | 102 |
4 | b_budrex | zacian | 95 |
5 | zacian | lunala | 90 |
6 | zacian | mugendyna | 84 |
7 | reshiiam | zacian | 83 |
8 | zekrom | zacian | 76 |
9 | zygarde | zacian | 74 |
10 | zacian | g_necrozma | 71 |
11 | zacian | mewtwo | 70 |
12 | zacian | xerneas | 69 |
13 | zacian | w_kyurem | 67 |
14 | w_budrex | zacian | 67 |
15 | yveltal | zacian | 63 |
16 | kyogre | zamazenta | 62 |
17 | zacian | a_giratina | 62 |
18 | lugia | zacian | 61 |
19 | solgaleo | zacian | 60 |
20 | hooh | zacian | 59 |
21 | n_necrozma | zacian | 58 |
22 | kyogre | dialga | 58 |
23 | zacian | palkia | 57 |
24 | kyogre | b_budrex | 50 |
25 | lunala | kyogre | 46 |
26 | zacian | o_giratina | 45 |
27 | zacian | b_kyurem | 44 |
28 | zamazenta | dialga | 42 |
29 | mugendyna | kyogre | 39 |
30 | kyogre | reshiiam | 39 |
31 | b_budrex | zamazenta | 34 |
32 | zekrom | kyogre | 32 |
33 | lunala | zamazenta | 30 |
34 | b_budrex | dialga | 30 |
35 | zygarde | kyogre | 29 |
36 | kyogre | g_necrozma | 27 |
37 | zacian | groudon | 27 |
38 | lunala | dialga | 25 |
39 | kyogre | mewtwo | 25 |
40 | kyogre | xerneas | 25 |
41 | zamazenta | mugendyna | 23 |
42 | zamazenta | reshiiam | 23 |
43 | w_kyurem | kyogre | 22 |
44 | kyogre | w_budrex | 22 |
45 | kyogre | yveltal | 19 |
46 | dialga | mugendyna | 19 |
47 | dialga | reshiiam | 18 |
48 | lunala | b_budrex | 18 |
49 | kyogre | a_giratina | 18 |
50 | kyogre | lugia | 17 |
51 | zekrom | zamazenta | 16 |
52 | solgaleo | kyogre | 15 |
53 | hooh | kyogre | 14 |
54 | rayquaza | zacian | 14 |
55 | zamazenta | zygarde | 13 |
56 | kyogre | n_necrozma | 13 |
57 | palkia | kyogre | 13 |
58 | zamazenta | g_necrozma | 11 |
59 | b_budrex | mugendyna | 11 |
60 | dialga | zekrom | 11 |
61 | b_budrex | reshiiam | 11 |
62 | zamazenta | mewtwo | 9 |
63 | xerneas | zamazenta | 9 |
64 | dialga | zygarde | 9 |
65 | mugendyna | lunala | 7 |
66 | w_kyurem | zamazenta | 7 |
67 | zamazenta | w_budrex | 7 |
68 | reshiiam | lunala | 7 |
69 | g_necrozma | dialga | 6 |
70 | dialga | mewtwo | 5 |
71 | dialga | xerneas | 4 |
72 | b_budrex | zekrom | 4 |
73 | yveltal | zamazenta | 3 |
74 | a_giratina | zamazenta | 2 |
75 | w_kyurem | dialga | 2 |
76 | dialga | w_budrex | 2 |
77 | lugia | zamazenta | 1 |
78 | b_budrex | zygarde | 1 |
79 | kyogre | o_giratina | 1 |
80 | b_kyurem | kyogre | 0 |
81 | mugendyna | reshiiam | 0 |
82 | zamazenta | solgaleo | -1 |
83 | zekrom | lunala | -1 |
84 | g_necrozma | b_budrex | -1 |
85 | hooh | zamazenta | -1 |
86 | yveltal | dialga | -2 |
87 | n_necrozma | zamazenta | -2 |
88 | zamazenta | palkia | -3 |
89 | mewtwo | b_budrex | -3 |
90 | a_giratina | dialga | -3 |
91 | zygarde | lunala | -3 |
92 | xerneas | b_budrex | -3 |
93 | lugia | dialga | -4 |
94 | g_necrozma | lunala | -5 |
95 | solgaleo | dialga | -5 |
96 | w_kyurem | b_budrex | -6 |
97 | w_budrex | b_budrex | -6 |
98 | hooh | dialga | -6 |
99 | mewtwo | lunala | -7 |
100 | dialga | n_necrozma | -7 |
101 | mugendyna | zekrom | -7 |
102 | dialga | palkia | -8 |
103 | xerneas | lunala | -8 |
104 | zekrom | reshiiam | -8 |
105 | yveltal | b_budrex | -9 |
106 | lunala | w_kyurem | -10 |
107 | mugendyna | zygarde | -10 |
108 | lunala | w_budrex | -10 |
109 | zygarde | reshiiam | -10 |
110 | a_giratina | b_budrex | -10 |
111 | b_budrex | lugia | -11 |
112 | g_necrozma | mugendyna | -12 |
113 | g_necrozma | reshiiam | -13 |
114 | b_budrex | solgaleo | -13 |
115 | lunala | yveltal | -13 |
116 | b_budrex | hooh | -14 |
117 | mewtwo | mugendyna | -14 |
118 | mewtwo | reshiiam | -14 |
119 | mugendyna | xerneas | -14 |
120 | lunala | a_giratina | -15 |
121 | n_necrozma | b_budrex | -15 |
122 | o_giratina | zamazenta | -15 |
123 | reshiiam | xerneas | -15 |
124 | b_budrex | palkia | -15 |
125 | lugia | lunala | -15 |
126 | b_kyurem | zamazenta | -16 |
127 | mugendyna | w_kyurem | -17 |
128 | mugendyna | w_budrex | -17 |
129 | lunala | solgaleo | -17 |
130 | reshiiam | w_kyurem | -17 |
131 | w_budrex | reshiiam | -17 |
132 | zekrom | zygarde | -17 |
133 | lunala | hooh | -18 |
134 | kyogre | groudon | -18 |
135 | lunala | n_necrozma | -19 |
136 | lunala | palkia | -19 |
137 | dialga | o_giratina | -19 |
138 | g_necrozma | zekrom | -20 |
139 | mugendyna | yveltal | -20 |
140 | yveltal | reshiiam | -21 |
141 | b_kyurem | dialga | -21 |
142 | a_giratina | mugendyna | -21 |
143 | zekrom | mewtwo | -21 |
144 | a_giratina | reshiiam | -22 |
145 | xerneas | zekrom | -22 |
146 | g_necrozma | zygarde | -22 |
147 | lugia | mugendyna | -22 |
148 | reshiiam | lugia | -23 |
149 | mugendyna | solgaleo | -24 |
150 | zygarde | mewtwo | -24 |
151 | zekrom | w_kyurem | -24 |
152 | zekrom | w_budrex | -24 |
153 | solgaleo | reshiiam | -24 |
154 | zygarde | xerneas | -24 |
155 | hooh | mugendyna | -25 |
156 | reshiiam | hooh | -25 |
157 | n_necrozma | mugendyna | -25 |
158 | palkia | mugendyna | -26 |
159 | n_necrozma | reshiiam | -26 |
160 | g_necrozma | mewtwo | -26 |
161 | reshiiam | palkia | -27 |
162 | xerneas | g_necrozma | -27 |
163 | w_kyurem | zygarde | -27 |
164 | zygarde | w_budrex | -27 |
165 | o_giratina | b_budrex | -27 |
166 | yveltal | zekrom | -28 |
167 | b_kyurem | b_budrex | -28 |
168 | xerneas | mewtwo | -28 |
169 | g_necrozma | w_kyurem | -29 |
170 | g_necrozma | w_budrex | -29 |
171 | a_giratina | zekrom | -29 |
172 | zekrom | lugia | -30 |
173 | zygarde | yveltal | -30 |
174 | rayquaza | kyogre | -31 |
175 | mewtwo | w_kyurem | -31 |
176 | mewtwo | w_budrex | -31 |
177 | lunala | o_giratina | -31 |
178 | xerneas | w_kyurem | -31 |
179 | xerneas | w_budrex | -31 |
180 | solgaleo | zekrom | -31 |
181 | zygarde | a_giratina | -31 |
182 | lugia | zygarde | -32 |
183 | zekrom | hooh | -32 |
184 | lunala | b_kyurem | -32 |
185 | yveltal | g_necrozma | -32 |
186 | zekrom | n_necrozma | -33 |
187 | w_budrex | w_kyurem | -34 |
188 | zamazenta | groudon | -34 |
189 | palkia | zekrom | -34 |
190 | g_necrozma | a_giratina | -34 |
191 | solgaleo | zygarde | -34 |
192 | mewtwo | yveltal | -34 |
193 | g_necrozma | lugia | -34 |
194 | xerneas | yveltal | -35 |
195 | zygarde | hooh | -35 |
196 | a_giratina | mewtwo | -35 |
197 | n_necrozma | zygarde | -36 |
198 | a_giratina | xerneas | -36 |
199 | g_necrozma | solgaleo | -36 |
200 | zygarde | palkia | -36 |
201 | lugia | mewtwo | -36 |
202 | lugia | xerneas | -37 |
203 | g_necrozma | hooh | -37 |
204 | yveltal | w_kyurem | -37 |
205 | yveltal | w_budrex | -37 |
206 | n_necrozma | g_necrozma | -38 |
207 | solgaleo | mewtwo | -38 |
208 | mugendyna | o_giratina | -38 |
209 | w_kyurem | a_giratina | -38 |
210 | palkia | g_necrozma | -38 |
211 | w_budrex | a_giratina | -38 |
212 | groudon | dialga | -38 |
213 | solgaleo | xerneas | -38 |
214 | o_giratina | reshiiam | -38 |
215 | mewtwo | hooh | -39 |
216 | w_kyurem | lugia | -39 |
217 | lugia | w_budrex | -39 |
218 | mugendyna | b_kyurem | -39 |
219 | xerneas | hooh | -39 |
220 | n_necrozma | mewtwo | -40 |
221 | b_kyurem | reshiiam | -40 |
222 | palkia | mewtwo | -40 |
223 | xerneas | n_necrozma | -40 |
224 | xerneas | palkia | -41 |
225 | w_kyurem | solgaleo | -41 |
226 | solgaleo | w_budrex | -41 |
227 | hooh | w_kyurem | -41 |
228 | w_budrex | hooh | -42 |
229 | a_giratina | yveltal | -42 |
230 | n_necrozma | w_kyurem | -42 |
231 | n_necrozma | w_budrex | -42 |
232 | yveltal | lugia | -42 |
233 | w_kyurem | palkia | -43 |
234 | w_budrex | palkia | -43 |
235 | lugia | a_giratina | -44 |
236 | yveltal | solgaleo | -44 |
237 | hooh | yveltal | -45 |
238 | solgaleo | a_giratina | -45 |
239 | zekrom | o_giratina | -46 |
240 | n_necrozma | yveltal | -46 |
241 | groudon | b_budrex | -46 |
242 | lugia | solgaleo | -46 |
243 | a_giratina | hooh | -46 |
244 | rayquaza | zamazenta | -46 |
245 | yveltal | palkia | -46 |
246 | b_kyurem | zekrom | -47 |
247 | hooh | lugia | -47 |
248 | a_giratina | n_necrozma | -47 |
249 | a_giratina | palkia | -48 |
250 | lugia | n_necrozma | -48 |
251 | zygarde | o_giratina | -48 |
252 | lugia | palkia | -48 |
253 | solgaleo | hooh | -49 |
254 | zygarde | b_kyurem | -49 |
255 | solgaleo | n_necrozma | -49 |
256 | groudon | lunala | -50 |
257 | palkia | solgaleo | -50 |
258 | o_giratina | g_necrozma | -50 |
259 | n_necrozma | hooh | -50 |
260 | hooh | palkia | -51 |
261 | rayquaza | dialga | -51 |
262 | b_kyurem | g_necrozma | -51 |
263 | n_necrozma | palkia | -52 |
264 | o_giratina | mewtwo | -52 |
265 | o_giratina | xerneas | -53 |
266 | mewtwo | b_kyurem | -53 |
267 | b_kyurem | xerneas | -54 |
268 | o_giratina | w_kyurem | -55 |
269 | o_giratina | w_budrex | -55 |
270 | b_kyurem | w_kyurem | -56 |
271 | w_budrex | b_kyurem | -56 |
272 | mugendyna | groudon | -57 |
273 | groudon | reshiiam | -57 |
274 | yveltal | o_giratina | -58 |
275 | rayquaza | b_budrex | -59 |
276 | b_kyurem | yveltal | -59 |
277 | o_giratina | a_giratina | -60 |
278 | o_giratina | lugia | -60 |
279 | a_giratina | b_kyurem | -61 |
280 | b_kyurem | lugia | -61 |
281 | solgaleo | o_giratina | -62 |
282 | rayquaza | lunala | -63 |
283 | o_giratina | hooh | -63 |
284 | b_kyurem | solgaleo | -63 |
285 | o_giratina | n_necrozma | -64 |
286 | b_kyurem | hooh | -64 |
287 | palkia | o_giratina | -64 |
288 | zekrom | groudon | -64 |
289 | n_necrozma | b_kyurem | -65 |
290 | b_kyurem | palkia | -65 |
291 | groudon | zygarde | -67 |
292 | g_necrozma | groudon | -69 |
293 | mugendyna | rayquaza | -69 |
294 | rayquaza | reshiiam | -70 |
295 | groudon | mewtwo | -71 |
296 | xerneas | groudon | -71 |
297 | groudon | w_kyurem | -74 |
298 | groudon | w_budrex | -74 |
299 | zekrom | rayquaza | -77 |
300 | groudon | yveltal | -77 |
301 | b_kyurem | o_giratina | -77 |
302 | a_giratina | groudon | -78 |
303 | lugia | groudon | -79 |
304 | zygarde | rayquaza | -80 |
305 | solgaleo | groudon | -81 |
306 | hooh | groudon | -82 |
307 | g_necrozma | rayquaza | -82 |
308 | n_necrozma | groudon | -82 |
309 | palkia | groudon | -83 |
310 | mewtwo | rayquaza | -83 |
311 | rayquaza | xerneas | -84 |
312 | w_kyurem | rayquaza | -86 |
313 | rayquaza | w_budrex | -86 |
314 | rayquaza | yveltal | -90 |
315 | a_giratina | rayquaza | -91 |
316 | rayquaza | lugia | -92 |
317 | solgaleo | rayquaza | -93 |
318 | hooh | rayquaza | -94 |
319 | groudon | o_giratina | -95 |
320 | rayquaza | n_necrozma | -95 |
321 | palkia | rayquaza | -96 |
322 | groudon | b_kyurem | -96 |
323 | o_giratina | rayquaza | -108 |
324 | rayquaza | b_kyurem | -109 |
325 | groudon | rayquaza | -126 |
◆感想と備考
注目のオーガザシアンやザシアンディアルガが上位にいるので、設定したアルゴリズムはそれなりに妥当性があるのかなと思います。(ザマゼンタ)
ザシアン単体のスコアが高すぎて上位はザシアンで埋め尽くされています、実際の環境がどうなるか楽しみですね。
ダイマックスの要素をアルゴリズムに組み込めたらさらに面白い結果になりそうな予感、もう少し模索してみます。
最後にオーガザシアンやザシアンディアルガを試してみた動画をYouTubeにアップしているのでよければそちらもご覧ください。
ここまで読んでいただきありがとうございました。
【ポケモン剣盾S16】ペンドラーネクロ【最終2001-212位】
こんにちは、なおまると申します。
剣盾から対戦を始めたのですが、今回はじめて最終レート2000を達成できたので記念も兼ねて構築記事を書かせていただきます。
◆構築経緯
1.
かそくバシャーモ+アッキクレセリアのような相手を詰ませる構築が好きで、伝説ポケモンでも同じようなことができないかと思い、特殊日食ネクロズマを軸に構築を組み始めた。
かそくバトン要員は、バシャーモでは1かそくでザシアン達を抜けないためペンドラーを採用した。
2.
@1の基本選出枠として、対面性能の高い襷悪ウーラオスを採用した。
3.
バトン構築に対してカバルドンのふきとばしがキツすぎるので、ピンポイントメタでゴチルゼルを採用。
4.
このままだとカイオーガがかなりキツいので、ピンポイントメタで貯水ガマゲロゲを採用。
5.
最後の枠はシーズン終盤まで試行錯誤を続けたが、黒バドレックスにほとんど勝てなかったのでタチフサグマを採用して構築が完成した。
◆コンセプト
・かそくバトンを決めて日食ネクロズマで瞑想を詰み、3タテする。
・日食ネクロズマがどうしても勝てない相手にはメタポケモンで対応する。
◆個体紹介
日食ネクロズマ@弱点保険
性格:図太い
特性:プリズムアーマー
努力値:204(252)-x-196(252)-133(0)-130(4)-97(0)
技:ラスターカノン、アシストパワー、瞑想、朝の陽ざし
調整
・物理耐久ぶっぱ。
禁伝枠。この構築のすべてであり、選出率は100%。日食ネクロズマは竜舞型もかなり強いため、特殊型が警戒されないことがアドバンテージとなることが多かった。カウンターや物理受けによる対応などしてきた場合はイージーウィンを拾えた。
物理耐久にぶっぱすることで陽気悪ウーラオスの暗黒強打を半分程度で耐えることができ、襷だとしてもダイマックスして処理することが可能。ほとんどすべてのポケモンを起点にして瞑想を詰むことができ、何よりかそくバトンすることで上から朝の陽ざしを打てることが強かった。
技構成は鋼技をメテオドライブにしていたが、ウーラオスのカウンターが煩わしく、試合を落としてしまうことが多々あったため完全特殊のラスターカノンに変更。デメリットとしてミミッキュを一撃で処理できない、かいでんぱサンダーを突破できない、カイオーガへの打点が弱いなどあったが、トータルで見ると勝率は上がった。
環境トップに君臨するザシアンにひたすら強く、ザシアン軸にはほぼ負けないため、かなり高い勝率を維持することができた。
ペンドラー@ズアのみ
性格:臆病
特性:かそく
努力値:167(252)-x-121(92)-75(0)-89(0)-168(164)
技:鉄壁、まもる、みがわり、バトンタッチ
調整
・最速100族抜き。
かそくバトン要員。攻撃技がないためかそくバトンで使い切ることを意識した。基本的にはまもる・みがわりでMAXまで加速してから日食ネクロズマに繋ぐ。ズアのみを食べることでサンダーのダイバーン、ムゲンダイナやヒードラン等のかえんほうしゃをネクロズマで受けることが可能になっている。
初手まもるをすることでほぼすべてのポケモンに対して上から行動できるようになるが、相手がダイジェッターの場合はみがわりから入ってダイマックスターンを枯らす動きを取った。また、ダブルウィングやロックブラストに対しては初手鉄壁を打って無理やり攻撃を耐えてからバトンをした。
挑発で機能停止するため挑発持ちには慎重に立ち回ったが、総じてそこまで初手に挑発されることがなかったので今回はメンタルハーブの採用は見送った。
悪ウーラオス@気合の襷
性格:陽気
特性:不可視の拳
努力値:176(4)-182(252)-120(0)-x-80(0)-163(252)
技:暗黒強打、インファイト、不意打ち、カウンター
調整
・ASぶっぱ。
ネクロズマで処理しきれなかった際のスイーパーとして採用。基本的には最後に投げたが、相手にオーロンゲがいる場合はペンドラーへの挑発を嫌って初手に投げ、インファイトとカウンターで強引に処理する動きをとった。
襷を持たせたら対面では一番強いポケモンなのではないかと思う。
ゴチルゼル@風船
性格:図太い
特性:影踏み
努力値:117(252)-x-161(252)-115(0)-131(4)-85(0)
技:コスモパワー、癒しの波動、催眠術、挑発
調整
・物理耐久ぶっぱ。
カバルドンのピンポイントメタ。ペンドラーとカバルドンが対面したときに100%ステルスロックを撒かれるのでそれに合わせてゴチルゼルを投げて試合を終了させた。
カバルドンは基本的には攻撃技地震しかないので、挑発で相手を無力化する。地震のPPを枯らして悪あがきで自主退場しようとしてきたところに癒しの波動で相手のカバルドンを回復させてあげる(優しい)。試合終了間際に悪あがき自傷でカバルドンを倒すことでTODが完了する。コスモパワー6積みすれば悪あがきのダメージもミリにはなるが、念のため遅延できるように催眠術も採用している。
シーズン終盤ではカバルドンはそこまで多くなく出番もあまりなかったが、出番があるときは必ず仕事をして勝利に貢献した。
余談だが、はじめは風船→食べ残し&癒しの波動→アシストパワーにしていたが、風船&癒しの波動のほうがTODが確実になるため、途中で変更した。結果として、完全にカバルドン専用ポケモンとなった。技構成や持ち物次第でもう少し役割対象を広げられるかもしれない。
ガマゲロゲ@オボンのみ
性格:慎重
特性:貯水
努力値:212(252)-115(0)-96(4)-x-139(252)-94(0)
調整
・特殊耐久ぶっぱ。
カイオーガ受けとして採用。水技を無傷で受けてどくどくを入れたりステルスロックを撒くことが主な仕事。
すいすいアタッカー型が環境にかなりいるため見せあいの段階では貯水をそこまで警戒されない印象を受けた。カイオーガのダイストリームに合わせて出すことができればかなり有利をとることができる。
また、ネクロズマがヌケニンを突破できないのでヌケニンがいる場合は初手に投げてステルスロックを撒くこともあった。(厚底ブーツの場合は降参)
タチフサグマ@火炎玉
性格:意地っ張り
特性:根性
努力値:169(4)-156(252)-121(0)-x-133(252)-115(0)
技:叩き落とす、から元気、インファイト、ビルドアップ
調整
・ADぶっぱ。
最後の枠はシーズン終盤まで定まらなかったが、黒バドレックスにほとんど勝てなかったので、圧倒的タイプ相性を誇るタチフサグマに落ち着いた。副産物として特殊イベルタルにも少し強くなった。
黒バドレックスのゴースト技・エスパー技に後出しして、叩き落とすやビルドアップで相手の後続に負荷をかけた。
◆選出
基本選出→
・ペンドラーネクロで3タテ、こぼしたらウーラオスでスイープ。
カイオーガ軸→
・カイオーガの水技にガマゲロゲを後出ししてどくどくを入れる。
イベルタル、黒バドレックス軸→
・悪技やゴースト技にあわせてタチフサグマにバトンして、叩き落とすやビルドアップでアドバンテージをとる。
・物理イベルタルはペンドラーで鉄壁積んで、ネクロズマにバトンで処理可能。
カバルドン入り→
◆キツい相手
水ウーラオス
・水流連打によりペンドラーがみがわりできず、十分にかそくを積めない。
・見せあいで悪か水かわからんの強すぎ。
黒霧持ち
・諦め気味。ドヒドイデはダイサイコで無理やり突破可能。
・初手キョダイゴクエンされるとスリップダメージによりみがわり連打で受からない。
・ダイマ明けのブラストバーンでズアのみを食べてもネクロズマがワンパンされてしまう。
・最後の枠をバンギラスにすれば対応できるかもしれない・・・
・弱点保険発動後イカサマが受からない。
・ペンドラーで鉄壁を積めていればなんとかなる。
◆結果
TNサブロム(サブロムです)
最終レート2001
最終順位212位
◆感想
バトン構築自体が現環境に少なく、警戒されていないことが追い風になっていたと感じます。バトン構築は基本的に決まった動きをとることになるので、私のような対戦初心者でも扱いやすく良い結果を残すことができました。S17で竜王戦ルール最後となるので、残りも精一杯楽しみたいと思います。
ここまで読んでいただきありがとうございました。何かあればTwitter@naomaru0526までお願いします。また、構築の動かし方についてyoutubeで解説していますのでそちらもぜひご覧ください。