2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

UE5 エンジン内にマクロを定義する方法

Posted at

概要

今回はエンジン内にマクロを定義する方法を解説します。
マクロを定義する理由は、エンジンを改造する場合にマクロで囲ったほうが、変更箇所を検索できたり、バニラの状態に戻したりできます。
この記事はUE5.3.2の環境で確認しています。

実装

「UEBuildTarget.cs」の「SetupGlobalEnvironment」関数に以下の内容を記述します。

Engine\Source\Programs\UnrealBuildTool\Configuration\UEBuildTarget.cs 5148行
// Begin:Added engine macro
			GlobalCompileEnvironment.Definitions.Add("ENGINE_MODIFY");
// End:  Added engine macro

以下のように改造コードとバニラのコードを分けたりできます。

#if defined(ENGINE_MODIFY)
// Begin:
#else
// End:
#endif

おまけ

シェーダー内にもマクロを定義できるようにしてみましょう。
以下の内容を「ShaderCompiler.cpp」の「GlobalBeginCompileShader」関数に記述します。

Engine\Source\Runtime\Engine\Private\ShaderCompiler\ShaderCompiler.cpp 6838行
#if defined(ENGINE_MODIFY)
// Begin:Add shader macro
	Input.Environment.SetDefine(TEXT("ENGINE_MODIFY"), 1);
// End:  Add shader macro
#endif

以下のように使用できます。

#if ENGINE_MODIFY
// Begin:
#else
// End:
#endif

まとめ

これでエンジン改造ライフが捗りますね。

2
1
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?