メインコンテンツまでスキップ
バージョン: 1.0.0

システム概要

備考

本ページの内容は Unreal Engine 向けに向けたものです。
Unity に向けた内容のご紹介ページは現在作成中です。

概要

Playable! Game-Python Bridge(GPB)は、「既にある程度完成しているゲームをゲーム側にできるだけ変更を加えずに外部のプログラムから操作出来るようにする」という指針のもと開発しています。 これはテスト作業がゲーム開発の中盤以降になることが多いと想定しているためです。

image

GPB では、自動プレイのシステムとゲーム本体とのやり取りを以下の二点に絞ることで、 ゲームプログラム本体に影響を与えることなく、人間のプレイと同等とみなせる自動プレイを実現します。

  • ゲーム内の情報を吸い上げる (Read Only でゲーム本体に影響を与えない)
  • 入力デバイスのエミュレーションでゲームを操作する (ゲーム側は人間の操作として扱える)

また、外部プログラムの通信と入力デバイスエミュレーションは UE プラグインを導入するだけで動作するようになっています。 これにより、自動プレイに必要なゲーム内情報を収集する処理をゲームプログラムに追加するだけで、ゲームを外部プログラムから制御可能になります。

image

自動プレイの流れ

GPB を利用した自動プレイは以下のような流れで進行していきます。

  1. ゲームの状態を外部プログラムと同期する
  2. 外部プログラムが現在の状態から行動を決定する
  3. 外部プログラムがゲームに疑似入力を行う
  4. 入力に基づきゲームを進行させる
  5. 1 に戻る

image

GPB の機能

GPB は現在以下の入力デバイスのエミュレーションに対応しています。
その他のデバイスについては、要望に応じて順次対応していく予定です。 詳細は各ページをご確認ください。

また、外部プログラムからゲームプログラムに任意のデータを送信する機能もあります。

そのほか、外部からゲームを操作する上で最低限必要となる以下の機能は、GPB で標準サポートしています。

  • ゲームの終了(Quit) … ゲーム側でQuitGameが呼び出されゲームが即時終了します
  • コンソールコマンド … Unreal Engine のコンソールコマンドをセットすることが出来ます

詳細はこちらをご確認ください。

ゲームごとに必要な対応

ゲームプログラムに必要な対応

ゲームはタイトルごとに様々な違いがあり、共通の方法であらゆるゲームの自動プレイを実現することは難しいと考えられます。 そのため、GPB ではゲームごとに個別の対応(ゲーム内情報の取得をすることで自動プレイを実現する想定です。

Unreal Engine のコンテンツ側で行うべき対応作業はこちらをご覧ください。

外部プログラムに必要な対応

GPB は現在 Python 向けのモジュール(playable-gpbモジュール)として提供しています。

playable-gpbモジュールは Unreal Engine コンテンツを制御するための基本機能がまとまっており、 このモジュールを利用することでゲームの操作を簡単に行うことが出来ます。

モジュールの詳細はこちらをご覧ください。

備考

Python 以外のプログラミング言語のサポートは現在行っておりません。

参考資料

自動プレイ全般

Unreal Engine プラグイン