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_FILEPATH | BizHawkエミュレータ(EmuHawk.exe)の実行ファイルへの絶対パス | C:/emulators/BizHawk/EmuHawk.exe |
ROM_ROOTPATH | ポケモンのROMファイル(.gb)が格納されているディレクトリへのパス | D:/roms/pokemon |
SOCKET_IP | bizhawk-agent との通信に使用するIPアドレス。通常はローカルホスト(127.0.0.1)で問題ありません。 | 127.0.0.1 |
SOCKET_PORT | bizhawk-agent との通信に使用するポート番号 | 8080 |
OPENROUTER_API_KEY | OpenRouter 経由で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ファイルの特定: プログラムは、
.envのROM_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の動作テストや比較対象として便利です。 |
openrouter | OpenRouter経由でLLMモデルに行動を決定させます。 |
2.5. LLMモデルの種類 #
-p1_model と -p2_model で指定可能なLLMモデルは以下の通りです。
| LLMモデル名 | 説明 |
|---|---|
(LLMモデル名) e.g., google/gemini-1.5-pro-latest | OpenRouterでサポートされているモデル のIDを指定します。指定されたLLMが戦況を分析し、次の一手を決定します。 |