Making a poseable character with cloth simulated clothing

Wow I can’t believe it’s been 6 years since I asked this! Luckily, I’m still around, and I know the answers to all this stuff now. @bandages has covered a bunch of things, but I’ll add some more.

Here’s a thread from a couple months ago showing some parts of my current workflow, and clothsim stuff, so take a look at that first.

Here’s some rules of thumb for how I approach things now:

A) If you want decent looking clothing, first you need a decent looking body. Your clothing is going to end up copying weights from, being Surface Deformed to, or colliding with the body. So make sure the body’s deforms are correct, especially on joints like the knees and elbows. You cannot do proper volume preservation in these areas without using a Corrective of some sort, either bones or shapekeys. I recommend DanPro’s excellent rigging videos to see how to set these up, or check out the BlenRig addon which comes with corrective bones.

I recommend the Rigify addon as a good place to start, and then add your own corrective bones at whatever complexity level you need. My current setup uses the deform cage from BlenRig, but rigged with my own modified Rigify setup (my above thread shows autorigpro, but I’ve since switched to rigify.) If you use a deform cage, its much easier to work with the weights, transfer to new characters, etc.

Corrective smooth is a big help but can’t do everything on its own as it can’t create volume, only smooth it out. So it can fix the inside of an elbow or back of a knee, but not the point/kneecap.

B) Once your body is rigged decently, then you can approach clothing. The sort of rigging you need on clothing will depend on its properties:

  • If the clothing is skin tight, put it in the same deform cage as the body and use Mesh Deform. Or use the Surface Deform modifier to attach it either to the body or deform cage. Rigid details may need to be rigged to the armature to stop them from stretching. You can use a vertex group to mix between Mesh Deform and Armature as needed. But note that as of this writing, Surface Deform cannot be controlled with a vertex group. It has been suggested to the creator of it that the option be added, but I think they have a lot of higher priority tasks so who knows if or when that will happen. (EDIT: Surface Deform is getting vertex group option in 2.83!)

  • Baggy clothing (cargo pants, big sweatshirts, skirts) should be given cloth sim in the baggy areas, and then use deform cage or armature for tight areas like waist bands. You can control mixing this with a vertex group in the mesh deform/armature modifier, and with the Pin group in the cloth sim. Cloth sim is harder to use the closer the mesh needs to conform to the surface, so just don’t use it on those areas and you’ll avoid 90% of the collision problems.

  • For clothing that is in between, what you use will depend on the level of accuracy you need. As soon as you introduce cloth sim, your whole workflow changes because you now need to pose the body, and then run the sim to get the cloth into position. So avoid it as much as possible. A lot of clothing (jeans, dress shirts) will have too much volume to behave properly with just surface deform and won’t fit in the body’s deform cage, but doesn’t really have enough bagginess to necessarily need cloth sim (depending on level of detail/realism of course. At full realism everything should be all cloth sim.)

  • Surface Deformed or Mesh Deformed clothing will get strange results if the volume of the clothing is too different from the volume of the deform object. To help with this, you can make an instanced copy of the deformer (which is presumably armature rigged) then expand its volume with the Displace modifier.

  • Don’t be afraid to add new bones for specific parts of clothing. You may find that you use Mesh Deform for most of it, but then want to add bones to control shirt tails, sleeve cuffs, or other areas that will need to move differently from the body.

  • Be warned that Surface Deform can have errors when trying to bind to certain meshes, and sometimes creates artifacts (jagged areas), especially on high res meshes. Don’t rely on it too much. When it works that’s great, but always have a backup plan to use another rigging method because sometimes it just won’t work, and there’s very little you can do about it. Hopefully it’ll get improved in the future.

C) Cloth Sim itself was not in a good place back when I asked the original question 6 years ago. Getting it to work on a full outfit on a moving body was very difficult as it was slow, prone to errors, and generally clunky. I gave up and for years did all my cloth sim in Marvelous Designer which is great for cloth, but introduces a huge amount of problems with import/export and not being able to change your mesh. But now in 2.8, cloth has gotten a HUGE upgrade and is now wonderful to work with. It’s much faster, more reliable, and the parameters are less cryptic. Now is a great time to start using it.

You can sim a whole outfit, or you can sim just a small part, such as the area behind the knee on jeans where you want wrinkles. Meanwhile, the rest of the leg is rigged with other methods. (Or you can use TensionMap and displace on those areas) Some things to note though:

  • Cloth sim only works well on meshes without thickness. If you are following the usual workflow of a solidify+subsurf on your mesh, make sure your cloth modifier is above them. If your mesh must have the volume, then you need to make a simpler version of the mesh that doesn’t have volume to be the sim mesh, and then attach your detail mesh to it with Surface Deform. In the event that Surface Deform artifacts, then solidify+displace modifier the sim mesh into a deform cage around the detail mesh. The usual workflow would be to create your basic shape with optimized topology, then copy it and add details with whatever topology you need for them.

  • Cloth sim likes evenly spaced vertices. That usually means a quad mesh, but it can also mean evenly spaced triangles. Its the vertex density that matters, not if its actually tries or quads. See the excellent Garment Tool addon($$) for a way to make clothing in blender with clean topology, or be prepared to retopologize by hand if you are box modeling or sculpting.

  • For cloth to give realistic results, you need realistic amounts of it. A garment can be modeled to look correct visually, but then have insufficient cloth in certain areas to achieve other poses. This is why pattern based modeling, such as shown in Garment Tool or Marvelous Designer, is a good idea. If you both model or sculpt you can easily end up with clothing that isn’t dynamic.

  • You can add cloth sim after an armature/deform on a mesh so that you can still give your outfit a rough pose, and then sim it. This works fine if you are just going to pose a model and then drop the clothing with cloth sim. But if you are posing it into position (more realistic) then you need to use vertex groups so that the mesh is effected by either the rig or the sim, not both. If both are on, then you’ll be getting the movement from the rig added to your cloth sim each frame, which will often give strange results (more noticeable at higher levels of complexity.) Note that since regular rigging methods all work by moving vertices, they stretch faces, and so actually change the amount of cloth present. So running a sim after them can be unrealistic (but probably not enough to matter in most cases.)

  • While cloth sim is great now, the other physics options in Blender have not changed in 2.8. Soft bodies is very slow. Rigid bodies are okay as they got some upgrades a few years back.

  • You don’t necessarily need to use the same tools to model cloth as you do to sim it into shape. The Modeling Cloth addon provides its own cloth system separate from the regular blender one with an alternative workflow and its own set of pros/cons.

Anyhow, that’s probably enough info for now. If anyone wants more details/examples, just ask.

11 Likes