AnimationRecorder

MacroModule
author MeVis Medical Solutions AG
package MeVisLab/Standard
definition AnimationRecorder.def
see also VideoWriterInventor, VideoWriterML
keywords movie, video, recorder, writer, animation

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

../../../Modules/Macros/AnimationRecorder/mhelp/Images/Screenshots/AnimationRecorder.MainPanel.png

Input Fields

inputScene

name: inputScene, type: SoNode

The Open Inventor scene that will be animated and rendered for the video.

Output Fields

outputScene (hidden)

name: outputScene, type: SoNode

The Open Inventor scene of the currently rendered frame of the video.

Parameter Fields

Field Index

Create Images:: Bool isRecording: Bool reset: Trigger
Current Frame: Integer keyFrameCollectionChanged: Trigger Save: Trigger
Duration: Integer Load: Trigger Total Recording Framerate: Double
filename: String New: Trigger Video Size: Vector2
Framerate: Integer Playback Speed: Integer writeFrameFPS: Double
Frames Written: Integer progress: Float  
Images Format: String renderFPS: Double  
isModified: Bool Rendering Framerate: Double  

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

See VideoWriterInventor.frameCounter.

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.

Hidden Fields

reset

name: reset, type: Trigger

When pressed, the currently opened animation is reset to the last saved state.

filename

name: filename, type: String

isModified

name: isModified, type: Bool, persistent: no

renderFPS

name: renderFPS, type: Double, persistent: no

writeFrameFPS

name: writeFrameFPS, type: Double, persistent: no

progress

name: progress, type: Float, persistent: no

isRecording

name: isRecording, type: Bool, persistent: no

keyFrameCollectionChanged

name: keyFrameCollectionChanged, type: Trigger