モジュールは、UE4 の構成要素です。このエンジンは多数のモジュールの集合として実装され、ゲームはそれらを補強するために独自のモジュールを提供します。各モジュールは一連の機能をカプセル化し、他のモジュールが使用するパブリック インターフェースおよびコンパイル環境 (マクロ、インクルード パスなど) を提供します。
モジュールは .build.cs 拡張子のついた C# ソース ファイルで宣言され、プロジェクトの Source ディレクトリに格納されます。モジュールに属する C++ ソース コードは、.build.cs ファイルの横、またはそのサブディレクトリに格納されます。各 .build.cs ファイルには、ModuleRules 基本クラスから派生するクラスを宣言し、コンストラクタからのビルド方法を制御するプロパティを設定します。これらの .build.cs ファイルは、UnrealBuildTool によってコンパイルされ、コンパイル環境全体を決定するために構築されます。
.build.cs ファイルの一般的な構造は次のとおりです。
using UnrealBuildTool;
using System.Collections.Generic;
public class MyModule :ModuleRules
{
public MyModule(ReadOnlyTargetRules Target) : base(Target)
{
// Settings go here
}
}
読み取り / 書き込み用プロパティ
$ Type (ModuleType):モジュールのタイプです
$ BinariesSubFolder (String):DLL のビルド時にこのモジュールを配置するための「Binaries/PLATFORM」フォルダのサブフォルダです。これは、TargetPlatform モジュールや ShaderFormat モジュールなど、検索で見つかったモジュールでのみ使用できます。FindModules を使用してモジュールを追跡しないと、これらのモジュールは見つかりません。
$ PrivatePCHHeaderFile (String):このモジュールの明示的なプライベート PCH です。これは、このモジュールが共有 PCH を使用しないことを意味します。
$ SharedPCHHeaderFile (String):このモジュールが提供する共有 PCH のヘッダ ファイル名です。パブリック C++ ヘッダ ファイルへの有効な相対パスである必要があります。これは、他の多数の C++ モジュールにインクルードされているヘッダ ファイルに対してのみ設定します。
$ ShortName (String):このモジュールの中間ディレクトリおよび中間ファイルの代替名を指定します。パスの長さの制限に対処する場合に便利です。
$ bTreatAsEngineModule (Boolean):このモジュールをエンジン モジュールとして扱うかどうか (例 : エンジン定義、PCH、DebugGame コンフィギュレーションで有効になっている最適化でコンパイルされたものなどを使用します) を指定します。作成元のルール アセンブリに基づいてデフォルトに初期化します。
$ bUseRTTI (Boolean):ランタイム型情報を使います。
$ bUseAVX (Boolean):サポートしているSSE または AVX 組み込みを使用するかどうか AVX 命令を生成するようにコンパイラに指示します。これを有効にすることで、PC プラットフォームのスペックが変更され、結果として生じた実行ファイルは AVX サポートがないとマシン上でクラッシュします。
$ bEnableBufferSecurityChecks (Boolean):バッファ セキュリティ チェックを有効にします。重大なセキュリティ リスクを回避するため、通常は有効にします。
$ bEnableExceptions (Boolean):例外処理を有効にします。
$ bEnableObjCExceptions (Boolean):objective C 例外処理を有効にします。
$ bEnableUndefinedIdentifierWarnings (Boolean):#if 表現式で定義されていない識別子を使用した場合に出す警告を有効にします。
$ MinSourceFilesForUnityBuildOverride (Int32):unity ビルド前のこのモジュール内のソース ファイルの数は、そのモジュールに対してアクティブになります。-1 以外に設定すると、MinGameModuleSourceFilesForUnityBuild に制御されるデフォルト設定値をオーバーライドします。
$ MinFilesUsingPrecompiledHeaderOverride (Int32):「0」以外の場合、BuildConfiguration.MinFilesUsingPrecompiledHeader をオーバーライドします。
$ bBuildLocallyWithSNDBS (Boolean):モジュールは #import を使うので、SN-DBS を使ったコンパイルはローカルにビルドされます。
$ IsRedistributableOverride (Nullable
$ bLegalToDistributeObjectCode (Boolean):モジュール上のコード / 依存関係 (CarefullyRedist、NotForLicensees、NoRedist など) がパブリックでない場合でも、このモジュールからの出力を公開配布できるかどうかを指定します。これは、ソース コードではなくバイナリ ファイルのリリースを計画するときに使用します。
$ WhitelistRestrictedFolders (List
$ AliasRestrictedFolders (Dictionary
$ bEnforceIWYU (Boolean):PCHUsage を ExplicitOrSharedPCH に設定すると、「include-what-you-use」ルールが実行され、単一のブロック ヘッダ (「Engine.h」、「UnrealEd.h」など) が使用されると、警告が表示されます。また最初にソース ファイルに一致するヘッダがインクルードされているかどうかを確認します。
$ bAddDefaultIncludePaths (Boolean):モジュールにデフォルトのインクルード パスをすべて追加するかどうかを指定します (例 : 「Source/Classes」フォルダ、「Source/Public」の下のサブフォルダ)。
$ bIgnoreUnresolvedSymbols (Boolean):モジュールのダングリング (解決していない外部など) 記号を無視するかどうかを指定します。
$ bPrecompile (Boolean):このモジュールをプリコンパイルするかどうかを指定します。デフォルトは、ターゲットの bPrecompile フラグです。モジュールがプリコンパイルされないようにするには、このフラグをクリアします。
$ bUsePrecompiled (Boolean):このモジュールでプリコンパイルされたデータを使用するかどうかを指定します。インストールされたアセンブリから作成されたモジュールの場合は、常に true です。
$ bAllowConfidentialPlatformDefines (Boolean):このモジュールが PLATFORM_XXXX 形式の定義を使用できるかどうかを指定します。XXXX は機密プラットフォーム名です。これは、#if PLATFORM_XXXX ブロック内の機密情報がエンジンまたはその他の共有コードによって漏洩しないようにするために使用されます。ただし、ライセンシーのゲームコードではこれを許可する場合があります。注記:将来的には、以前の機密プラットフォーム (PS4と同様) が制限される可能性は低いです
$ PublicIncludePathModuleNames (List
$ PublicDependencyModuleNames (List
$ PrivateIncludePathModuleNames (List
$ PrivateDependencyModuleNames (List
$ CircularlyReferencedDependentModules (List
$ PublicSystemIncludePaths (List
$ PublicIncludePaths (List
$ PrivateIncludePaths (List
$ PublicSystemLibraryPaths (List
$ PrivateRuntimeLibraryPaths (List
$ PublicRuntimeLibraryPaths (List
$ PublicAdditionalLibraries (List
$ PublicPreBuildLibraries (List
$ PublicSystemLibraries (List
$ PublicFrameworks (List
$ PublicWeakFrameworks (List
$ PublicAdditionalFrameworks (List
$ AdditionalBundleResources (List
$ TypeLibraries (List
$ PublicAdditionalShadowFiles (List
$ PublicDelayLoadDLLs (List
$ PrivateDefinitions (List
$ PublicDefinitions (List
$ DynamicallyLoadedModuleNames (List
$ RuntimeDependencies (RuntimeDependencyList):このモジュールが実行時に依存するファイルのリストです。これらのファイルは、ターゲットとともにステージングされます。
$ AdditionalPropertiesForReceipt (ReceiptPropertyList):Build receipt に追加される追加プロパティ リストです。
$ PrecompileForTargets (PrecompileTargetsType):このモジュールをプリコンパイルする必要のあるターゲットです。
$ ExternalDependencies (List
$ AdditionalCodeGenDirectories (List
$ SubclassRules (List
$ bRequiresImplementModule (Nullable
$ CppStandard (CppStandardVersion):このモジュールのコンパイルに標準で使用します。
$ ModuleSymbolVisibility (SymbolVisibility):記号の可視性を制御します