機械学習周りのプログラミング中心。
イベント情報
将棋AI/ポケモンバトルAI本電子書籍通販中

メタル化・テラスタル装甲2(ラスターカノン1on1)に参加した(フリージオ/AI活用)【ポケモンバトル仲間大会】

2026年1月26日、ごりちゅう(X: srtbprofessor83)さん主催の「メタル化・テラスタル装甲2」に参加しました。「ラスターカノン」のみを覚えたポケモン1体でポケモンSVのオンライン対戦を行います。

イベントの情報はこちら。

私のパーティ

フリージオを採用しました。フリージオ、特性ふゆう、持ち物こだわりメガネ、鋼テラスタル努力値H252C152D100S4、性格ひかえめです。

結果

8勝8敗でした。フリージオ戦が10回、ほかサザンドラ・テツノコウベ・クワガノンでした。全員、初手鋼テラスタルでした。

素早さで負けているケースがほとんどで、確定数が同じようだが先制されて負けるというケースが多くありました。また、特防ダウンを早めに引かれて負けというケースもあり、相対的に不運でした。Sを4だけ振ることで無振り相手には勝てるという想定でしたが、もう少し多めに振られていた方が多いということだと考えられます。

環境考察

「ウェザーボール1on1」の時に開発した、対戦中の選択肢を含んだシミュレーション機構を発展させました。

select766.hatenablog.com

ルール

ルールは以下の通りです。

  • ポケットモンスター スカーレット・バイオレットで対戦します。
  • オンライン対戦の「シングルバトル ノーマルルール」を採用します。すなわち、レベル1~100のポケモンが参加可能ですが、バトル中のポケモンのレベルは50に統一されます。
  • パーティにはポケモンを1体のみ登録できます。
  • ポケモンには、技「ラスターカノン」のみを覚えさせます。「ラスターカノン」を覚えられないポケモンは参加できません。
    • 使用可能ポケモンは、主催者によりリストで与えられています。
  • ラスタルが許可されています。
  • 特性・持ち物は自由に選択できます。

使用可能ポケモンリストは、以下のポケモンと、その進化前です。 カメックスアローラサンドパンアローラダグトリオエアームドキングドラバクーダブーピッグドサイドンランクルスシビルドンフリージオゴルーグサザンドラブロスター・メレシー・ドデカバシクワガノンシロデスナジャラランガ・キョジオーン・グレンアルマ・リククラゲ・クエスパトラ・ミミズズ・キラフロル・イダイナキバ・スナノケガワ・テツノコウベ・クレベース

技術的変更点

対戦中の行動の選択肢として、「初手テラスタル」「テラスタルしない」の2択を設定しました。 作戦を練るコーディングエージェントとしてClaude Codeを用いました。従来はCodex + GPT系列のモデルでした。今回のモデルは、レートリミットの都合上モデルを使い分け、初期考察にClaude Sonnet 4.5、ループに組み込んでパーティ候補を出すフェーズにClaude Haiku 4.5を用いました。 HP・特防の努力値配分ですが、LLMに任せたままだと種族値を気にせずHP252に振るだけという挙動になりやすいです。そのため、HPと特防の努力値合計とポケモンの種族を与えると、特殊耐久が最大になる配分を計算するAgent Skillsを作成し、パーティの候補を提出する前に必ず使用させるようにしました。

最適化結果

56パーティが試され、結果として以下の2つのパーティが等しく最適(勝率50%ずつを分け合う)という結果が出ました。

フリージオ、特性ふゆう、持ち物こだわりメガネ、鋼テラスタル、努力値H252C150D100S8​、性格ひかえめ
フリージオ、特性ふゆう、持ち物とつげきチョッキ、鋼テラスタル、努力値H252C96D96S60、性格おだやか

努力値について、特攻(攻撃系パラメータ)を中途半端な値で出力してきたのは、今までの考察システム開発で初めてです。今まで使用していたGPTと、今回使用したClaudeの差異かもしれません。シミュレーション上良い結果ですが、正確な数値に根拠はない可能性が高いです。特攻種族値最大のクワガノンでこれらを上回れないかなど、手動で少し追加考察をしましたが、上回る方法を見つけられませんでした。 テラスタルの有無は両方シミュレーション中に試すという仕組みになっていますが、使用可能ポケモンに鋼技を1/4倍で受けられるタイプは存在せず、鋼テラスタルをしないという選択肢は存在しないものと思われます。

