
At Polder Animation, we care about sharing our technical knowledge with others, so this part of our website is dedicated to sharing that knowledge. The rigging tutorials lay the foundation for solid, reliable, and performance focused rigging and are therefore applicable to a wide-ranging audience, from students to senior riggers. You’ll find valuable insights that help you truly understand what’s going on behind the scenes in rigging. While the videos use Autodesk Maya, the concepts and techniques are broadly applicable across other 3D software packages as well.
Mastering Matrices for 3D animation
Matrices are an essential part of the Technical Director’s toolkit. Since Maya 2020, the matrix workflow for rigging has been significantly improved, allowing for their full potential to be utilized. However, using them correctly requires a solid understanding of how matrices work and what they represent. This video aims to visually explain the structure and function of matrices without relying too heavily on raw mathematics. While the focus is on 3D animation and rigging, the core concepts are applicable to any 3D animation or game development software.
Rigging with matrices – part01 – intro
The rigs developed for animation production, such as those created for the feature film Miss Moxy, are constructed using a modular system. Each module is a self-contained unit that communicates with others solely through a limited number of matrix connections via defined input and output interfaces. Guide objects determine the positioning and proportions of each module, allowing the rig’s rest pose to adjust dynamically. This modular approach enables a wide range of characters, including humans, quadrupeds, and birds, to be built using the same foundational components, with only a few custom modules added to implement character-specific functionality.
Rigging with matrices – part02 – FK
In this episode, the initial arm module structure is constructed using a dynamic FK control rig based on guides. The offsetParentMatrix plug on Maya’s transform node is utilized to directly connect matrices to the controls.
Rigging with matrices – part03 – IK
In this episode, the arm IK control setup is added using the same guides to maintain dynamic adjustability within the rig. For the time being, the default Maya IK solver is used.
Rigging with matrices – part04 – custom node based IK solver
In this episode, a custom IK solver is created using Maya’s default nodes. Using the Pythagorean Theorem and the Law of Cosines to solve the angles of the arm.
Rigging with matrices – part05 – soft IK
In this episode, a node based setup is constructed to reduce the popping effect that occurs just before an IK solver reaches its maximum length. Also known as soft ik or smooth ik.
Rigging with matrices – part06 – custom node based IK solver optimization
This episode provides a brief update featuring a small optimization to the node-based IK solver built in the previous video.
Rigging with matrices – part07 – bifrost custom IK solver
In this episode, the same node-based IK solver from episode 4 is demonstrated, now integrated into a Bifrost graph. The focus here lies on the resulting bifrost graph and its performance and not its creation process as this would be a repetition of episode 4.
A small nuance to the performance comparison: results may vary depending on the system used. The tests were conducted on three different systems.
Intel i9 7960X (16 core) (2017)
Maya rp ik-solver 796 ųs
Custom ik-solver 928 ųs
Bifrost custom ik-solver 766 ųs
AMD Ryzen9 5950X (16 core) (2020)
Maya rp ik-solver 400 ųs
Custom ik-solver 390 ųs
Bifrost custom ik-solver 350 ųs
AMD Ryzen9 9950X (16 core) (2024)
Maya rp ik-solver 302 ųs
Custom ik-solver 294 ųs
Bifrost custom ik-solver 297 ųs
The difference becomes close to neglectable the faster the CPU becomes.
Rigging with matrices – part08 – IK FK blending
In this episode, the process of setting up the blending between the IK and FK matrices to produce the final arm segment matrices is explained.
Rigging with matrices – part09 – segment length scaling
In this episode, manual length scaling capability is added to the upper and lower arm segments in the IK and FK rig, along with a fix for the issue related to the global rig scale.
Rigging with matrices – part10 – space switching
In this episode space switching capability is added to the ik and fk controls. And a barebone spine control module (hip, chest and COM controls only) and simple but effective clavicle module are added as well to have something to space-switch to.