How do I use joints to make floppy physics hair on a character?

What joints do I use to get basic floppy hair strands on a character controlled by the user?

I have a character with modeled hair strands in the mesh and bones with weight maps for the hair strands, and I would like physics of the user controlled movement of the character’s head to make the hair strands flop about (dependent on momentum of the head of the character).

Preferably, I would also like some form of collision detection of the hair strand to the head, or instead constraints/limits on the amount the bones can rotate and rest at so the hair strand doesn’t intersect with the head. These could be springy or floppy like a rag doll. I just want some secondary automatic motion to my character.

To this end instead of working with my complex rig, and since I can’t find any good joint tutorials which are similar, I’ve created a test scene with a ball for a head and 2 scaled cubes for hair strands - all of them are connected using nulls/empty game objects so the pivots are in the right places, so that I can understand the mechanics of this in a clear fashion.

alt text

Given this scene above and assuming I have a script which lets me move the head/ball in any direction and position, what components do I add to which and which settings do I need to set to get this effect? I’ve played with this for awhile and can’t seem to get anywhere.

I effectively only want gravity on the hair not on the character, because I am manually positioning the character in space with my controller script.

Thanks for any help :slight_smile:

You should give SkinnedCloth a try for hair. It works very well and is quite easy to tweak for a satisfying result.

It’s not really clear from what you’ve posted, but have you tried using a Hinge Joint?

It seems that you could achieve what you’re after with one of these if you give it an appropriate Spring value.