UDN
Search public documentation

MatineeUserGuide
Licensees can log in.

Red links require licensee log in.

Interested in the Unreal engine?
Check out the licensing page.

Questions about UDN itself?
Contact the UDN Staff

Unreal Matinee User Guide

Document Summary: Guide to using the Unreal Matinee keyframing and cinematic system.

Created by James Golding; updated by Mike Fricker. Maintained by Richard Nalezynski.

Introduction

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 gamplay scripting system, how to create a new Matinee sequence, and an explanation of some of the different Track types.

Using Matinee

Creating A Matinee Action

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 UnrealKismetUserGuide? 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.

matinee_action.jpg

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 Aborted outputs on the right are fired when the sequence finishes - `Completed' is fired when the sequence reaches the end and finishes, and `Aborted' is fired if the sequence is playing backwards and reaches the start and finishes. Activating the Stop input does not fire Completed or Aborted. 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:

bInterpForPathBuilding Indicates if this sequence's Actors should be positioned before path-building. More on this later in this document.
bLooping If true, the interpolation will automatically return to the beginning when it reaches the end. You will not get any Completed or Aborted events fired if bLooping is true, and you must manually stop playback using the `Stop' input.
bRewindIfAlreadyPlaying Only used if bRewindOnPlay is true, and controls what happens when activating the `Play' input whilst the sequence is already running. If true, activating Play while already playing will restart the sequence from the beginning again - popping any Movers back to their position at the start of the sequence. If false, activating Play will no nothing if the Action is already playing.
bRewindOnPlay If true, the playback position will return to the start when the Play input is fired. If false, playback will commence from the current playback position.
PlayRate Allows control over the speed at which the sequence will play back. Defaults to 1.0

Movers

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 Mover' 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.

Opening Matinee

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 Matinee' option. 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.

Matinee Overview

Matinee Layout

Here is a screenshot from the Matinee tool itself:

matinee_overview.jpg

1 Add keyframe at current position on the selected track.
2 Start preview playback from current position.
3 Loop preview playback of loop section (see number 18).
4 Stop preview playback.
5 Adjust preview playback speed.
6 Undo/Redo.
7 Toggle Curve Editor (number 11).
8 Snap controls. Button toggles Snap on and off and combo allows you choose resolution in seconds.
9 Zoom to entire sequence.
10 Zoom to loop section (see number 18).
11 Curve Editor. See separate CurveEditor document for more information.
12 Group header.
13 Track header.
14 `Lock View To Group' button.
15 A keyframe on a particular track.
16 Show properties of this Track on the CurveEditor.
17 Time at current position / Total sequence length.
18 Loops section (drag green handles to adjust).
19 Start time of selected keys.
20 Length of key selection.
21 End time of selected keys.
22 End marker of sequence. Playback will stop when it reaches here. Can drag the red handle to adjust it.
23 Navigator bar. Indicates the playback position and currently viewed section in relation to the entire sequence.
24 Selected Track or Group properties.
25 Scrub bar and Scale. Click here to set current position in sequence.

Menu Bar

File

Export and Import menu commands

  • See the following section about exporting and importing Matinee data.

Edit

Undo

Redo

Insert Space At Current

Stretch Section

Delete Section

Select Keys In Section

Duplicate Selected Keys

Save As Path-Building Positions

Jump To Path-Building Positions

Bind Editor Hotkeys Opens the Hotkeys Editor?.

Reduce Keys

View

Hide 3D Tracks

Zoom To Scrub Position

View Fit Loop

View Vit Sequence

View Fit Loop Sequence

Toggle Curve Editor

Window

Properties Shows the Properties Pane.

Tool Bar

What follows is a description of each of the toolbar buttons, from left to right as they appear on the toolbar.

Icon Name Description
  Add Key Add keyframe at current position on the selected track.
  Play Start preview playback from current position.
  Loop Selection Loop preview playback of loop section.
  Stop Stop preview playback.
    Adjust preview playback speed.
  Undo Undo.
  Redo Redo.
  Toggle Curve Editor Toggle Curve Editor.
  Toggle Snap Snap controls. Button toggles Snap on and off and combo allows you choose resolution in seconds, frames per second, or keys.
    Zoom to entire sequence.
    Zoom to loop section.
    Zoom loop section.

Curve Editor

See the Curve Editor User Guide page for more details.

Controls

Mouse Controls

Keyboard Controls

Hot Keys

Working with Groups and Tracks

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

Creating A New Group

To create a new Group in your Matinee sequence, first select the Actor in the level that you wish to modify. Then right-click in the gray bar down the left of Matinee and select `Add New Group' (we will talk about Director Groups later).

