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

ゲームプロジェクトの作成と自動テスト対応

  1. プロジェクトの作成
    • C++ のビルドを可能にするための準備
  2. プラグインの導入
    • マーケットプレイスから入手するプラグイン
    • ソースコードからビルドするプラグイン
  3. ゲームへの組み込み
    • COMBridgeManagerColTest をレベルに配置
    • デバッグ移動の実装
      • デバッグカメラの配置とモードの切り替え
      • カメラの情報を Python 側に送れるようにする
    • プレイヤーキャラクターのスペック確認
  4. プロジェクトのパッケージ化
    • パッケージ化
    • Simple Auto Gameplay を使った動作確認

プロジェクトの作成

Unreal Engine を起動して Third Person テンプレート使ったプロジェクトを作成してください。

備考

ブループリントベースのプロジェクトで構いません。

C++ のビルドを可能にするための準備

プラグインのビルドなどで Visual Studio のソリューションファイルが必要になる場合がありますので、C++ のビルドができるようにしておきます。

備考

一度エディタで C++ のオブジェクトを作成すると、C++ のビルドが必要なプロジェクトという扱いになり、以降エクスプローラー上で .uproject を右クリックすることで、ソリューションファイルの生成が可能になります。
UE4 では「ファイル」メニュー > 「新規 C++ クラス…」、UE5 では「Tools」メニュー > 「新規 C++ クラス…」から C++ オブジェクトを作成することができます。

プラグインの導入

マーケットプレイスから入手するプラグイン

Game-Python Bridge および、ゲーム内情報の収集処理で他のプラグインを利用します。 事前に以下のプラグインをエンジンにインストールしてください。

ソースコードからビルドするプラグイン

プロジェクトを起動している場合は一度閉じてから、プロジェクトのルートディレクトリ (.uproject があるディレクトリ) に Plugins ディレクトリを作成し、その中に Playable! 用の各プラグインをコピーしてください。 これらのファイルは、Playable! のマイページ からダウンロードできる Playable! ライブラリ (playable_toolkit_{バージョン名}) 内の Plugins_UE にあります。 展開後、以下のようになっていることを確認してください。

Plugins/
CollisionTest/
COMBridgeManager/
COMBridge/

その後、再度プロジェクトを起動すると、CollisionTest プラグイン、COMBridgeManager プラグイン、COMBridge プラグインのビルドが求められるので、「はい」を選択してください。しばらく待った後、プロジェクト画面が表示されるとビルドは成功です。

ゲームへの組み込み

COMBridgeManagerColTest をレベルに配置

COMBridgeManager プラグインの中にある COMBridgeManagerColTest をレベル上に配置してください。 ゲーム起動時にロードされる場所であればどこでも構いません。

備考

Unreal Engine5 のエディターはデフォルトではプラグインのコンテンツを表示しません。 コンテンツブラウザの「設定」の「プラグインコンテンツを表示」を有効にしてください。 image.png

デバッグ移動の実装

デバッグカメラの配置とモードの切り替え

Map Scanner 等の一部 Playable! ツールでは、プレイヤーが重力を無視して自由移動できる必要があります (これをデバッグ移動と呼びます)。

備考

このような機能は、多くのゲームで開発/検証用途で実装されていることかと思われます。 既にゲームで利用しているものがあれば、それを使うようにしても構いません。

  • COMBridgeManager プラグインの中にある DebugCamera をレベル上に配置
  • レベルブループリントで移動モードの切り替え処理を実装
    • 図中の DebugCamera ノードは、アウトライナーからドラッグアンドドロップしてブループリント上に持ってきてください。
      image.png

カメラの情報を Python 側に送れるようにする

テストの過程でデバッグ移動モードを使用する際、Python が以下の情報を参照できなければなりません。

  • デバッグ移動モードが ON/OFF のどちらになっているか
    「Python による操作によって正しくモードが切り換えられたか」の判断材料として必要です。
  • デバッグ移動速度の設定値がいくつになっているか
    移動速度の設定値が適切でない場合、徒に移動時間が長くなったり、移動の粒度が粗いときに目標座標への到達が不可能になったりします。

そこで、次に説明する作業を行うと、Python 側で game_data["DebugCamera"]["DebugCameraMode"]game_data["DebugCamera"]["MoveSpeed"] の情報を取得できるようになります。

BP_COMBridgeUtility
  • DebugCameraDataToJson 関数を作成
    インプットの DebugCamera のピンタイプは DebugCamera を指定すること
    image.png
ComBridgeManagerColTest
  1. 変数 DebugCamera を追加 (変数の型は DebugCamera)
  2. 変数 DebugCamera の詳細にある「インスタンス編集可能」にチェック
    image.png
  3. 変数 DebugCamera の右にある目のアイコンをクリックして編集可能にする
    image.png
  4. DebugCameraDataToJsonCreateCOMBridgeCommonData の後に繋げる
    image.png
  5. アウトライナの ComBridgeManagerColTest の詳細にある「DebugCamera」に DebugCamera を指定する
    image.png

レイキャストの調整

Third Person テンプレートでは何も行う必要がありません。

備考

プロジェクトによっては適切に設定する必要があります。

プレイヤーキャラクターのスペック確認

自動テストでキャラクターを上手に操るには、キャラクターのスペック (身体性能) を把握した上で、各 Python ツール側で適切なパラメータを設定する必要があります。サンプルゲームの例 (参照) を参考に、プレイヤーキャラクターのスペックを確認してください。

Third Person テンプレートの場合、BP_ThirdPersonCharacter クラスの Character Movement コンポーネントの設定を確認することで確認可能です。

プロジェクトのパッケージ化

パッケージ化

テスト対象をビルド済みバイナリに限定しているので、プロジェクトをパッケージ化しておく必要があります。 Win64 向けにパッケージ化してください。

Simple Auto Gameplay を使った動作確認

パッケージ化したゲームが自動プレイ可能であることを Simple Auto Gameplay を使って確認します。 Simple Auto Gameplay についてはこちらを参照してください。

これを使ってゲームを自動操縦できれば、この作業は完了です。