ブループリントを C++ にクックする
参照
アンリアル 4.15 がリリースされました!
https://www.unrealengine.com/ja/blog/unreal-engine-4-15-released
C++の勉強になるかと思いブループリントから、C++のソースコードがどのように変換されるか試してみた。
高度なブループリントのネイティブ化
https://docs.unrealengine.com/latest/JPN/Engine/Blueprints/TechnicalGuide/NativizingBlueprints/Advanced/index.html
ブループリント:BP_CookSampleを作成する
コンポーネント、変数、関数が変換されるように設定する
親:Actorのブループリント BP_CookSampleを作成する
コンポーネントにCubeを追加
検索した時に見つけやすい様に、絶対同じ名前にならないように設定した。
変数と関数を追加した。
関数のIN/OUTも設定した。
それぞれ検索に引っかかりやすい名前に設定した。
Nativezにチェックを入れる
- Class Defaults
- Packaging: Nativezにチェックを入れる
Project設定でPackagingのBlueprint Nativization Methodを設定する
CPPに変換されたブループリントを探す
BP_CookSampleで検索すると、BP_CookSample__pf2132744816.cppが見つかった。
そして少し上にプロジェクトパス\Intermediate\Build\Win64\BPCookCPP\Development\BPCookCPP.uhtmanifest
というコマンドがあったので、Intermediateフォルダ配下が怪しかった。
プロジェクトパス\Intermediate\WindowsNoEditor\NativizedAssets\Source\NativizedAssets\Private配下に、BP_CookSample__pf2132744816.cppを発見した
どのように変換されたか確認してみる
関数:ABCDEF
関数名は bpf__巻子名__pfという名前に変換される
引数名は bpp__引数名__pfという名前に変換される
足し算ノードは UKismetMathLibrary::Add_IntInt に変換された
変数名:IndexIndexIndex
指定したブループリントだけ変換する
- プロジェクト設定を開く
- Packagingを選択する
- Blueprint:Blueprint Nativization Method にExclusiveを設定する
- BP_CookSampleを追加する
List Of Blueprint assets to nativizeに追加したブループリントと、以下の2ファイルが出力された
小さいプロジェクトだからわからなかったが、必要なブループリントだけ変換するとビルドが早くなるらしい
- NativizedAssets
- NativizedAssets_Dependencies