new_group_menu.jpg

You will be prompted for a name for the new Group - it should be unique within that Matinee sequence, and should not contain spaces. When you choose OK, you should then see a new Group header. If you now look at your Matinee Action in Kismet, you can see it has created a new variable connector with the name of your Group, and a new Object variable containing a reference to the Actor you wanted that Group to work on. It is possible to connect multiple Actors to the same Group connector, which is very useful if you want to control the brightness of a number of lights in the same way over time for example.

The little colored bar in the Group header is the editor `Group color'. This is used for various things in Matinee to help you identify which objects in the scene are controlled by which Group in Matinee. It can be changed by selecting the Group and adjusting the GroupColor properties at the bottom of the window. Right clicking on the Group title allows you to Rename or Delete the entire Group. Once you have a Group selected, pressing the Up and Down arrow keys allows you to move it around in the list, which can be useful for keeping similar Groups together.

Note that whenever you select a Group (or Track in a Group) the Actor in the level will be selected for you, and vice versa.

Creating A New Track

A Group on its own does nothing to the Actor it is working on. To actually modify it in some way, we must add a Track to that Group. Right-click on the Group header and it will bring up the New Track menu. This lists all the different classes of Matinee Track that can be added. Select the class you want and it will appear within that Group. Depending on the Track class, you may be prompted for more information before it is added.

new_track_menu.jpg

Some Track classes (such as the Movement Track) only allow you to have one per Group, whereas others allow you to have multiple in the same Group (such as Float Property Tracks).

If you want to hide all the Tracks in a Group you can press the arrow on the Group header to `fold' it up. You can change the order of Tracks within a Group in the same way as you move Groups - just select it and use the Up and Down arrow keys.

The affect of tracks can be toggled on and off by using the checkmark box next to the name of the track. For example, in the following image, the movement track is disabled and the effects of the track will not be seen when the matinee sequence is run.

disabletrack.jpg

Keyframes

The selection and manipulation controls for Matinee are similar to tools in other parts of UnrealEngine 3.

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-drag Box select
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
Ctrl-Z Undo
Ctrl-Y Redo
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)

Clicking on a keyframe will move the playback position to that keyframe and put Matinee into `record' mode. Modifying the property of the Actor controlled by that track will then modify the keyframe value. When editing a keyframe, a little red circle will appear in the Matinee info box:

rec_indicator.jpg

Scrubbing to a different position or beginning playback will take you out of `record' mode and changes to Actors in the scene will not be remembered.

Adjusting Sequence Length

Changing the length of your sequence is very straightforward - simply grab the red handle that marks the end of your sequence (number 22 in diagram) and drag it to the new time you with the sequence to end. It is completely safe to have keyframes outside the range of the sequence.

You can also add time at a particular point in the sequence by moving the playback position to the point where you want to insert the time and choosing `Insert Space At Current' from the `Edit' menu.

The Loop Section

The green area highlighted in Matinee is the `Loop Section'. This is used for several utilities within Matinee, and can be adjusted by dragging the green handles on the scrub bar that mark the beginning and end of the section.

If you press the `Loop preview playback' button (number 3 in diagram), the playback position will jump to the beginning of the loop section, play through it and then jump back to the start again. This allows you to view a small section of the sequence repeatedly to ensure its doing exactly what you want.

