お世話になっております。
USE_XXXのなかに UCLASS, UFUNCTION, UPROPERTY定義があると コンパイルエラーとなる
参考にされたリンクでSteaveが述べていますようにUHTで認識可能なプリプロセッサに制約があるため、該当するPropertyのエラーは解決できません。よってこのルールを前提に定義を考慮して設計して頂く必要がございます。
プラグインで用意されたBlueprintで参照できる要素を利用すると プラグインを導入していないときは存在しないので当然エラーとなる
残念ながらこちらも回避できないエラーです。BlueprintNodeのT3Dデータにあるpluginのスクリプトまでのリンクを元に構築しているため、pluginオフの状態となっている場合はリンクからの読み込み出来ないためエラーとなります。pluginで定義されたモジュールを呼ぶためのラップ関数をC++側で用意してその中でpluginが定義されていない時(USE_XXXがoffなど)は無効時の処理をするように定義することでBlueprintでのエラーは回避できますが、全てのラッパーを用意する必要があり、呼び出しコストも増えるので、この方法はあまり効率的ではないですが…。
最初の対応も適切かどうかまようところがあるため、よい方法がありましたらアドバイスいただけますと大変助かります。
最初に記述頂いたPublicDefinitions.Addで定義を追加する方法は、Engine側でも同じような方法を利用していますので適切なように思います。実際には定義の0/1を切り替えるだけなので殆ど同じです。
よろしくお願いします。