Playable!Mobile 概要

ここでは Playable!Mobile Unity Plugin を中心とした Playable!Mobile の動作原理について説明します。

自動プレイ

Playable!Mobile は Unity 上のプラグイン (Playable!Mobile Unity Plugin) とツール (Playable! General Agent for Mobile) を WebSocket 接続し、以下のような仕組みでゲームを操作しています。

Playable!Mobile の自動プレイの仕組みは Ver.2 系までと Ver.3 系以降で内部実装が大きく異なります。

Playable! General Agent for Mobile Ver.3.0.0 以降の実装

Ver.3.0.0 以降では ゲームに対する操作を完全に人間の操作と透過に扱えるよう、ゲームの外部で入力をエミュレーションする方式に変更しました。

  • Unity プラグインがゲームから自動プレイに必要な情報を収集しツールに送信
  • ツールがゲームの情報を使い、LLM を活用した自動プレイエージェントが操作を決定する
  • エージェントが決定した操作をゲームの実行環境に応じた入力エミュレーションで再現

入力エミュレーションはゲームが動作する環境に寄って異なります。

Android の場合

Android の場合は、ADB (Android Debug Bridge)と、キーボードアプリ「ADBKeyBoard」を使ってゲームを操作するようにしています。

image

そのため、Android のゲームを操作するためには、ADB と端末の開発者向けオプションの設定が必要になります。

Windows の場合

Windows の場合は、Win32API とクリップボードの操作を駆使してゲームを操作するようにしています。

image

Windows のゲームを操作する際にマウス操作をツールが奪う必要があるため、ツールがゲームを操作している最中は PC の操作をしてはいけません。

Playable! General Agent for Mobile Ver.2系までの実装

Ver.2 系までは下図のように全てを Unity プラグイン側で処理する実装になっていました。

image

  • ツールがゲームから自動プレイに必要な情報を収集
  • ゲームの情報を使い、LLM を活用した自動プレイエージェントが操作を決定する
  • エージェントが決定した操作をプラグインが再現

この実装は様々なプラットホームへの対応が容易であった反面、操作対象が EventSystem を利用しているオブジェクトに限定されるという課題がありました。

ツールとプラグインの接続

詳細についてはこちらをご覧ください。