通常、プロジェクト固有のユーティリティ スクリプトが AutomationTool BuildCommand クラスとして実装されます。カスタム タスクをプロジェクト用に自動化するには、BuildGraph が役立ちます。BuildGraph はタスクをいくつでも拡張し、各自の特定のニーズに合わせた方法でビルド自動化タスクをカスタマイズすることができます。次のセクションでは、BuildGraph を使用してカスタム タスクを作成する方法を説明します。カスタム タスク作成を開始する際に最適な定義済みタスクの一覧も示します。
カスタム タスク
新しいカスタム タスクを作成するには、CustomTask クラスから派生したクラスを実装し、それに [TaskElement] 属性を適用します。TaskElement コンストラクタには、2 つの引数があります。それが表される XML エレメントの名前と、そのパラメータが含まれるクラスの型です (ロード時に超すトラクタへ渡されます)。
XML ファイルからパラメータのクラス フィールドを読み出す場合は、タスクに [TaskParameter] 属性をアタッチします。TaskParameter 属性をアタッチすると、引数に適用されるべき追加のバリデーションを含めて、パラメータが必須であるか任意であるかを示します。
定義済みタスク
タスク作成の開始点として、テンプレートに多様な定義済みタスクがあります。単純な定義済みタスクを求めている場合は、LogTask から始めることをお勧めします。BuildGraph の最新情報を知りたい場合は、このページをブックマークしてください。以下の定義済みタスクの一覧が定期的に更新されます。
BuildCookRun はパワフルなコマンドで、一般的にパッケージング作業で使用されます。詳細については「ビルド操作」を参照してください。
AgeStore
一連のファイルからシンボルを取り除くタスク。このタスクの名前は Microsoft デバッガー ツール SDK に付属する AGESTORE ユーティリティにちなんでいますが、実際には個別に実装されたものです。主な違いは削除するファイルを決定するときに、最終アクセス時刻ではなく最終変更時刻を使用することです。
| Platform | UnrealTargetPlatform | 必須 | シンボルをエージングするターゲット プラットフォーム。 |
| StoreDir | String | 必須 | シンボル サーバー ディレクトリ。 |
| Days | Int32 | 必須 | 必要なシンボルを保持する日数。 |
| BuildDir | String | 省略可能 | ビルド ディレクトリのルート。既存のビルド バージョンの名前がついたディレクトリを確認します。 |
| Filter | String | 省略可能 | シンボルを削除する前に、ディレクトリのファイル名と一致する部分文字列。これにより複数のビルドが同じシンボル サーバーを共有する場合に、「age store」タスクが他のビルドからシンボルを削除することを回避できます。このフィルタ値の特定の用途は、プラットフォーム ツールチェーンで定義したシンボル サーバーの構造によって決まります。 |
| If | 条件式 | 省略可能 | このタスクを実行するかどうか。この条件式が false と評価された場合は無視します。 |
Command
AutomationTool の子プロセスを呼び出して、指定されたコマンドを実行します。
| Name | String | 必須 | 実行するコマンド名。 |
| Arguments | String | 省略可能 | コマンドに渡す引数。 |
| MergeTelemetryWithPrefix | String | 省略可能 | null 以外の場合、コマンドからのテレメトリを、指定したプレフィックスを持つこの UAT インスタンスのテレメトリとマージするように指示します。空の文字列 (null ではない) の可能性があります。 |
| If | 条件式 | 省略可能 | このタスクを実行するかどうか。この条件式が false と評価された場合は無視します。 |
Commandlet
エディタをスポーンしてコマンドレットを実行します。
| Name | String | 必須 | 実行するコマンドレット名。 |
| Project | File Spec | 省略可能 | エディタで実行するプロジェクト。 |
| Arguments | String | 省略可能 | コマンドレットに渡す引数。 |
| EditorExe | FileReference | 省略可能 | 使用するエディタの実行可能ファイル。デフォルトは、現在のプラットフォーム用の開発 UE4Editor の実行可能ファイルです。 |
| ErrorLevel | Int32 | 省略可能 | エラーとして処理される最小の終了コードです。 |
| If | 条件式 | 省略可能 | このタスクを実行するかどうか。この条件式が false と評価された場合は無視します。 |
Compile
UnrealBuildTool でターゲットをコンパイルします。
| Target | String | 必須 | コンパイルするターゲット。 |
| Configuration | UnrealTargetConfiguration | 必須 | コンパイルするコンフィギュレーション。 |
| Platform | UnrealTargetPlatform | 必須 | コンパイルするプラットフォーム。 |
| Project | String | 省略可能 | コンパイルするプロジェクト。 |
| Arguments | String | 省略可能 | UnrealBuildTool の追加の引数。 |
| AllowXGE | Boolean | 省略可能 | コンパイルに XGE の使用を許可するかどうか。 |
| AllowParallelExecutor | Boolean | 省略可能 | このコンパイルに並列エグゼキューターの使用を許可するかどうか。 |
| Clean | Nullable`1 | 省略可能 | このターゲットにクリーンを許可するかどうか。指定しない場合でも、コマンドラインで -Clean 引数を渡すとターゲットがクリーンされます。 |
| Tag | Tag List | 省略可能 | このタスクのビルド プロダクトに適用するタグ。 |
| If | 条件式 | 省略可能 | このタスクを実行するかどうか。この条件式が false と評価された場合は無視します。 |
Cook
特定のプラットフォーム用に、選択したマップをクックします。
| Project | String | 必須 | クックするプロジェクト ファイル。 |
| Platform | String | 必須 | ターゲットにするクック プラットフォーム (例:WindowsNoEditor)。 |
| Maps | String | 省略可能 | 「+」文字で区切られた、クックするマップのリスト。 |
| Versioned | Boolean | 省略可能 | クッカーに渡す追加の引数。 |
| Arguments | String | 省略可能 | クッカーに渡す追加の引数。 |
| Tag | Tag List | 省略可能 | このタスクのビルド プロダクトに適用するタグ。 |
| If | 条件式 | 省略可能 | このタスクを実行するかどうか。この条件式が false と評価された場合は無視します。 |
Copy
あるディレクトリから別のディレクトリにファイルをコピーします。
| Files | File Spec | 省略可能 | 入力ファイルのリストに適用する省略可能のフィルタ。 |
| From | File Spec | 必須 | コピー元のパターン (例:Engine/*.txt)。 |
| To | File Spec | 必須 | コピー先のディレクトリ。 |
| Overwrite | Boolean | 省略可能 | 既存のファイルを上書きするかどうか。 |
| Tag | Tag List | 省略可能 | このタスクのビルド プロダクトに適用するタグ。 |
| If | 条件式 | 省略可能 | このタスクを実行するかどうか。この条件式が false と評価された場合は無視します。 |
CsCompile
C# のプロジェクト ファイルとその依存関係をコンパイルします。
| Project | String | 必須 | コンパイルする C# プロジェクト ファイル。セミコロンを使用して複数のプロジェクト ファイルを指定できます。 |
| Configuration | String | 省略可能 | コンパイルするコンフィギュレーション。 |
| Platform | String | 省略可能 | コンパイルするプラットフォーム。 |
| Target | String | 省略可能 | ビルドするターゲット。 |
| Arguments | String | 省略可能 | コンパイラに渡す追加省略可能。 |
| EnumerateOnly | Boolean | 省略可能 | ビルド プロダクトを列挙するだけです。実際にプロジェクトをコンパイルはしません。 |
| Tag | Tag List | 省略可能 | このタスクのビルド プロダクトに適用するタグ。 |
| TagReferences | Tag List | 省略可能 | プロジェクトが含む非プライベート参照に適用するタグ。(たとえば、出力ディレクトリにコピーしない外部にあるもの)。 |
| If | 条件式 | 省略可能 | このタスクを実行するかどうか。この条件式が false と評価された場合は無視します。 |
Delete
一連のファイルを削除します。
| Files | File Spec | 必須 | セミコロンで区切ったファイル仕様のリスト (例: .cpp;Engine/.../.bat)、またはタグ セットの名前 |
| DeleteEmptyDirectories | Boolean | 省略可能 | ファイルを削除した後に、空のディレクトリを削除するかどうか。デフォルトは true です。 |
| If | 条件式 | 省略可能 | このタスクを実行するかどうか。この条件式が false と評価された場合は無視します。 |
Log
メッセージ (およびその他省略可能の診断情報) を出力ログに出力します。
| Message | String | 省略可能 | 出力するメッセージ。 |
| Files | File Spec | 省略可能 | 指定した場合、設定したメッセージの後に指定したファイルのリストを出力します。 |
| IncludeContents | Boolean | 省略可能 | 指定した場合、設定したファイルのコンテンツを出力します。 |
| If | 条件式 | 省略可能 | このタスクを実行するかどうか。この条件式が false と評価された場合は無視します。 |
ModifyConfig
コンフィグ ファイルを変更します。
| File | File Spec | 必須 | コンフィグ ファイルのパス |
| Section | String | 必須 | 変更するセクション名 |
| Key | String | 必須 | 設定するプロパティ名 |
| Value | String | 必須 | 設定するプロパティ値 |
| Tag | Tag List | 省略可能 | 抽出したファイルに適用するタグ |
| If | 条件式 | 省略可能 | このタスクを実行するかどうか。この条件式が false と評価された場合は無視します。この条件式が false と評価された場合は無視します。 |
Move
あるディレクトリから別のディレクトリにファイルを移動します。
| Files | File Spec | 省略可能 | 入力ファイルのリストに適用する省略可能のフィルタ。 |
| From | File Spec | 必須 | コピー元のパターン (例:Engine/*.txt)。 |
| To | File Spec | 必須 | コピー先のディレクトリ。 |
| Tag | Tag List | 省略可能 | このタスクのビルド プロダクトに適用するタグ。 |
| If | 条件式 | 省略可能 | このタスクを実行するかどうか。この条件式が false と評価された場合は無視します。この条件式が false と評価された場合は無視します。 |
MsBuild
MsBuild を実行します。
| Project | String | 必須 | コンパイルする C# プロジェクト ファイル。セミコロンを使用して複数のプロジェクト ファイルを指定できます。 |
| Configuration | String | 省略可能 | コンパイルするコンフィギュレーション。 |
| Platform | String | 省略可能 | コンパイルするプラットフォーム。 |
| Arguments | String | 省略可能 | コンパイラに渡す追加省略可能。 |
| Verbosity | String | 省略可能 | MSBuild 出力の詳細。 |
| If | 条件式 | 省略可能 | このタスクを実行するかどうか。この条件式が false と評価された場合は無視します。 |
PakFile
指定した一連のファイルから PAK ファイルを作成します。
| Files | File Spec | 必須 | PAK ファイルに追加するファイルのリスト、ワイルドカード、タグ セット。「;」文字で区切ります。 |
| Output | FileReference | 必須 | 出力する PAK ファイル。 |
| ResponseFile | FileReference | 省略可能 | 個別に指定する代わりの、PAK ファイルに追加するファイルのリストを含む応答ファイルのパス。 |
| RebaseDir | HashSet`1 | 省略可能 | 関連するファイルをリベースするディレクトリ。指定した場合、リストしたディレクトリ配下の、最も短いパスを各ファイルに対して使用します。 |
| Order | FileReference | 省略可能 | ファイルの順序を示すスクリプト。 |
| Sign | FileReference | 省略可能 | この PAK ファイルの暗号化キー。 |
| Compress | Boolean | 省略可能 | ファイルを圧縮するかどうか。 |
| Arguments | String | 省略可能 | UnrealPak に渡す追加の引数。 |
| Tag | Tag List | 省略可能 | このタスクのビルド プロダクトに適用するタグ。 |
| If | 条件式 | 省略可能 | このタスクを実行するかどうか。この条件式が false と評価された場合は無視します。この条件式が false と評価された場合は無視します。 |
Rename
ファイル、またはファイルのグループの名前を変更します。
| Files | File Spec | 必須 | 1 つもしくは複数の、名前を変更するファイル。 |
| From | String | 省略可能 | 現在のファイル名、もしくは一致するパターン (例:*.txt)。パス区切り文字は使用できません。 |
| To | String | 必須 | 1 つもしくは複数のファイルの、新しい名前。パス区切り文字は使用できません。 |
| Tag | Tag List | 省略可能 | 名前を変更したファイルに適用するタグ。 |
| If | 条件式 | 省略可能 | このタスクを実行するかどうか。この条件式が false と評価された場合は無視します。この条件式が false と評価された場合は無視します。 |
SanitizeReceipt
「*.target」ファイルから読み取ることにより、ビルド プロダクトやランタイム依存関係をタグ付けするタスク。
| Files | File Spec | 必須 | セミコロンで区切った、ワイルドカードとタグ名を含む、一連のレシート ファイル (*.target)。 |
| EngineDir | DirectoryReference | 省略可能 | レシート ファイルの $(EngineDir) プロパティを展開するために使用する Engine フォルダのパス。現在のワークスペースの Engine ディレクトリがデフォルトです。 |
| If | 条件式 | 省略可能 | このタスクを実行するかどうか。この条件式が false と評価された場合は無視します。この条件式が false と評価された場合は無視します。 |
SetVersion
指定したバージョン情報でローカル バージョン ファイル (Engine/Source/Runtime/Launch/Resources/Version.h、Engine/Build/Build.version、および Engine/Source/Programs/DotNETCommon/Metadata.cs) を更新します。
| Change | Int32 | 必須 | バージョン ファイルに設定する変更リスト。 |
| CompatibleChange | Int32 | 省略可能 | バージョン ファイルに設定するエンジン互換の変更リスト。 |
| Branch | String | 必須 | Branch 文字列。 |
| Build | String | 省略可能 | ビルド バージョン文字列。 |
| Licensee | Boolean | 省略可能 | IS_LICENSEE_VERSION フラグを true に設定するかどうか。 |
| Promoted | Boolean | 省略可能 | ENGINE_IS_PROMOTED_BUILD フラグを true に設定するかどうか。 |
| SkipWrite | Boolean | 省略可能 | 設定した場合、ファイルに書き込みが行われず、ただ更新されるバージョン ファイルを返します。ローカル ビルドに便利です。 |
| Tag | Tag List | 省略可能 | このタスクのビルド プロダクトに適用するタグ。 |
| If | 条件式 | 省略可能 | このタスクを実行するかどうか。この条件式が false と評価された場合は無視します。この条件式が false と評価された場合は無視します。 |
Sign
インストール済みの証明書で一連の実行可能ファイルに署名します。
| Files | File Spec | 必須 | セミコロンで区切ったファイル仕様のリスト (例: .cpp;Engine/.../.bat)、またはタグ セットの名前 |
| Tag | Tag List | 省略可能 | このタスクのビルド プロダクトに適用するタグ。 |
| If | 条件式 | 省略可能 | このタスクを実行するかどうか。この条件式が false と評価された場合は無視します。この条件式が false と評価された場合は無視します。 |
Spawn
外部の実行可能ファイルをスポーンして完了を待ちます。
| Exe | String | 必須 | スポーンする実行可能ファイル。 |
| Arguments | String | 省略可能 | 新しく作成されたプロセスの引数。 |
| ErrorLevel | Int32 | 省略可能 | エラーとして扱われる最小の終了コード。 |
| If | 条件式 | 省略可能 | このタスクを実行するかどうか。この条件式が false と評価された場合は無視します。 |
Stage
ビルド レシートにリストされているファイルを出力ディレクトリにステージします。
| Project | FileReference | 省略可能 | このターゲットが属するプロジェクト。 |
| Target | String | 必須 | ステージするターゲットの名前。 |
| Platform | UnrealTargetPlatform | 必須 | ステージするプラットフォーム。 |
| Configuration | UnrealTargetConfiguration | 必須 | ステージするコンフィギュレーション。 |
| Architecture | String | 省略可能 | ステージするアーキテクチャ。 |
| ToDir | DirectoryReference | 必須 | レシート ファイルをステージする先のディレクトリ。 |
| Overwrite | Boolean | 省略可能 | 既存のファイルを上書きするかどうか。 |
| Tag | Tag List | 省略可能 | このタスクのビルド プロダクトに適用するタグ。 |
| If | 条件式 | 省略可能 | このタスクを実行するかどうか。この条件式が false と評価された場合は無視します。この条件式が false と評価された場合は無視します。 |
Strip
一連のファイルからデバッグ情報を取り除きます。
| Platform | UnrealTargetPlatform | 必須 | バイナリを除去するプラットフォーム ツールチェーン。 |
| BaseDir | DirectoryReference | 省略可能 | ファイルを検索するディレクトリ。 |
| Files | File Spec | 必須 | セミコロンで区切ったファイル仕様のリスト (例:Engine/.../*.pdb)、またはタグ セットの名前。 |
| OutputDir | DirectoryReference | 省略可能 | 除去されたファイルの出力ディレクトリ。デフォルトは入力パスで、入力ファイルを上書きします。 |
| Tag | Tag List | 省略可能 | このタスクのビルド プロダクトに適用するタグ。 |
| If | 条件式 | 省略可能 | このタスクを実行するかどうか。この条件式が false と評価された場合は無視します。この条件式が false と評価された場合は無視します。 |
Submit
新しい変更リストを作成して、一連のファイルを Perforce ストリームに送信します。
| Description | String | 必須 | 送信する変更リストの説明。 |
| Files | File Spec | 必須 | 送信するファイル。 |
| FileType | String | 省略可能 | 送信するファイルの Perforce ファイル タイプ (例: binary+FS32)。 |
| Workspace | String | 省略可能 | ワークスペースの名前。指定した場合、与えられたストリームとルート ディレクトリを使用して新しいワークスペースを作成し、ファイルを送信します。指定しない場合は現在のワークスペースを使用します。 |
| Stream | String | 省略可能 | ワークスペースのストリームで、デフォルトは現在のストリームです。Workspace 属性も指定していない場合は無視されます。 |
| RootDir | DirectoryReference | 省略可能 | ストリームのルート ディレクトリ。指定しない場合、デフォルトは現在のルート ディレクトリです。 |
| RevertUnchanged | Boolean | 省略可能 | 送信を試みる前に未変更のファイルを元に戻すかどうか。 |
| Force | Boolean | 省略可能 | 問題解決が必要な場合でも強制的に送信する (常に現在のバージョンを受け入れる)。 |
| If | 条件式 | 省略可能 | このタスクを実行するかどうか。この条件式が false と評価された場合は無視します。 |
SymStore
一連のファイルからシンボルを取り除くタスク。
| Platform | UnrealTargetPlatform | 必須 | シンボル ファイルの処理に必要なプラットフォーム ツールチェーン。 |
| Files | String | 必須 | 出力ファイルのリスト。このリストから PDB を抽出します。 |
| StoreDir | String | 必須 | 圧縮したシンボルの出力ディレクトリ。 |
| Product | String | 必須 | シンボル ストア レコードのプロダクト名。 |
| BuildVersion | String | 省略可能 | これらのシンボルに関連付けられた BuildVersion。このバージョンをビルド共有のディレクトリ名と照合することで、AgeStore のクリーンアップに使用します。 |
| If | 条件式 | 省略可能 | このタスクを実行するかどうか。この条件式が false と評価された場合は無視します。この条件式が false と評価された場合は無視します。 |
Tag
指定した一連のファイルにタグを適用します。ファイルのリストは、Files パラメータで指定したタグとファイル仕様を列挙すると見つかります。このリストから、Filter パラメータに一致しないファイルと Except パラメータと一致するファイルがすべて削除されます。
| BaseDir | DirectoryReference | 省略可能 | ベース ディレクトリを設定して、相対パスとパターンを解決します。設定した場合、絶対パターン (例:/Engine/Build/...) がこのパスに相対的であると見なされます。設定しない場合は、本当に絶対パスとして見なされます。 |
| Files | File Spec | 省略可能 | セミコロンで区切ったワイルドカードとタグ名を含む、作業する一連のファイル。設定した場合は BaseDir に関連して解決され、設定しない場合はブランチ ルート ディレクトリに対して解決されます。 |
| FileLists | File Spec | 省略可能 | 追加ファイルを追加する一連のテキスト ファイル。各ファイル リストは、1 行につき 1 つのファイルが必要です。 |
| Filter | File Spec | 省略可能 | タグ名やワイルドカードを含む、ファイルのリストをフィルタ処理するパターン。設定した場合、ベース ディレクトリに適用するパターンを含むことができます。指定しない場合、デフォルトはすべてのファイルです。 |
| Except | File Spec | 省略可能 | 一致リストから除外する一連のパターン。ベース ディレクトリに適用するパターンのタグ名を含むことができます。 |
| With | Tag List | 必須 | 適用するタグの名前。 |
| If | 条件式 | 省略可能 | このタスクを実行するかどうか。この条件式が false と評価された場合は無視します。この条件式が false と評価された場合は無視します。 |
TagReceipt
「*.target」ファイルから読み取ることにより、ビルド プロダクトやランタイム依存関係をタグ付けするタスク。
| Files | File Spec | 必須 | セミコロンで区切った、ワイルドカードとタグ名を含む、一連のレシート ファイル (*.target)。 |
| EngineDir | DirectoryReference | 省略可能 | レシート ファイルの $(EngineDir) プロパティを展開するために使用する Engine フォルダのパス。現在のワークスペースの Engine ディレクトリがデフォルトです。 |
| ProjectDir | DirectoryReference | 省略可能 | レシート ファイルの $(ProjectDir) プロパティを展開するために使用するプロジェクト フォルダのパス。デフォルトは現在のワークスペースの「Engine」ディレクトリです -- 非推奨。 |
| BuildProducts | Boolean | 省略可能 | レシートにリストされているビルド プロダクトにタグ付けするかどうか。 |
| BuildProductType | String | 省略可能 | タグを付けるビルド プロダクトのタイプ (参照:TargetReceipt.cs - 有効な値は UnrealBuildTool.BuildProductType)。 |
| RuntimeDependencies | Boolean | 省略可能 | レシートにリストされているランタイム依存関係にタグ付けするかどうか。 |
| StagedFileType | String | 省略可能 | タグを付けるランタイム依存関係のタイプ (参照:argetReceipt.cs - 有効な値は UnrealBuildTool.StagedFileType)。 |
| With | Tag List | 必須 | 適用するタグの名前。 |
| If | 条件式 | 省略可能 | このタスクを実行するかどうか。この条件式が false と評価された場合は無視します。この条件式が false と評価された場合は無視します。 |
Unzip
ZIP アーカイブからファイルを抽出します。
| ZipFile | File Spec | 必須 | 解凍する ZIP ファイルへのパス。 |
| ToDir | DirectoryReference | 必須 | 抽出したファイルの出力ディレクトリ。 |
| Tag | Tag List | 省略可能 | 抽出したファイルに適用するタグ |
| If | 条件式 | 省略可能 | このタスクを実行するかどうか。この条件式が false と評価された場合は無視します。この条件式が false と評価された場合は無視します。 |
WriteTextFile
ファイルにテキストを書きこみます。
| File | FileReference | 必須 | 書き込むファイルへのパス。 |
| Append | Boolean | 省略可能 | 省略可能。上書きではなく追加するかどうかを指定。 |
| Text | String | 省略可能 | ファイルに書き込むテキスト。 |
| Files | File Spec | 省略可能 | 指定した場合、設定したメッセージの後に指定したファイルのリストを出力します。 |
| Tag | Tag List | 省略可能 | このタスクのビルド プロダクトに適用するタグ。 |
| If | Condition | 省略可能 | このタスクを実行するかどうか。この条件式が false と評価された場合は無視します。この条件式が false と評価された場合は無視します。 |
Zip
ファイルを ZIP アーカイブに圧縮します。
| FromDir | DirectoryReference | 必須 | 圧縮ファイルを読み取るディレクトリ。 |
| Files | File Spec | 省略可能 | セミコロンで区切ったファイル仕様のリスト (例:.cpp;Engine/.../.bat)、またはタグ セットの名前。相対パスを FromDir から取得します。 |
| ZipFile | FileReference | 必須 | 作成する ZIP ファイル。 |
| Tag | Tag List | 省略可能 | 作成した ZIP ファイルに適用するタグ。 |
| If | 条件式 | 省略可能 | このタスクを実行するかどうか。この条件式が false と評価された場合は無視します。この条件式が false と評価された場合は無視します。 |