Q: Hi, I want to animate the ticking second hand on a clock.

I need to make it tick from 20 past the hour right round to on the hour.

This is 40 ticks in a close up so the hand has to be steady.

The hand is a thin box.

In order to do the 40 key frames I need to be able to 'lock' the end of the hand at the centre of the clock so that I can quickly pivot the hand to each second for each keyframe.

At the moment I plan to manually move the hand and keyframe it. Then I will go to track view and reduce the length of the transition so that I get a tick and not a smooth movement. However I am worried that the hand will 'jitter' around unless I can lock the pivoting end of the hand.

Does anyone have any eperience of clocks or is there a better way to do this?


A: Hi,

Well, you have to place the pivot point of the hand in the middle of the clock. Or you can create a Dummy, Align it to the middle of the clock, then Link the Hand to the Dummy and animate the Dummy's rotation instead.

Then, you have to set the Angle Snap to 6 degrees (60 seconds = 360 degrees, 1 second = 6 degrees ) One computer animation second in the USA is 30 frames. So you will need 30x40=1200 frames for realtime ticking... Set the lenght of the animation to 1200 frames. Activate the Rotation icon and the [Z] icon in the Transformation manager Place the hand at 20 past the hour, press the Animate button, go to frame 28 and right-click on the Time Slider. Create a key only for Rotation at that frame (Uncheck the Position and Scale boxes!) Go to frame (30) and rotate the hand at 6 degrees (clockwise :o)) Go to frame 58, right-click, create key, got to frame 60, rotate at 6 degrees, and so on....

Also you can do the key creation only for the first frames 0-28-30, then use the Relative Repeat for the outer range (not sure about these names, I have a German MAX) button to add 6 degrees relative to the current position each 30 frames.
This should save the time for creating all those 80 keys...

The distance between the two keys (30-28=2 frames) would be the time the hand will really move. You can use another time period to have a smoother movement.

You might want to use another Rotation Controller, or set the Tension in the default TCB controller to 50 for all keys to avoid the undesired movements.

You can also download the MKey plug-in by Anibyte for easier Transformation Key Management.

Also, the way you described it with the TrackView would work, too.

You might want to try an Expression Controller for the same purpose. It would take the current time and rotate the hand at 6 degrees each full second.
(I will write one tonight and email you again :o)


Addition:

As promised, I created the animation myself using two methods:

  • Keys on Frames 0,28 and 30 and Relative Repeat for the Seconds.
  • Expression Controllers for Seconds, Minutes and Hours.
    Download a ZIP file containing both .MAX scenes

    This Animated GIF was created using an Expression Controller for the Seconds only:

    The expression for the Second Hand looks like this:

    ceil(S)*degToRad(6)

    S is the Current Time in Seconds
    ceil returns only the integer part of the seconds, so a rotation happens only every full second.
    degToRad(6) returns the Radians in one Second time. A Minute has 60 Seconds, a Circle has 360 degrees, one Second means 6 degrees rotation.The expressions always use Radians and not Degrees.

    The expression for the Minute Hand looks like this:

    (S/60)*degToRad(6)

    S/60 returns the Minutes (60 times slower than the Second Hand)
    The expression for the Hour Hand looks like this:

    (S/3600)*degToRad(6)

    S/3600 returns the Hour (3600 times slower than the Minute Hand)

    If you create a very long animation, you can see the clock working...