BLOGブログ

2014.09.05UE4UE/ C++

[UE4] コンソールコマンドを追加する方法

改訂バージョン: Unreal Engine 4.21

UE4では、画面右上の入力欄やOutputLogウィンドウ等から、コンソールコマンドを実行することが可能です。

既存のコマンドにも多数の便利なものがありますが、開発中のタイトル専用のコマンドが欲しくなる時もあります。

今回は、そんなゲーム実行中に呼び出せるコンソールコマンドを実装する方法をご紹介します。デバッグなどに役立てて下さい。

 

1.CheatManagerを追加する

まずは、CheatManagerを継承したクラスを用意します。

1.メインメニューから「File -> Add Code To Project…」を選択して、コード追加ウィンドウを開きます。
2.右上の「Show All Classes」をONにして、「CheatManager」を検索、選択して「Next>」ボタンを押します。
3.名前等を設定して「Create Class」ボタンを押します。今回は「MyCheatManager」と命名します。

このクラスは後で利用します。

 

2.PlayerControllerを追加する

CheatManagerはPlayerControllerクラスに登録して使用します。

先ほどの同様の手順で、「PlayerController」を継承したクラスを追加して下さい。

名前は「MyPlayerController」とします。

 

下記のように、CheatManagerを登録するコードを記述します。

3.GameModeにPlayerControllerを登録する

先ほど追加したPlayerControllerも、GameModeに登録して使用します。

GameModeクラスは、C++テンプレートでプロジェクトを作ると、自動的に追加されているはずです。

 

下記のように、PlayerControllerクラスを登録するコードを記述します。

 

4.WorldSettingsにGameModeを設定する

Unreal Editorを起動して、WorldSettingsウィンドウからGameModeを設定します。


 
1.「GameMode Override」のプルダウンから、先ほどコードに追記した「MyProjectGameModeBase」を選択します。
2.「Player Controller Class」に、自分で追加したクラスが登録されていることを確認します。

 

長々と登録作業ばかりでしたが、事前準備はこれでやっとオシマイです。

 

5.CheatManagerにコマンドを記述する

これで、コンソールコマンドを使用する準備が整いました。

最初に用意したMyCheatManagerに、コンソールコマンドに対応する関数を書いていきます。

ここから先は非常に簡単で、UFUNCTION(exec)と指定した関数を定義するだけです。

 

これで、ゲームを実行中に、コンソールコマンドとして「MyCheatCommand」を使用出来ます。

また、コマンドの引数も、int32やFString等の基本的な型ならば、関数の引数を宣言しておけば自動的にパースしてくれます。

とてもお手軽です。

 

今回はデバッグ目的でCheatManagerを利用する方法をご紹介しましたが、UFUNCTION(exec)は、他にもいくつかのクラスで使用可能です。

(Pawn, PlayerController, GameModeなど)

特定ゲームモードでのみ有効なコマンドや、プレイヤーキャラクターを直接操作したい場合などは、こちらの方が便利かもしれません。

 

また、コンソールコマンドはBlueprintから呼び出すことも出来ます。

うまく利用して、便利なデバッグ機能を作っていきましょう。