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 AnimationRecorder module allows to create animations and record them as video streams. It provides an editor to create key frames for animating field values.

Usage

Create a network with an 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 key frame editor. It is now enabled and contains initially the camera track with a key frame at position 0. At the bottom of the key frame editor are buttons to control playback and recording.

Interaction

Use drag and drop to add fields from module panels to the key frame editor. This will create a track for the field.

The fields and modules in the tree view on the left can be reordered by using drag and drop. It may be helpful to move frequently edited field tracks to the top. The context menu on the tree view allows to remove fields and modules from the animation.

To insert and modify key frames use the context menu on a field track. The context menu on key frames allows to delete or edit them.

Key frames on field tracks can be selected using the mouse to delete or move mutiple of them.

The cursor that displays 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 to have 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 inventor scene that will be animated and rendered for the video.

Output Fields

outputScene (hidden)

name: outputScene, type: SoNode

The inventor scene of the currently rendered frame of the video.

Parameter Fields

Field Index

Camera Type: Enum isModified: Bool Rendering Framerate: Double
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  

Visible Fields

Load

name: load, type: Trigger

Loads an existing animation (*.mlmov), if it is not already loaded.

Save

name: save, type: Trigger

Saves the currently opened animation (*.mlmov).

New

name: new, type: Trigger

Creates a new animation (*.mlmov).

Video Size

name: videoSize, type: Vector2, persistent: no

Specifies 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

Specifies if the frames should be written as image series instead of a video.

Images Format

name: imagesFormat, type: String, default: png

Specifies the format of the images when not creating a video. See Create Images.

Rendering Framerate

name: averageRenderFPS, type: Double, persistent: no

The framerate of the current offscreen rendering process.

Total Recording Framerate

name: averageWriteFrameFPS, type: Double, persistent: no

The ovarall framerate for rendering and writing.

Current Frame

name: currentFrame, type: Integer, default: 0

The currently displayed or rendered frame.

Playback Speed

name: playbackSpeed, type: Integer, persistent: no

The playback speed controls how quick the animation is played. This has no effect when recording.

Duration

name: videoLength, type: Integer, persistent: no

The duration of the animation in seconds.

Framerate

name: framerate, type: Integer, persistent: no

The framerate for the resulting video stream.

Note

Changing the framerate may remove key frames. For example, if the video duration is 10 seconds with a framerate of 30, then the last frame is 300. If the framerate is reduced to 20, then all key frames after frame 200 will be discarded.

Camera Type

name: cameraType, type: Enum, default: Perspective

Specifies the camera type.

Note

Changing the camera type will remove all existing camera key frames.

Values:

Title Name Description
Perspective Perspective The perspective camera.
Orthographic Orthographic The orthographic camera.

Hidden Fields

reset

name: reset, type: Trigger

Resets the currently opened animation 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