I'm trying to model a set of gears for a clock (it doesn't need to be perfect) but I'm having trouble with my constraints causing things to jump when they're fractions of a copy. I suspect this has something to do with my rotation being 0 -> 360 but I'm definitely looking for some guidance in the best way to set this model up.

It looks like this and I'm using the Copy Rotation constraint (I also tried the Copy Transform constraint.

I would love to just do this programatically ex:

seconHand.transform.rotation.z = emtpyDriver.transform.rotation.z / 60 

But I'm am very new to using Blender for something as complex as this. Is there a way to call a Python script frame by frame? Or is there a better way to do this.

For reference my empty is rotated from 0 -> 3600 on the z-axis over 10 seconds. Everything is "hooked up" it is just choppy like the image above.

Any help would be wonderful.


@batFINGER gave me the right idea which is to reference drivers. They don't have the related math issues as they're mathematical equations.

Basically Right Click -> Context -> Add Driver. I didn't need to reference another property as I'm happy to use frames as my baseline for this animation so I could set the rotation to frame / 360 / 30 / 60 / -1 for a clockwise rotation of a second hand at (360 / 30) = (circle / fps)` (or 6 degrees every second)

I'm parenting an empty so I can drive the clock backwards/forwards or set a time with it, but overall this seems like a solid start.

enter image description here

Hopefully this helps someone else with a similar question. Thanks for the help.

|improve this answer|||||
  • $\begingroup$ Using frame is how I drove driving hand in link above. Remember that blender uses radians. Replace 360 with 2 * pi or radians(360) $\endgroup$ – batFINGER Feb 7 at 13:38

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.