Adding animation to your lessons in Modest3D can be achieved using a few different nodes:
To add one of these animation nodes to your lesson, right-click-and-drag the bottom handle from an object node and select one of these nodes from the list. The next few articles will explain in detail the uses for each node, and their differences from each other.
The Animate node is used to animate scene objects in your lessons. These objects include 3D models, Cameras, and Lights. The animation of the object is edited via the Properties tab (or the Editor) when the Animate node is selected. Ensure that you are Simulated to the Animate node to receive instant feedback on your changes.
The Delta Position and Delta Rotation properties indicate the position and rotation of your object in relation to its original state, using XYZ coordinates. For example, if the Position's Y was set to 1, and the Rotation's Y was set to 90, the scene object will animate by moving up, and rotating on its Y axis by 90 degrees.
If you prefer a more visual or hands-on approach, the position and rotation can be more easily modified via the Editor window. From the Editor, you can use the Translate or Rotate gizmos to move and turn the object to the position you want.
The Time property can speed up or slow down your animation. The number listed is a value in seconds; by default, the Animate node is 1 second long. You can change this value to a decimal as well (e.g. 0.5 will be half a second).
The Rotation Multiplier property is an easy way to add extra rotation to your animation. It is set to 1 by default, meaning the object will rotate by the specified Delta Rotation once. You can set this number to any multiple (e.g. 2 will rotate twice within the Time, 3 will rotate 3 times, 99 will rotate 99 times, etc.). Three buttons are available in the Properties of the Animate node which can prove helpful in quickly changing your animations:
The Animate Absolute node is similar to the Animate node, and is used to animate scene objects in your lessons. However, there is an importance difference between the two. When you use the Animate node, it moves in relation to its previous position. The key difference from Animate is that Animate Absolute works with absolute coordinates rather than relative coordinates, which will move the object to a specific position and rotation in the lesson, rather than a location derived from the object’s starting position.
End Position and End Rotation indicate the coordinates in your lesson in which you’d like the animation to end. You pick a position in the world, and the object will move to it and rotate to it from anywhere in the lesson. This is particularly useful if you need an object to return to a specific place.
The Animate Custom node is used to display animations that are provided from a source model.
When you use an FBX format model in Modest3D, Animate Custom allows you to access the animations that it contains.
The Animation Name property lists the animations available from the source model. Click on the drop-down menu, and select the animation you wish to use in your lesson.
The Action property provides three options: Play, Stop, and Restart. Play will play your animation, Stop will stop the animation, and Restart will restart the animation.
The Play Type property indicates how the animation will be played. Once will play the animation all the way through one time, then stop. Loop will play the animation in a loop forever. Ping Pong plays the animation from start to end, then from end to start. Reverse will play the animation from end to start.
The Speed property is useful if you need to speed up or slow down the animation. It is set to 1 by default, the animation’s normal speed. If you wish to slow it down, you can enter a decimal value (e.g. 0.5 will slow it down to half speed). If you want to speed the animation up, you can enter any multiple (e.g. 3 will play at 3x speed).
The Wait Until Complete property decides whether the lesson will continue with or without the object having animated completely. If this is checked on, the lesson will wait until the animation is finished before continuing. If checked off, the lesson will continue and the animation will continue simultaneously.
Note: if your animation’s Play Type is set to “Loop” and the Wait Until Complete is checked on, the lesson will not continue, as the animation will Loop forever. Remember to set Wait Until Complete off if the Loop option is used.
The Animate Over Curve node is used for animations that require more complex movements.
Similar to the Animate node, the position and rotation of the object are provided in XYZ coordinates. Animate Over Curve uses multiple sets of XYZ coordinates to form a path or “curve” which the object will follow. These sets of coordinates are Transforms, or transformations, accessible via the Transforms property.
The Transforms property can include 1 or more transformations. To add a transformation, select the Add button, visible under the expanded Transforms property. Add your desired number of transformations, and edit their XYZ coordinates to change the Position, Rotation, and Scale of the object. To delete a transformation, hit the “X” in the top-right corner of the transformation.
Note: Animate Over Curve displays the animation in the order in which the transformations are added in the Transforms property (i.e. the top transformation is the first point on the curve, and the bottom transformation is the end point on the curve).
There are a few useful tools for locating and moving your transformations in the Editor and the Properties tab. Each of these are accessible in the drop-down menus, accessed via the arrow buttons located below each of your transformations:
The Include Current property indicates whether the original position of the object is included in the animation. If checked on, the animation will start from the object’s current location, and then animate through the transformations provided. If checked off, the object will instantly snap to the location provided in the first transformation when the node begins animating.
The Seconds property indicates the length of time in which the object will animate (by default, the value is set to 1). For example, if it is set to 15, it will move through each transformation on the curve in 15 seconds.