My setup is: cube-like character created in-engine deformed using chaos flesh for jiggle. This works but is laggy, so advice is to use ML Deformer to train a model for the jiggle.
Problem: every time I go to add the mesh to the ML Deformer, it gives me a “Skeletal Mesh asset needs to be reimported” error:
Now since this was created in-engine using a primitive shape (box), the ML Deformer doesn’t play nice.
I’ve exported and re-imported the asset, but the issue there is that the faces weren’t welded together, so it breaks the flesh asset CreateTetrahedon step:
But now maddeningly, the ML Deformer is giving the same error as before “Skeletal Mesh asset needs to be reimported”! So I can’t train it.
Is it really the case that the ML Deformer can’t use in-engine modified skeletal meshes? Do I need to recreate the whole welded thing in Blender from scratch? If so, this seems like a huge oversight on Unreal’s part! Unless there is something I’m missing here!
That error means the skeletal mesh asset has no source import data. A mesh built in-engine from a primitive has none, and welding it in the mesh editing tools does not create any. ML Deformer reads the source mesh and the ground-truth cache from that data, so it refuses the asset.
Workaround that keeps the flesh asset working:
In Blender, take the cube, Merge by Distance (Mesh > Clean Up) so the vertices are welded, then check for loose faces and non-manifold edges. This is what Create Tetrahedron needs.
Rig and skin it, export FBX, and import it as a Skeletal Mesh. That gives it import data, so the ML Deformer will accept it.
Rebuild the flesh asset from that imported mesh and re-cache with the Chaos Cache Manager. The geometry cache must match the skeletal mesh’s vertex order and count, so use the same mesh for both.
In the ML Deformer asset, set Skeletal Mesh to the imported one and the Geometry Cache as the ground truth. Then train.
Roundtrip is annoying, but it is the supported path: ML Deformer wants an imported mesh, not an edited in-engine one.
Thanks so much, that did end up working.
Would be a nice update if UE would accept skel meshes created in-engine, e.g. by creating those primitives in the editing tools.
short answer, yes it basically has to come from an fbx. the reimport message is not about the weld, the ml deformer wants a mesh that came through the import pipeline because it rebuilds training data from the imported asset, and a mesh built in the editor from a primitive box has no source file to reimport from.
so the order matters. weld and delete the interior faces in blender before you export, then import that as the skeletal mesh with a skeleton. if you weld after import inside the skeletal mesh editor you end up right back in the state that asks for a reimport.
the tetrahedron step also needs a closed mesh, so no boundary edges and no duplicate verts, and its also worth checking for non manifold edges because welding alone does not fix a split box. once the welded fbx is in, create the flesh asset on it, then create the ml training data and train.
if training is more work than the perf win is worth, chaos cache is the other route, you bake the flesh sim into a cache instead of learning it.