Description

The new config object is created with the same serialization name as the legacy one "ClothConfigNV", causing the legacy data to be reset prior to migration.

Replacing In UClothingAssetCommon::AddClothConfigs() the line:

UClothConfigBase* const ClothConfig = NewObject<UClothConfigBase>(this, ClothConfigClass, ClothConfigClass->GetFName(), RF_Transactional);

by:

UClothConfigBase* const ClothConfig = NewObject<UClothConfigBase>(this, ClothConfigClass, NAME_None, RF_Transactional);

seems to help but this might not be the best solution moving forward as we then lose the correct serialization name for all new asset files.

Steps to Reproduce
  1. get the UE4.24's ContentExample project from EpicGamesLauncher 2.There is a skeletal mesh called Owen. Duplicate it and create an OwenTest.
  1. Change the values in the cross-configuration of Owen_Coat and save it. For example, change the GravityScale to 3.
  1. Quit the ContentExample project and covert it to 4.25.
  1. Open ContentExample. If you look at OwenTest, you can see that GravityScale is set to 1, which is the default. If you look at OwenTest, GravityScale is now the default 1, or rather, all of the configuration values are the defaults.
Callstack
  1. [Inline Frame] UE4Editor-ClothingSystemRuntimeNv.dll!FVector::{ctor}(float) Line 1242 C++
  2. UE4Editor-ClothingSystemRuntimeNv.dll!UClothConfigNv::UClothConfigNv() Line 39 C++
  3. UE4Editor-CoreUObject.dll!StaticConstructObject_Internal(const UClass * InClass, UObject * InOuter, FName InName, EObjectFlags InFlags, EInternalObjectFlags InternalSetFlags, UObject * InTemplate, bool bCopyTransientsFromClassDefaults, FObjectInstancingGraph * InInstanceGraph, bool bAssumeTemplateIsArchetype) Line 3172 C++
  4. [Inline Frame] UE4Editor-ClothingSystemRuntimeCommon.dll!NewObject(UObject *) Line 1209 C++
  5. UE4Editor-ClothingSystemRuntimeCommon.dll!UClothingAssetCommon::AddClothConfigs() Line 937 C++
  6. UE4Editor-ClothingSystemRuntimeCommon.dll!UClothingAssetCommon::PostLoad() Line 848 C++
  7. UE4Editor-CoreUObject.dll!UObject::ConditionalPostLoad() Line 1067 C++ 

Have Comments or More Details?

There's no existing public thread on this issue, so head over toAnswerHub just mention UE-95633 in the post.

1
Login to Vote

Unresolved
ComponentPhysics - Clothing
Affects Versions4.25
Target Fix4.26
CreatedJul 21, 2020
UpdatedJul 23, 2020