Noob object constraint question (double doors)

I must be slow today, but the documentation on the Wiki is not providing much help.

I have two objects in my scene: a left door and a right door. Each have their origin set to the midpoint of the axis of their door hinges. If you apply a rotation around the Y axis, the door will open by rotating around its hinge.

Now for my problem. I want to apply some mechanics so [a] each door’s rotation is restricted to a value between zero degrees and 90 degrees and [b] the doors are linked so rotating one door will automatically rotate the other door.

Since the doors are side-by-side, this means that if the left door is rotated by 45 degrees, the right door has to be automatically rotated by negative 45 degrees.

I’ve been playing with the Object Constraint function. The “copy rotation” constraint looked promising, but there appears to be no way to invert the polarity of the rotation. That is, rotating the left door by 45 will rotate the right by 45, not -45 as is desired.

And there does not see to be any constraint on the values for rotation.

Is there another function I should be using instead of constraint? If so, what is the official name, so I can search the forum and the Wiki?

Use an action constraint, this will make your life much easier.

Here’s an example using both IPO drivers and action constraints.

I would recommend the IPO driver method. It only took me about 5 minutes to setup. The action constraint method took about 20 minutes !

For the IPO driver -

  • Select each door
  • in the IPO window, select the RotZ channel
  • Press N for the properties, add a Driver (I used an armature, but any object
    could be used
  • Tweak the IPO curve

For the Action constraint :

  • had to add an armature and parent the doors to a bone in the armature
  • animate the “door armature”
  • add an action constraint to each “door Bone”
  • specify the action name for the constraint
  • set the action length in the constraint (60)
  • set the MinMax for the “driver bone” (DoorCTL)

For this example, I think the IPO driver is the much simpler solution.


Thanks! I’ll give it a whirl.