# VoreenVE - Animation

## Key Features

The main aspect of the animation concept in Voreen is the manipulation of properties based on key values. Each property in a network is associated with a timeline consisting of key values, each of them assigning a property value to a point in time. Property values between these key values are calculated by applying one of several pre-defined interpolation schemes, such as linear or spline interpolation.

For a convenient manipulation of animations VoreenVE provides an animation editor that allows creation, editing and deletion of keyframes for (almost) all property types available in Voreen. You can also undo or redo editing actions, adjust the animation's duration, preview the result, load and save the animation, and render it to an image sequence or a video file. Additionally, animations can be created efficiently by taking snapshots of the whole network state. Figure 1 shows an overview of the editor's most common functions.

Figure 1: Overview of the animation editor

1. New animation

2. Settings

3. Export video

4. Undo

5. Redo

6. Goto first frame

7. Rewind animation

8. Pause animation

9. Play animation

10. Stop animation

11. Forward animation

12. Goto last frame

13. Take snapshot of network state

14. Current time

15. Current frame

16. Refresh previews

17. Select renderport for preview generation

18. Current position indicator

19. Processors

20. Add property timeline

21. Property timeline

22. Selected keyframe with interpolation selectors for in- and outgoing functions

23. Interpolation modes

24. Interpolation functions

25. Property widgets for manipulation of the currently selected property key value

In the following, we will refer to these fields by "(overview xx)" with xx indicating the respective number. For example "(overview 10)" would refer to the forward button.

## Basic Animation Editing

Open the animation editor by either clicking the appropriate button in the toolbar or by selecting the Animation entry in the Tools menu (see Figure 2).

Figure 2: Opening the animation editor

We start by adjusting the duration of our animation in the Settings menu (overview 2).

As shown in Figure 3, timelines for properties to animate can be added by clicking the "Add property timeline" button (overview 20).

Figure 3: Adding property timelines

Initially every property timeline has a key value at the time 00:00, which represents the processor network state at the moment we created the animation. By clicking on this keyframe the corresponding property widget (overview 25) becomes active, so that the property value at the selected key time can be edited. You also can move the key value to change the key value's time.

A new key value can be created by two different ways as shown in Figure 4:

Figure 4: Adding a key value

1. Do a right-click inside the property timeline (overview 21) and select "Add key frame". This will create a keyframe at the time represented by the mouse position with the value given by the current timeline state at this time (interpolated value). For example, if we have an int property and two key values with linear interpolation, one at the time 00:00 with the value 0 and one at the time 00:10 and the value 100, the added key value 00:05 will have the value 50.

2. Do a right-click inside the property timeline and select "Take snapshot". This will take the property value from the current network state.

Now we can manipulate this key value by selecting it with a left-click and editing the property widget to its right (overview 25).

Furthermore, we can edit the interpolation function that is to be applied before and after the key value by clicking the left- or right interpolation selector (overview 22). This displays the context menu for the selection of the desired interpolation mode (overview 23) and interpolation function (overview 24).

It is also possible to change the time of a key value by simply dragging it to the favored position in its timeline.

To delete a keyframe select it via left-click and press del.

You can preview the changes via the animation control (overview 06 - 12) or by clicking any valid position in the overview.

If the animation looks choppy try to activate the interaction mode.

All of these basic editing techniques support an undo/redo feature accessible via the undo (overview 4) and redo button (overview 5).

## Advanced Animation Editing

To save an animation simply save the whole workspace. Animations are serialized within the workspace so loading or saving one is part of the workspace serialization.

For a faster animation creation you can take a snapshot of the whole network state by selecting a time in the overview widget and then clicking the "Take snapshot button" (overview 13). This adds key values for all properties whose value in the network deviate from their value in the timeline. If the timeline of a modified property is not present, it will be added automatically. If you forgot to put the current time indicator (overview 18) to the right position you can also right-click the desired position in the overview timeline and select "Take snapshot" to snapshot the render network's state at the corresponding time.

Snapshotting a single property is possible by a right-click in the property timeline at the desired time. This is for instance useful for basic camera movement.

You can disable property timelines by clicking the red icon between the timeline and the property widget. A property whose timeline is disabled is completely ignored by the animation.

To export your animation into a video file or a series of pictures just press the "Export animation" button (overview 03). A dialog will pop up that lets you define the export parameters, such as duration and frame rate. Note: If your Voreen version is compiled without ffmpeg support, you can only export to a picture series.

As a little hint of the actual animation outcome, there is a semi-automatic preview rendering generation available within the overview timeline. The canvas to be used for generating the previews are selected with the "Select renderport button" (overview 17). The preview renderings can be refreshed with the "Refresh button" (overview 16).