Rotational discontinuity during animated transform

Animation tools, character animation, non linear animation

Moderators: jesterKing, stiv

Post Reply
triffid_hunter
Posts: 0
Joined: Mon Feb 15, 2010 5:35 am

Rotational discontinuity during animated transform

Post by triffid_hunter » Mon Feb 15, 2010 5:56 am

Hi, I'm trying to animate a model of a differential hypocycloid gearbox but I'm running into a problem.

As far as modelling the movement relationships, it closely resembles a wenkel rotary engine.

The model features a central shaft that rotates, an eccentric coupler, a couple of gear-like objects that attach to this eccentric coupler via a bearing, and an output cage. The gear-like objects rotate at 10% of the rate of the input shaft, and in the opposite direction.

I have the shaft rotating, and eccentric coupler moving correctly using child and transform constraints, but the gears 'jerk' when the main shaft crosses 180 degrees rotation. The discontinuity is only visible with the smaller gear in the animation, but both gears jerk as evidenced in wireframe mode by the larger gear spinning by 180 degrees between one frame and the next.

The output cage also jerks, even though it only spins at 1/90 the rate of the input shaft, and so only turns 2 degrees before the discontinuity.

To my programming mind, it seems that blender may internally convert rotations beyond +/-180 degrees to within those bounds before cascading constraints to other objects. If that is the issue, performing this conversion after cascading transformations would solve this.

In the meantime, perhaps I could animate the output cage and couple everything to that? Maybe multiplying rotation by 9 and 90 would work better than dividing by the same?

This problem is also visible when using the rotation tool, but I didn't notice until I tried to animate because my video card is nothing special and it all looked jerky anyway.

I am using blender 2.49a, and am installing 2.49b while I write this post.

edit: just tried in 2.49b, exactly the same result

triffid_hunter
Posts: 0
Joined: Mon Feb 15, 2010 5:35 am

Re: Rotational discontinuity during animated transform

Post by triffid_hunter » Mon Feb 15, 2010 8:33 am

triffid_hunter wrote:In the meantime, perhaps I could animate the output cage and couple everything to that? Maybe multiplying rotation by 9 and 90 would work better than dividing by the same?
Just tried this, exact same problem but in the other direction. Output shaft spins, other parts just wobble back and forth a bit as if output is only going +/-180 rather than continuous rotation.

triffid_hunter
Posts: 0
Joined: Mon Feb 15, 2010 5:35 am

Post by triffid_hunter » Mon Feb 15, 2010 9:43 am

this thread on blenderartists explains things for anyone else finding this, includes a kludge that seems to work.

Still no infinite rotation, but enough to run a few spins of my gearbox :)

aldoaldoz
Posts: 0
Joined: Mon Jul 01, 2013 8:28 am

Possilble workaround

Post by aldoaldoz » Mon Jul 01, 2013 8:53 am

Hi all, I'm new here, sorry if I'm going to write a well known idea, or in the wrong forum...

I started using Blender a couple of months ago to animate some gears, and got this problem with discontinuities in their motion.

I guess the problem is inside Blender rotation axis angles are always limited to a range of 0-360°, so if, for instance, I have a couple of 20 and 50 teeth gears, once the first gear passes from 359 to 360° (0°), the second one doesn't pass from 143.6° to 144°, but from 143.6° to 0°. May be a program solution could be to not limit the axis rotations to 0-360° after a transformation, but let free the angles to run outside this range.

Anyway, the workaround I found to make a complex gears model work correctly is to avoid transforms of angles-to-angles. I setup an invisibile linear slide to drive the overall model motion; then program all the needed trasnforms from THIS linear motion to all the rotation motions of the gears in the model: all the discontinuities completely disappear.

Post Reply