Tutorial Cinematics

msakni

New Member
Reaction score
8
cinematics

Summary :
  1. Introduction
  2. Initialization
  3. Cameras
  4. Atmosphere and Terrain
  5. Sounds
  6. Transmissions
  7. Precise Timing
  8. Dynamic Cinematic
  9. Additionnal Tips
  10. Examples Cinematics

Introduction :
This Tutorial will cover many of the advanced things about Cinematics, as well as some tips and examples
It's my dirst tutorial, so suggestions and criticism are welcome.

Initialization :
Cinematics don't like that by themselves; they require some triggers to initialize.
Commons cinematics' initialization functions set up the music, atmosphere (fog,sky...) and the cinematic mode.
Trigger:
  • Initializations
    • Events
      • Time - Elapsed game time is 0.00 seconds
    • Conditions
    • Actions
      • Cinematic - Turn cinematic mode On for (All players)
      • Cinematic - Disable user control for (All players)
      • Cinematic - Turn on letterbox mode (hide interface) for (All players): fade out over 2.00 seconds
      • Sound - Clear the music list
      • Sound - Set Ambient Sounds to 0.00%
      • Environment - Set sky to Lordaeron Winter Sky
      • Sound - Stop music Immediately
      • Custom script: call StopSound(bj_nightAmbientSound, true, true)
      • Custom script: call StopSound(bj_dayAmbientSound, true, true)

Trigger:
  • Cinematic - Turn cinematic mode On for (All players)

This turn on the cinematic for all players
Trigger:
  • Cinematic - Turn on letterbox mode (hide interface) for (All players): fade out over 2.00 seconds

This turn the letterbox on for all players, which hides interface and let you "read" the actors' dialogs
Trigger:
  • Cinematic - Turn subtitle display override On

This is optionnal but forces player to have subtitles turned ON
Trigger:
  • Cinematic - Turn subtitle display override On

Prevents players from selecting units or controlling them
Trigger:
  • Cinematic - Fade out over 0.00 seconds using texture Black Mask and color (0.00%, 0.00%, 0.00%) with 0.00% transparency

This fades out with a black mask which is suggested and used by many cinematic makers
Trigger:
  • Sound - Clear the music list

This clear the music list
Trigger:
  • Sound - Stop music Immediately

Stop race's music
Trigger:
  • Environment - Set sky to Lordaeron Summer Sky

This is optionnal but recommended because you can create a better atmosphere.Remember to change the sky depending in your tileset

Cameras :
Cameras are extremely importants when making cinematics as they change the point of view.
To create a camera, open the "camera palette"
33o1h6r.gif

You'll see 3 buttons :
Create Camera : Create a camera from the current view
View the Selected Camera : View the camera as you should in-game
Set Camera to Current View : Set the camera to the current view

Just click on "Create Camera" at the moment
28srpg2.gif

Right-click on the camera in the camera list and click on rename camera
2i9tp5c.gif

You'll see a list of properties to customize a camera :
2jg6qa8.gif

Camera Name:
This is siply the name of your camera
Target X and Target Y:
These are the coordinates of the cameras
Z Offset:
This measures the Z offset, by raising this values the camera will raise if you set this to a negative value, the camera will be under the ground
Rotation:
This determines the rotation of the camera, it is like the facing. If you set it to 90.00 degrees, the camera will turn and face 90.00 degrees.
Angle of Attack :
This determines how much the camera is off of the ground, though it is not like the Z offset. The Z offset sets the target point to rise/lower. If you change the AoA, it will change the angle of the camera going up and down.
Distance:
This determines the distance from the camera and the target point.
Roll:
This determines the tilt of your camera. If you change it, your camera will tilt sideways in an angle and change the view.
Field of View:
The width the camera can see.
Far Clipping:
How far a camera can see objects
Applying Cameras :
to apply a camera simply use this trigger
Trigger:
  • Camera - Apply <Camera> for <Player> over <Real> seconds

This will apply the camera for the player and will take X seconds to apply

