モジュール は、Unreal Engine (UE) の構成要素です。このエンジンは多数のモジュールの集合として実装され、ゲームはそれらを補強するために独自のモジュールを提供します。各モジュールは一連の機能をカプセル化し、他のモジュールが使用するパブリック インターフェースおよびコンパイル環境 (マクロ、インクルード パスなど) を提供します。
モジュールは .build.cs
拡張子のついた C# ソース ファイルで宣言され、プロジェクトの Source
ディレクトリに格納されます。モジュールに属する C++ ソース コードは、.build.cs
ファイルの横、またはそのサブディレクトリに格納されます。各 .build.cs
ファイルには、ModuleRules
基本クラスから派生するクラスを宣言し、コンストラクタからのビルド方法を制御するプロパティを設定します。これらの .build.cs
ファイルは、Unreal Build Tool (UBT) によってコンパイルされ、コンパイル環境全体を決定するために構築されます。
.build.cs
ファイルの一般的な構造は次のとおりです。
using UnrealBuildTool;
using System.Collections.Generic;
public class MyModule :ModuleRules
{
public MyModule(ReadOnlyTargetRules Target) : base(Target)
{
// Settings go here
}
}
読み取り用プロパティ
- IsPlugin (Boolean)
True if a Plugin contains this module
- HasPackageOverride (Boolean)
Returns true if there has been an override type specified on this module
- AutoSdkDirectory (String)
The AutoSDK directory for the active host platform
- EngineDirectory (String)
The current engine directory
- PluginDirectory (String)
Property for the directory containing this plugin. Useful for adding paths to third party dependencies.
- ModuleDirectory (String)
Property for the directory containing this module. Useful for adding paths to third party dependencies.
- IsVcPackageSupported (Boolean)
Returns if VcPkg is supported for the build configuration.
読み取り / 書き込み用プロパティ
- 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<Boolean>)
このモジュールの再配布オーバーライド フラグです。
- bLegalToDistributeObjectCode (Boolean)
モジュール上のコード / 依存関係 (CarefullyRedist、NotForLicensees、NoRedist など) がパブリックでない場合でも、このモジュールからの出力を公開配布できるかどうかを指定します。これは、ソース コードではなくバイナリ ファイルのリリースを計画するときに使用します。
- AllowedRestrictedFolders (List<String>)
このバイナリのコンパイル時に制限のあるフォルダ名を伝播せずに参照できるフォルダのリストです。
- AliasRestrictedFolders (Dictionary<String, String>)
エイリアスされた制限付きフォルダ リファレンスです。
- 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 ブロック内の機密情報がエンジンまたはその他の共有コードによって漏洩しないようにするために使用されます。ただし、ライセンシーのゲームコードではこれを許可する場合があります。
- PublicIncludePathModuleNames (List<String>)
モジュールのパブリック ヘッダにアクセスする必要があるヘッダ ファイル付きのモジュール名 (パスは不要) のリストです。「import」やリンクの必要はありません。
- PublicDependencyModuleNames (List<String>)
パブリックな依存関係モジュール名のリストです (パスは不要) (private/public が自動的にインクルードされます)。これらは、パブリック ソース ファイルに必要なモジュールです。
- PrivateIncludePathModuleNames (List<String>)
モジュールのプライベート コードにアクセスする必要があるヘッダ ファイル付きのモジュール名 (パスは不要) のリストです。「import」やリンクの必要はありません。
- PrivateDependencyModuleNames (List<String>)
プライベートな依存関係モジュール名のリストです。これらは、プライベート コードが依存するモジュールです。パブリックなインクルード ファイルは依存しません。
- CircularlyReferencedDependentModules (List<String>)
レガシーなので、新規コードでは使用しません。循環参照として処理されるモジュール依存関係のリストです。このモジュールは、パブリックまたはプライベートの依存関係モジュール リストにすでに追加されている必要があります。
- PublicSystemIncludePaths (List<String>)
system/library のインクルード パスのリストです。通常は外部 (サードパーティ) モジュールに使用されます。これらは、ヘッダの依存関係を解決するときにチェックされないパブリックで安定したヘッダ ファイル ディレクトリです。
- PublicIncludePaths (List<String>)
(「Public」フォルダからすべてのファイルを検索できるので、この設定は現在必要ありません) 他のモジュールに公開されているインクルード ファイルへのすべてのパスのリストです。
- InternalncludePaths (List<String>)
(「'Internal'」フォルダーからすべてのファイルを検出するため、この設定は現在必要ありません。) 他の内部モジュールに公開されているファイルを含めるためのすべてのパスのリストです。
- PrivateIncludePaths (List<String>)
他のモジュールへ公開されていない、このモジュール内部のインクルード ファイルへのすべてのパスのリストです (最低 1 つは 'Private' パスをインクルードしていること。相対パスを避けたい場合は 1 つ以上)。
- PublicSystemLibraryPaths (List<String>)
システム ライブラリ パス (.lib ファイルのディレクトリ) のリストです。通常は外部 (サードパーティ) モジュールに使用されます。代わりに PublicAdditionalLibaries を使用してください。
- PrivateRuntimeLibraryPaths (List<String>)
実行時のライブラリの検索パスのリストです (.so ファイルなど)。
- PublicRuntimeLibraryPaths (List<String>)
実行時のライブラリの検索パスのリストです (.so ファイルなど)。
- PublicAdditionalLibraries (List<String>)
追加ライブラリ (.lib を拡張子にもつファイル名) です。通常は、外部 (サード パーティ) モジュールに使用されます。
- PublicPreBuildLibraries (List<String>)
追加のプレビルド ライブラリのリストです (拡張子を含む .lib ファイルの名前) - 通常はビルド中の追加ターゲットに使用されますが、TargetRules.PreBuildSteps または TargetRules.PreBuildTargets のいずれかを使います。
- PublicSystemLibraries (List<String>)
使用するシステム ライブラリのリストです。通常名前で参照され、システム パスで発見されます。.lib ファイルを参照する場合は、代わりに PublicAdditionalLibraries を使用してください。
- PublicFrameworks (List<String>)
XCode フレームワーク (iOS および MacOS) のリスト
- PublicWeakFrameworks (List<String>)
弱いフレームワーク (OS 版トランジション) のリスト
- PublicAdditionalFrameworks (List<Framework>)
追加フレームワークのリストです。通常は、Mac と iOS に使用されます。
- AdditionalBundleResources (List<BundleResource>)
IOS デバイス (のことを指す場合があるので注意) Mac や iOS 用 バンドルへコピーすべき追加リソースのリストです。
- TypeLibraries (List<TypeLibrary>)
ヘッダの生成に必要なライブラリ タイプのリストです (Windows のみ)。
- PublicDelayLoadDLLs (List<String>)
遅延ロード DLL のリストです。通常は、外部 (サード パーティ) モジュールに使用されます。
- PrivateDefinitions (List<String>)
Private compiler definitions for this module
- PublicDefinitions (List<String>)
Public compiler definitions for this module
- DynamicallyLoadedModuleNames (List<String>)
ランタイム時にこのモジュールが必要とする場合のある追加モジュールです。
- RuntimeDependencies (RuntimeDependencyList)
このモジュールが実行時に依存するファイルのリストです。これらのファイルは、ターゲットとともにステージングされます。
- AdditionalPropertiesForReceipt (ReceiptPropertyList)
Build receipt に追加される追加プロパティ リストです。
- PrecompileForTargets (PrecompileTargetsType)
このモジュールをプリコンパイルする必要のあるターゲットです。
- ExternalDependencies (List<String>)
変更された場合に makefile を無効にする外部ファイルです。相対パスは、.build.cs ファイルを基準にして保存されます。
- AdditionalCodeGenDirectories (List<String>)
生成された interop ファイルを含む外部ディレクトリです。
- SubclassRules (List<String>)
変更された場合に makefile を無効にするサブクラス ルール ファイルです。
- bRequiresImplementModule (Nullable<Boolean>)
このモジュールが IMPLEMENT_MODULE マクロの実装を必要とするかどうかを指定します。ほとんどの UE4 モジュールは、IMPLEMENT_MODULE マクロを使用して他のグローバルなオーバーロードを実行するために必要です (GMalloc にフォワードする new/delete 演算子など)
- CppStandard (CppStandardVersion)
このモジュールのコンパイルに標準で使用します。
- ModuleSymbolVisibility (SymbolVisibility)
記号の可視性を制御します
- Name (String)
このモジュールの名前
- OverridePackageType (PackageOverrideType)
異なるパッケージ フラグを設定するモジュールのタイプをオーバーライドします。プラグインの一部であるモジュールは、すでに
.uplugin
ファイルに設定されているため、使用できません。- OptimizeCode (CodeOptimization)
このモジュールのコードを最適化する必要がある場合に使用します。
- PCHUsage (PCHUsageMode)
このモジュールのプリコンパイル済みヘッダの使用します
- DefaultBuildSettings (BuildSettingsVersion)
デフォルトで使用するエンジン バージョンのビルド設定。
- ShadowVariableWarningLevel (WarningLevel)
シャドウ変数の警告を処理する方法
- UnsafeTypeCastWarningLevel (WarningLevel)
安全でない暗黙の型キャスト警告を処理する方法 (例: double->float または int64 -> int32)
- bUseUnity (Boolean)
Unity ビルドが有効になっている場合、この特定のモジュールが Unity を使用してビルドするかどうかをオーバーライドするために使用できます。これは、BuildConfiguration のモジュールごとの構成を使用して設定されます。
- bLegacyPublicIncludePaths (Boolean)
このモジュールが、「'Public'」フォルダーのルートに関連して、他のモジュールからのインクルードヘッダーを修飾するかどうか。これにより、コンパイラに渡す必要のある検索パスの数が減り、パフォーマンスが向上し、コンパイラのコマンドラインの長さが短縮されます。