Using deformer graphs to achieve cloth simulation on meshes with morph targets

For some time I’ve been curious about getting cloth painting+simulation to work on meshes that have morph targets. Currently, by default, cloth simulation does not work on meshes that have morph targets. When the cloth data asset is applied to a mesh’s material zone, it does nothing if the mesh has morphs.

However, I noticed that there is a deformer graph labeled “DG_LinearBlendSkin_Morph_Cloth” in the content examples. The description of this graph says the following:


A plain-face reading of this description makes it seem clear that the graph should support cloth simulation AND morph targets, as it says “All features of those pipelines are supported using this graph.” However, when applying this graph, it allows a mesh with morphs to simulate cloth physics, but the morphs themselves do nothing when applied. So, it’s not a solution to the problem of using morph targets with cloth physics.

My question is, is this intended behavior? Or possibly an oversight? Or am I using the graph wrong somehow, and it does actually do what it says it does?

1 Like

Hi Any luck on this? . you can use partly skinned and partly cloth sim. but i also want to use the morphhs. please let me know

Hey I found this thread through google looking for the same thing.
It doesn’t seem to work at least not out of the box, hoping someone with more experience will reply! :slight_smile:

hey im looking into vertex shaders, skinning and cloth sim mixed, or just using rigid bodys. if you get a solution please post

No solution yet. Vertex shader is one possibility, though it becomes unreasonably complex to manage if you’re dealing with customizable characters with many different body shapes. Splitting clothing into separate zones, simulating one zone and using morphs on the other also doesn’t work that well, since the mesh geometry will easily break when applying morphs.

The best solution in my case would just be to have morphs and cloth physics active at the same time. I’m not a skinning or physics expert, so I don’t know if this is perhaps difficult to implement, hence why there’s no easy solution for this yet. Though from what I understand, this exact thing used to exist in earlier versions of UE4.