お世話になります。
UE5.6のStatic Meshインポート時の仕様に関して質問がございます。
現在ゲームプレイ時のメッシュのインポート挙動に関して問題が発生しておりまして
手順として Maya上でGameExporterからStaticMeshをfbx出力。
UE5.6.1の環境でPlay In Editor状況下でコンテンツブラウザからメッシュをインポートしたところ、
Vertices,Triangles,Approx Size などすべて0の空の状態でデータがインポートされるようです。
エディタの再生を止めてからインポートすると頂点など正常な状態で表示されておりました。
また、再生を止めている状態でインポート済みの既存StaticMeshをMaya上で頂点調整し再出力、
同じくPlay In Editor状況下で既存メッシュを再インポートすると
頂点変更後のメッシュの状態が更新されず頂点位置などに変化が全く見られず、
再生を止めてから再インポートすると最新の状態のメッシュが正常にインポートされる状態になっております。
こちらもし設定での回避方法がありましたらご共有いただけますと幸いです。
また、足りない情報等ありましたらご連絡の程宜しくお願いいたします。
確認環境:UE5.6.1
FBXバージョン:FBX2020
Mayaバージョン:Maya2022
備考:メッシュインポート設定はデフォルトで状態確認。
インポート設定刷新後のUE5.5から現象を確認。UE5.4では同現象は見られず。
下記、既に御存知の内容で、Interchangeプラグインでのインポートの解決方法を求められているのかも知れませんが…。
UE5.5から、デフォルトで使用されるFBX等のインポートがInterchangeプラグインに変わっています。
CVarで、[Interchange.Featureflags.import.fbx false]と設定すると、UE5.4までのImporterを使うことができます。
参考までに、下記のラーニングにInterchangeのFBXとLegacyのオプションの比較等があります。
下記、参考になれば良いのですが…。
自分の環境(UE5.6)で現象が再現できるか試してみたところ、(おそらく)再現できて、その際、出力ログに下記のメッセージが出力されていました。
LogStaticMesh: Display: スタティックメッシュをビルド中 cube (推定必須メモリ:0.000 MB)…
LogStaticMesh: Error: Bad MeshDescription on /Game/AAA/cube.cube
EPIC Developer Assistantに、上記のエラーについて確認したところ、下記の回答を得られました(必ずしも正しいとは限りませんが…)。
==========以下、EPIC Developer Assistantの回答================
詳細解説
-
InterchangeのFBXインポートは非同期で進行しますが、PIE中の非同期完了イベントをエディタ側プラグインが確実に待機していないか、完了通知のタイミングがズレている状態が現状報告されています。
-
そのため、メッシュビルドが完了していない段階でゲーム側がメッシュにアクセスし、頂点情報の破損(Bad MeshDescription)が発生します。
-
エディタ内通常モードでは同期的に動作するか、完了待ちが正常に働くため問題が発生しにくいですが、PIEの非同期環境だとこの問題が浮き彫りになります。
現状の最適な対策案
-
非同期インポート完了の明示的な待機処理をユーザー側で実装する
完了コールバックで処理を行い、非同期完了が不安定な場合はリトライまたは遅延処理を加える。
-
PIE中はインポート開始後すぐにメッシュを使用しない
たとえば、FTimerやDelayノード・タイマーで完了の兆候を待つ方法。
-
UEのアップデートやInterchangeプラグインの将来的な修正を注視する
現時点でPIE中のこの非同期完了監理の問題は既知の課題の可能性があり、公式アップデートやパッチに期待。
====================
目的にそえるかわかりませんが、下記のドキュメント中の「ブループリントを使用してアセットをインポートする」では、自分の環境ではプレイ中も正常にインポートできました。