お世話になっております。
UE 5.7.4 で、公式ドキュメント「Using Groom Caches with Hair」に沿って
Groom Cache(Guides cache)を Card Mesh LOD(Guide-Based)と組み合わせて
再生すると、Card LOD に切り替わった瞬間にアサート落ちします。
クラッシュ箇所:
GroomManager.cpp:2011
check(InstanceData.CardInstance->Guides.RestResource);
原因:
GroomComponent.cpp の Card LOD 初期化条件(行 3219 付近)に
bIsSimulationCacheEnable が含まれていないため、Groom Cache のみで
シミュレーションが駆動されるケースで Card LOD の Guides.RestResource が
未確保のまま GroomManager 側のチェックに到達します。
Strands LOD 側(GroomComponent.cpp 行 3009 付近、bNeedGuides)では
bIsSimulationCacheEnable がちゃんと条件に入っており、Strands は正常動作します。
Cards 側だけ条件式から漏れている状態です。
修正案(1行追加):
bNeedDeformedPositions の条件に
|| HairGroupInstance->HairGroupPublicData->bIsSimulationCacheEnable
を追加すれば、こちらの環境ではクラッシュは解消し、Card LOD にも
Groom Cache の変形が正しく適用されます。
上記ご確認のほど、よろしくお願いいたします。