4
$\begingroup$

I am making a model with gears. I want to be able to turn any gear and have the others follow. Using constraints or drives only one gear will rotate (and the other will follow). Is there anything I can do?

edit: To clarify what I mean: I don't want to use physics, I want to be able to select any one of multiple gears, rotate it and have the rest rotate too. Using constraints or drivers I am restricted to only being able to turn the one gear that all the rest are constrained to.

$\endgroup$
  • $\begingroup$ Perhaps make it a rigid body object? Then you can make it a passive body so that it will affect other gears but not fall? Keyframe gravity? Hope these ideas helped! $\endgroup$ – BoyOfAwe May 28 '18 at 2:41
  • $\begingroup$ Can you post some screenshots of the constraint or driver set up $\endgroup$ – Ninjabdou May 28 '18 at 3:42
  • 3
    $\begingroup$ Is it always the same gear you want to turn and have the others follow? Or does it have to work for turning any gear and the remaining follow? $\endgroup$ – Yunnosch May 28 '18 at 5:56
  • $\begingroup$ @Yunnosch .. now I'm interested too... how would you do your second option without creating a dependency loop? $\endgroup$ – Robin Betts May 28 '18 at 7:35
  • 3
    $\begingroup$ @RobinBetts I think no matter how this is done, the one gear being rotated to drive the rest would need its constraint or driver or physics setting or ... disabled or removed. My take would be to set up an overseeing GearSystem class and use some custom property to mark objects as gears. While in "drive mode" a driver on some property akin to GearSystem.rotate(self) will drive and set all the others based on context object being the driver gear. $\endgroup$ – batFINGER May 28 '18 at 9:34
1
$\begingroup$

Yes, it's possible. You need to rig it twice, once in each direction.

enter image description here

No bone here is parented, but I've raised each bone in the Z axis to indicate a hierarchy of "copy rotation" constraints. There are five bones. First we travel through the gears one way, copying rotation along the way. Then we travel back along the gears in the opposite direction, again, copying rotation along the way. (The middle bone doesn't need to be duplicated.) The gears themselves are parented only to the final bones. The first three bones here should be understood as the control bones; the last two bones should be hidden.

Imagine rotating the second bone, indicating the middle wheel. Nothing is directly parented to this, so there is no immediate effect from this. The first bone is unaffected, but the third bone rotates properly via its constraint, rotating the right gear.

This rotation is then propagated to the fourth bone, which is what is responsible for actually rotating the middle gear, and then to the fifth bone, which rotates the left gear, even though there was no transformation given to the first bone.

| improve this answer | |
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.