Create Movies Widget Help

Overview

This widget allows you specify certain keyframes in a movie sequence. Once these are specified a movie can be played back. DAVE automatically interpolates between the specified keyframes to produce smooth motion between the keyframes; thus producing a movie. In addition, rotation, pauses, and rocking about an axis can also be specified. For playback various parameters can be set to control how many frames are interpolated between the keyframes. The information describing the keyframes can be saved to a file and can be read back in during another session of DAVE. The movie can also have an associated audio file. Labels can also be saved along with the movie sequence. These labels will then automatically be displayed at the correct place in the movie sequence. These labels must be specified at the time of the creation of the movie (unless you want to edit the ASCII movie script manually). See the Label Widget help (in the Stuff Menu of the Master widget) for more information. NOTE: This widget has not been used much lately and may not work entirely correctly. In particular it may not save all of the information it needs to correctly reproduce the view that you see when you save a keyframe.

Setting Up to Record or Playback a Movie

Record Video

Pressing this button (which will highlight it in yellow) tells DAVE that you will be recording keyframes. This button should be pushed at the start of a recording session. It does not actually save anything at this time (you specify keyframes to save by pushing the Save Matrix button). Pressing this button will also cause DAVE to prompt you for a file to which the session should be saved.

Record Sound

Press this button to add an audio commentary to a movie sequence which you have already specified. It will playback the movie sequence while you record the audio (so that you can match the audio to the movie). The only computers which have audio are Invivo, Invitro, and Graphics. Note: audio files can get large (they are 8,000 bytes per second or 1/2 MByte per minute). Press the OFF button when you are through recording your audio segment.

Playback w/o sound

This will playback a movie script without any sound. If the Playback Once radio button is selected (the circle filled with red), the sequence will be played once. At termination the OFF button will become highlighted in yellow. If Repeat Playback is selected, the sequence will be looped through continuously.

Playback with sound

This will playback a movie script with an associated soundtrack. If the Playback Once radio button is selected the sequence will be played once. If Repeat Playback is selected, the sequence will be looped through continuously.

PAUSE (the green button)

This pauses playback (and recording of audio?).

OFF

Turn off playback and recording. When this button is pushed it is highlighted in yellow.

Recording a Movie Sequence (the Keyframes)

All actions (button pushes, menu choices, slider movements, etc.) that occur while in record mode are saved to the movie script file. To actually save specific views, you need to go to that view and then press Save Matrix.

Save Matrix

When in record video mode, pressing this button will save the current view as a keyframe (by "view" we mean scaling and orientation of the image). Keyframes are not stored as images but as a matrix of numbers describing the current view. Thus they don't take up much space and the resulting movie script file is fairly small. The keyframes are saved to the whichever file the user has previously specified. Note: when entering record mode, Dave may automatically save the current viewing matrix (I'm not certain).

Pause (the blue button next to Save Matrix)

Click on this if you want the movie to pause for a certain amount of time at the current view. The current view is whatever was saved with Save Matrix immediately prior to clicking on Pause (or the view resulting from a Rotate call). You will be prompted for the number of seconds to pause.

Rotate

If, rather than interpolating between keyframes you just want to rotate the current view about a certain axis, use this button. (the current view is whatever was saved with Save Matrix immediately prior to clicking on Rotate). Clicking on it will pop up a widget. Type in the number of degrees to rotate. Then type in the number of degrees between each frame (click in the box to make it active). The axis of rotation can be set to X (horizontal), Y (vertical), or Z (perpendicular to the screen) by toggling (left mouse click) on the axis letter or choosing the axis from the menu (hold down right mouse while over the axis letter). Once you are satisfied, click on OK. Note: when the scene is done rotating, the final orientation becomes the new current view (so if you then specify an interpolation with Save Matrix you will be interpolating from the view at the end of the rotation to the view when Save Matrix is pressed).

Rock

If, rather than interpolating between keyframes you just want to rock the current view about a certain axis, use this button. (the current view is whatever was saved with Save Matrix immediately prior to clicking on Rock, or the result of a Rotate). Clicking on it will pop up a widget. Type in the number of times to rock about the current view (1 = rock left, then right, then back home). Then type in the number of degrees between the left view and the right view (click in the box to make it active). The axis of rotation can be set to X,Y, or Z (as with Rotate above). Once you are satisfied, click on OK. Note: when the scene is done rocking, the final orientation should be the same as the initial orientation. This becomes the new current view (so if you then specify an interpolation with Save Matrix you will be interpolating from the view at the end of the rocking).

