Spring connected to two swinging spheres. How to make both ends of spring follow

now this is a bit upsetting. I have moderate experience with armatures, but now…
I want to create a nice model explaining oscillation and waves.
So two Spheres hanging on springs, swinging up and down. So far so good.
Enter the spring between both spheres. Connecting both. How do I rig that?
So that each end of the spring follows the sphere it is connected to - thus rotating
AND scaling the spring?
Forget the scaling: Is one bone parented to the spring enough and how do I do IK to both ends of the bone?
This might be a RTFM thing but sorry - haven’t found the clue yet.


FederOszillator.blend (678 KB)

Don’t need to be using 3 armatures to do this, 1 is enough, keep it simple, and IK isn’t needed for this.

Combine the 3 armatures into one with ctrl-J in object mode with all three selected. Now the middle bone needs a bit of adjustment, it’s root and tip need to match that of the smaller bones exactly. Select just the tip of the smaller bone on the left, in edit mode, and shift-s -> cursor to selected. Select the root of the middle bone and shift-s -> selection to cursor to fix. Repeat for the other end of the middle bone. Make the middle bone a connected child of the bone on the left. Add a child-of constraint to the bone on the left, targeting the ball mesh object. When I did this with your file, the bone jumped away from the sphere, to fix this look at the constraint, hit the ‘clear inverse’ button, then the ‘set inverse’ button and your bone should return to it’s original position. Repeat this for the other small bone. Add a stretch-to constraint to the middle bone targeting the smaller bone on the right. Should work from there.

That’s how I got your file to working, if you want to see it I can upload it… And the spring isn’t hooked up yet to the middle bone…


HERO! Thanks a bunch. I tried either child and connect or track etc. Never worked. Parenting on one side and stretch-to on the other - as usual the first thought is “but of course”… Thanks! Works like a charm.