You can also `stretch' the current loop section to a new length. To do this, set the loop section over the area you wish to stretch and choose `Stretch Section' from the `Edit' menu. A text-entry dialog will show you the current length of the section, and allow you to enter the new length you desire. Keyframes will be re-spaced over the new length of the section. You can also delete the loop section altogether by selecting `Delete Section' from the Edit menu.


Track Reference

We will now have a look at some of the different Track classes you can use in Matinee.

Movement Track

One of the most important Track classes is the Movement Track. This is used to move an Actor around in the scene over time. Creating a path for an Actor to follow is simply a matter of selecting the Movement track you want to modify and doing the following:

  • Scrub to the time when you want to add the new keyframe.
  • Press the Enter key or the `Add Key' button to create a new keyframe at that time.
  • Move the Actor to the desired position for that frame.

Then repeat this for each keyframe. It is a very good idea to create an initial keyframe for the Actor at its initial position at level load and then not move that keyframe. Otherwise you may see a `pop' when playback begins as the Actor moves to the position proscribed by the animation data.

move_3dpath.jpg

You will see the path of the Actor in the 3D viewport. Paths are drawn in yellow when the Group is selected, and the Group editor color the rest of time. You can click on the large keys in the 3D viewport to select a key and allow you to edit it in the same way as you would select them in the main Matinee window. The smaller ticks indicate are at 0.1 second intervals, and so give you an idea of the speed of the object.

When a keyframe is selected you will see white handles in the level viewports which allow you to control the velocity at that key and reshape the curve. By default the interpolation mode between keyframes is a curve, but you change the interpolation mode by right-clicking on a key in the main Matinee and using the `Interp Mode' menu. The color of the keyframe triangle in the Matinee window indicates the current interpolation mode its using.

interp_mode_menu.jpg

You can also use the `Send To Curve Editor' button (see number 16 in diagram) to use the CurveEditor to get fine control over the translation and rotation of the Actor over time. Use the bShowRotationOnCurveEd and bShowTranslationOnCurveEd options in the Movement track to control whether you are viewing the rotation and/or translation curves.

Movement Reference Frames

There are two reference frames in which you can keyframe your object - `World' and `Relative To Initial'.

`World' is the simplest - it just stores each keyframe as a position relative to the level. When you play the sequence, the object will jump to exactly where in the level you placed the keyframes. This guarantees where your object will be, but can be annoying when you want to move parts of the level around, or re-use your animation on other objects (more on re-using Matinee Data later on).

`Relative To Initial' will initialize the interpolation to start the Actor it is modifying in its current pose. So if the Actor place somewhere else in the level, the movement will be moved as well, and will execute relative to the initial position of the Actor. Also, if a `Relative To Initial' movement track of an object moves it along its local X axis, rotating the Actor would cause it to move in the rotated direction. This makes it very useful for applying one animation to lots of different Actors in your level. Doing so with using the `World' reference frame would cause all the Actors to jump to the same location when the sequence started.

The diagram show a `Relative To Initial' motion applied to two object with different locations and orientations.

reltoinitial_motion.jpg

To choose which reference frame a Movement track is working in, right click on the Title header on the left and choose the desired frame from the menu.

reframe_menu.jpg

Rotation Interpolation

Matinee uses two different rotation interpolation schemes to rotate Actors between keyframes - `Euler' and `Quaternion'.

`Euler' is the default and works by interpolating the Yaw, Pitch and Roll of the Actor between the values at keyframes. This allows you to edit the 3 curves for orientation over time in the Curve Editor and control ease-in/ease-out between keyframes. It also supports winding - that is, if you rotate an object multiple times around, the keyframe will store the number of complete revolutions instead of throwing it away. This makes it easy to keyframe something like a screw going into a wall, and also gives you complete control over which direction an Actor takes when moving between two orientations.

`Quaternion' interpolation does not support winding, and is essentially linear between keyframes with no support for ease in/out. However, it is more robust and will always find the `shortest' route between two different orientations.

