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