I´m currently trying to rig a frogs tongue and kind of hit a brick wall again…
What the rig should be able to do:
Have a rotation Control at the beginning of the bone chain, that controls the overall rotation of the tongue.
Have a control object, with which I can make the tongue grab things by using a link constraint or something like that.
That control object should also effect the overall stretching of the bones in the chain (so they stretch evenly and not just the bone next to the control object).
What I tried so far:
Set up a bone chain with helpers at each bone.
position constrain each bone to its helper.
position constrain the helpers in the middle each to the first and last helper and then weigh them to keep their original position.
setup look at constraints for each bone, looking at the next bones helper in the hierarchy.
This gives me the ability to stretch the bone chain evenly by grabbing the last helper and moving it around.
The bones follow the orientation correctly, but now I can´t figure out a way to control their rotation, because of the look at constraints.
I´ll try to record a video of the process if you need more information…
Is there a reason you aren’t using a spline IK or a custom version of that with paths?
I would then just ad a second layer of joints that do the tip scale/stick wrap effect as needed when it makes contact and etc.
Basic idea- FK Tentacle with geo skinned to it (animated as offsets from IK rig)
FK joints parented under spline ik animation skeleton FK tip extends out past IK ctrl for grabbing or curl/drag etc. easy to scale etc.
IK rig is a spline IK that gives you fast poseing and animation then FK offsets let you overlap and add noise in to the key poses created from the spline ik anim. Helps keep the keyframes for the poses and timeing clean because they stay on the IK.
++ on simple, it really helps if you can imagine the kind of motion you want clearly before designing the control rig. Different rigs will push the animation in one stylistic direction or another, so think hard about the results you want before diving in to details. Brad’s suggestion sounds like a good fit.
If you want a more FK-style of movement (more like a whip than a tentacle) you can also do a simple low-bone-count stretchy IK and skin a spline to that. Then drive the actual tongue bones using the skinned spline as a spline IK control. That gives FK style motion and a reasonablly low number of controls, but keeps the nice smooth spline-y feel. However that’s only good if you want fk-style whip action, if you’re ‘shooting’ the tongue in classic cartoon style you can get by with something much simpler…
thank you for your answers, I´ll try to decipher them with my poor rigging skills in the next couple of days…
Thing is: I want to be the rig as flexible as possible, because it´s for a character I´m working on for someone else and it´s supposed to be flexible, so he can animate it later on for all kinds of stuff.
So I´m imagining for example: The tongue stretching out and grabbing a branch of a tree and then hanging and swinging from it…
I looked into the spline IK solution, there are just a couple of quirks I don´t know how to come around yet.
I tried the script on joleanes.com, but the helpers controlling the spline don´t move with the bones, when they are being stretched.
Like I said, I´m still pretty noob considering rigging, I´ll have to figure out what you meant by all your suggestions and will come backt to you once I have better questions…
looks like I forgot to submit my last post…
Anyway, here is what worked for me:
Setup spline with vertices acoording to the desired number of bones.
Create dummys for each vertice and put them on a path constraint-
Set Path percentage accordingly to evenly space them across the spline.
Create desired number of bones. untick “freeze length” and tick squash if desired. Align Bones to dummys.
Position constraint each bone to its helper.
Look at constraint each bone to the next bones helper in the hierarchy.
delete all vertices of the spline in the middle.
divide spline once, so it only has 3 verts total.
Set verts to smooth.
Put Spline IK modifier on top. create helpers (no linking)
Voila!
This way I got a nice stretchy bone chain with only one control (the spline IK helper in the middle) to handle for the curvature of the chain.
I haven´t figured out a way to setup the rotation of the chain properly.
But I can use the script mentioned above to achieve this, I simply have to modify the spline Ik to create the result with only one handle for the curvature and the script sets up the rotation of the chain nicely.
Now I only have to find the proper way to connect this properly to the CAT rig, because unfortunately thats what my employer wants…