An explanation of how DAVE interprets the movie script file may help. DAVE scans the script in sequence. Whenever it sees an "action" (e.g. a change of brightness slider, turning an object off, etc.) that occurred while DAVE was recording, it performs that action - but it doesn't actually redraw the image until it reaches a saved matrix. Once it sees a saved matrix it redraws the image based upon ALL of the new settings. It will create a sequence of images with this setting, starting with the previous view and interpolating to the new view represented by the saved matrix it just reached. Thus you see all of the changes happen at once. Settings (e.g., dithering, transparency type, single buffer, etc.) which were in effect before you started recording may not have been explicitly saved in the DAVE movie script (if you picked those settings after you entered Record mode they would have been saved). They therefore don't get set during playback. Therefore those settings will remain (during playback) whatever they were before you pressed Playback. Thus, if you were in Dithered mode BEFORE you recorded a movie and then went out of dithered mode before you played the movie back, it would play back not in dithered mode. But if, instead, you had explicitly entered Dithered mode immediately after starting to record the movie, the movie would play back in dithered mode (regardless of the display mode at playback time, since dithering would be entered in the movie script).

Specifying the Interpolation Between Keyframes

DAVE provides control over several interpolation parameters. Each script which gets created includes information about the interpolation parameters specified while it was created. These parameters specify how many frames get created between the keyframes. See the description of "intervals" below. On playback of a script you can either use the interpolation parameters which were saved with the script (i.e., those which were in effect when the keyframes were initially saved) or you can specify your own interpolation paramters (thus you can create a finer or coarser interpolation than originally specified). Parts of the script saved with Pause,Rotate,or Rock will always playback as specified at creation time. Only interpolations between keyframes based upon Save Matrix are discussed here.

Use Script Intervals

On playback, interpolate keyframes using the parameters saved with the script.

Use Counter Intervals on Playback

On playback, use the interval parameters currently set in the widget for interpolation (not the parameters saved with the script). See below for more details.

Hi-Res Movie

I'm not sure what this does. It probably creates some sort of high resolution movie. It may actually produce a .i2i image sequence. Such a sequence would take up a LOT of disk space.

The interpolation between keyframes is (by default) simply specified as the number of desired interpolated frames between each keyframe and how long a pause should occur between each displayed frame. During the recording of a video these values are stored along with the keyframes. During playback of a video they are used if the Use Counter Intervals on Playback button is pressed.

Time between Intervals

This controls the length of pause between each displayed frame (keyframe or interpolated frame). It is the number of swapintervals to wait between frames. A swapinterval is 1/60th of a second.

Number of intervals

This is the number of frames which should be interpolated between each keyframe.

Rather than always having a fixed number of interpolated frames between each keyframe, the user can specify the maximum allowed amount of rotation, translation, and scaling which is permitted between interpolated frames. DAVE will automatically determine the correct number of interpolated frames between each pair of keyframes based upon these constraints. In order to specify interpolation parameters in this manner, choose "Select Default Interval..." from the menu at the top of the widget (hold down the right mouse button while over the blue Edit Scripts bar at the top of the widget). This will display an Interval Selector widget.

Constant Intervals

When this is chosen the interpolation parameters used are those selected from the Edit Scripts widget (i.e., the Interval widget is ignored). This is the default.

Constant Rotation

When this is chosen the interpolation parameters used are those selected from the Interval Selector Widget. (This is a misleading name for this option). So, rather than a fixed number of interpolation frames between keyframes, the number will be based upon the keyframe differences and the settings in the Interval Selector widget.

Maximum Rotation Interval (mri)

The maximum number of degrees of rotation allowed between interpolated frames.

Maximum Scale Interval (msi)

The maximum scale change allowed between interpolated frames. This number is the percentage change, i.e., (scale1 - scale2) / scale1.

Maximum Translation Interval (mti)

The maximum translation allowed between interpolated keyframes. I think this is in pixels.

The number of interpolated frames between a pair of keyframes will be = MAX(rotation/mri, scale/msi, translation/mti) where mri, msi, and mti are the user specified maxima (as described directly above) and rotation, scale, and translation are the amount of rotation, scaling, and translation between the two keyframes.

Miscellaneous Commands

Save Script As.. (from the Edit Scripts Menu)

Change the file to which new keyframes in the movie script should be written.

Save Soundfile As.. (from the Edit Scripts Menu)

Change the file to which any new audio should be written.


Copyright 1995 by Lawrence M. Lifshitz and the University of Massachusetts Medical School. All rights reserved.