Action Constraint behavior to "replace"?

Action Constraint is super useful, but one downside for me is that the action seems to only get applied on top of existing transforms.

I tried going through all the Mix options, and while I don’t understand what the options really mean :sweat_smile:, none of them replicates the “Replace” behavior found in most of the other constraints. Is there a way to do this?

I guess the first thing I’d say is, if you don’t want a pre-action transform on the bone or object, why’d you transform it? Just leave it untransformed. I guess you could copy local space transforms from an untransformed bone, prior to the action constraint, to force it? But I’m left scratching my head as to why.

Ah, I could see why my inquiry is confusing. I’m realizing I’ve come to wrongly internalize the logic of this constraint to be transitioning the bones from the initial transform to a goal transform. But that’s not what it’s doing, it’s just copying the keyframed action within a target range, haha…


To explain what I’m doing, I have a system where a bunch of bones are driven by different control bones. But I want to have a single control that would force these bones to move to specific positions (by moving the control up a little, for instance), overriding where the bones currently might be. And would like to have several of these.

The current system I developed is copying all the bones (20+) and placing them in precise goal locations. I then attached a Copy Transforms on all the original bones (that transforms them to their individual goal bones) and created a single control bone that would drive the influence of all the individual constraints from 0 to 1 by moving it up a short distance.

This works perfectly, except that it’s tedious to setup. And in my mind, I was thinking maybe the Action Constraint could be used somehow to circumvent the need to do this for different target position for all the bones.

If you happen to know a far simpler method to do this, I’d love to know!

There are other ways to do this, other constraints you could use instead, but they’re not any better or worse, just different. What you’re doing sounds like a reasonable plan, and how I would probably approach it.

In terms of tedium, you’re going to have to define your goal positions in some fashion, so there’s not really any way to reduce that part of it. However, there are some ways of approaching the problem that would eliminate some of the tedium. For example, if you make a single bone + goal, with a copy transforms constraint, then duplicate that pair, the constraint will get copied along, retargeted to the copy. And if you make a single driver for the influence of one constraint, you can copy that driver by right clicking on influence, and then paste it directly as a driver by right clicking on a different bone’s constraint influence. After that, it’s really just a couple of minutes to set up a large number (20+) of bones like this; if you had a thousand, maybe you’d want to think about scripting the setup instead.