Jointed Tail Problems

Hey thar, I’m trying to make some procedural animations for a tail so that it will move around through physics, but can still be edited through script (to allow wagging or different postures). Trouble is that I’m having some issues with this which I’m struggling to work around.

So far I’ve been trying joints, through which I am attaching a chain of three tail bones. These work fairly well, but only when the character remains still. Any movement causes unnatural behaviour, such as jittering, twisting (tails obviously don’t rotate that way) and, more annoyingly, a slight stretching effect (which I’ve noticed other people had issues with in the forums, but to my knowledge never got a satisfactory explanation). The stretch isn’t all that much in itself, but it’s a cumulative problem, and so after about two minutes of gameplay you end up with a tail that looks like someone’s stuck a lamp-post up the poor thing’s arse.

So, one theory of mine is that it might be some kind of discrepancy between Update and LateUpdate causing it, as the effect appears lessened when you fiddle with the physics timesteps and suchlike.

Anyhoo, I know it’s possible, as I’ve seen this used to good effect in games such as Jetpack Brontosaurus. I’m just confused as to what I’m not doing right, or if this just isn’t the correct technique for doing it. The twisting is likely just a product of me setting up the joint incorrectly from what I can gather, so any pointers on that front would be great too.

So yeah, any input or suggestions are gladly accepted! Cheers guys!

You can lock the z axis rotation on the bones through script to kill the rotation around the tail. An idea to solve the physics may be to have RigidBody objects attached via SpringJoint that are attached to an object childed to the base spine bone to follow the characters tail around. Then use a LookAt script to have each bone lookAt its respective SpringJointed target. They should bob around but be constrained by the spring and the tail will have the look of physics occurring. When it’s time to wag just turn off LookAt and turn it back on when you want the physics look again. Kind of a semi-IK. The object containing the semi-IK targets can be animated to rotate so the physics can still occur left, right, up or down.

HTH
Bluster T

Sorry about the late reply, I didn’t want to go giving feedback until I’d properly tried out what you suggested. Anyway, I’ve sorted the z axis rotation and had a good go at the spring joint idea too. I must say it actually works better than I’d have expected! Just needs a bit of tweaking of various values now. Thanks!

oh boy, I feel I found the answear for my troubles, but I am a newbie and can’t understand all you are saying haha. Any new info about this tail joints matter? thank you!