Atmosphere and Terrain :
Having a nice terrain a good atmosphere is very important to your cinematic.It can impress the viewers a lot, especially with a good camera.
As this is a cinematic tutorial and not a terraining one, I'll just pass the terrain part throught, you can check terraining tutorial to learn more about tiles/doodads variations and fogs.

Transmissions :
Transmissions are used to make units talk and speak, though they do not actually speak unless they use a sound. They actually create subtitles at the bottom of your screen. To set up a transmission, click "Actions" then go to the Cinematics category and click "Transmission From Unit" from the selection bar.
Trigger:
  • Send transmission to (All Players) from Unit named Name: Play No Sound and display Message. Modify Duration: Add 0.00 seconds and Wait


Here a small example :
Trigger:
  • Cinematic - Send transmission to (All players) from Demon Hunter 0001 <gen> named Demon Hunter :: Play IllidanYesAttack2 <gen> and display Die Fool!. Modify duration: Set to 2.5 seconds and Wait

I thinks you understand that this actions show "Die Fooll !" in 2.5 seconds and play sound "IllidanYesAttack2
NOTE : You shouldn't use the "wait" part of this action use Trigger queue instead as seen below
Precise Timing :
Whe "Wait" action waits always longer than requested, no matter if it is a normal or a gametime "Wait". And the worst: the amount of delay always varies, so you often can't just make the waits shorter and everything is fine. This is annoying especially if you want to time animations and effects in action scenes.
There is two solutions to correct this :
First Solution :
Use a periodic event like used in Infrane's and Anitarf's JASS Cinematic System. If you don't want to do nearly everything in JASS, there is another alternative to these damn "Wait" actions: Use "Elapsed gametime equal to x seconds" events. They are exact. But they have obviuosly huge disadvantages:
  • You cannot use them in playable maps
  • if you change any timing value at the beginning of the cinematic, you often have to adjust every following trigger which can be very much work

Second Solution :
We can use a trigger queue and a timer to get our actions perfectly timed
The trigger queue is an old features from Roc it's just as the name say, a queue of trigger : the triggers will be executed in the way you added them.
so if you add Trigger1, then Trigger2 and then Trigger3, Trigger1 is the first that will be executed
All queued cinematic triggers do not need any event or condition.
You should have a folder for initialization and general triggers. In this folder, I devide the simple initialization triggers and the general triggers by comments. You can do this as you like, but you should know what is where and be able to find it easily. I have two initialization triggers: One to fire at "Map Initialization" and one to fire at "Elapsed game-time is 0.00 seconds".
Create also a new folder called "Queued Cinematic Triggers".
Trigger:
  • Scene 01
    • Events
    • Conditions
    • Actions
    • -------- Setup for next trigger in queue --------
    • Set RunningTrigger = (This trigger)
    • Countdown Timer - Start NextScene as a One-shot timer that will expire in 2.00 seconds
    • -------- Add this scene's triggers --------
    • -------- This cinematic trigger's actions --------

You can change the 2.00 seconds to the time you'd like the next scene to start
The normal cinematic triggers structure is nearly the same as with the first one, but the "Add this scene's triggers" part is missing. So I just copy&paste the first trigger, rename it and replace each "start NextTrigger" time with the time I need (You can also use 0.01 second, which works too!) as well as of course setting "This cinematic trigger's actions" to the ones I need. You may do it the same way or copy the things manually if you prefer this for any reason.
Well, now that we have some more triggers for the queue, we should also add them. You should do this in the Scene 1 trigger in the "Add this scene's triggers" using actions of the type "Trigger - Add <trigger> to the trigger queue" for every following trigger in the scene.
If you understood trigger queue, you'll know that as long the first trigger is in the trigger queue, the others won't fire.So we have to remove the trigger form the queue using this :
Trigger:
  • Start Next Scene
    • Events
    • Time - NextScene expires
    • Conditions
    • Actions
    • Trigger - Remove RunningTrigger from the trigger queue