You can control which method is being used by toggling the bUseQuatInterpolation option (see below).

Rotation Modes

Sometimes you do not want the orientation of an object or camera to be keyframed explicitly. There are 2 different Rotation modes in Matinee at the moment:

`Keyframed' is the default, where the orientation of the Actor is determined by keyframes.

`Look At Group' specifies that you want to Actor to always point at the Actor controlled by another Group. This is useful when using a camera, as you can have it always look at a particular target wherever it moves. To use, type into the LookAtGroupName field the name of the Group in you wish the Actor to point at, and set the RotMode setting to IMR_LookAtGroup.

Movers Relative To Other Groups

It is possible to have a movement track keyframe lookup its transformation info from another group in the same Matinee sequence. This means that a keyframe can point to a moving object and have the movement track interpolate to that position. An example usage case of this would be animating a projectile that always hits a character moving in a non-predictable fashion.

To setup a keyframe to lookup its position from another group, right click on the keyframe and choose "Select Transform Lookup Group..."

lookup_track1.jpg

This will show a dialog that lets you choose a group to lookup transform information from.

lookup_track2.jpg

After selecting a group, the keyframe will have the lookup group's name displayed above it. The image below displays 4 key frames that are using the group's Box1 and Box2 to lookup their positioning info.

lookup_track3.jpg

To clear a lookup group for a keyframe, right click on the keyframe and choose "Clear Transform Lookup Group".

lookup_track4.jpg

MatineeLookupTest.ut3 is an example map that uses this feature and can be found in the DemoContent/TestMaps folder.

Movers Relative To Movers

In UnrealEngine 3 it is possible to keyframe one object to move relative to another. This may be useful when, for example, you want to keyframe the opening of a door on a moving train carriage.

To do this, simply set the Base of the Actor you are keyframing to the Actor you wish it to move relative to before you begin keyframing.

Movement Track Options

Here is an overview of all of the Movement Track options.

AngCurveTension Controls how 'sharp' the changes in rotation direction are, when not manually adjusting keyframe tangents. Only effective if using Euler rotational interpolation mode.
bDisableMovement Allows you to disable this movement track in preview. Useful when keyframing Actors relative to another Actor.
bShowArrowAtKeys Displays an arrow at each keyframe to allow you to see the orientation at each keyframe.
bShowRotationOnCurveEd When displaying the Movement track on the Curve Editor, show curves for rotation. Only works if bUseQuatInterpolation is false.
bShowTranslationOnCurveEd When displaying the Movement track on the Curve Editor, show curves for translation.
bUseQuatInterpolation Chooses between Quaternion and Euler rotational interpolation methods.
LinCurveTension Controls how 'sharp' the corners in the movement track are, when not manually adjusting keyframe tangents.
LookAtGroupName The name of the Group this Actor should point at (only used if RotMode is IMR_LookAtGroup).
MoveFrame Read-only variable indicating if Movement track is in World or Relative To Initial reference frame. Change by right clicking on Track title.
RotMode Allows you to choose the method for determining the rotation of the controlled Actor.

Path Building

Quite often the initial position for Actors like doors is in the `shut' pose. When building the path network for the AI system, it will not be able to find a path through the doorway because the Mover is in the way. To get around this problem, you can set a specific point in your Matinee sequence to be used when building paths. Simply scrub to the point in the sequence you want the Actors to be in when building paths and choose `Save As Path-Building Positions' from the `Edit' menu. A small blue check will appear on the scrub bar to show the current path-building playback position:

pathbuild_pos.jpg