最終的に採用したのはこだわりメガネ型です。ターン数が少なくて済むので、ラスターカノンの追加効果や回復系アイテムで妙なことが起こりづらいと期待できるためです。ただし、努力値は4n+8になるたびに実数値が上がる仕組みなので、素早さ8などは不自然です。そのため、手動で調整して、最終的に冒頭に書いた通り、「フリージオ、特性ふゆう、持ち物こだわりメガネ、鋼テラスタル努力値H252C152D100S4、性格ひかえめ」となりました。

おわりに

主催のごりちゅうさん、対戦してくださった方ありがとうございました。乱数での特防ダウンが効くので、(A連打するだけではあるのですが)最後まで気の抜けない戦いになるのが面白かったです。 技術面では、今までで参加した中で最もシンプルな殴り合いのルールとなり、LLMを用いたヒューリスティックよりも数値レベルの最適化問題としてとらえたほうが良かったように思われます。現状の枠組みにとらわれず、様々なアイデアの検証を進めていこうと考えています。

1on1考察の「教科書」の自動生成 part01 ローカルLLM+Codex導入【ポケモンバトルAI】

昨年末はコミックマーケットで弊サークル「ヤマブキ計算所」にたくさんの方のご来場を頂き、ありがとうございました。今年もゲームAIに関する活動を進めていきます。

昨年に引き続き、ポケモンの1on1考察システムの研究を進めていきます。昨年、ルールを文章で与えることで、LLMを利用したコーディングエージェントがそのルールを考察し、最適なパーティを提案するシステムが一通り完成し、その成果を同人誌として出版しました。

しかし、その後の大会に参加する中で、いくつかの問題点が見えてきました。今回は、それらの問題点と、解決に向けた新たな取り組みについてお話しします。

昨年のシステムの限界と新たな問題点

現在のシステムを運用していて感じた主な問題点は、LLMの考察の視野が狭いことです。人間であれば容易に思いつくような作戦でも、LLMが自発的にそれを試そうとしないケースが散見されました。

例えば、ある特性が有効だと分かった場合に、同じ特性を持つ進化後ポケモンの方がより強力かもしれない、といった思考にまで至りません。また、LLMが出力するナッシュ均衡の利得行列は、10x10のような大きな表で示されることもあり、人間が直感的に強弱関係を理解するのが難しいという課題もありました。考察の結論だけを提示されても、なぜその結論に至ったのかという思考の過程がなければ、人間が読んで楽しめるコンテンツにはなり得ないと感じています。

今後の目標:「教科書」の作成と解釈性の向上

これらの問題点を踏まえ、今後の目標を2つ設定しました。

一つは、様々な1on1に共通する考察のパターンや作戦を「教科書」として文書化し、新しいルールが与えられた際にLLMがその知識を活用できるようにすることです。これにより、より多角的で強固な考察が可能になると考えています。

もう一つは、LLMによる考察結果の解釈性を高めることです。「この作戦はなぜ有効なのか」「なぜこの作戦は採用されなかったのか」といった思考の過程を文章で示せるようにすることで、人間が読んでも楽しめるような、より深みのあるコンテンツを目指します。

ローカルLLMの導入

新たな目標に向けた第一歩として、ローカル環境でLLMを動作させることにしました。これまでは、Codexというコーディングエージェントからクラウド上のLLM(GPT-5シリーズ)を利用していましたが、月額20ドルのサブスクリプションでは利用量制限に抵触しやすく、24時間気兼ねなくシステムを稼働させることが困難でした。また、モデルのバージョンアップによる再現性の問題も懸念点でした。

そこで、自前のマシンにOllamaというランタイムを導入し、ローカルで動作するgpt-oss-120bのようなモデルを動かす環境を構築しました。これにより、コストや利用量を気にすることなく、安定した環境で開発を進めることができるようになります。

ローカルLLMによる「おきみやげ1on1」の再考察

早速、このローカル環境で、以前考察した「おきみやげ1on1」の分析を再度試みました。おきみやげは使用したポケモンが自滅する技で、このルールでの基本的な作戦は、持ち物の「とつげきチョッキ」で変化技であるおきみやげを封じ、自動的に繰り出される「わるあがき」で戦うというものです。

また、ウェブ検索用MCPも導入したのですが、結果的にLLMがウェブ検索MCPを活用してくれなかったため、gpt-oss-120b自身の知識のみでの考察となりました。

