Description

BoneList and BoneFilterActionOption in LOD0 of LODSettings are filters by the following code.

void FSkeletalMeshLODSettingsDetails::CustomizeDetails(IDetailLayoutBuilder& LayoutBuilder)
{
...
static const TArray<FName> HiddenProperties = { GET_MEMBER_NAME_CHECKED(FSkeletalMeshLODGroupSettings, BoneFilterActionOption),
                    GET_MEMBER_NAME_CHECKED(FSkeletalMeshLODGroupSettings, BoneList) };
                for (int32 HiddenPropIndex = 0; HiddenPropIndex < HiddenProperties.Num(); ++HiddenPropIndex)
                {
                    TSharedPtr<IPropertyHandle> ChildHandle = LODChildHandle->GetChildHandle(HiddenProperties[HiddenPropIndex]);
                    LayoutBuilder.HideProperty(ChildHandle);
                }
} 

However, it doesn't consider what happens after the item is updated. So the following change will fix this issue.

void FSkeletalMeshLODSettingsDetails::CustomizeDetails(IDetailLayoutBuilder& LayoutBuilder)
{
...
    // add 
    FSimpleDelegate OnSettingsHandleChanged = FSimpleDelegate::CreateSP(this, &FSkeletalMeshLODSettingsDetails::OnSettingsHandleChanged, &LayoutBuilder);
    SettingsHandle->SetOnPropertyValueChanged(OnSettingsHandleChanged);
}
 
// add
void FSkeletalMeshLODSettingsDetails::OnSettingsHandleChanged(IDetailLayoutBuilder* DetailLayoutBuilder)
{
    DetailLayoutBuilder->ForceRefreshDetails();
} 
Steps to Reproduce
  1. Open SKM_Manny
  2. Create LODSettings asset with "Generate Asset" button of LODSettings in Asset Details
  3.  Bonelist of LODGroups/LOD0 does not exist
  4. Add Item to LODGroups with + button

result : Bonelist of LODGroups/LOD0 exist

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-191530 in the post.

0
Login to Vote

Unresolved
ComponentUE - Anim - Runtime
Affects Versions5.2
Target Fix5.5
CreatedJul 31, 2023
UpdatedFeb 15, 2024