UnrealHeaderToolのPlugin公式サンプルに関して
はじめに
UnrealEngineに置いて、コードジェネレーターとしてUnrealHeaderToolが用意されています。
※以下UHTと略称します
今までのUHTの実装はC++で実装されていましたが、メンテナンスやビルド時間削減などの理由から、UnrealEngine5.1からはC#版が実装されました。
↑のリリースノートでもありますが、公式で唯一用意してあるのはScriptGeneratorUbtPluginになります。
コード生成のPluginを作って見たかったので軽く触れて見ましたのでその備忘録を
C# スクリプト ジェネレータ プラグインのサンプルは「
Engine/Plugins/ScriptPlugin/Source/ScriptGeneratorUbtPlugin
」にあります。さらに、既存のすべての UHT エクスポータは「Engine/Source/Programs/Shared/EpicGames.UHT/Exporters
」と同じメカニズムで作成されています。次に簡単なガイドを示します。
VisualStudioのプロジェクト周りの話
↑が今回の件で調べた内容
-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を有効にする詳細の手順は↑を参照にしてください。
一応流れは書きます
↑の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も同様に出力されるので注意してください。