Hello,
I need to import morphs from a non-standard file format to a skeletal mesh. So, knowing nothing about morphs, meshes etc. I decided to hook into FSkeletalMeshImportData:
BaseSkelMesh->SkeletalMesh->LoadLODImportedData(0, BaseImportData);
… add my data there and then commit my changes:
BaseSkelMesh->SkeletalMesh->SaveLODImportedData(0, BaseImportData);
const FOverlappingThresholds Thresholds;
FLODUtilities::BuildMorphTargets(BaseSkelMesh->SkeletalMesh, BaseImportData, 0, BaseImportData.bHasNormals,
BaseImportData.bHasTangents, true, Thresholds);
Works! Easier than I thought… Until I tried to import hundreds of morphs, which seem to import ok, but as soon as I try to set some value to them, I get:
LogOutputDevice: Error: === Handled ensure: ===
LogOutputDevice: Error: Ensure condition failed: DynamicData->MorphTargetWeights.Num() == LODData.MorphTargetVertexInfoBuffers.GetNumMorphs() [File:D:\build++UE5\Sync\Engine\Source\Runtime\Engine\Private\SkeletalRenderGPUSkin.cpp] [Line: 935]
LogOutputDevice: Error: Stack:
LogOutputDevice: Error: [Callstack] 0x00007ffa494ee353 UnrealEditor-Engine.dll!UnknownFunction []
LogOutputDevice: Error: [Callstack] 0x00007ffa494d7383 UnrealEditor-Engine.dll!UnknownFunction []
LogOutputDevice: Error: [Callstack] 0x00007ffa494ed5cc UnrealEditor-Engine.dll!UnknownFunction []
LogOutputDevice: Error: [Callstack] 0x00007ffa49498956 UnrealEditor-Engine.dll!UnknownFunction []
LogOutputDevice: Error: [Callstack] 0x00007ffa494b122a UnrealEditor-Engine.dll!UnknownFunction []
LogOutputDevice: Error: [Callstack] 0x00007ffa494ba87a UnrealEditor-Engine.dll!UnknownFunction []
LogOutputDevice: Error: [Callstack] 0x00007ffa57ad3a9d UnrealEditor-Core.dll!UnknownFunction []
LogOutputDevice: Error: [Callstack] 0x00007ffa57ad3f3e UnrealEditor-Core.dll!UnknownFunction []
LogOutputDevice: Error: [Callstack] 0x00007ffa57ad42e1 UnrealEditor-Core.dll!UnknownFunction []
LogOutputDevice: Error: [Callstack] 0x00007ffa900167fb UnrealEditor-RenderCore.dll!UnknownFunction []
LogOutputDevice: Error: [Callstack] 0x00007ffa9001a1e8 UnrealEditor-RenderCore.dll!UnknownFunction []
LogOutputDevice: Error: [Callstack] 0x00007ffa581a83ab UnrealEditor-Core.dll!UnknownFunction []
LogOutputDevice: Error: [Callstack] 0x00007ffa581a13b0 UnrealEditor-Core.dll!UnknownFunction []
LogOutputDevice: Error: [Callstack] 0x00007ffae3d81474 KERNEL32.DLL!UnknownFunction []
LogOutputDevice: Error: [Callstack] 0x00007ffae4363258 ntdll.dll!UnknownFunction []
LogStats: SubmitErrorReport - 0.000 s
LogStats: SendNewReport - 1.080 s
LogStats: FDebug::EnsureFailed - 1.113 s
LogStats: FPlatformStackWalk::StackWalkAndDump - 0.021 s
So - do I have to call anything else after loading a bunch of morphs this way (note again - loading a single morphs works and I can apply it without a problem!).