For a Matinee Action to move its Actors when path building takes place, you will also need to check the `bInterpForPathBuilding' flag on the Action itself. Note that you cannot have more than one Matinee Action with bInterpForPathBuilding true acting on a particular Actor, as it is ambiguous which position is desired.

Float Property Track

The Float Property Track allows you to modify the value of a floating-point property of an Actor over time, such as Brightness for a light, or DrawScale for a StaticMesh Actor. When you create the Track it will bring up a combo box showing all modifiable properties of that Group's Actor. Select the one you want and then add/modify keyframes in the same way as you would for a Movement Track. You can also use the CurveEditor to adjust the value of the parameter over time.

Vector Property Track

The Vector Property Track works in the same way as the Float Property Track above, but allows you to control a vector property of an Actor - for example DrawScale3D.

Color Property Track

The Color Property Track works in the same way as the Float Property Track and the Vector Property Track from above, but allows you to control a color property of an Actor - for example LightColor.

Event Track

The Event track give Matinee a mechanism for firing events back into Kismet at particular points in the sequence. When you place a keyframe on an Event Track, you will be asked for an Event name. Each discrete Event Name will create a new Output connector on the Matinee Action. When the sequence reaches the Event key, any Kismet Sequence Objects connected to that output will be activated. If you have multiple keys with the same name, one output connector will be created, but it will be activated when each of the keys are passed.

Here is an Event Track with one key called `SpawnBeasts'.

event_track.jpg

And this is the Matinee Action in Kismet, showing the new output connector, which you can connect to a set of scripted events.

event_connector.jpg

The blue buttons on the Event Track header allow you to control if the output should be fired when the sequence is playing forwards, backwards, or both. If the right hand button is blue, events on that track will fire as they are passed when the sequence is playing forwards. If the left hand button is blue, events are fired when the sequence is played backwards.

It does not matter what Group an Event Track is in, and there does not have to be an Actor attached to its Group.

If you right-click on an Event Key you can rename it. Doing so will rename any other Keys with the same name, and the output connector on the Matinee Action.

Note that event tracks have a bFireEventsWhenJumpingForward property. This property, when set to TRUE, allows all of the events in the track to be fired even if the Matinee is skipped.

Anim Control Track

This track type allows you to easily assign and preview animation on an Actor in the scene. By default, it only works with SkeletalMeshActors, but support can be quite easily added to any Actor class by a programmer.

The first thing to do when using an Anim Control track is to add the AnimSets that you wish to use to the GroupAnimSets array in the group properties. Once you have done this, scrub to the point where you want to start an animation playing, select the track and a new key. You will be shown a combo box containing all the names of AnimSequences in the AnimSets you chose. Simple select the animation you want to play and press OK, and you should see the animation appear as a blue block on the track. You can then move the animation around in the same way you would modify any other key type. Scrubbing will also let you preview the animation applied to the Actor in the editor, which makes setting up complex camera moves and close-ups much easier.

You can also tell an animation to loop by selecting it, right clicking on it and choosing 'Set Looping' or 'Set Non-Looping'. When an animation is looping, it will continue until the end of the Matinee sequence, or until another animation is played on the track. A looping animation will show each repeat in dark blue with a black tick, as you can see with the Fire_Auto_01 animation in the screenshot below:

matinee_animcontrol.jpg

You can also modify the start and end offset for an animation by right clicking on it and selecting the option from the menu. Another useful feature when working with an AnimControl Track is the 'Razor' tool. This allows you to cut one animation block into 2 pieces at a particular location. Simply select the AnimControl track, scrub to the desired location and press the 'R' key.

Animations can also be cropped/resized using the end markers that appear when the animation is selected. If these markers are dragged normally they will modify the start and end offsets of the animation (cropping the animation). If they are dragged while holding control down, they will modify the playrate of the animation (stretching the animation). If they are held while holding ALT down, they will keep the animation the same time length but modify the start/end offsets and then auto adjust the playrate to keep the animation the same length.

animcrop.jpg

Note that Notifies in the animation will only get executed when the Matinee sequence is being played forwards.

ParticleSystem Toggle Track