結果として、パーティー候補の生成からシミュレーターによる評価まで、システム自体はエラーなく動作しました。しかし、その考察能力は期待を大きく下回るものでした。約40個のパーティー候補が提案されたものの、最終的に最も有効とされたのは、ただ「ヤドン」を使うというだけの単純なものでした。

おきみやげを使い合えば、後攻のプレイヤーが相手の自滅によって勝利するため、素早さの低いヤドンが有利である、という点までは推論できたようです。しかし、そこから一歩進んだ「とつげきチョッキ」の活用や、「こうこうのしっぽ」を持たせたり、素早さの個体値を0にしたりといった、より高度な作戦には至りませんでした。これは、OpenAIのクラウドモデルと比較して、著しく低い性能です。

今後の課題と展望

今回の結果から、LLMが有効なアイデアを自発的に思いつけないという課題が改めて浮き彫りになりました。gpt-oss-120bが持つ知識だけでは、ポケモン対戦における多様な戦略を網羅できていないようです。

そこで、次なるステップとして、まずは人間が作成した「アイデア集」のようなテキストをLLMに与え、その知識を正しく理解し、考察に活用できるかを検証していきたいと考えています。外部から与えられた知識をLLMがどのように扱うかを理解することが、将来的により自律的な考察システムを構築するための重要な鍵となると考えています。

理想は、LLM自身がこのようなアイデアを自動で発見できるようになることですが、その実現に向け、まずは一歩ずつ着実に検証を進めていきます。

次回は、LLMにテキストでアイデアを与えてみる実験の結果についてご報告します。

EVO-X2でgpt-oss-120bを動作させる(2026年1月版)

GMKtecのEVO-X2 (128GB RAMオプション)という計算機を購入し、gpt-oss-120bを動作させました。数時間悩んだため、設定や動作するバージョンのメモです。※この記事はメーカー等からの提供ではなく、自費で購入し、アフィリエイトリンクも使用せずに執筆しています。

2025-12-16に注文、2025-12-29に到着しました。325,490円でした。

UEFI設定

GPUが使うRAMを96GBに設定します。

電源投入直後にEscキーを連打してUEFI設定画面に入ります。Advanced->GFX Configurationを選択します。iGPU ConfigurationをUMA_SPEFICIED、UMA Frame bufer Sizeを96GBに変更します。

UEFI設定画面1

UEFI設定画面2

OS・ドライバ

OSをWindows 11 25H2にアップデートしました。(効果があるかはわかりません)

AMD Softwareの最新版をダウンロードしてインストールします。

https://www.amd.com/ja/support/download/drivers.html

AMD Softwareの中のAMD Install Managerを探し、Chipset Driversを最新に更新します。(※これが重要でした)

AMD Install Manager

llama.cppの導入

llama.cppのリポジトリから、記事執筆時点で最新のb7681の"Windows x64 (Vulkan)"版をダウンロードします。

https://github.com/ggml-org/llama.cpp/releases/tag/b7681

LLMを実行

llama.cppを解凍したディレクトリで、コマンドプロンプトでサーバを起動します。 -c はコンテキストウィンドウのサイズです。(注意: 60GBのモデルダウンロードが実行されます)

llama-server -hf ggml-org/gpt-oss-120b-GGUF -c 65536 --jinja --n-gpu-layers 99

Webブラウザlocalhost:8080 にアクセスすると、簡易的なChatGPT風インターフェースが現れます。

テストとして、Wikipediaの「東京都」の一部、12867文字をコピペし、質問しました。

LLMのインターフェース

コマンドプロンプト側の表示は以下の通り。プロンプトが長いとそれなりに時間はかかりますが、生成速度はそんなに悪くありません。

prompt eval time =   20470.08 ms / 10925 tokens (    1.87 ms per token,   533.71 tokens per second)
       eval time =   12651.10 ms /   515 tokens (   24.57 ms per token,    40.71 tokens per second)
      total time =   33121.18 ms / 11440 tokens

LLM動作中のタスクマネージャ画面

さらに、 -c 1301072 でも動作することを確認しました。

ハマった点

購入時点でのドライバではタスクマネージャ上の「専用GPUメモリ」が32GBまでしか使用できておらず、Out of Memoryエラーでまともに動きませんでした。また、新しめのllama.cppは起動時にクラッシュしたため、古いバージョンを試すという試行錯誤が発生していました。ドライバのアップデートによりこれらの問題が解消しました。

今後

