AnimationRecorder¶
- MacroModule¶
author
package
definition
see also
keywords
Purpose¶
The module AnimationRecorder allows for creating animations and record them as video streams. It provides an editor to create keyframes for animating field values.
Usage¶
Create a network with an Open Inventor scene. Add an AnimationRecorder module and connect the scene to its input.
Open the panel of the AnimationRecorder module. Click New to create a new animation. Select a filename for the animation.
At the bottom of the AnimationRecorder panel is the keyframe editor. It is now enabled and initially contains the camera track with a keyframe at position 0. At the bottom of the keyframe editor, there are buttons to control playback and recording.
Interaction¶
Use drag-and-drop to add fields from module panels to the keyframe editor, creating a track for each field.
The fields and modules in the tree view on the left side can be reordered using drag-and-drop. Moving frequently edited field tracks to the top may be helpful. The context menu in the tree view allows removing fields and modules from the animation.
To insert and modify keyframes, use the context menu on a field track. The context menu on keyframes allows deleting or editing them.
Keyframes on field tracks can be selected using the mouse to delete or move multiple keyframes.
The cursor displaying the current frame can also be dragged by the mouse to change the current frame.
Tips¶
If a volume rendering is animated, then the interactive quality should be set to 1.0 and the incremental update should be disabled; otherwise, the renderer does not use the full quality during the animation.
See also the SoGVRQualitySettings module, which allows for having different quality settings for the same renderer in different viewers. It has also a setting to force high quality rendering, even if the hardware does not support it.
Windows¶
MainPanel¶
Input Fields¶
inputScene¶
- name: inputScene, type: SoNode¶
The Open Inventor scene that will be animated and rendered for the video.
Output Fields¶
Parameter Fields¶
Field Index¶
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Visible Fields¶
Load¶
- name: load, type: Trigger¶
When pressed, an existing animation (.mlmov) is loaded if it is not already loaded.
Save¶
- name: save, type: Trigger¶
When pressed, the currently opened animation is saved (.mlmov).
New¶
- name: new, type: Trigger¶
When pressed, a new animation is created (.mlmov).
Video Size¶
- name: videoSize, type: Vector2, persistent: no¶
Sets the resolution of the resulting video.
Note
There may be limitations for the resolution, depending on the platform and codec. Resolutions up to Full HD (1920x1080) should be supported, though.
Frames Written¶
- name: frameCounter, type: Integer, persistent: no¶
Create Images:¶
- name: writeImagesInsteadOfVideo, type: Bool, default: FALSE¶
If checked, the frames are written as an image series instead of a video.
Images Format¶
- name: imagesFormat, type: String, default: png¶
Sets the format of the images if not creating a video. See
Create Images.
Rendering Framerate¶
- name: averageRenderFPS, type: Double, persistent: no¶
Sets the frame rate of the current offscreen rendering process.
Total Recording Framerate¶
- name: averageWriteFrameFPS, type: Double, persistent: no¶
Sets the overall frame rate for rendering and writing.
Current Frame¶
- name: currentFrame, type: Integer, default: 0¶
Sets the currently displayed or rendered frame.
Playback Speed¶
- name: playbackSpeed, type: Integer, persistent: no¶
Sets the playback speed to control the animation’s pace. This setting does not affect recording.
Duration¶
- name: videoLength, type: Integer, persistent: no¶
Sets the duration of the animation in seconds.
Framerate¶
- name: framerate, type: Integer, persistent: no¶
Sets the frame rate for the resulting video stream.
Note
Changing the frame rate may remove keyframes. For example, if the video duration is 10 seconds with a frame rate of 30, then the last frame is 300. If the frame rate is reduced to 20, then all key frames after frame 200 will be discarded.