This week on Project Storm While the retopology was being finalized, there was some time to explore different approaches to facial rigging. I’m a big fan of using shape keys to handle facial deformation, but they do come with a trade-off: less flexibility. Well-designed shape keys make it easy to quickly pose a character in a way that looks appealing. But when an animator wants to push an expression further, they should be able to use extra controls to enhance the pose or add something unique.
So, alongside the shape keys, there needs to be enough control to give the animator room to be expressive and make creative choices.
One of the main challenges in Blender when mixing shape keys with bone-based deformation is dealing with dependency cycles. Other 3D software allows certain cycles to exist, but Blender is more strict in how it handles them. This is mostly to keep things stable. If those kinds of cycles were allowed, Blender could become less reliable. That’s why the dependency graph in Blender avoids them, even though other programs can support rivets more easily, either through built-in tools or by using things like hair follicles.
A rivet in 3D rigging is a point that sticks to a deforming surface, keeping both position and orientation, so other objects like bones or controls can follow the surface accurately.
I've been talking to developers at Blender to figure out if there's a way to make rivets work easily without dependency cycles, however with the current constraints (no pun) in Blender, there is no straight-forward solution at the moment. Therefore we need to find a work-around for this or accept the limitations that we currently have.
There are ways to get similar results in Blender using Geometry Nodes, but I try to keep things as simple as possible. My goal is to use Blender’s built-in tools where I can, so the rigs are easy to set up, stay on model during animation, and give animators enough flexibility without overcomplicating the system.