[Feature Request(s)] Some improvements over actions and action constraints for facial rigging.

Hello! I’m a character rigger coming from maya. I used blender for modeling a lot but rigging in blender is very new to me.

First of all, sorry if it’s not the place to make feature requests, point me in the right direction and I’ll post there.

I’m currently making this Rig using blender 2.8: https://streamable.com/8aw2f

All the bones scattered on the face are driven via action constraints by the few controller bones that you see me interacting with. For now this works perfectly but I can see limitations to that coming up. Further down the road, I’m sure I’ll need to have corrective actions activated when two or more “Main” Actions are active at the same time.

Here’s what I’d need to be able to set that up properly:

  1. Drive an action with a driver instead of the transform channel of an object.
  2. Access the “current frame” of an action in the driver editor. I’ll then be able to do action.current_frame/action.range[1] to have a ratio between 0 and 1 telling me if the action is currently active or not.

I know there are ways around that but the ones I found felt really hacky:

  1. Drive the influence of the action constraint rather than driving the “current frame”. This could work for simple actions that linearly go from one start pose to an end pose but I’d lose subtleties since it’d just activate the end pose rather than actually evaluate the action.
  2. Drive a dummy object’s transform channels with drivers and use those driven channels to drive the action constraint. This would work perfectly but would end up being really confusing in a large rig.
  3. Instead of accessing the “current frame” of an action, I could simply use the transform channel of the controller I’m using to drive the action divided by the action constraint’s “max target range” but again, that’s confusing and very prone to making mistakes. I like to get my data from the actual object that it’s related to and not something that represents it.

Being relatively new to rigging in Blender, it’s very possible that I just missed a feature, if so, I’d love to know!