click for breakdown
1
2
3
4
4
4
4
4

Bison Rig: The animation rig was completely python scripted in four parts. The first script sets up the joints according to artist-defined locator positions. BisonRig_joints.py Next I created the IK, and attached nurb wire controllers. BisonRig_controls.py Following that I created a stretchy tail. BisonRig_tail.py Completing the process is a dynamic three joint chain tail system. BisonRig_dynamics.py Download to view complete scripts. BisonRig_python.zip

In BisonRig_joints.py, I first set up the heirarchy and create a dictionary. The terms corespond to a naming convention, and allow for easy identification of parts, and reusable code. The dictionary cleans up the code, and saves the artist alot of time.
This is how I loop through the dictionary and set up basic leg joint chains. The other joints are created the same way.
In BisonRig_controls.py I create the IK system and set up the NURBS controlers. This is a sample of that where I create a basic IK. Other parts of the body have their specific set up loops.
Since I had to save production resources I couldnt do a full hair simulation, but I could add dynamics to the tail movement. In BisonRig_dynamics.py I created a three-joint-chain stretchy IK system just for the tail. The tail has skin joints, IK joints, and dynamics joints. In general, the total rotation of the skin joints are a linear combination of the rotations of the IK and dynamics joints. Since this was a procedural tail, there were no FK controlls.
Bison have stiff upper tails, and when they run, the hair scrunches up and down. In order to better control the motion of the tail I wrote a MEL expression. The translation controllers create a turbulent motion that creates an erratic motion. The amount of erradic motion the joint receives depends on a custom falloff attribute. The closer to the base of the tail a joint is, the less amount of turbulence it will recieve. This falloff is multiplied into the joint equation and creates a scrunchy effect when the tail moves back and forth.