I'm trying to rig a series of bones that follow a curve and stay an equal distance from eachother and have strings that stretch between each segment. The thing that makes this a little complicated is that I only want certain parts to stretch to the curve length, not the whole mesh. The model provided is just a shareable "demo" version of the model I'm rigging. My goal is to make a mechanical arm that functions similarly to the beast cutter from Bloodborne, but much simpler and with exactly 4 segments. I need the resting pose for these segments to be in a "locked" position, like in the video. The gif below is what I got so far.
Each "segment" bone has a copy location constraint set to an "anchor" bone, as well as a damped track constraint that points towards a "pointer" bone. Both the anchor/pointer bones have a follow path constraint with fixed position turned on. The offset factor for the anchor bones are in increments of 0.333 while the pointer bones are set to a lower relative value for the damped track.
When the arm is near its resting pose, it looks great, exactly what I want. But when it's extended, the segments diverge and it no longer follows the curve due to a greater distance between the pointer bone and the segment bone.
Then I need to readjust the offset factor for each pointer bone so that the damped track points the segments along the curve again, then it's back to normal.
But then bringing it back to a bunched up pose causes the bones to work more like the "follow curve" option in the follow path constraint, which is what I don't want because it causes a jagged shape.
Is there a way to make the pointer bone automatically adjust its offset factor to stay at a fixed distance from the segment bone, depending on curve length?
I thought perhaps this could be possible with some driver magic if I were able to use a curve's length as a driver variable. While blender doesn't seem to have a reliable way of doing this, I found a janky workaround here that makes it possible. Unfortunately, I don't know how I could plug this value into a driver to get it to work, or if even having the curve's length is enough to accomplish this.
Below is an illustration of why I don't want to use the "follow curve" option in the follow path constraint. I'd rather the bones point "in the general direction" of the curve, illustrated in the third example.