UnrealHeaderToolのPlugin公式サンプルに関して

はじめに

UnrealEngineに置いて、コードジェネレーターとしてUnrealHeaderToolが用意されています。

※以下UHTと略称します

 

今までのUHTの実装はC++で実装されていましたが、メンテナンスやビルド時間削減などの理由から、UnrealEngine5.1からはC#版が実装されました。

docs.unrealengine.com

 

↑のリリースノートでもありますが、公式で唯一用意してあるのはScriptGeneratorUbtPluginになります。

コード生成のPluginを作って見たかったので軽く触れて見ましたのでその備忘録を

C# スクリプト ジェネレータ プラグインのサンプルは「Engine/Plugins/ScriptPlugin/Source/ScriptGeneratorUbtPlugin」にあります。さらに、既存のすべての UHT エクスポータは「Engine/Source/Programs/Shared/EpicGames.UHT/Exporters」と同じメカニズムで作成されています。次に簡単なガイドを示します。


VisualStudioのプロジェクト周りの話

libcpp.hatenablog.com

↑が今回の件で調べた内容

-ALLPLATFORMS等を指定するとPrograms/UnrealBuildTool.Pluginsフォルダが追加されます。

そこでScriptGenreratorUbtPlugin.ubtpluginを見れるようになります。

配布版のビルドをDLしただけだと、UHTのPluginのバイナリは存在しません。

手動でビルドをする必要があります。

出力先は下記のフォルダに出力されます。

C:\Program Files\Epic Games\UE_5.1\Engine\Binaries\DotNET\UnrealBuildTool\Plugins\ScriptGeneratorUbtPlugin

Luaの有効化に関して

"C:\Program Files\Epic Games\UE_5.1\Engine\Plugins\ScriptPlugin\Source\Lua\README.txt"

LuaのGenreratorを有効にする詳細の手順は↑を参照にしてください。

一応流れは書きます

www.lua.org

↑のLuaの公式サイトからLua5.3をダウンロードして解凍してください。

C:\Program Files\Epic Games\UE_5.1\Engine\Plugins\ScriptPlugin\Source\Lua

↑のフォルダに解凍したフォルダをコピーしてください

下がコピーしたディレクトリのイメージ(ビルド後なので分かり難いですが..

Lua.slnを開いて、x64+Debug,x64+Relesaeビルドを両方行う

上記をするとLuaジェネレーターが動作するようになります。

 

Luaソースコードジェネレーターの出力に関して

C:\Program Files\Epic Games\UE_5.1\Engine\Plugins\ScriptPlugin\Intermediate\Build\Win64\UnrealEditor\Inc\ScriptPlugin\UHT

上記のフォルダに出力を行われます。

Project側のUObjectも同様に出力されるので注意してください。