We were searching for a good Unity 3d cutscene editor to add cutscenes to our game Erwin’s timewarp. We found one: Cinema Director, which is a tool of the Cinema Suite Asset. In this tutorial we will show how we use it for a simple cutscene.

We are very happy that we received the greenlight from steam for the 3d adventure puzzle Erwin’s timewarp. Now the hard work begins. We want to develop a cool and professional game with Unity 5 and that’s why we also added cutscene’s to the game.

An example cutscene can be seen here in which the player is giving another character somethng to drink:

The player is moving towards the thirsty character and when the user presses the button to interact with him, the cutscene stars. The camera perspective changes and you can see Erwin gining the other guy a bottle of water.

So how can this be done with Unity 3d and cinema director?

Create a cutscene

After you installed the cinema director asset you can select Create Cutscene from the main menu in Unity 3d:

Create a new cutscene

Create a new cutscene

After that there is a Director window with a timeline for which you can add gameobjects that should appear in your cutscene. First of all you have to add groups to the timeline. There is a kind of global group called Director group in which you can add objects like your camera. We created a new camera object and moved it to a position and view from which we want to see our scene.

Adding the camera

To add this camera to your cutscene create a Shot Track in the Director group and assign the camera to it.

We also added a fade-in and fade-out efect to the cutscene as a track in the Director group:

Fade from white track

Fade from white track

Other gameobjects you can add here are audio files for example (Audio Track).

Add characters and animations

For our scene we want two characters to interact with each other. The player (our dog Erwin) and another character we called the Cool Guy. Both characters have huamnoid animations and Animation Controller components assigned. The player has a Give animation in which he is moving the arm in the forward direction, the Cool Guy has a Drink animation.

This is the script for the cutscene:

0. Face-in, camera is activated
1. The player is seen giving the guy a bottle of water
2. Fade-out
3. The cool guy is drinking from the bottle, the player does not have the bottle anymore.

Sounds simple, but there a few things to be considered. There is a bottle that needs to appear dynamically and that has to move with the hand of the characters. When the scene starts, the player has to carry the bottle. When the scene fades out, the cool guy has to carry it.

Ok, but first things first we have to add both characters to the timeline. We do this by adding 2 Actor groups (Player Group, CoolGuy Group) for which we add Actor tracks:

Timeline with all groups

Timeline with all groups

Now for the fun part with the bottle to appear dynamically: Here you can see that we assigned a bottle gameobject to the hand (rig) of the player. The same thing we do for the cool guy’s hand.

the actors for the cutscene

the actors for the cutscene

The trick is, that we disabled these bottle-gameobjects in the Inspector:

Bottle disabled

Bottle disabled

Then we added another Actor group to the timeline for the bottle object of the player. When the cutscene starts we enable it and at the end of the timeline we disable it again. The Give-animation is also started at the beginning of the timeline:

Control  mecanim animation

Control mecanim animation

To use mecanim for your animations you can decide wether to use parameters of the character’s Animation Controller, to crossfade or just play mecanim animations for an actor.

When the cutscene ends, we play the Drinke animation and enable the bottle gameobject that is assigned to the cool guy’s hand.

Start cutscene programmatically

Cutscenes can be started on starting a scene, on a trigger when a collider is hit or by code. The custscene in our example needs to be started by code.

Therefore we added the Cutscene gameobject as a public member (CutSceneGiveBottle) to a script attached to the Coolguy. In the method UseWith which is called when the player is interacting with the guy, the method Play of the Cutscene is executed.

public GameObject CutSceneGiveBottle = null;

public override void UseWith()
{
    // Here the player has started an interaction
    // and we will play he cutscene...
    CutSceneGiveBottle.GetComponent<Cutscene>().Play();
    CutSceneGiveBottle.GetComponent<Cutscene>().CutsceneFinished += 
    CoolGuy_CutsceneFinished;
}

void CoolGuy_CutsceneFinished(object sender, CutsceneEventArgs e)
{
    // When the cutscene is finnished we do some other logic
    // like enabling the bottle-object or....
    DoUseWith();   
}

I hope you got an idea now on how to create Cutscenes with Unity 3d, there are a lot of other features the Cinema Director asset has to offer which we will show in a tutorial to follow.

(Visited 227 times, 1 visits today)