[UE5.5.4] Groom validation fails when Strands are present but unused

Unreal Engine 5.5.4 introduces GroomComponent validation between the Groom asset and Binding asset via GHairStrands_GroomBindingValidationOnComponent (command line : r.HairStrands.GroomBindingValidationOnComponent)

We are seeing a Validation failure with assets that have Strands data but are set to use Cards for LOD 0.

The failure occurs here:

// Check strands
if (bValid && GroomResources.Strands.IsValid())
{
bValid = bValid && BindingResource.RenRootResources && BindingResource.RenRootResources->GetLODCount() > 0;
}

There appears to be logical mismatch between InitResources, which only allocates RenRootResources if Strands are enabled vs Validation, which tests for RenRootResources if Strands simply exist.

In our tests, enabling Strands instead of Cards at LOD0 did cause Validation to succeed. However, the Validation logic still appears to be incorrect.

Thanks!

  • Kelson Gist