Then add this action to the trigger firing at map initialization :
Trigger:
  • Trigger - Add Scene 1 &lt;gen&gt; to the trigger queue (Ignoring conditions)

Dynamic Cinematics :
What make the cinematic really epic is the way the cinematic maker have a high control over the units, moving them, creating special effects, using animations etc...
Additionnal Tips :
Camera Tips :
-When editing Camera Values check the "Preview Values in Main Window". This will now make it so that if you edit a value it will move the camera in the World Editor so you can see what it will look like.

-You can black border to the screen (cinematic-only map recommended) by going to Advanced - Game Interface and changing :
  • Image: Cinematic Border
  • Image: Console Background
  • Image: Game Menu Background
Change the values to :
UI\Widgets\EscMenu\Human\blank-background.blp
-Make dynamic cameras, it is always good that the scene is moving, it makes it more dynamic. A scene where the camera is at the same point the entire time is boring and static.

-Don't use too much sway shake camera, this is generally bad. It is good using it in small measures, but in big proportions it will give the viewer headache.

-Using preview camera motion. When you are creating dynamic, moving cameras, you often have to test it which gets annonying. Trigger editor has a good command that can allow you to see how the actual camera movement will be in game.
You will be able too see the movement of this camera or any other in your trigger (preview camera motion button is on the right center of the trigger editor. A trigger must have a camera movement for the button to appear.)

-Gives your camera a name, if you have just lot of Camera X, you'll get lost.
Try giving them a name depending on their use.

Terraining/ambience Tips:
-Try to increase the scaling of trees and buildings (especially in cinematic-only maps) because blizzard default tree have almost the size of a human.

-Remember to change the sky/weather/fog according to the Scene, don't add an outland sky to a cave or ray of light to an icy area

-Create dynamic background to impress the viewer a lot more.For example, in a city where two peoples are talking, try to make lot sounds and peoples moving in the background, this gives the feeling that the city isn't abandonned.

-An often overlooked feature warcraft brings are lights. Tho they seem not highly usable they are in fact quite usable.
JASS:
call SetDayNightModels(&quot;&quot;,&quot;&quot;)

Here a useful link : How to : Create Day an Night Model
in the bottom, I included two models, including a glowing torch and a light source attachable to "chest" of a unit.

-Sound - making good sound atmosphere is by my opinion a 1/4 of a cinematic. The sound is a vital thing of a cinematic. As an example - when a horsmen rides add a ridding loop sound, if it rains add rain loop etc. Good music is the most important thing. You must control the music, fading it out in conversations, increasing the rhytm in the battle scenes, the music must follow the cinematic for the ultimate effect.

Actors and Special Effect :
-Try to use the right animation and maybe ,in battle cinematics, reduce actors animation speed when they're about to clash, it add some epicness

-When you have a only cinematic map, you can make realy cool spells, using bunch of effects, controling unit animations, actualy doing pretty much any spell

