グルームキャッシュをHair Cardにて使用した際のクラッシュに関しまして

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

UE 5.7.4 で、公式ドキュメント「Using Groom Caches with Hair」に沿って

https://dev.epicgames.com/documentation/unreal\-engine/using\-groom\-caches\-with\-hair\-in\-unreal\-engine

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 の変形が正しく適用されます。

上記ご確認のほど、よろしくお願いいたします。

こちら再現プロジェクトです

起動レベルが表示されたのち、カメラを引いてCardsのLODを表示するとクラッシュします

グルームキャッシュの指定を外すとクラッシュしません

よろしくお願いいたします

GroomCache.zip(2.07 MB)

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

再現プロジェクトを共有頂きありがとうございました。Groom Cache + Card LOD のクラッシュについて、ご提示いただいた分析(Card LOD 初期化条件に bIsSimulationCacheEnable が欠落、bNeedDeformedPositions への 1 行追加で解消)が修正内容として妥当で、Strands LOD は bNeedGuides に条件が含まれているため正常、Cards 側のみ漏れている状態です。そのため UE-382081 としてバグとして登録させて頂きました。こちらはまだMainでも発生する問題となっております。対応としまして挙げて頂いた修正を取り込んで頂くか、回避策は Card LOD を避けるか Groom Cache 割り当てを外して頂くことになります。詳細なレポートのご共有ありがとうございました。ご不便をおかけしまして恐れ入りますが、どうぞよろしくお願いします。