AzurPilot とは
AzurPilot は『アズールレーン』向けの自動化フレームワークです。ADB を介して Android エミュレーターや実機に接続し、「スクリーンショット → 認識 → 操作」のループを回すことで、デイリー任務、出撃、大世界(オペレーション・サイレン)などの定型処理をプログラムに代行させます。本プログラムはチートツールではなく、ゲームクライアントの改変も一切行いません。すべての操作は画面上で実行され、プレイヤーの手動タップと同一の入力パイプラインを経由します。
技術スタック
| レイヤー | 実装 | 説明 |
|---|---|---|
| スケジューリング | alas.py | インスタンスごとに1プロセスを割り当て、タスクを順次実行し、エラー発生時は段階的に復旧 |
| 認識 | OpenCV テンプレートマッチング + OCR + マップグリッド検出 | リソースは 1280×720 を基準に制作され、CN / EN / JP / TW の4言語セットに対応 |
| デバイス制御 | uiautomator2 / ADB / minitouch / MaaTouch | スクリーンショットおよび操作方式は設定から切り替え可能 |
| インターフェース | React + TypeScript + Vite | ブラウザからアクセス、デフォルトポート 25548 |
| 通信 | WebSocket RPC(/api/v1/ws) | フロントエンド、Android ホスト、外部ツール共通 |
| 拡張機能 | MCP SSE サービス | MCP 対応クライアントから呼び出せる 18 個のツールを提供 |
サポート範囲
- サーバー:中国大陸版(BiliBili 版および各アグリゲーター版)、グローバル版、日本版、台湾版。アグリゲーター版はパッケージ名で識別されます。一覧はデバイス接続を参照してください。
- 動作環境:Windows、macOS、Linux(ランチャー経由);Android 9.0+(ホスト経由);Python 3.14 が稼働する任意の環境(ソースコード経由)。
- ゲーム解像度:1280×720。これは推奨値ではなく必須要件です。
- 実機直接接続の非サポート(コアプログラム側)。Android 版は仮想ディスプレイを通じて端末を「被制御側」にする別系統のアーキテクチャを採用しています。
明確に行わないこと
- ゲームメモリの改変、プロセスの注入、リソースの改ざんは行いません。
- アカウントの代行、売買、共有サービスは提供しません。
- ゲームのアンチチートやリスク管理システムの回避は行いません。自動化には常にアカウント処分のリスクが伴います。
- すべてのイベント海域における自動攻略は保証しません。イベントのギミックは頻繁に変更されるため、一部コンテンツは手動での事前進行が必要です。
タスク実行時の内部挙動
「研究(科研)」を例とした実行シーケンス:
- WebUI が
Research.Scheduler.NextRunをconfig/<インスタンス>.jsonに書き込みます。 - スケジューラーが実行期限を迎えたタスクを選定し、タスクパラメータを
self.config.Research_*にバインドします。 run('research')がalas.py内の同名メソッドを呼び出し、module/research/research.pyを遅延インポートします。- モジュールは
device.screenshot()でスクリーンショットを取得し、テンプレートマッチングと OCR で現在画面を判定後、device.click()で進行します。 - 処理終了時に
task_delay()を呼び出して次回実行時刻を保存し、スケジューラーは次の実行ループへ移行します。
例外の段階処理や自動復旧を含む完全なライフサイクルはスケジューラーのライフサイクルを参照してください。