Rope between 2 moving points - in a rig

Hi there!

I’ve created the rig of a seahorse for a video game. The seahorse can move on a coral between two branches, controlled by a player:

  1. Animation:

  2. Rig (simplified):

As you can see, the upper tail part has an IK-constraint and the lower tail part has an spline IK-constraint. When moving the control-object, the lower tail part “unwinds” and the upper tail part bends correctly.

But I don’t like the resulting movement of the upper tail part. It has some too quick rotations and it’s too rigid, as you can see in the video. I want the upper tail part to behave like a rope! A rope without gravity. When moving the control-object, I don’t want the complete upper tail part to instantly move but to be pushed aside step by step - like a rope.
I found a few techniques simulating a physically correct rope in Blender (cloth-physics, soft body, curve + hooks with parented rigid body-objects, bones + limit distance- and track to-constraints, MagicRopes by Roubal), but I just can’t figure out how to implement such a rope-simulation in my rig, where both ends of the rope are constantly moving (=torso and control-object)! At all these physics-based ropes I can only move one end of the rope or both at the same time, or just vertices, which isn’t useful at all.

I’ve been really struggling with this now. Please help me! :slight_smile: I don’t have to use physics, but this seems to be the best looking solution for me.

See my project-file below. The rig is a bit more complicated as described (the complete main rig uses a spline IK with hooks; the empties of the upper tail part are children of a second rig with IK). To see what’s going on: Alt+H, unparent the seahorse-mesh from the rig and change to octahedral-bones. The control-object of the tail is called “Schwanz_Control.001”. Just skip all the keyframes and play with the control-object by yourself. Always use layer 1.


Seahorse Rig.blend (10.8 MB)