View Full Version : Rigging a Snake

07 July 2007, 09:32 AM
Hello guys,

I am trying to rig a snake using an IK spline, during this process i found out that it would be a pain in the a** for the animator to actaully animate every control point.

Following the rigging tutorial dvd by Paul Neale (which i recomend to anyone who wants to learn rigging), i found out that you can position constrain the control points to the bone and also Lookat costrain the root bone, the problem arouses when you try to do that for a number of bones. The second bone cannot follow the first bone path even if you link it or position constrain it to the following control points since the child bones have no root bone, i also tried to weight the points but that doesnt work either.

What iam thinking is having a set of bones which are squashing and strecthing so you can deform the mesh and make it look like it has movement.

I think this is a perfect way if you wanna animate a snake which movement is defined by slowly changing its mass like a muscle.

Any help would really be appriciated.


07 July 2007, 10:21 AM
There are 3 main snake modes of locomotion. One driven by contractions of the 'belly' muscles, one driven by pressing outward in meandered body curves and one which is unique to the side-winder. Well, there's also the sea-snake and aqua locomotion models...

Which are you after? What does the rig have to do beside the locomotion? ie. does it need to coil and strike / climb trees / raise its head while moving?

07 July 2007, 10:49 AM
Its gonna be the first one where the snake belly is driven by contractions making the body move slowly where its gonna hug or go around an object but slowly like a big snake (Python) would do and after it wraps its body to the object its gonna strike another object or character.

Thats why iam thinking of a squash and strecthing of the bones although this might create other problems like strecthing the mesh which would not look natural if the scale of the snake deforms.

EDIT: I also can use a path deform mod but is that any good for decent animation and anyone knows what can be the differences of using path deform or rigging and animating a snake.


07 July 2007, 11:21 AM
I'm not a TD myself, so I can't recommend scripts or so, but I'd expect that a set up would involve having a curve which determines the basic path, as well as a curve which sets the bones for the snake. The snake curve would follow the crawl curve with manual or procedural offsets. This way you could seperate the head and a certain length of the spine from the ground and manually animate it.
The top of the snake geometry would likely be fairly straight-forward, while the bottom would have bones scripted to 'plant' to a world position (likely taken from a floor or tree geometry) then raise and slide forward to the next plant position. If the camera is really close, this would have to reflect the scales, so that they don't stretch too much, but rather the skin between the scales. An offset could make these inch-worming belly muscles behave in rythmic offsets (methinks a sinus curve, but I'd have to check some reference videos) along the snake's length.

Is this helpful? Unfortunately I'm a scripting idiot - can't help there.

07 July 2007, 09:28 AM
Yeap thanks a lot for the input man. I am gonna try with a path deform mod and probably use it for the path the body of snake is gonna follow and see if i can get the movement i want.

07 July 2007, 11:08 AM
I'm glad to hear that you enjoyed my DVD's.

It is always interesting that the simplest characters are the hardest to rig and animate

I would gp with the spline IK setup, the animators are going to have to live with the fact that it is difficult to work with as it is a complex character to animate. The problem with characters like snakes is there are no predefined joints where it can bend.

One way to make it a bit easier is a layered approch to the controls. The first layer which will be course would have the minimum number of controls that are needed to make the snake move along flat ground and create simple "S" shapes. The second layer of controls would be the fine layer and would follow the course layer. This then allows the animators to create more complex shapes. This is similar to one of the ways that I set up bone based facial animation.

I hope this helps.

07 July 2007, 05:26 AM
Thanks for the help everyone,

I'll try what you said Paul and see if i can get a little more control to the shape of the body while moving.

07 July 2007, 11:49 PM
heres my attempt at the snake. its funny i happened to be doing this at the same time this thread started. i used stretchy ik/fk switch for forward control and also did a automated gui control config. for subsequent serpentine action to give it more depth.
Spent zero time on the model but the fundamentals are whats improtant, right?

good luck

:youtube: (

04 April 2008, 04:48 PM
Sorry to dig up an old, old thread, but....

I really need help coming up with a very complete snake rig. I've created Medusa, with a snake body, and will also be animating a King Cobra that she 'deploys', so to speak - so I need a really complete rig. I created a spline IK rig with controls driving clusters along the length, and while this works great for simple poses it's almost impossible to animate her well.

I need to be able to get locomotion, coiling, raising up, striking - virtually everything a snake can do except for aquatic movement. So the sine deformer-driven approach won't really work for me since it's not good for turning/coiling/etc. Ideally I just want to animate the head of the snake (or Medusa's hips) and have everything follow the path from there...

I wrote expressions to have a sort of 'delayed parent' effect with a 5-frame offset, but that wound up looking great for a normal tail but horrible for a snake effect (giant wags back and forth, but no sine wave). I also tried a hair system but couldn't get that to look very good either.

Any ideas?

04 April 2008, 07:41 PM
I would rent "Snakes on a Plane", although not the greatest movie, the snakes were very well rigged/animated (with XSI I believe) and can give you good inspiration.
I would have the snake deform on a curve and have that curve deform/follow a path (another curve) which is shape animated or sin'd. Also, a layered approach may be necessary, since the head and tail (I would use 3D chains here) usually just follow the tips of the snake's deforming curve and are not 'deformed' by the initial curve.
Those can be animated via FK.

CGTalk Moderation
04 April 2008, 07:41 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.