いつもお世話になっております。
表題の件となりますが、DataOnlyのBPをInstanced指定で持つアクターをネイティブ化しますと生成されたコードがコンパイルエラーとなってしまいます。
DataOnlyでなくすか、bDontNativizeDataOnlyBPをfalseにすることで問題を回避することが出来ますがご対応頂けますと幸いです。
再現用のプロジェクトを用意しましたので検証にご使用下さい。
再現方法
再現プロジェクト(UE4.21.2で作成したプロジェクトとなります。)
- 添付ファイルを展開後にビルドします
- ビルド完了後プロジェクトを開きメニュー等からパッケージを作成して下さい。
- ネイティブ化コードのビルドフェーズでコンパイルエラーが発生することを確認して下さい。
よろしくお願い致します。
お世話になります。
普段でクックされていないブループリントはコンバートしないようなルールがあります。
Blueprint Nativization Method → Inclusiveに設定すると、デフォルトの処理になります。
その処理を回避するには、できることが二つがあります。
bDontNativizeDataOnlyBPをfalseにするか、
Blueprint Nativization Method → Exclusiveにして、/Game/BP/MyValue_1と/Game/BP/MyValue_2を追加することです。
よろしくお願いします。
ご返答ありがとうございます。
この動作がデフォルト挙動で、設定で回避する必要が有る旨承知しました。
ただ、ネイティブ化済みコードのコンパイルエラーだけでは何が問題になっているかが分かり辛いため、ネイティブコードの生成タイミング等で警告やエラーを出力するような対応を入れて頂くことは可能でしょうか?
お忙しいところ恐縮ですがご検討頂けますと幸いです。
よろしくお願い致します。
お世話になります。
出力を見ると分かりづらい気持ちが分かりますが、
ブループリントはコンパイルではなく、クックの時にネイティブ化になるので、そのタイミングでエラーが表示になります。
それで分かりづらいと思ったら、DataOnlyのブループリントではなく、C++側でUENUMを使うのは推奨です。
よろしくお願いします。
ご返答ありがとうございます。
上記の件承知しました。
ひとまずですが、DataOnlyではない形での運用で進めてみます。
よろしくお願い致します。