LoginSignup
8
8

More than 5 years have passed since last update.

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

Posted at

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

8
8
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
8
8