ゲームプロジェクトの作成と自動テスト対応
- プロジェクトの作成
- C++ のビルドを可能にするための準備
- プラグインの導入
- マーケットプレイスから入手するプラグイン
- ソースコードからビルドするプラグイン
- ゲームへの組み込み
- COMBridgeManagerColTest をレベルに配置
- デバッグ移動の実装
- デバッグカメラの配置とモードの切り替え
- カメラの情報を Python 側に送れるようにする
- プレイヤーキャラクターのスペック確認
- プロジェクトのパッケージ化
- パッケージ化
- Simple Auto Gameplay を使った動作確認
プロジェクトの作成
Unreal Engine を起動して Third Person テンプレート使ったプロジェクトを作成してください。
ブループリントベースのプロジェクトで構いません。
C++ のビルドを可能にするための準備
プラグインのビルドなどで Visual Studio のソリューションファイルが必要になる場合がありますので、C++ のビルドができるようにしておきます。
一度エディタで C++ のオブジェクトを作成すると、C++ のビルドが必要なプロジェクトという扱いになり、以降エクスプローラー上で .uproject
を右クリックすることで、ソリューションファイルの生成が可能になります。
UE4 では「ファイル」メニュー > 「新規 C++ クラス…」、UE5 では「Tools」メニュー > 「新規 C++ クラス…」から C++ オブジェクトを作成することができます。
プラグインの導入
マーケットプレイスから入手するプラグイン
Game-Python Bridge および、ゲーム内情報の収集処理で他のプラグインを利用します。 事前に以下のプラグインをエンジンにインストールしてください。
- ObjectDeliverer
Playable-COMBridge プラグインで利用している通信機能を提供するプラグインです。
https://www.unrealengine.com/marketplace/ja/product/objectdeliverer - Json Blueprint
ブループリントで JSON の生成、解釈を行うためのプラグインです。 https://www.unrealengine.com/marketplace/ja/product/json-blueprint
ソースコードからビルドするプラグイン
プロジェクトを起動している場合は一度閉じてから、プロジェクトのルートディレクトリ (.uproject があるディレクトリ) に Plugins
ディレクトリを作成し、その中に Playable! 用の各プラグインをコピーしてください。
これらのファイルは、Playable! のマイページ からダウンロードできる Playable! ライブラリ (playable_toolkit_{バージョン名}
) 内の Plugins_UE
にあります。
展開後、以下のようになっていることを確認してください。
Plugins/
CollisionTest/
COMBridgeManager/
COMBridge/
その後、再度プロジェクトを起動すると、CollisionTest
プラグイン、COMBridgeManager
プラグイン、COMBridge
プラグインのビルドが求められるので、「はい」を選択してください。しばらく待った後、プロジェクト画面が表示されるとビルドは成功です。
ゲームへの組み込み
COMBridgeManagerColTest をレベルに配置
COMBridgeManager プラグインの中にある COMBridgeManagerColTest
をレベル上に配置してください。
ゲーム起動時にロードされる場所であればどこでも構いません。
Unreal Engine5 のエディターはデフォルトではプラグインのコンテンツを表示しません。 コンテンツブラウザの「設定」の「プラグインコンテンツを表示」を有効にしてください。
デバッグ移動の実装
デバッグカメラの配置とモードの切り替え
Map Scanner 等の一部 Playable! ツールでは、プレイヤーが重力を無視して自由移動できる必要があります (これをデバッグ移動と呼びます)。
このような機能は、多くのゲームで開発/検証用途で実装されていることかと思われます。 既にゲームで利用しているものがあれば、それを使うようにしても構いません。
- COMBridgeManager プラグインの中にある DebugCamera をレベル上に配置
- レベルブループリントで移動モードの切り替え処理を実装
- 図中の DebugCamera ノードは、アウトライナーからドラッグアンドドロップしてブループリント上に持ってきてください。
- 図中の DebugCamera ノードは、アウトライナーからドラッグアンドドロップしてブループリント上に持ってきてください。
カメラの情報を Python 側に送れるようにする
テストの過程でデバッグ移動モードを使用する際、Python が以下の情報を参照できなければなりません。
- デバッグ移動モードが ON/OFF のどちらになっているか
「Python による操作によって正しくモードが切り換えられたか」の判断材料として必要です。 - デバッグ移動速度の設定値がいくつになっているか
移動速度の設定値が適切でない場合、徒に移動時間が長くなったり、移動の粒度が粗いときに目標座標への到達が不可能になったりします。
そこで、次に説明する作業を行うと、Python 側で game_data["DebugCamera"]["DebugCameraMode"]
と game_data["DebugCamera"]["MoveSpeed"]
の情報を取得できるようになります。
BP_COMBridgeUtility
DebugCameraDataToJson
関数を作成
インプットのDebugCamera
のピンタイプはDebugCamera
を指定すること
ComBridgeManagerColTest
- 変数
DebugCamera
を追加 (変数の型はDebugCamera
) - 変数
DebugCamera
の詳細にある「インスタンス編集可能」にチェック - 変数
DebugCamera
の右にある目のアイコンをクリックして編集可能にする DebugCameraDataToJson
をCreateCOMBridgeCommonData
の後に繋げる- アウトライナの ComBridgeManagerColTest の詳細にある「DebugCamera」に DebugCamera を指定する
レイキャストの調整
Third Person テンプレートでは何も行う必要がありません。
プロジェクトによっては適切に設定する必要があります。
プレイヤーキャラクターのスペック確認
自動テストでキャラクターを上手に操るには、キャラクターのスペック (身体性能) を把握した上で、各 Python ツール側で適切なパラメータを設定する必要があります。サンプルゲームの例 (参照) を参考に、プレイヤーキャラクターのスペックを確認してください。
Third Person テンプレートの場合、BP_ThirdPersonCharacter
クラスの Character Movement
コンポーネントの設定を確認することで確認可能です。
プロジェクトのパッケージ化
パッケージ化
テスト対象をビルド済みバイナリに限定しているので、プロジェクトをパッケージ化しておく必要があります。 Win64 向けにパッケージ化してください。
Simple Auto Gameplay を使った動作確認
パッケージ化したゲームが自動プレイ可能であることを Simple Auto Gameplay を使って確認します。 Simple Auto Gameplay についてはこちらを参照してください。
これを使ってゲームを自動操縦できれば、この作業は完了です。