The Toggle track gives Matinee a mechanism for toggling Emitter actors on a off at particular points in the sequence. When you place a keyframe on a Toggle Track, you will be asked whether you wish to toggle the actor on or off, as seen in the screenshot below:

PSysToggle_Key.jpg

The track display will show a green bar when an emitter is toggled on to make it easy to identify the state of the actor. This can be seen below for a Toggle track that turns the emitter on at ~1.0 seconds and off at ~2.0 seconds.

PSysToggle_Track.jpg

The Director Group

The Director Group is a special type of group that does not work on an arbitrary Actor in the scene like a normal Actor, but implicitly works with the `Player'. It is used when you want your sequence to be a cinematic, and you want to take control of the players view.

You can add a Director Group to your Matinee sequence in the same way as a regular Group, but choose `Add New Director Group' instead. The Director Group header is a different color from a regular Group header to make it easy to find.

There are several Track types that can only be added to a Director Group.

Director Track

The Director Track allows you to attach the players view to different Actors as the sequence proceeds. When you add a new keyframe to the Director track, a combo box will allow you to choose which Group to assign the view to at that point. Colored bars on the Director track allow you to see which Group the camera is viewing through at each point in the sequence - the color corresponds to the editor Group color of each group. If you want to return the camera to the player, simply add a cut back to the Director Group itself. Think if the Director Group as a special group relating to the 'player'. The view will automatically return to the player at the end of the sequence otherwise.

dir_track.jpg

Locking The View To A Group

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 little button on the Group title bar (number 14 in diagram earlier), 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.

Camera Actors

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'.

camera_actor_class.jpg

Here is a CameraActor in a level:

camera_actor.jpg

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 `bConstrainAspectRatio' 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.

Fade Track

To control fading of the scene to a particular color, you can use a Fade Track. This Track works similarly to the Float Property Track, but you must use the CurveEditor to control the amount of fading over time. When the Fade amount is 0.0, there is no fading, and when its 1.0 the scene is completely faded out.

Slomo Track

One special effect you can apply to a cinematic is to slow down the game speed. This track again works similarly to the Float Property track, and you use the CurveEditor to modify the slow-motion over time. A Slomo factor of 1.0 will use the default game speed, a lower number will reduce game speed and a higher number will speed up the game.

Slomo affects all game actions, physics, particles etc. as well the speed the sequence itself proceeds.

MorphTarget Weight

SkelControl Scale

Sharing Matinee Data

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.

sharing_matineedata.jpg

When you connect a Matinee Data variable to a Matinee Action, all the Object Variable and event output connectors will appear. You also connect MatineeData through Named or External variables (see UnrealKismetUserGuide? 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.

Matinee Replication

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.

Cinematics

In 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.

Exporting and Importing Matinee Data

Matinee has ‘Export’ and ‘Import’ menu options that allow you to export the entire Matinee sequence out to a COLLADA file that can be loaded into a 3D animation 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 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 sequenced.

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)

Note that terrain actors, source brush models and certain other object types are not currently supported for export.

Exported objects will be named similarly to their names in UnrealEd. After making changes to the data in a 3D model package, you’ll want to export the changes back to a COLLADA file where they can be imported into Matinee. It’s important that the names of the objects in the scene stay the same during this process!

When importing the new COLLADA file back into the editor, Matinee will attempt to import all of the animation curves for actors whose imported name matches an actor bound to the active Matinee sequence. In some cases (such as for cameras), you can also add new objects by creating them in the modeling package and exporting them to COLLADA format.

Notes:

  • It appears as though this feature has only been thoroughly tested with 3ds Max and although you can work with the COLLADA file in other packages, there may be problems with the orientation and scale of the curves that you’ll need to work around.

  • The default COLLADA importer with recent versions of 3ds Max (FBX importer) doesn’t appear to support the files generated by UnrealEd. We recommend using Feeling Software’s ColladaMAX tools instead. The version of ColladaMAX we tested with is 3.02.