ゲームAIに関するAIエージェントをローカルLLMで動作させることを目指しています。 Codex CLIをそのまま使うとシステムプロンプトだけで40kトークン程度あるため、工夫が必要そうです。

ウェザーボール1on1に参加した(ユキノオー/AI活用失敗)【ポケモンバトル仲間大会】

2026年1月3日、めた(X: GuoHuai)さん主催の「ウェザーボール1on1」に参加しました。名前の通り、「ウェザーボール」のみを覚えたポケモン1体でポケモンSVのオンライン対戦を行います。

イベントの情報はこちら。

私のパーティ

ユキノオーを採用しました。ユキノオー、特性ゆきふらし、持ち物こだわりメガネ、氷テラスタル努力値H252C252D4、特性れいせい、最遅です。

結果

14勝6敗でした。

ゴーストテラスタルする特性ノーてんきのチルタリスにのみ敗れました。途中14勝2敗でレート1662だったため、ここで止めておくのが結果的には正解でした。

チルタリスに6回、スイクンに9回、その他が5回でした。自発的に天候を変える相手とは当たりませんでした。チルタリス以外の相手がテラスタルする場面は見られなかったため、何を対策しているかははっきりわかりませんでした。

環境考察(失敗)

今回は環境考察がうまくいきませんでしたが、技術的には新しいことに着手したので軽く紹介しておきます。 年末年始の別の活動で準備期間が取れず、当日の午後になって実装を始めました。

ルール

ルールは以下の通りです。

  • ポケットモンスター スカーレット・バイオレットで対戦します。
  • オンライン対戦の「シングルバトル ノーマルルール」を採用します。すなわち、レベル1~100のポケモンが参加可能ですが、バトル中のポケモンのレベルは50に統一されます。
  • パーティにはポケモンを1体のみ登録できます。
  • ポケモンには、技「ウェザーボール」のみを覚えさせます。「ウェザーボール」を覚えられないポケモンは参加できません。ドーブルの参加は可能です。
  • ラスタルが許可されています。
  • 禁止級伝説・幻のポケモンは禁止です。
  • 特性・持ち物は自由に選択できます。
  • PPの増加(ポイントアップ)は禁止です。

技術的変更点

スタート地点はおきみやげ1on1の際に開発したシミュレーションシステムです。

select766.hatenablog.com

重要な変更点は、テラスタルへの対応です。今まで参加してきたルールでは、テラスタルは禁止されているか有用ではないという前提が置けましたが、今回はおけません。 そのため、パーティの候補を生成する際にテラスタルタイプも出力させることと、バトルのシミュレーションの際にテラスタルの有無を考慮することを実装しました。 バトルのシミュレーションでは、従来はパーティ2つを与えて、「Aボタン連打」で勝敗を決定していました。このようなバトルを100回行って勝率を得ます。今回はバトル中の行動ルールを3種類設けました。「テラスタルしない」「最初のターンでテラスタルする」「天候が無しの場合にテラスタルする」の3つです。パーティそれぞれが行動ルールを独立に選択し、3×3=9種類の組み合わせで勝率を計算した利得行列を作成します。利得行列をもとに、それぞれのパーティにとって最善の行動ルールを選択し(実際は純粋戦略ではなく、混合戦略ナッシュ均衡)、その行動ルールの下での勝率をパーティ間の勝率として使用しました。

暫定出力

計算時間が足りず、パーティ17個が評価された時点で大会に参加させるパーティを選択することとなりました。

パーティ17個時点での利得行列(混合戦略ナッシュ均衡における選択確率が正のパーティ)

プログラム実装前、スマホでウェザーボールを覚えるポケモンリストを見ていた際、ウネルミナモにゴーストテラスタルさせるとほとんどの攻撃を半減以下にでき、これを撃破する手段としてユキノオーがあると考えていました。これより遅い天候変化特性を持つポケモンコータスだけなので、比較的安定して戦えると想定し、ユキノオーを採用しました。

すなあらし状態にする特性のポケモンは参加できないことを確認していたものの、 「ノーてんき」を持つポケモンは参加可能なポケモンの中にいないと誤認していました。 私が人力で確認漏れをしていただけでなく、この時点のAIの候補にも存在せず、完全な見落としとなりました。

しばらく進んだ出力

大会進行中に続いていた計算の結果には、ノーてんきチルタリスが登場していました。ただ、鋼テラスタルとなっておりゴーストテラスタルと比べて不完全です。AIの考察にはかなりの穴が残る状況でした。デバッグログには、LLMがダメージ計算式等をPythonコードに書き出して実験している様子が見られます。これを毎回出力させるのは非効率な可能性があり、Skills等の枠組みで汎用的な考察ツールを提供することでLLMの能力をより引き出せる可能性があると考えています。

