I really like to be able to rig chains with abstract matrices, meaning without having to use scene items as deformers.
I was looking into this because of my transition to Houdini. While I had a hard time with visualizing arrays and detail attributes, and having to always loop over arrays for simple operations, I was able to come up with with a setup that produces the movement in the .gif below. No item bones or deformers used.
Basic explanation of how to go from a local matrix to solving it’s world pose like it’s part of a chain, and the other way around as well.
This allows me to have a sequence of independent solvers for a single chain.
IK. Variable FK. Curve Deform. Bend. Sine Wave, etc.
Constraining an automated swinging tentacle.
Houdini examples, using a curve as template.
Sequence of operations being done to the sampled matrices on the curve.
Marrying the curve deformer with this matrix unrolling can result in this.
Multiple curves can build a basic posing rig with arched transitions between them, like a bone chain.
After all the edits, with the chain pose solved, I just need to transform each point by the chain N-links rest pose and deform pose, with an influence value per matrix (envelope weights, usually based on distance to the rest pose). The sum of all N-matrices influences equals to 1 (normalized weights). All those weighted deformations are then summed.
PerPoint: Sum((PointPosition[vector] * (N-Rest⁻¹[matrix4] * N-Pose[matrix4])) * N-Influence[float]) Where N is a link of the chain.
One can go back and forward between world pose and local chain pose. Or for example, after the rig as been animated, displace it like it’s just a mesh and not a rigid hierarchy.
It’s great to have the ability to setup such interactions on a procedural abstract level because it just makes effect that would be otherwise insane to animate by hand, something very adaptable: