Copy location and order of constraints

Hi,

using Blender 2.62 (x64) on Win7.

I have three objects: head, left eye, right eye.

Each eye is a “child of” the head. (I do not use parenting as “child of” can exclude scaling.)

The right eye is positioned correcty.

I’m using “copy location” constraint for the left eye with target=right eye and inverse X value. Consequently, in the left eye’s “child of” constraint, the location values are unused as they are copied from the right eye, not from the head.

That works well. My problem is: if I rotate the head, the distance between the eyes is not kept. The left eye’s copy location constraint should work with the right eye’s local coordinates, not with it’s global coordinates. The “space” selections (world/local space) at the bottom of the modifier have no influence on this.

Head unrotated:
http://www.abload.de/thumb/headunrotated4bcck.jpg

Head rotated:
http://www.abload.de/thumb/headrotatedx4f9h.jpg

We can change the order of constraints within one object, but, naturally, we can not change the order of the objects being processed. That means, the “copy location” constrained for the left eye is to be applied before the “child of” constraint of the right eye.

So how can I handle this primitive scenario?

I’ve narrowed it down to the simple attachment.

Attachments

Demo2.zip (90.3 KB)

tried every combination of constraints I could think of, I’m pretty sure this kind of functionality gets broken with constraints, what you can do is have both eyes parented to the head w/out the childof constraint but this doesnt solve your scale problem.

Hi proxe,

thanks for the reply. I’m not even sure if it’s broken or considered “by design”. I used the constraint version because, if I move the position of the right eye, the left eye is automatically positioned correctly. This is not available when parenting both to the head. Anyway, I have to live with that. Thx again.