UnrealEngine

ブループリントを C++ にクックする #UE4Study

More than 1 year has passed since last update.


ブループリントを 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を作成する

image

コンポーネントにCubeを追加

検索した時に見つけやすい様に、絶対同じ名前にならないように設定した。

image

変数と関数を追加した。

関数のIN/OUTも設定した。

それぞれ検索に引っかかりやすい名前に設定した。

image


Nativezにチェックを入れる


  1. Class Defaults

  2. Packaging: Nativezにチェックを入れる

image


Project設定でPackagingのBlueprint Nativization Methodを設定する


  1. プロジェクト設定を開く

  2. Packagingを選択する

  3. Blueprint:Blueprint Nativization Method にInclusiveを設定する
    image

Windows(64bit)でパッケージング

image

outフォルダを作成して、OK

image


CPPに変換されたブループリントを探す

出力先を調べたが、何処にも見つからない

image

ビルドのログをテキストエディタにコピーする

image

BP_CookSampleで検索すると、BP_CookSample__pf2132744816.cppが見つかった。

そして少し上にプロジェクトパス\Intermediate\Build\Win64\BPCookCPP\Development\BPCookCPP.uhtmanifest

というコマンドがあったので、Intermediateフォルダ配下が怪しかった。

image

プロジェクトパス\Intermediate\WindowsNoEditor\NativizedAssets\Source\NativizedAssets\Private配下に、BP_CookSample__pf2132744816.cppを発見した

image

ヘッダもPublicフォルダに変換されていた。

image


どのように変換されたか確認してみる

コンポーネント:CubeCubeCube

image

関数:ABCDEF

関数名は bpf_巻子名pfという名前に変換される

引数名は bpp
引数名_pfという名前に変換される

足し算ノードは UKismetMathLibrary::Add_IntInt に変換された

image

image

変数名:IndexIndexIndex

変数名は bpv__変数名_pfという名前に変換された

image


指定したブループリントだけ変換する

BP_CookSample以外にも変換されている

image


  1. プロジェクト設定を開く

  2. Packagingを選択する

  3. Blueprint:Blueprint Nativization Method にExclusiveを設定する

  4. BP_CookSampleを追加する

image

Windows(64bit)でパッケージング

image

List Of Blueprint assets to nativizeに追加したブループリントと、以下の2ファイルが出力された

小さいプロジェクトだからわからなかったが、必要なブループリントだけ変換するとビルドが早くなるらしい


  • NativizedAssets

  • NativizedAssets_Dependencies

image