Search public documentation:
UE3 Home > Unreal Editor and Tools > Unreal Matinee User Guide
UE3 Home > Matinee & Cinematics > Unreal Matinee User Guide
UE3 Home > Cinematic Artist > Unreal Matinee User Guide
UE3 Home > Matinee & Cinematics > Unreal Matinee User Guide
UE3 Home > Cinematic Artist > Unreal Matinee User Guide
- Unreal Matinee User Guide
- Opening Matinee
- Matinee Interface
- Creating A Matinee Action
- Working with Groups and Tracks
- Sharing Matinee Data
- Locking The View To A Group
- Camera Actors
- Matinee Replication
- Exporting and Importing Matinee Data
- Key Reduction
- Gamecaster Integration
Matinee is a tool for keyframing the properties of Actors in your scene over time, including their position. It can also be used to author cinematic sequences in your level. This document explains how Matinee integrates with the Kismet gameplay scripting system, how to create a new Matinee sequence. For an explanation of the available tracks, see the Matinee Track Reference.
To open the Matinee tool itself, you simply double-click on the Matinee action in Kismet, or right click on it and choose the `Open UnrealMatinee' option. Matinee sequences can also be opened by clicking the button in the level editor's tool bar or selecting UnrealMatinee in the level editor's View menu and then selecting the desired matinee sequence from the list that appears. It is recommended that you set at least one of your viewports to `realtime' mode when using Matinee, so it will be updated as you playback or scrub through your sequence. When working within Matinee, Actors in the level will be moved around and have their properties changed as part of previewing the sequence. However, when you exit Matinee, all level state will be restored to the way it was when you entered Matinee. For this reason, you should avoid trying to modify the level or create new Actors while in Matinee, and you will not be able to save the level while Matinee is open. If you try to save your map with Matinee open you will be prompted to close it first.
Here is a screenshot from the Matinee tool itself:
- Import... - Imports a FBX / COLLADA or scene.
- Export All... - Exports the entire scene (though some items cannot be exported) to a FBX / COLLADA file for editing in an external 3D content creation package.
- Export Sound Cue Info... - Exports all SoundCue information for the Matinee sequence to a CSV file.
- Bake Transforms on Export - Toggles whether transforms are baked before exporting the scene.
- Undo - Undo the last completed action.
- Redo - Redo the last undone action.
- Delete Selected Keys - Deletes the keys currently selected in the timeline. Selecting keys in the Curve Editor does not select them in the timeline.
- Duplicate Selected Keys - Duplicates (with a slight time offset) the keys currently selected in the timeline.
- Insert Space At Current - Inserts the specified amount of time into the matinee sequence at the current time cursor position.
- Stretch Section - Stretches (or shrinks) the portion of the sequence contained in the loop section to fit the specified amount of time.
- Delete Section - Deletes the portion of the sequence contined in the loop section.
- Select Keys In Section - Selects all the keys contained within the loop section.
- Reduce Keys - Reduces the amount of keys in the currently selected track. This can be useful for tracks that were edited in an external application and may have quite a bit of redundant keys that are not needed to get the desired animation. See Key Reduction for more details.
- Save As Path-Building Positions - Saves the current time and positions of moving actors to use when building paths.
- Jump To Path-Building Positions - Moves the time cursor to the saved path-building position.
- Configure Keyboard Shortcuts - Opens the Hotkeys Editor.
- Draw 3D Trajectories - Toggles display of 3D movement paths in the viewports. Display of paths for individual tracks can be toggled on an off by clicking the button on the track in the track list.
- Show Trajectories for All Tracks - Enables display of 3D movement paths for all movement tracks in the sequence.
- Hide All Trajectories - Disables 3D movement paths for all movement tracks in the sequence.
- Snap keys - Toggles snapping of the time cursor and keys.
- Snap Time to Frames - Snaps the timeline cursor to the frame rate specified in the Snap Size dropdown. Only enabled if snap size setting is in frames per second.
- Fixed Time Step Playback - Locks playback rate to the framerate specified in the Snap Size dropdown. Only enabled if the snap size setting is in frames per second.
- Show Frame Numbers in Anim Tracks - Toggles display of frame numbers instead of time in seconds for the current cursor position for Anim Control tracks.
- Show Cursor Position for All Anim Keys - Toggles whether cursor position info for Anim Control tracks should only be displayed for the currently selected Anim Control track or for all Anim Control tracks in the sequence.
- Zoom To Time Cursor Position - Toggles whether the timeline should zoom in or out on the current cursor position or on the center of the visible timeline.
- Display Frame Stats in Viewport - Toggles display of frame statistics in the viewport.
- Fit View to Sequence - Zoom timeline to the entire sequence.
- Fit View to Selected - Zoom timeline to the selected key(s).
- Fit View to Loop - Zoom timeline to loop section.
- Fit View/Loop to Sequence - Set start and end of loop section to the start and end of the entire sequence.
- Enable Gore in Editor Preview - Toggles display of gore in editor preview.
- Toggle Curve Editor - Toggles display of the Curve Editor.
- UnrealMatinee Curve Editor - Toggles display of the Curve Editor.
- Properties - Toggles display of the Properties Pane.
|Add keyframe at current position on the selected track.|
|Sets the default InterpMode to use when adding new keys.|
|Start preview playback from current position.|
|Loop preview playback of loop section.|
|Stop preview playback.|
|Start preview playback in reverse.|
|Adjust preview playback speed.|
|Undo last action.|
|Redo last undone action.|
|Toggles display of the Curve Editor.|
|Toggles snapping of the time cursor and keys.|
|Snaps the timeline cursor to the frame rate specified in the Snap Size dropdown. Only enabled if snap size setting is in frames per second.|
|Locks playback rate to the framerate specified in the Snap Size dropdown. Only enabled if the snap size setting is in frames per second.|
|Sets the timeline granularity for snapping and visualiization purposes.|
|Zoom timeline to the entire sequence.|
|Zoom timeline to the selected key(s).|
|Zoom timeline to loop section.|
|Set start and end of loop section to the start and end of the entire sequence.|
|Toggles display of gore in editor preview.|
|Launches the Gamecaster Recording Window for Matinee.|
|Start a Matinee movie capture.|
|Click-drag on background||Pan sequence around|
|Mouse wheel||Zoom in and out|
|Click on key||Select keyframe|
|Ctrl-click on object||Toggle selection of object|
|Ctrl-drag||Move current selection|
|Ctrl-Alt-Shift-drag||Box select (add to current selection)|
|Enter||Add keyframe at current position on the selected track|
|Ctrl-W||Duplicate selected keyframes|
|Delete||Delete selected keyframes|
|Left/Right Cursor||Jump to previous/next key on selected track|
|Up/Down Cursor||Move selected group up/down in list|
|R||Razor Tool (for AnimControl Track - see later)|
Matinee is integrated closely with Kismet. It appears as a type of Action within Kismet, and playback is started by connecting one of its inputs to some kind of event in the level. You may want to look at the Kismet User Guide if you are not already familiar with Kismet. To create a new Matinee sequence, open Kismet and right-click on the background to bring up the `New Object' menu. Under `Actions' you will find `Matinee'. Alternately, there might be an option under that menu that says "New Matineee" which you could also choose or you can also just hold down the M key in Kismet and click where you want the Action. A new Matinee Action should appear, along with an orange `Matinee Data' variable. The `Matinee Data' is the actual keyframe data for the sequence. You must have a `Matinee Data' object connected to your Matinee Action for it to work. The different inputs on the left allow your Kismet script to control the playback of the Matinee sequence, in a manner similar to a DVD player. The Completed and Reversed outputs on the right are fired when the sequence finishes - `Completed' is fired when the sequence reaches the end and finishes, and `Reversed' is fired if the sequence is playing backwards and reaches the start and finishes. Activating the Stop input does not fire Completed or Reversed. The Object Variables connected to the Matinee Action are the Actors that are going to be modified by the sequence. There are a few options you can set for the Matinee Action in Kismet:
- Client Side Only - This property tells the engine that the sequence does not affect any part of gameplay, and therefore does not need to be replicated, or performed on networked machines.
- Force Start Pos - If checked, tells the sequence to always start playback from the time* - or timeline position* - indicated by the ForceStartPosition property.
- Force Start Position - Sets a designated position along the timeline from which to start the animation when the Play input is activated. Requires Force Start Pos to be checked.
- Interp For Path Building - If checked, tells the sequence to jump to the time indicated in the Path-Building Position in the timeline when paths are being built.
- Is Skippable - If checked, allows the CANCELMATINEE console command to be used to skip the sequence.
- Looping - If checked, causes the sequence to loop back to the beginning when the end is reached.
- No Reset On Rewind - If checked, causes any actors who are affected by Movement tracks that are using RelativeToInitial interpolation to use the initial position set at the current location when the sequence is rewound. This means that an actor will begin the next loop of the animation from the same location as where the animation ended
- Play Rate - Sets a multiplier for the final speed at which the animation plays back. A value of 1 is equal to normal real-time speed.
- Rewind If Already Playing - This property will cause the animation to automatically rewind back to the beginning if a user activates the Play input again during playback.
- Rewind On Play - This property will cause the animation to always start from the beginning when the Play input is activated, even if the animation was paused.
Commonly you will want to place actors in your level that are moved around by a Matinee sequence. The easiest way to do this is to add a `Mover' actor to the level. You add these in a very similar way to adding StaticMesh Actors - select a static mesh in the Browser, right click in the level and choose `Add InterpActor...' from the `Add Actor' menu. Note that it is quite easy for other types of dynamic object to use movement information from a Matinee sequence. For example, if you want to keyframe the movement of a particle Emitter Actor, simply switch its Physics mode from PHYS_None to PHYS_Interpolating.
Matinee is structured around the idea of a set of Groups, each containing a number of different Tracks. A Group is associated with a particular Actor in the level.
Because all the data for a Matinee sequence is stored in the Matinee Data variable, and it does not contain any direct references to specific Actors in the level, you can share it between multiple Matinee Actions. This can be useful if you are animating something like a door opening, which you will want to re-use in multiple places in the same level on different Actors. Sharing Matinee Data avoids duplicating the data (thus reducing memory overhead) and makes it easy to modify the movement of all the doors in the level. The Matinee Actions will behave completely independently - opening one door will not affect any of the others. If you do wish to duplicate a Matinee Data variable, you can use Ctrl-W in Kismet as with any other Object. Below is an example of sharing one set of Matinee Data between two different Matinee Actions, working on different Actors. When you double-click on the Matinee Action, it will open Matinee editing the shared data, but using the Actors linked to that particular instance. When you connect a Matinee Data variable to a Matinee Action, all the Object Variable and event output connectors will appear. You also connect Matinee Data through Named or External variables (see Kismet User Guide for more info). When using Movement tracks in data shared between multiple Actions, you will almost certainly want to use the `Relative To Initial' frame.
In Matinee, particularly when creating cinematics, it is desirable to lock the editor view to one of the Actors you are controlling in the scene. When you press the button on the Group title bar, it locks any perspective viewports to be at the position of the Actor controlled by that group. As you scrub through the sequence, the camera will move with that object. Also, when you move the editor camera, it will move the Actor around to follow it. This can be useful when adjusting a keyframe for an object to look in a particular direction. When you lock the camera to the Director Group, it will view through the currently `active' camera. This allows you preview what the scene will actually look like in-game. Whenever you open a Matinee sequence which contains a Director group, it will automatically turn on `realtime' mode on any perspective viewports, and lock the camera to the Director Group.
When making a cinematic sequence, it can be very helpful to use Camera Actors placed in the level. Although you can view through any Actor you have a Group for, CameraActors give you additional properties to control using a Float Property Track such as the camera FOV and aspect ratio, and allow you to graphically see the camera view frustum in the editor. You can add a Camera Actor to the level by opening the Actor browser, selecting CameraActor from the Actor class hierarchy, right-clicking in the level and choosing `Add CameraActor Here'. Here is a CameraActor in a level: The camera mesh and view frustum will only appear in the Editor, not in the game. As you scrub around in Matinee, the active Camera frustum will highlight yellow. Each camera frustum is otherwise drawn using the Group editor color, making it easy to tell which Group is controlling which camera. When viewing through a CameraActor with Constrain Aspect Ratio set to true, black bars will be added to the viewport to enforce the screen shape. In the editor, these will only be added when the view is currently locked to a CameraActor.
Matinee objects that have bClientSideOnly set to false are automatically replicated from server to client. Whenever the action is activated on the server, the server sends that information to the client and keeps them in sync. Note that this automatic replication only handles Actors with bStatic or bNoDelete set on them (that is, Actors that must be placed in the level in UnrealEd) and the Object variables connected to the matinee must be set to the desired objects in UnrealEd (not at runtime via another action). Actors for which this is not the case are repsonsible for replicating changes caused by matinee themselves using their own UnrealScript or C++ replication code.
In your game you may have many in-game cinematic sequences but lighting on the characters using the light environments set up may look a bit basic and it may be difficult to really show off the models nicely. In this case, you can use custom lighting channels (sometimes a separate lighting channel for separate characters to control the amount of lights per character), and custom placed dynamic lights to light the characters during close-up shots. For these sequences, you can use real dynamic lights because they look a little better and give you more control. You should still use very few lights, and often only one of them for casting shadows. There is a small performance difference, but since cinematics have no gameplay to further slow down things you should be able to get away with it. You may have to have LD's go into cinematic maps and optimize them a few times to get things running smoothly on consoles. In most cases, all static geometry in cut scenes (except for the ground the characters are standing on, which needs real lighting for shadows) can still be light mapped.
Matinee has ‘Export’ and ‘Import’ menu options that allow you to export the entire Matinee sequence out to a FBX / COLLADA file that can be loaded into a 3D content creation package. This allows you to use an external program to animate the movement of your actors and cameras as well as other properties such as motion blur amount and camera FOV. Many aspects of the scene can be exported, such that you’ll be able to visualize your world geometry while working with an animated sequences. When exporting a Matinee sequence, UnrealEd will attempt to export most of your scene geometry along with the animation curve data. The following data will be exported:
- Cameras bound to the Matinee sequence
- Actors bound to the Matinee sequence
- Animation Curves for certain tracks
- Movement tracks
- Float Property tracks
- All Lights in current Level
- All Static Meshes in current Level (including polygons, brush geometry and materials)
- All Emitters in current Level (placement cue only)
- It is now recommended to use FBX.
- Current builds of UE3 have only been tested with ColladaMAX 3.05B and ColladaMaya 3.05B.
The key reduction tool makes it easy to remove unneeded keys in the animation curve for a single track. You may have a track with several keys in the curve that all fall along a fairly straight line. Only the first and last keys are really needed in such cases. The key reduction tool can remove the intermediate keys to lessen the impact on memory and keep from performing useless calculations. The tool has a few properties:
- Tolerance - Sets how far off the straight line between the previous and next keys a key can be to be removed.
- Full interval - If true, the full interval of the track's keys will be used for reducing keys.
- Interval Start - Sets the time to start reducing keys from.
- Interval End - Sets the time to stop reducing keys at.
Unreal supports the Gamecaster virtual camera peripheral which offers cinematic creators the power to quickly record camera tracks. The recording window is currently accessed at the far right side of the Matinee toolbar and has the helptext "Launch Recording Window for Matinee". The basic control scheme is as follows:
- Panning movement - Left analog Stick
- Camera zoom - Right analog Stick
- "Record"/"Stop Recording" - Left side button
- Change selected menu option - Left wheel
- Change selected menu value - Right wheel
- Reset menu value - Press right wheel
- Toggle menu display - Press left wheel
- Playback previously recording cinematic - Press right analog stick
- New Camera Mode - Every Recording will create a new camera actor, select it, and create a movement and FOV track to record into
- New Attached Camera Track - Every Recording will create a new camera, select it, create the appropriate tracks, and attach to the selected object. Great for attaching to actors or other cameras to create complex dollies.
- Duplicate selected tracks - This will duplicate the selected tracks, select them and record into them. This is great for doing multiple "takes" for one camera to review later.
- Replace selected tracks - Used to overwrite an existing track. Use this to quickly erase and re-record a track that didn't turn out well.
- Free Camera - The left analog stick will pan in the plane of the camera (i.e. Forward on the stick will move the camera into the screen)
- Planar Camera - The left analog stick will pan in the xy-plane only.
- After recording, it is recommended to try to Reduce Keys on the selected tracks.
- To maximize frame-rate, it is recommended that all standard editor viewports be taken out of "real-time" mode during recording.
- This recording system is also compatible with a console controller and supports inverting the x and y axes.