パーティ39個時点での利得行列(混合戦略ナッシュ均衡における選択確率が正のパーティ)

おわりに

主催のめたさん、対戦してくださった方ありがとうございました。今まで取り組んできた「実質わるあがきのみ」1on1から、テラスタルが関与する攻撃技のあるウェザーボール1on1への拡張を試みました。テラスタイプを考慮したシミュレーションは動作したものの、複雑化した環境に対するLLMを用いた戦略候補の生成については、不十分な点が多いことが分かりました。

かなしばり1on1に参加した(ゴツメヤミラミ/AI活用シミュレーション)【ポケモンバトル仲間大会】

2025年12月20日、テツポンドさん主催の「かなしばり1on1」に参加しました。名前の通り、「かなしばり」のみを覚えたポケモン1体でポケモンSVのオンライン対戦を行います。

イベントの情報はこちら。

tetspond.hatenablog.com

2025-12-29: 動画化しました!

www.youtube.com

私のパーティ

私はヤミラミで参加しました。詳しくは、ヤミラミ、特性あとだし、持ち物ゴツゴツメット個体値H31,A31,B31,S0、努力値H252,B252,A4、性格のんき(B↑S↓)です。ニックネームは「ダバイト」でした。ゴツゴツメット+鉱石ということで、「ゴツゴツした鉱石」で検索したらヒットした「モルダバイト」のポケモンぽい部分を抽出しました。

環境考察

環境考察には、「おきみやげ1on1」の際に開発した、コーディングエージェントを用いたAI考察システムを活用しましたが、問題が難しく、さらに人力で様々な考察を加えました。

select766.hatenablog.com

ルール

ルールは以下の通りです。

  • ポケットモンスター スカーレット・バイオレットで対戦します。
  • オンライン対戦の「シングルバトル ノーマルルール」を採用します。すなわち、レベル1~100のポケモンが参加可能ですが、バトル中のポケモンのレベルは50に統一されます。
  • パーティにはポケモンを1体のみ登録できます。
  • ポケモンには、技「かなしばり」のみを覚えさせます。「かなしばり」を覚えられないポケモンは参加できません。ドーブルの参加は可能です。
  • ラスタルは禁止です。
  • 幻のポケモンを含め、すべての種族のポケモンが登録可能です。
  • 特性・持ち物は自由に選択できます。

主要メカニズム

持ち物や特性で工夫しない場合、かなしばり1on1で起こることは以下のとおりです。

ターン 先攻 後攻
1 かなしばり(失敗) かなしばり(成功)
2 わるあがき かなしばり(失敗)
3 わるあがき かなしばり(失敗)
4 わるあがき かなしばり(失敗)
5 わるあがき かなしばり(失敗)
(ここでかなしばり解除)
6 かなしばり(成功) 技が出せず行動終了
7 かなしばり(失敗) わるあがき

先攻がわるあがき4回のダメージで後攻を倒して勝利するか、4回分の反動ののち(残りHP=1)後攻のわるあがきのダメージで倒されて敗北するかという結果になります。

かなしばり1on1はAIにとって難しいのか、筆者の経験で思いつくアイデアを複数見落としていました。例えば以下のようなアイデアです。これらのアイデアは手動でシミュレーションに追加し、人間+AIのタッグで考察を進めました。

  • HPは4n+1にすることで、4回の反動で倒れないようにできるが、実数値を考慮せずHP努力値を252振る以外の選択肢が考慮されていない
    • 過去に考察したルールは、お互いにわるあがきを打ち合う状況だったためこの調整は不要でした
  • AIがボクレー+しゅうかくを思いついているのに、戦略が同じで種族値がより高いオーロット+しゅうかくを試すことすらしていない(強制的に含めるとオーロットの方が良いケースがほとんどだった)
  • 攻撃種族値最大のテツノブジン(+こだわりハチマキ)が試されてすらいない

主要な戦略

得られたトップメタパーティを図に示します。

混合戦略ナッシュ均衡にて正の確率が付与されたパーティ間の利得表。基本的にはHPは4n+1になる範囲で最大値、Bは最大値。ミュウツーはABに最大値を振る。

