ユーザ用ツール

サイト用ツール


ue4:buildsystem

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
ue4:buildsystem [2021/12/21 16:47]
oga [UnrealHeaderTool (UHT) とは]
ue4:buildsystem [2022/03/17 21:58] (現在)
oga [Unity Build]
行 38: 行 38:
 ^ Executor           ^ 説明    ^ ^ Executor           ^ 説明    ^
 | LocalExecutor      | Network を使わずに PC の Local CPU だけでビルドします。並列ビルドしますが、HT が有効な場合すべての Thread が使われないという問題があります。設定で変更可能ですが、デフォルトだと本来の速度よりもビルド速度が落ちているので注意。今はほとんど使われていません。  | | LocalExecutor      | Network を使わずに PC の Local CPU だけでビルドします。並列ビルドしますが、HT が有効な場合すべての Thread が使われないという問題があります。設定で変更可能ですが、デフォルトだと本来の速度よりもビルド速度が落ちているので注意。今はほとんど使われていません。  |
-| ParallelExecutor   | Local CPU 用の新しい Executor で、LocalExecutor よりも高速です。設定不要ですべての CPU core とすべての Thread を使います。  |+| ParallelExecutor   | Local CPU 用の新しい Executor で、LocalExecutor よりも高速です。HyperThreading 対応 CPU 場合、すべてのスレッドを使用するには BuildConfiguration.xml への設定が必要です。  |
 | XGE                | 有料の分散ビルドツール IncrediBuild を install している場合に使用します。CPU/Thread 数に応じたライセンスが必要です。    | | XGE                | 有料の分散ビルドツール IncrediBuild を install している場合に使用します。CPU/Thread 数に応じたライセンスが必要です。    |
 | HybridExecutor     | XGE と同じですが、分散ビルドと同時に Local の CPU も最大限活用します。IncrediBuild のライセンスよりも CPU core 数が多い場合に有効かもしれません。未確認   | | HybridExecutor     | XGE と同じですが、分散ビルドと同時に Local の CPU も最大限活用します。IncrediBuild のライセンスよりも CPU core 数が多い場合に有効かもしれません。未確認   |
行 126: 行 126:
 他のファイルで #include されているかもしれないからです。 他のファイルで #include されているかもしれないからです。
 Unity Build が行われる単位は変化するので、以前はビルドが通っていても再ビルドしたらエラーが出ていて戸惑うこともあります。 Unity Build が行われる単位は変化するので、以前はビルドが通っていても再ビルドしたらエラーが出ていて戸惑うこともあります。
 +
 +Unity Build を無効化してビルドが通るかテストしたい場合は、ビルド時のコマンドラインオプションに -DisableUnity を指定します。
 +(VisualStudio から呼ばれている Build.bat のコマンドラインオプションに指定できます。)
 +
 +または BuildConfiguration.xml でも設定可能です。
 +
 +
  
  
行 134: 行 141:
  
  
 +=== UnityBuild の各種設定 ===
 +
 +UnityBuild はビルド時間を短縮しますが、ビルドするソースコードが肥大しメモリ消費が増えます。
 +特にマルチコア・マルチスレッド CPU で並列ビルドを行う場合はメモリがあふれる可能性があります。
 +
 +コマンドラインオプションではなく、BuildConfigration.xml で無効化したい場合は bUseUnityBuild を使います。
 +
 +また、Unity 化する場合のソースコードのサイズ制限の目安を NumIncludedBytesPerUnityCPP (byte数) で指定できます。デフォルトは 384KB (393216) です。
 +RAM 容量が少なくメモリ不足が発生する場合はサイズを減らしてみてください。
 +
 +<code xml>
 +<?xml version='1.0' encoding='utf-8'?>
 +<Configuration xmlns="https://www.unrealengine.com/BuildConfiguration">
 +    <BuildConfiguration>
 +        <bUseUnityBuild>true</bUseUnityBuild>
 +        <NumIncludedBytesPerUnityCPP>393216</NumIncludedBytesPerUnityCPP>
 +    </BuildConfiguration>
 +</Configuration>
 +</code>
 +
 +
 +
 +
 +
 +==== ビルド速度の調整 ====
 +
 +
 +=== ParallelExecutor のビルドスレッド数 ===
 +
 +ParallelExecutor はすべてのスレッドを使用するとは限りません。
 +最大速度でビルドを行いたい場合は BuildConfiguration.xml への設定が必要です。
 +
 +例えば物理コアが 6個である場合はデフォルトで 6スレッドでビルドが行われます。
 +HyperThreading の 12スレッド分すべて使ってビルドを行いたい場合は、下記のように倍率として 2.0 を設定します。
 +
 +<code xml>
 +<?xml version='1.0' encoding='utf-8'?>
 +<Configuration xmlns="https://www.unrealengine.com/BuildConfiguration">
 + <ParallelExecutor>
 + <ProcessorCountMultiplier>2.0</ProcessorCountMultiplier>
 + </ParallelExecutor>
 +</Configuration>
 +</code>
 +
 +ただし RAM 容量が少ない場合は指定した数だけビルドを走らせることができません。
 +ParallelExecutor は RAM の空き容量によって最大スレッド数を制限しています。
 +
 +UnityBuild は非常にメモリを消費するので、RAM が少ない場合はむやみにビルドスレッド数を増やさないようにしてください。
 +SN-DBS や FASTBuild では RAM 容量に関係なくビルドスレッド数を増やすことができますが、増やしすぎるとスラッシングが発生しビルド速度が著しく低下します。
  
 +RAM が 32GB の場合は、最大でも 8~12 スレッド程度にとどめておくことをおすすめします。
  
  
行 284: 行 341:
 もちろん対応していない Compiler を使うと Engine のビルドではエラーが出ます。 もちろん対応していない Compiler を使うと Engine のビルドではエラーが出ます。
 特定の Module で clang が必要になった場合に、build.cs 内部で指定するのが本来の使い方だと思われます。 特定の Module で clang が必要になった場合に、build.cs 内部で指定するのが本来の使い方だと思われます。
 +
 +
 +==== Windows SDK の選択 ====
 +
 +<code xml>
 +<?xml version='1.0' encoding='utf-8'?>
 +<Configuration xmlns="https://www.unrealengine.com/BuildConfiguration">
 + <WindowsPlatform>
 + <WindowsSdkVersion>10.0.18362.0</WindowsSdkVersion>
 + </WindowsPlatform>
 +</Configuration>
 +</code>
 +
 +
 +
 +
 +==== 有効な分散ビルドの指定 ====
 +
 +<code xml>
 +<?xml version='1.0' encoding='utf-8'?>
 +<Configuration xmlns="https://www.unrealengine.com/BuildConfiguration">
 + <BuildConfiguration>
 + <bAllowXGE>false</bAllowXGE>
 + <bAllowSNDBS>false</bAllowSNDBS>
 + <bAllowFASTBuild>true</bAllowFASTBuild>
 + </BuildConfiguration>
 +</Configuration>
 +</code>
 +
 +
 +| bAllowXGE     | IncrediBuild   |
 +| bAllowSNDBS   | SN-DBS         |
 +| bAllowFASTBuild  | FASTBuild   |
 +
  
  
ue4/buildsystem.1640072844.txt.gz · 最終更新: 2021/12/21 16:47 by oga