コマンドライン引数を使う[UE5]

執筆バージョン:UE5.2.1

コマンドライン引数とは

コマンドライン引数とは、実行時にプログラムに渡すことができる値です。(UEではStringとして扱われます)
UEのexeファイルにもいくつか設定されています。
https://docs.unrealengine.com/4.27/ja/ProductionPipelines/CommandLineArguments/

コマンドライン引数は、指定にはショートカットを使います。
エクスプローラーで引数を指定したいexeファイルのショートカットを作成した後、プロパティからリンク先の末尾に半角スペース+任意の値を入力することで指定することができます。

半角スペースを挟むことで複数入力することも可能です。

プロジェクトで使用する

UEではGet command Lineノードで簡単に引数を取得することができます。

Containsで引数の中に任意の値があるか判定し、値があった場合DirectionalLightの傾きを変えるBPを組んでみました。
本来ならファイルパス等が含まれている引数ですがGetCommandLineはパッケージ化したexeファイルでは自分が設定した引数のみを出力します。なんて優しいんだ!(Standalone時には色々なファイルパスやらなにやらが出てくるので任意の値がかぶらないよう注意が必要です)

エディタで確認する

UE5では、コマンドライン引数を入れた場合の確認をパッケージ化せずに行うことができます。

エディタの環境設定>プレイ>Play in Standalone Game>追加の起動パラメーター に設定した値を事前に入力し、Standaloneモードでプレイすることで確認することが可能です。

パラメーターを設定して起動してみました。

Sunset

Night

きちんと動作していそうです

実行ファイルで確認する

プロジェクトをパッケージ化して確認します。

パッケージ化したexeファイルと、引数を指定したショートカット2つを作成しました。
起動してみます。

通常のexeファイル

引数付きショートカット版 Sunset

引数付きショートカット版 Night

きちんと動作しました!

今回はコマンドライン引数を使ってみました。
デバッグなどに向いた機能ではありますが、UIなく起動時に特定のレベルに一発で飛びたいときや、マルチゲームを強制的にシングルで起動したいとき、某文芸部のようなゲームファイル自体に加工するメタゲームなどにも使えるかもしれません。ぜひ機会があればお試しください。

エンジニアリング事業部からの最新情報をお届けします