cheers yellowlambo, glad you enjoyed it. I definitely didn’t got to animation school (yet), but would like to!
@fatfinger think the flipping at the extremes is what would happen in reality (well in reality if you stretch your luxo lamp that far the springs would probably break and all the metal crush rather than if flip inside out but I probably wont need to build that into this rig!). I think it only flips in positions which are physically impossible but I might be wrong.
@yoff yep a kind of automated springiness was what I was looking for.i guess an action constraint seems to be the easiest way to do it without the springiness. As its being pulled by the springs, just out of fascination, rather than need, do you know how to make it happen slightly on a delay like its a creaky old lamp and the springs are struggling to pull it into position?
If you rotate the bone (Bone.002) that controls the back set of props you notice as one set of springs gets longer, the other gets shorter. In reality they would pull against each other to stay both roughly extended by the same amount. If the lamp was well oiled enough I’m guessing there would be some kind of simple harmonic motion (imagine the physics experiment with a weight between two springs bounding back and forth, kind of like this but with springs on both sides)
I imagine the best way would be to make both the spring objects into softbodies, vertex parent an empties to points on the end of it, and then somehow setup the IKs around that. At the minute the bones which control the springs (bone layer 2) have stretch to constraints, as in their movement depends on how the bone at the bottom moves rather than vica versa, so that back part of the rig would need to be completely restructured. As you need both softbodies to be both influenced by and controlling bones on the rig I’m not sure you wouldn’t end up with some kind of dependency problem.
I think there could be a way to fake it by creating a very simple sort of “proxy” soft body object. You could create a simple cylinder, representing the spring, create an action constraint whereby the cylinder proxy is moved up and down as the lamp is pulled and pushed in and out. You could then vertex parent an empty to a vertex somewhere near the end of the cylinder and use the z motion of that empty (generated by the softbody simulation) to drive the rotation of Bone.002. Then you could adjust the springiness of the lamp by changing the softbody settings.
Two things I don’t get with blender are
- why when you make a softbody does it always wobble for the first few seconds like there was no gravity before frame 1, and is there anyway to stop this, or is it best just to start rendering a hundred or so frames after the softbody baking starts?
2.when you have dependency cycles often the rig works but its a bit jittery, or it puts the bones in a random place, but when you click on one of them it updates all the positions and seems to be fine. I like to try and sort them out, but often wonder if its just a waste of my time. Is there a way to get blender to iterate through its solving process a few times for each frame so the dependencies iron themselves out? And if an animation plays fine through once, will it always play through fine again? I know if you start skipping frames or scrubbing the timeline thats when dependency cycles rear their ugly heads and an armature starts to misbehave, but often playing through at animation pace the effect is barely noticeable. Are the calculations for where bones are placed at render time exactly the same as those for when you playback through in a viewport?
thanks again everyone whose helped so far