Search public documentation:
UE3 Home > Matinee & Cinematics > Creating Cinematics with Unreal Engine 3
UE3 Home > Cinematic Artist > Creating Cinematics with Unreal Engine 3
UE3 Home > Cinematic Artist > Creating Cinematics with Unreal Engine 3
This document will serve as a starting point for identifying the steps in creating cinematics using the Unreal Engine content pipeline.
Matinee was created for the purpose of creating real-time cinematics during gameplay. Real time cinematics make use of loaded game assets and manipulate them live to create a scene. When creating real-time cinematics, there must be a balance in the need to push the limits without maxing out resources of the engine. Matinee can also be used to create pre-rendered cinematics so it's a matter of deciding what works best for your situaion - a pre-rendered scene or a real-time scene. For pre-rendered cinematics, the scene may require higher-res characters, effects, lighting, and set design. Even still, the budget constraints of the resources used by the engine must be kept in mind. In addition to the in-engine tools, pre-rendered cinematics need video editing software and in some cases, additional recording equipment. As far as the pipeline for creating scenes, both are done the same; but ultimately the resource constraints will drive the need for pre-rendered or real-time scenes.
Be aware that the cinematics pipeline in Unreal, it might be easier to do scene-by-scene, rather than, meaning that each file will be a scene of multiple camera shots, rather than one file per camera shot. There may be some situations where this is needed; but especially in dialog-based scenes, one file would suffice. In Unreal, but especially when creating real-time cinematics, the pipeline revolves around a scene. So, for a typical 20-shot pre-rendered scene, you'd have to do a scene for each shot (or an Unreal Project for each shot) in a 3D suite such as Maya. In Unreal, you take a whole scene and do camera cuts and such using the cinematics tools in Matinee. To summarize: in real-time cinematics in Unreal, you cut through cameras while the Actors are moving in real-time, and certain things are being handled in the background (cameras, etc.).
Here are some other things to keep in mind when building cinematic scenes in Unreal:
- Scene Complexity. Factor in all of the necessary props and meshes needed for the scene.
- Environment. Can you contain all of the shots in one level scene; or do you need more?
- Number of characters. If you have 5-8, the scene can be done in real-time; but for crowds, pre-rendered should be used.
- Interaction with the environment. Some things can be done in real-time; but in many cases, a lot may have to be faked. If the scene must be more realistic, opt for pre-rendered scenes.
- Length of scene.
- Lighting Complexity.
- Effects. Particles - size and detail.
- Character complexity. In terms of the details, the more detail, the more resources.
Scenes are often initially designed with outlines, scripts, and storyboards. From there, content needs can be determined:
- consider re-using to avoid creating just for scenes that may never be in the game; how important is it? is it worth it?
- anything that isn't part of the usual gameplay set
- motion capture data and any additional keyframe data
- get what you need defined to avoid re-shooting, while avoiding any excess data that might never be used
- get dialog: voice overs; try to make any edits early on
- review script; "radio play" - during mo-cap: have characters act based on voice-acted script reading
- also consider "performance capture" (vs. radio play): capture everything in one shot (voice script, etc.)
Cinematic scenes are built using assets from animations and audio, as well as building levels for the sets, adding meshes, effects, and lighting.
The following tools in the Unreal Editor suite are primarily used:
- Matinee for keyframing. See Matinee User Guide.
- Kismet for scripting and triggering Matinee scenes. See Kismet User Guide.
- Sound Cues for Music and sounds. See SoundCue Editor User Guide.
Scene Layout and Pallettes Pallettes are text files that contain pre-made Matinee data that just need to be hooked up. Essentially, every object in Kismet is just code and that code can be copied as text. This saves time setting up scenes that use similar setups. To create a pallette:
- click on active object, Ctrl-C to copy to clipboard
- paste as text in an empty text file (see
- create text documents for all these
- copy what you need as text and in Kismet use Paste here...
- Create a new Matine, which results in a blank scene.
- Set length to be 1:00 or whatever stand length you would like your palette to be.
- Add director track, some camera tracks, character skeletal mesh tracks, prop groups, particle effect tracks, blank sound group with empty sound files, lighting, etc. You can organize these groups into subfolders for organization.
- Data is in place, saved as a palette.
- Copy the text data, place in Kismet, and the base scene configuration is in place.
- Save a lot of time using this process to setup your cinematic scenes vs. having to build it from scratch everytime.
One thing to understand is the importance of resources and budgets for the scene. For scenes, loading animations is often done from large packages. The result is a big memory footprint, especially for console. The option is to through a bake and prune process to look at what is being used in Matinee. The goal is take just what is needed – the bare minimum – for a more representative memory footprint. The bakeandpruneonbuild flag in the Matinee data bubble pulls the necessary animations from the AnimSets and bakes them down into the game level, itself. This is often done only for cooking to consoles and gives Level Designers better idea of level sizes and asset usage. Sometimes this can be problematic when using in-game animations; if baked and pruned, the data is actually another copy! So, that is an instance where there will be more memory than what is saved. The bake and prune process is mostly beneficial for custom animations that were created for cinematics; but its is very important to cutting out the size of levels vs. removing excess animations.
When working with many tools, it's a good idea to always be ready to accommodate change in tools and make adjustments to your workflow. Here are some useful tips and strategies for getting the most out of the latest toolset. Track Relativity When you have a movement track it can be relative to initial (default), or relative to world.
- Relative to world
- wherever you are in the physical world of the 3D space, if you set a keyframe down, it will be right at that spot in the world.
- Relative to initial
- whenever characters are not in action, they are in the initial position; keyframes are based on where they were initially sitting in the world. This is set by default to avoid messing up the scene and having to do it over.
|J||play backwards 1|
|L||play forward at the framerate|
|I||for in: in-point 2|
|O||for out: out-point|
|R||To cut an animation clip in half – or razor – highlight the animation track to the left on the time bar, and press to split it into 2 animations|
|+||zoom in on the timeline, where the timebar is (near backspace, not on number pad)|
|-||zoom out, where the timebar is (near backspace, not on number pad)|
| left arrow |
|move one frame at a time 3|
You can render out a cinematic sequence all from within the editor using the following command to render out each frame.
GameName.exe -dumpmovie -benchmark -fps 30You may notice that in the first 10-15 frames of the cinematic the textures for the level are not fully loaded. Rather than putting a couple seconds of buffer at the begining of the cinematic to allow enough time for everything to load, you can actually go in and edit a configuration file to turn off texture streaming. Go into your game build Config folder and edit the Engine.ini file. Search for the key
bUseTextureStreaming- you'll probably find a few of them. Set the values of these to be false. Save the file and there should be no texture streaming issues. NOTE: Be sure to make a backup copy of the configuration file for when you're done. For pre-rendering, you can use the following command for maximum quality:
Game.exe <MapName> -Benchmark -MAXQUALITYMODE -NoTextureStreaming -DumpMovie -FPS=30 -ResX=1280 -ResY=720
While different needs may require unique hardware and software, here's what Epic is currently using in-house:
- Aja IO Board for capturing straight HDMI, which avoids the need for additional video processing
- Final Cut Pro editing on a Mac