構造体のハード参照先がGameFeaturesプラグイン内であるUScriptStructがnullになります

現在開発中のタイトルでは、DataTableを用いてパラメータ管理を行っています。DataTableはベースゲーム側に定義されています。そのDataTableの中でUScriptStructを使って構造体を指定する形でパラメータ管理している箇所があります。この構造体は別なプラグイン(GameFutures内のShooterCoreのような)のソースコードの構造体を指定している場合があり、またハード参照となっています。

このような構成の場合、プラグインのロードの前にDataTableがロードされ、プラグインがまだ存在しないためにUScriptStructがnullの状態となります。

UEエディタ上はエディタ立ち上げた後のアセットロード後にリロードすることによってこの不具合を回避していますが、パッケージビルドでは出来たらリロードは避けたいと考えています。

これに関する情報、もしくは回避方法がありましたらご教示いただけると大変助かります。

何卒宜しくお願い致します。

  • UEエディタ上はエディタ立ち上げた後のアセットロード後にリロードする

とありますが、リロードをしないようにしたら、UEエディタでも同様の現象が発生します。またGameFuturesのプラグインの.upluginの「LoadingPhase」を一番早い設定しても問題の解消には至りませんでした。

追記です。

開発中のタイトルはUDeveloperSettingsからの派生クラスを使ってゲーム用初期設定を行っていますが、そこでDataTableのハード参照(FDataTableRowHandle)を使ってDataTableを指定しています。これがUEエディタやパッケージビルドの起動直後にDataTableをロードする要因となっていると認識しています。DataTableをソフト参照する構造体は無さそうですので、オリジナルでそれを作るのも検討しています。

こちらの件ですが、解決できました。以下のように対処しました。

  • UDeveloperSettings(の派生クラス)で設定していたDataTableのハード参照を全て別なDataAssetに移し、そのDataAssetをソフト参照するようにしました。
  • メインのモジュールの開始関数(StartModule)で、必要なプラグインのモジュールを明示的にロードし、その後にさきほどのDataAssetをロードするようにしました。

この質問についてはクローズしていただいて問題ありません。

何卒宜しくお願い致します。

お世話になっております。

回答が遅くなり大変申し訳ありません。

解決できたと聞き、安心いたしました。

それではお言葉に甘えて、本件はCloseとさせていただきます。

以上、よろしくお願いいたします。