9
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

UnrealBuildTool(UBT)の詳細ログを出して動作を調べよう

Last updated at Posted at 2020-04-13

#縁の下の力持ち UBT
UE4のコンパイルを統括しているツールがUnrealBuildToolです。
ビルドが必要か判断してビルドを行ったり、事前処理を自動でやってくれたりいろいろな処理を行っています。

大変重要なツールではありますが、上手く行っているときは縁の下の力持ち的なあまり意識しないくても良いツールでもあります。
しかし場合によっては意図通りに動いてくれないことがあります。

##詳細なログを出して動作を調べよう

標準の設定ではUBTはあまり多くのことをログに出力しませんが、ソースを見てみると結構たくさんログを出力してくれるようになっていることがわかります。

		public UEBuildModuleCPP(ModuleRules Rules, DirectoryReference IntermediateDirectory, DirectoryReference GeneratedCodeDirectory)
			: base(Rules)
		{
			this.IntermediateDirectory = IntermediateDirectory;
			this.GeneratedCodeDirectory = GeneratedCodeDirectory;

			foreach (string Def in PublicDefinitions)
			{
				Log.TraceVerbose("Compile Env {0}: {1}", Name, Def);
			}

			foreach (string Def in Rules.PrivateDefinitions)
			{
				Log.TraceVerbose("Compile Env {0}: {1}", Name, Def);
			}

UBTにもEditorと同じようにVerbosityの設定があり、これを変更することでより詳細なログを出すことができます。
有効化するにはVisualStudioのスタートアッププロジェクト(BlueprintProjectならUE4、C++Projectなら自分のプロジェクト)のプロパティを開きNMake->Build Command Line/ Rebuild Command Line に -Verbose と追記します。

image.png

大量のログが出力されてビルド時間が余計にかかると思いますので、不要な時は消してくださいね。

##追記:もうひとつの方法~Build.batを編集する
上のソリューション中のプロパティにもあるようにビルドはEngine\Build\BatchFiles.Build.batを呼び出すことで起動します。
このバッチファイル中にオプションを加えてしまうことでももちろん詳細ログを得ることが可能です。
以下のようにUBTを起動している行の末尾に -verbose を追加します

Engine\Build\Batchfiles\Build.bat
IF EXIST ..\..\Engine\Binaries\DotNET\UnrealBuildTool.exe (
        ..\..\Engine\Binaries\DotNET\UnrealBuildTool.exe %* -verbose
		popd

		REM Ignore exit codes of 2 ("ECompilationResult.UpToDate") from UBT; it's not a failure.
		if "!ERRORLEVEL!"=="2" (
			EXIT /B 0
9
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?