-Some battle cinematics makers order a units to move to a region to evade an attack, the problem is that it don't give the feeling of a evasion.
There some good ideas to evade an attack :
1-You could blink the unit (just don't make a blinking grunt)
2-Play "ready" animation (some models only) and use knockback so it look like the unit parried the attack
3-Make the unit jump (using flying height)

-You can play specific animation for unit, yes!
Use this animation native :
JASS:
native SetUnitAnimationByIndex takes unit whichUnit, integer whichAnimation returns nothing

You should store the unit into a variable, like "Unit", in Jass the variable name will be udg_Unit
JASS:

We still need that integer, which represents animation's ID, to play specific animation, you have to use animation ID
A good way to get the animation ID is to convert the model to .mdl using Magos Model Editor.
After being converted to .mdl, open the mode with Notepad and look for the animation you need.
If the animations you need is the 4th then use :
JASS:
call SetUnitAnimationByIndex(udg_Unit, 3)

because JASS always start from 0

-It is possible to lock a unit's head OR torso by triggers using :
Trigger:
  • Animation - Lock (Last created unit)&#039;s Head to face (Last created unit), offset by (0.00, 0.00, 90.00)

If you let 1 unit look at another his head or chest will follow this unit untill you reset the body part facing.

NOTE : It is possible to lock the facing to the unit itself, making only the offset factor matter

Random Tips :
-It's better to divide a cinematic to many different scene as it's better than a single long trigger

-Use comments so you don't get lost.

-Use Combat Sounds in battle cinematics when characters are fighting

Examples Cinematics :
The Spirit of Vengeance
 

Sickle

New Member
Reaction score
13
That last line on the bottom contains a wait. A hidden wait, but a wait nonetheless.
 

msakni

New Member
Reaction score
8
Ah, you mean the transmission :
Code:
Cinematic - Send transmission to (All players) from Demon Hunter 0001 <gen> named Demon Hunter :: Play IllidanYesAttack2 <gen> and display Die Fool!. Modify duration: Set to 2.5 seconds and [COLOR="Red"]Wait [/COLOR]
 

Romek

Super Moderator
Reaction score
963
> Cinematics are like cutscenes or movies, but they are usually a bit different when it comes to Warcraft cinematics.
That doesn't tell me anything.

> Cinematics don't like that by themselves; they require some functions to initialize.
My cinematics like that though. Functions?

Trigger:
  • Cinematic - Turn cinematic mode On for (All players)

This turn on the cinematic for all players
... Would never have guessed. :p
Perhaps you could explain what cinematic mode actually does, and why you should use this?
Same applies to the other actions you mentioned there.

> Cameras are extremely importants when making cinematics as they add a feeling to players
Cameras add a feeling to the players :confused:? I thought cameras were there so that you could actually see what was happening from different views.

> Set Camera to Current View : Set the camera to the current view
:rolleyes:

This tutorial needs some serious re-writing on most parts.
 

msakni

New Member
Reaction score
8
> Cinematics are like cutscenes or movies, but they are usually a bit different when it comes to Warcraft cinematics.
That doesn't tell me anything.

> Cinematics don't like that by themselves; they require some functions to initialize.
My cinematics like that though. Functions?


... Would never have guessed. :p
Perhaps you could explain what cinematic mode actually does, and why you should use this?
Same applies to the other actions you mentioned there.

> Cameras are extremely importants when making cinematics as they add a feeling to players
Cameras add a feeling to the players :confused:? I thought cameras were there so that you could actually see what was happening from different views.

> Set Camera to Current View : Set the camera to the current view
:rolleyes:

This tutorial needs some serious re-writing on most parts.
Sorry for my bad english, it's my first tutorial and I'm not that good at english but I'll try to improve it.
 

sabrio

Active Member
Reaction score
27
Thanks you for this tutorial, I have learned some tricks and improved my cinematics alot.
Good luck on finishing it
 

Tyman2007

Ya Rly >.
Reaction score
74
If you use firefox, right click and click check spelling.

Will help add to the seriousness of the tutorial.

It seems a little wordy. Try taking out some obvious stuff if there is some in there. I haven't read it to be honest, but I have checked out the triggers and some tips you've explained.

Look out for things like stating the obvious.
Instead of stating the obvious like saying "Unit - Kill Unit - Kills the unit" You can say the overall purpose. "Unit - Kill Unit - Used to do..."
Repeating yourself.
Instead of repeating yourself using different wording, try explaining a different function or use (Which I see you have done, just going through these things)

And small things like spelling and grammar errors.
 

HydraRancher

Truth begins in lies
Reaction score
197
Trigger:
  • Cinematic - Turn subtitle display override On

This is optionnal but forces player to have subtitles turned ON

Ok.

Trigger:
  • Cinematic - Turn subtitle display override On

Prevents players from selecting units or controlling them
Wait...I thought you said that function "forces player to have subtitles turned ON"...



Oh by the way, I thought Turn on Cinematic Mode automatically does all that user control and letterbox stuff.
 

leon0007

New Member
Reaction score
0
In Cinematic - Transmission to unit
Modify duration
What is the diffrent of add,set to and subtract.
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top