主な戦略としては、以下のものが考えられます。

  • オーロットでしゅうかくにより何度もオボンのみを使用することで無限に回復する
    • 図にはないが、ベトベトン等でくろいヘドロを使用する戦略もあり
  • ミラクルスキンでかなしばりを50%の確率で回避、またはメンタルハーブで初回のかなしばりを実質無効化し、相手が反動で倒れるのを待つ
  • あとだし(または、ヤドンなど遅いポケモン)で相手にわるあがきさせ、ゴツゴツメットで反動を増やすことで回復を間に合わなくさせる
    • メンタルハーブを使われた場合、自分が3回わるあがきをすることになる。その後相手がわるあがきするのを2回耐えられれば、相手が(自分のわるあがきダメージの累積と)反動ダメージで倒れる。
  • (攻撃力の高いポケモンで積極的にわるあがきを使う作戦も考えられます。しかし、AIの考える「最適解」には生き残りませんでした。)

最終パーティ選定

最終的なパーティを1つに絞るために、以下の事情を考慮しました。

  • 「しゅうかく」はギミックとして面白いので、採用者が比較的いると想定
    • これに完敗しない戦略を選びたい
  • ミュウツーは強いが、特に最遅の個体を準備することに手間がかかるため、採用率が低いと想定
    • これに負けてもいい
  • ミラクルスキン相手は運ゲーなので、あまり気にしない

その結果として、ゴツゴツメットヤミラミの採用が決定しました。

戦績

19勝6敗でした。最終順位は1位(レート1659.867)です!

戦績画面(ポケットモンスター バイオレットより)

相手ポケモンごとの勝敗を示します。

ポケモン 対戦回数 勝ち数 勝率 (%)
アローラベトベトン 7 7 100%
オーロット 3 3 100%
ガラルヤドラン 3 0 0%
ハギギシリ 2 1 50%
ベトベトン 2 2 100%
ヤミラミ 2 1 50%
アローラベトベター 1 1 100%
サマヨール 1 1 100%
ハカドッグ 1 1 100%
ミュウツー 1 0 0%
モルフォン 1 1 100%
ヤドン 1 1 100%

ベトベター系統が多く、くろいヘドロでの回復がメイン戦略でした。オーロットが多いという予想での戦略が副次的にヒットし、高い勝率を上げることができました。ハギギシリモルフォンに対してはミラクルスキン発動運に比較的恵まれ、2勝1敗と勝ち越せました。ガラルヤドランについては同じプレイヤーと3度対戦し、3度とも負けでした。毎回わるあがきでの相打ちという終わり方でしたが、毎回ギリギリで倒されました。こちらはヤミラミに実現可能な最大の耐久値を持っているため、これを倒すために攻撃のパラメータを絶妙に調整されていたのかもしれません。

おわりに

主催のテツポンドさん、対戦してくださった方ありがとうございました。環境を読み切れたわけではないですが、採用したゴツゴツメットヤミラミが活躍しやすく、優勝できました。対戦当日のマッチ運にもかなり左右される事象ですので断言できることではないですが、「いやしのはどう1on1」から半年にわたりAIを用いた考察について研究し続けた結果が発揮できました。開発者としては、ChatGPTに代表される生成AI、ナッシュ均衡などの広く認められたゲーム理論アルゴリズム両面において、まだその力を引き出しきれていないと感じています。まだ探究すべきことは多いです。

繰り返しになり恐縮ですが、技術解説は同人誌の形で頒布しておりますのでよろしくお願いします。

select766.hatenablog.com

事後編集

「AIが出力したミュウツー努力値振りがABであるが、最適か不明(HAの方がおそらく良い)」と当初書いていましたが、テツポンドさんの指摘により、HAよりABの方が耐久が良いことが分かりましたので、削除しました。

大会結果が出たため、結果及びそれを受けた感想を追記しました。

ノウコウムソウ ~いちゃもん1on1~に参加した【ポケモンバトル仲間大会】

ごりちゅう(@srtbprofessor83)さん主催のポケモンバトル仲間大会「ノウコウムソウ ~いちゃもん1on1~」に参加しました。

ルール

使用したパーティ

オーロンゲ、特性わるいてぐせ、持ち物メンタルハーブ、努力値HP252防御252攻撃4、性格のんき(防御↑素早さ↓)、素早さの個体値は「まあまあ」でした。 念のため、毒テラスタルにしておきました。 素早さ個体値は0が望ましかったのですが、個体の準備が間に合いませんでした。

