Cloth physics on only one part of a model?

In unity, i want the straps to have cloth physics applied to them ~ such that gravity, movement, etc all affect the cloth dynamically.

Should I rig the straps as they are attached to the helmet and apply cloth physics there somehow?

Or should i have three game objects: One for the helmet (which would be the parent game object), one for the left strap and one for the right strap, where the individual straps have cloth physics applied and are children of the helmet game object?

2 Replies

In 3DSMax, keep the helmet as a parent for the bones that you will add to the straps. For optimization purposes, try keeping the number of bones minimal, as this is not a major detail, and you don't want it to affect the game performance (imagining a case with several characters in the view at once).

Personally I would keep the straps all one piece (with the helmet separate, meaning 2 pieces), modeled to a neutral stance of being placed upon a character. If you have the humanoid already, model the straps while it is 'on' the model if possible to give it a natural look. (Assuming the humanoid's head doesn't deform in customization of the character, then you have a lot of problems to work through and may need more people to help you. If the texture changes but not the base mesh, fine.)

The main challenge you'll have is when the jaw moves- you want the physics to react in a natural way. If you can actually make the physics properties for whatever method you're using to deform the straps with stretchy, that might work. Depends what you're going for.

So. Now we have two materials (or one if you're uber good at atlas textures?) for two (or one) draw call and physics rendering. You MUST cache the physics if you'll have more than a handful of characters on screen at once. So it's not really dynamic cloth movement (completely unnecessary for such a small detail.) Cached, fine. Uncached dynamic with more than a few chars- probably not.

So you can render the cloth physics and save the outcome, if that makes sense.

If you can just parent the straps as one piece to the helmet and use an optimized cloth physics system (either unity' or from the asset store) that'll do. If it has to be broken up into several pieces to get the look you want, cache, use the same model but flipped (so it only draw calls once for the straps instead of twice) and same materials as much as possible.