Digits Widget's Animation Master

Introduction:

I have created this new Animation Script as a separate Widget from the Standard and Advanced versions because a fundamental difference in approach that the Master script takes. In the Standard and Advanced version each frame is interpolated on the fly as the animation progresses allowing the user to have an unlimited number of frames in the animation. The Animation Master script limits the number of frames to 50, but every object in each frame can be adjusted and saved separately because all objects are held in memory. This approach has its advantages and disadvantages, its main disadvantage is that anytime that you wish to change the number of frames in the animation you will have to re-load each object and in the case of the NEW Contour Stroke function some understanding and preperation most be taken to do this. Hopefully, by the end of this document I will have covered these points. This new script does add some nifty new features!

Main Menu

 

Animation Functions

Max Number of Frames - Enter the total number of frames to create, this determines the resolution of the interpolation routines. A higher number of frames equals smaller increments between movements.

LoadPointStroke - Load the global Point Stroke for objects. This is the stroke that all objects that have the StrokePoint enabled will point thier Z axis at. To create this stroke, use any brush and trace the path that you wish on the canvas. Press the "LoadPointStroke" button to record it. Use "Ctrl Z" to erase the stroke on the canvas.

SDepth & EDepth - Starting and Ending Depth of PointStroke . Since a brush stroke is 2D create a 3D representation of stroke by setting it's ZDepth. This will have effect on the objects that are using it as a Point Target as movement closer or farther away will change its rate of change. Just think of watching your finger as you bring it closer to touching your nose.

Best Render - Setting this switch renders the frames with Best Render

 

Object Functions

Control of each animation object can be broken down to the following elements:

  1. Position
  2. Size
  3. Rotation

Position of a Object can be controlled by:

TwoPt - Straight TwoPoint interpolation from the Object's Start Position to its End Position

Curve - Three Point interpolation from the Object's Start Position to its End Position modified by a third Spline Position that you create by moving the Object to an XYZ position on the canvas and pressing the "LoadPoint" button. An object can be returned to this position by pressing the Move button.

Stroke and GetZdata - Use a brush stroke on the canvas to capture the object's path to follow. Select "GetZdata" switch to take the Z value from the canvas and apply it to the Object. This feature I call a Contour Path. If "GetZdata" is not selected the Object will only move in a XY direction and its Z value will be determined by the Object's Start and End Position.

Float & FloatDepth - Using Stroke with GetZData this allows an offset from the recorded stroke whereas it will take the direction of each sampled Pixol on the canvas and apply an offset to the object. By giving the object enought FloatDepth it will then appear to be floating above the recorded brushstroke. In cases where you do not wish the object to appear to be imbedded in the canvas this is a easy way to bring it off the canvas. In some cases manual adjustments might have to be made but the neat thing about this feature is that it will use the direction in the Pixol itself to determine the direction the object will move.

Size of a Object is controlled by:

The Start and End values of the object. When using "Curve" Interpolation the Spline Point will also affect the size of the object but its final size will be determined by the End value.

Rotation of a Object is controlled by:

    Point and PointTo - Select Point and enter the object you wish to point to in the PointTo slider. As the animation progresses the object will automatically point its Z Axis at the selected object.

    StrokePoint - When you select this switch the object will align its Z Axis to the Global StokePoint brush stroke that you created with the LoadPointStroke at the top of the script.

    MultiRot and RotFactor - Selecting the MultiRot switch and providing a RotFactor .1 to 10 will spin the object on its Z-axis completing rotation from the Start to End position the number of times dictated by the RotFactor. Example with a RotFactor of 2 the object will completely rotate from the Start to End position 2X by the end of the animation.

Misc Function:

  1. LineTo and LineObj - Select LineTo and provide the number of an another object in LineObj and the script will automatically place the current LineTool (See LineTool below) and connect the two objects together. The diameter of the Line Object will be the value of the Line Diameter (See Line Diameter below)
  2. Time - You can vary the timeline of an object by entering a value in this slider. Example: Entering a value of 20 in a 10 frame animation will make the object move at a resolution of twice the framerate. A value of 5 will move the object at half the framerate.
  3. Offset - This is the Frame Offset value. By entering a frame number here will instruct the script not to draw the object until the specified frame is reached. Example: An Offset value of 5 in a 10 frame animation the script will not render the object until Frame 5 is reached. NOTE: Personally I really have had a use for these two functions but I could do it so I did. Perhaps it will be a use for someone.

Object Control:

Get Start and Get End - Use these two buttons to place the Starting and Ending Size and Position of your object. If you plan to use Stroke Positioning then the actual Position values do not matter but the Size of the object does. Also When set the script will remember the objects Color, Material, and Texture properties.

Recall Start and Recall End - Pressing one of these when no other object is active (No Gyro) will recall that object to the Canvas with all its Color, Material and Texture Properties and place the object in Edit Mode (gyro visible). If you are currently working with an active object (gyro visible) then it will move that object to that Position without assigning Color, Material or Texture. This is useful in assigning another object to another's Position. Example: I can set Object 2 to Object 1's Start Position by pressing Recall Start on Object 1 while holding Object 2. I could then assign Object 2's Start Position by pressing Get Start on Object 2.

