Cinematics Tab
Part of the Atlas (Scenario Editor) Manual
The contents of the Cinematics Tab
Introduction
To see how the cinematics looks open the Cinema Demo map. A path of the demo map in Atlas:
Terms
A cinematic path consists of a position and target nodes.
Position nodes - nodes used for the camera position.
Target nodes - nodes used for the camera focus position. In other words the camera looks from positions to targets.
Delta time - time between nodes which the camera spends to move from the one node to the other node.
Common settings
The "Draw all paths" checkbox toggles cinematic paths drawing. Paths are drawing only in Atlas, and aren't drawing, when cinematics is playing. It's useful to check paths, created by triggers.
Paths editing
To create a path, enter a non empty string and press the "Add" button:
To remove a path, select it in the list above and press the "Delete" button. A newly created path contains 1 position (green) node with the camera position and 1 target (red) node with the camera focus position:
Node editing
To start editing nodes select the "Move cinema path nodes" tools (the last tool in the tool row):
Step 1: select any node:
Step 2: press the Insert
button on the keyboard to add a node after the currently selected node (it'll be created in the camera focus point with delta time equals to 1 second ):
Step 3: pick any axis and move mouse to move the selected node:
To delete a node, select it and press the Delete
button on the keyboard. If you need to edit delta times, you could edit nodes in a map XML file (atlas editing for delta times will be added later).
Triggers and on fly paths
Currently there is no way to run a cinema path without a trigger script, but this possibility will be added later.
Run cinema path
An example trigger script to run an existing cinema path in 5 seconds:
Trigger.prototype.StartCutscene = function(data)
{
var cmpCinemaManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_CinemaManager);
// We should work only with valid components
if (!cmpCinemaManager)
return;
// Add a cinema path with "test" name to the queue
cmpCinemaManager.AddCinemaPathToQueue("MyPath");
// Start playing the queue
cmpCinemaManager.Play();
};
var cmpTrigger = Engine.QueryInterface(SYSTEM_ENTITY, IID_Trigger);
cmpTrigger.DoAfterDelay(5000, "StartCutscene", {}); // Delay is set in milliseconds
Add cinema path in triggers
Trigger.prototype.StartCutscene = function(data)
{
var cmpCinemaManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_CinemaManager);
// We should work only with valid components
if (!cmpCinemaManager)
return;
let pointA = new Vector3D(1, 1, 1);
let pointB = new Vector3D(100, 100, 100);
let path = {
"name": "MyPath",
"orientation": "target",
"positionNodes": [
{"deltaTime": 0, "position": pointA},
{"deltaTime": 10, "position": pointB}
],
"targetNodes": [
{"deltaTime": 0, "position": Vector3D.add(pointA, new Vector3D(10, 10, 0))},
{"deltaTime": 10, "position": Vector3D.add(pointB, new Vector3D(10, 10, 0))}
]
};
// Add the newly created path
cmpCinemaManager.AddPath(path);
cmpCinemaManager.AddCinemaPathToQueue(path.name);
// Start playing the queue
cmpCinemaManager.Play();
};
var cmpTrigger = Engine.QueryInterface(SYSTEM_ENTITY, IID_Trigger);
cmpTrigger.DoAfterDelay(5000, "StartCutscene", {}); // Delay is set in milliseconds