How to use Copy Transform constraint for bones? Origin issue

I’m making a facial rig and using Copy Transform on my face bones so they can follow motion captured empties. But the bones yeet off 10 feet away if they don’t share the origin point with the empty they’re copying. Well bones don’t have origins, only their armature does. The constraint works fine with objects but is this possible with bones?

Well, with objects, they yeet off if they don’t share an origin point too.

If you don’t want them to yeet off, you don’t want to be copying transforms. What exactly is it you want to do with the empties? Do you want the bones to copy their rotation? Copy rotation instead of copy transforms. Do you want the bones to point at them? Damped track instead (preferably followed by a locked track to something to control bone roll.) Do you want them to copy rotation from something at a different origin that points at the empties? Make something at that origin, damped track the empties, the copy rotation from that something.

Bones have origins BTW. Their origin is the location of the head of the bone.

I need the bones to copy the transformations in space of the empties, but not location.

The transformation of the empties consists of their location, their scale, and their rotation. If you want to copy scale and rotation, use copy scale and copy rotation constraints.

The empties never rotate or change scale, I only want to copy them moving around xyz. But copy location snaps my bones to the empty, I want the bones to retain their locations, only copying the empties’ movements but not snapping to them or leaving the bones’ own original area.

You’re probably looking for a damped track constraint. But a few pictures might work wonders.


I’ll try that now.
Here’s a pic. Currently using Copy Location but oc my mouth is not anime sized. If the bones could copy only movements then they wouldn’t be affected by my non-anime sized mouth and eyes.

I feel like Offset and Pose Space have something to do with the answer. I’ll try changing origins for everything.

From your picture, it looks like you do want to copy locations, but with an offset. There are a couple of different things you can do.

Option 1: Use a child of bone constraint. Target the empty with the constraint, then click the “set inverse” button on the constraint. That’s assuming your mocap empties don’t rotate.

Option 2: Copy the location of something that’s at the rest post location of the bone. So create an empty at the origin (the head) of the bone, copy location from that new empty, and parent the empty to the mocap empty. (The easiest way to do this is to select a bone in pose and shift-ctrl-c->copy location to create a new empty at the location of the bone, from which the bone copies location-- then you can parent this new empty to the mocap empty.)

Option 1 is wacky. Trying 2, will update. Thanks btw.

Ok looking good by parenting cubes to the empties then the bones to the cubes! Thank you.