Swap - Swap this object's Start Position with its End Position. This can be used to incremently build an animation. Example: Make a 10 frame animation of a ball moving. At the end of the animation press the Swap button. This makes the End Position the Start Position. Now move the ball to a new position and press the Get End Button making a new End Position. Run the animation again and create 10 new frames.

Load Data - IMPORTANT this button is the one that you really need to understand, so I will try to go into depth about it. The NEW Animation Master script in addition to its new functions is all about holding the animation in memory so that each frame may be individually managed (see below) Once you have set up your Object, Start/End, Size, Rotation etc.... you MUST then press the Load Data button to capture the data to memory. Whenever you make a change to the Objects properties or the Animation's Number of Frames, you MUST then press the Load Data button to build the Object in memory. I expect this may cause a little confusion or problems (sometimes me too, if I forget to update the data). But the power that this allows you to have by frame by frame modification makes this (to me) a small price to pay. So when in doubt, just hit the Load Data button!

Also, I might point out in regards to changing the number of frames in the animation it is pretty straight forward unless you are using Stroke data for positioning using the GetZdata function. Just change the number of frames and press the Load Data button for each object that doesn't use the Stroke positioning with GetZdata data and you will be fine.

If you have an Object/s that uses the Stroke with GetZdata then you must do one of two things after changing the number of frames. This is because the Z data from the stroke is obtained from the canvas when you press the LoadStroke button. When you change the number of frames the script will have to read the canvas again to get this Z data.

1. Recreate your stroke data on the canvas and re-read the data by pressing the LoadStroke button. Then you can Load Data.

or

2. Alot of times you will be creating the path by placing planes or object's on the canvas to make the object do what you want. Do all your stroke setup on a different layer than the ones that you do the animation on and make sure it is unselected so that when you are in another layer it doesn't show up. Than way you can go to that layer which has your Stroke template and go ahead and press Load Data. The script will iterate through your original stroke and pick up the Z data from your original canvas that is contained in that layer. I hope this makes sense :)

Frame and Export Controls

 

Preview without Saving - Playback starting at Frame 0 all Frames without Exporting Renders. Switch No Clear on to disable clearing of the layer between frames. I.E. during the render progress you will see each step each object moves and at the end all frames will be drawn in one layer.

Execute and Export Images - Playback starting at Frame 0 all Frames and Export Renders. Will ask for a Starting Filename. Navigate to desired directory and enter a filename.

Select Frame, F+ and F- Manual control of current frame

PlayFrame - Render current Frame on the canvas

ExportFrame - Export current Screen to disk. Important: Will only ask for BaseFilename when Frame 0 is selected.

Put1 through Put10 - Seperately recall specific objects into the current frame.

Poke1 through Poke10 - Seperately modify each object's Position or Size data in the current frame.

LineDiameter - Global diameter size for the current LineTool for MakeLine, LineToFrom and each Object's LineTo function.

MakeALine - Use the mouse Left-Click drag on the canvas to make a line on the canvas with the current LineTool

LineToFrom and LineFrom/LineTo - Make a line, using the current LineTool by entering the numbers of an object in the LineFrom and LineTo slider. Press LineToFrom to make the line.

LineTool - Select the tool you wish to use in the above functions by drawing it on the canvas and entering a transform mode (Gyro Visible) A 3DCylinder makes a good line!

Light Control:

Use these controls to assign one of the lights (2 through 8) to one of your objects. This light will then follow the light in the animation according to the parameters that you set. Note: Light 1 and Light 2 are not available as I chose to leave them as suns, you may deSelect them or modify them manually if you wish.

For each light you assign the object and the distance that you wish to set the lights focal point from the object. You can also set the color of the light and/or change the color during the animation by setting different values in the Start and End Color buttons. The direction that the focal point is assigned is set by either pressing the Global Point or LoadPoint button.

Object - Select the object that you wish to assign this light to

Distance - Enter the distance from the object's center that you wish the lights focal point to be

Start Color - Set the starting color for the light by selecting it in the Color Palette and pressing this button

End Color - Set the end color for the light by selecting it in the Color Palette and pressing this button. If the Starting and Ending colors are the same the light will remain that color during the animation. By assigning different colors the color of the light will progressively change from the starting color to the ending color during the animation.

Global Point - This is the point that you set for the NosePointer at the top of the animation script by pressing Use Current Object

LoadPoint - This is a manually set position which can be different for each object. Hold an object in edit mode (Gryo Visible) and position it to where you want the light to face in the animation and press the LoadPoint button.

Note: For each Light that you activate, prior to running the animation you must manually go to each light and set its individual Type and Intensity etc.. before you run the animation.

Note: Also for any of the Light properties to show up you must select Best Render for the animation otherwise the script bypasses it. Also for speed of rendering after each frame the script will place the render in Flat Render to speed up the placement and setting of the objects and lights. When all is complete it will then render the image in Best Render (if that is selected).

Keyboard Shortcuts