pokevs_rgby.exe Usage Guide

pokevs_rgby.exe の使い方詳細 #

このドキュメントでは、AIによるポケモンバトルを実現する pokevs_rgby.exe の利用方法について解説します。

1. pokevs_rgby.exe の使い方 #

pokevs_rgby.exe は、PokeVSのポケモンバトルをWebインターフェース上で視覚的に楽しむためのパッケージです。 バックエンドでエミュレータとAIが動作し、その状況がリアルタイムでWebインターフェースに表示されます。

実行コマンド #

このスクリプトは、コマンドラインから引数を指定して実行します。

pokevs_rgby.exe [envファイル] [ROM1] [ROM2] [セーブ1] [セーブ2] [-p1_client コントローラー1] [-p1_model LLMモデル] [-p2_client コントローラー2] [-p2_model LLMモデル]

コマンド例:

pokevs_rgby.exe \
    config.env \
    pokemon_red.gb \
    pokemon_blue.gb \
    save1.sav \
    save2.sav \
    -p1_client manual \
    -p2_client openrouter \
    -p2_model google/gemini-1.5-pro-latest

2. 環境設定とコマンド引数の詳細 #

PokeVSの動作は、config.envファイルによる環境変数の設定と、実行時のコマンドライン引数によって決まります。両者の関係を理解することが重要です。

2.1. 環境変数 (.env ファイル) #

.envファイルは、ご自身の環境に合わせてPokeVSの基本的な設定を行うためのものです。

環境変数説明設定例
EMUHAWK_FILEPATHBizHawkエミュレータ(EmuHawk.exe)の実行ファイルへの絶対パスC:/emulators/BizHawk/EmuHawk.exe
ROM_ROOTPATHポケモンのROMファイル(.gb)が格納されているディレクトリへのパスD:/roms/pokemon
SOCKET_IPbizhawk-agent との通信に使用するIPアドレス。通常はローカルホスト(127.0.0.1)で問題ありません。127.0.0.1
SOCKET_PORTbizhawk-agent との通信に使用するポート番号8080
OPENROUTER_API_KEYOpenRouter 経由でLLMを利用するためのAPIキーsk-or-v1-...

2.2. コマンドライン引数 #

コマンドライン引数は、対戦ごとに変わる設定を指定します。

引数説明
env_file (位置引数).envファイルの絶対パスを指定します
rom1, rom2 (位置引数)プレイヤー1と2が使用するROMファイルのパスを指定します。.env設定のROM_ROOTPATHからの相対パスを指定してください。
save1, save2 (位置引数)プレイヤー1と2が使用するセーブファイルの絶対パスを指定します
-p1_client, -p1_model (オプション引数)プレイヤー1のコントローラー種別と使用するLLMモデルを指定します。指定可能なコントローラー種別とLLMモデルは後述します。
-p2_client, -p2_model (オプション引数)プレイヤー2のコントローラー種別と使用するLLMモデルを指定します。指定可能なコントローラー種別とLLMモデルは後述します。

2.3. 環境変数と引数の連携 #

これらがどのように連携して動作するのか、具体例を挙げて説明します。

  • ROMファイルの特定: プログラムは、.envROM_ROOTPATHと引数のrom1(例: pokemon_red.gb)を結合して、D:/roms/pokemon/pokemon_red.gb のような絶対パスを組み立て、対象のROMファイルを読み込みます。

  • AIコントローラーの利用: 引数で -p2_model "google/gemini-1.5-pro-latest" のようにLLMを指定した場合、プログラムは.envファイルからOPENROUTER_API_KEYを読み込み、そのキーを使ってOpenRouterのAPIにアクセスし、AIの思考を促します。もしこのキーが設定されていなければ、AIは動作できずエラーとなります。

2.4. コントローラーの種類 #

-p1_client-p2_client で指定できるコントローラーの種類は以下の通りです。

コントローラー名説明
manual人間のプレイヤーが操作します。Webインターフェースのボタンをクリックして行動を選択してください。
randomプログラムがランダムに行動を選択します。AIの動作テストや比較対象として便利です。
openrouterOpenRouter経由でLLMモデルに行動を決定させます。

2.5. LLMモデルの種類 #

-p1_model-p2_model で指定可能なLLMモデルは以下の通りです。

LLMモデル名説明
(LLMモデル名) e.g., google/gemini-1.5-pro-latestOpenRouterでサポートされているモデル のIDを指定します。指定されたLLMが戦況を分析し、次の一手を決定します。