Which Node to Animate?

Here is the most basic of all questions:

Which node usually gets keyframed when animating a charaters rig… the controllers ?
and we need to keep that node clear of any constraints, expressions, SDK etc., yes ?

Yeah, that is the general idea, at a very high level.
The controls end up driving things like your constraints, SDKs or expressions, and the keyframes drive the controls.

What @bob.w said.

When the a Ctrl object needs to be driven by a constraint or system , yet still available to be keyframed, you typically use the “group” command (in Maya) to create a parent transform and drive that instead. The control object comes along for the ride. (It is a very smart idea to freeze the transforms of such buffered controls after creating their parent group)

I’m not sure if there is an official name for this practice.
I’ve seen “group nodes”, “nulls”, “null groups”, and, most accurately, “hierarchy buffers”.

Yeah, we have same, as said upper - keyframes on controls constrains e.t.c to group upper

As of Maya 2020 transforms have an offsetParentMatrix, which basically eliminates the need for buffer groups if used correctly.

Can you drive an offsetParentMatrix with a constraint or SDK?

It’s just a matrix input. You can connect any matrix output plug to it.

But it sounds like most of the things you’re wanting to do would require using a ComposeMatrix node and using scale/rot/tran values. So yes, you could technically use a constraint or SDK. But IMO, the real power for the .opm plug comes when you start connecting, multiplying, and inverting your own matrices directly.

The offsetParentMatrix seems interesting but for constraining deformers for game export, it looks like a no-go. #CGTip | Offset Parent Matrix Basics - YouTube

Not necessarily - his workflow precludes having to build a static rig. This workflow still works fine if you use “on-the-fly” rigging techniques, a workflow I’m trying to be an advocate for, as it’s perfect for game animation.

You can learn more about it here or here. As it turns out, this workflow also pairs really nicely with Unreal’s Control Rig feature, which has the same engine-side baking tools built in. It’s incredibly powerful, and I’ve spent the better part of the last few years trying to develop pipeline tools for it. In my testing, setting up offsetParentMatrix connections, even with intermediate matrix calculation nodes, always evaluates faster than constraints.