事前考察した、ゴツゴツメットやたべのこしを持った相手に強いという想定です。くろいヘドロを持ったブロロロームを想定し、わるいてぐせで掴んでしまったときの対策として毒テラスタルを装備しました。

対戦結果

11勝4敗でした。最終順位3位(レート1583.930、参加者21名)です。

想定していなかった相手として以下の戦略を見かけました。

  • かえんだまを持ったイキリンコ(緑、おそらくこんじょう)
    • かえんだまを奪ってしまいやけどを負う。しかしながらこちらが勝利。
  • バンジのみを持ったオーロンゲ
    • こちらがメンタルハーブを消費したのち、バンジのみの奪い合いになる。最終的に相手のオーロンゲがバンジのみを消費し、相手の勝利。

逆に、ブロロローム対策は不発に終わりました。自分以外にも毒テラスタルしてくるオーロンゲを複数見たため、同様の対策は皆さんされていたようです。

考察方法

今回も自作AIシステムによる自動考察を実践しました。1on1考察システムの詳細は、年末のコミックマーケットで頒布しますのでぜひお越しください。

select766.hatenablog.com

基本的には、「いかりのまえば1on1」の時のシステムの応用です。ルールを見て手動で有効そうなポケモン・特性・持ち物などを絞り込み、それらの全組み合わせをポケモンバトルシミュレータに掛けて、最も強いパーティを探します。システムの原理上、テラスタルには対応できないため(実際のルールには反して)テラスタルは禁止として扱いました。

select766.hatenablog.com

持ち物として、とつげきチョッキゴツゴツメット・たべのこし・くろいヘドロ・ジャポのみ・メンタルハーブ・(持ち物なし)の7通りを含めました。ポケモンは(素早さが低いほうが得なケースがあるため)進化前含め全種類含めましたが、特性については、そのポケモンが持てる他の特性に劣っていると思われるものを削除しました。努力値配分(性格・個体値含む)は19通り考慮しています。トータルで6650パターンから最適解(混合戦略ナッシュ均衡で選択確率が正になるパーティ)を探索しました。

求まった解は以下の通り。

混合戦略ナッシュ均衡における確率が正の戦略(パーティ)の利得行列。行の戦略が列の戦略に必ず勝つとき利得1(赤)、必ず負けるとき利得-1(青)。ラベルは、"種族特性持ち物努力値等"。努力値等はHB+A_S-ならHP防御に努力値252、攻撃に4、防御上昇性格、素早さ下降性格。"S-"があるときのみ、素早さ個体値0。それ以外は個体値31。"A_HB+_S-"なら攻撃252、HP252、防御4、防御上昇性格、素早さ下降性格。

選択確率,パーティ
29.3%,オーロンゲ_わるいてぐせ_メンタルハーブ_HB+_A_S-
18.3%,ブロロローム_ぼうじん_くろいヘドロ_HB+_A_S-
13.2%,ズルズキン_いかく_メンタルハーブ_A+_HB_S-
11.2%,ワルビアル_いかく_ゴツゴツメット_HB+_S
6.1%,ズルズキン_いかく_たべのこし_A+_HB_S-
4.8%,ワルビアル_いかく_ゴツゴツメット_A+_HB_S-
4.3%,ワルビアル_いかく_ゴツゴツメット_HB+_A_S-
3.3%,ワルビアル_いかく_ゴツゴツメット_HB_A_S+
2.6%,ズルズキン_いかく_たべのこし_A_HB+_S-
2.5%,クレッフィ_マジシャン_ゴツゴツメット_HB+_A_S-
1.6%,ブロロローム_ぼうじん_くろいヘドロ_A_HB+_S-
1.6%,ズルズキン_いかく_ゴツゴツメット_A_HB+_S-
1.0%,ズルズキン_いかく_ゴツゴツメット_HB+_A_S-
0.2%,ワルビアル_いかく_ゴツゴツメット_HB_S+
0.0%,ズルッグ_いかく_ゴツゴツメット_A+_HB_S-

主な相性はこのようになっていたようです。

とつげきチョッキを持って初手から攻撃する攻撃特化パターンも考えていましたが、最適ではないようです。参加可能なポケモンの攻守のバランス上、守りのほうが有利なようですね。

実戦で登場したうち、バンジのみ・かえんだま・しろいハーブは想定から漏れていました。急いでおり、考察不足でした。

なお、「おきみやげ1on1」ではもっと洗練された、ルールだけ入力すると自動で考察するシステムを使ったのですが、Codexのレートリミット(一定期間あたりの利用量制限)を別件で使い切っており使用できませんでした。

タイムライン

  • 12/14 22:20ごろ Xで大会の存在を知る。参加することに決定。「いかりのまえば」システムの応用を決め、手動の考察とその後のシミュレーションプログラムの実装開始。
  • 12/15 0:00ごろ プログラム完成。長時間の実行に入る。
  • 5:30ごろ エラーで失敗しているのを発見。対策して再実行。
  • 13:00ごろ シミュレーションにメンタルハーブを入れていないことに気づくが、仕事中で対処できず。
  • 19:26 シミュレーションプログラムを変更し、時間がないためクラウドを借り、計算内容も簡略化し再実行。(勝率計算のためのバトルを100回から10回に削減)
  • 19:39 最適化の結果、どのポケモンが選ばれてもいいようにポケモンHOMEの整理を開始。
  • 21:48 シミュレーションは収束していないが、時間がないためその時点の結果でオーロンゲの起用を決定。育成開始。
  • 22:05 大会参加。
  • 23:00 大会終了。

感想

大会前日夜に大会の存在を知るという無謀なスケジュールで大会に参加しましたが、しっかり楽しめました。「いちゃもん」の挙動を考えたのは人生初めてです。変化技オンリーの1on1にいくつも出場していますが、出場可能ポケモンが変わることで能力値や特性の分布が変わるので飽きないです。

大会を開催してくださったごりちゅうさん、対戦してくださった方にお礼申し上げます。

コミックマーケット107(2025/12/31)のヤマブキ計算所の頒布予定

本ブログ執筆者(select766)のサークル「ヤマブキ計算所」は、2025年12月31日のコミックマーケット107にサークル出展します。

AIに将棋実況配信 させたり、 ポケモンバトルの最適解をAIで 求めたり、ゲームAIに関する本を扱っております!

サークルカット

場所は水曜日(2日目=12月31日) 南地区 “i”ブロック-09a (南2ホール)です。

頒布物

将棋AIストリーマー開発入門

11月の電竜戦で披露した、Geminiが将棋を指し、自ら実況するYouTube配信システムの中身を紹介します。将棋のルールをよくわかっていないLLMをどう制御し、電竜戦の短い持ち時間の中で対局を完遂させたのか?

将棋配信画面

表紙(計画中)

こんな内容を予定しています。

  • Geminiに将棋を指させるには
  • Geminiに将棋を実況させるには
  • エラー対策と高速化
  • HTMLで実況画面を作成
  • VOICEPEAKでオンデマンド音声合成
  • 音声とテロップと盤面の同期
  • OBSでライブ配信
  • YouTubeで初ライブ配信までに何が必要か

配信アーカイブはこちらから。

せれくと - YouTube

PokéAI 2025年11月号:SVシンプル1on1の自動考察

PokéAI 2025年11月号表紙

ポケモンバトルの戦略をAIで自動で立てる技術を開発し、紹介する本です。今回のテーマはポケモンSVにおける1on1(ポケモン1体だけを繰り出す対戦)です。 「いやしのはどう1on1」「いかりのまえば1on1」「おきみやげ1on1」を通じて、技術を進歩させていきました。最終的には、ルールを入力するだけでコーディングエージェントが自動的に最適解を求めてくれます。 大会参加記や、このシステムだけで優勝できないのはなぜか、といった記事も掲載しています。 ゲームの最適解を計算で求めることや、コーディングエージェントの意外な使い方に興味があれば、ぜひご覧ください。

12月15日開催の「いちゃもん1on1」でも同じ技術を応用して参加しました。

12月20日開催の「かなしばり1on1」ではついに優勝しました

本書は、過去のブログ記事をベースに、読みやすく再編集したものになります。

select766.hatenablog.com

技術書典でオンライン頒布もしておりますが、コミケでは紙媒体で提供します。また、シリーズ既刊も大幅に安く提供しますので、ぜひまとめ買いをご検討ください。

PokéAI 2025年11月号:SVシンプル1on1の自動考察:ヤマブキ計算所

本書で、かなしばり1on1の動画でごく簡単に紹介したAI考察システムの詳細を掲載しています。本書で紹介した「おきみやげ1on1」のルールを「かなしばり1on1」のものに置き換えて考察して大会に参加しました。

www.youtube.com

備考

開会から閉会まで頒布を続ける予定ですが、完売時はご容赦ください。