In-game cutscenes
by Bradley Crawford · in Torque Game Engine · 03/24/2002 (11:44 pm) · 8 replies
I noticed this brought up in a thread about machinima and started thinking about it, think I finally clicked it on the way home form work today.
Going to set out the basic idea I have for doing so, and am looking for yes/no or further ideas/discussion on it's implementation based on the fact that I have had projects at work reaching deadline and havn't had a lot of time to look at tge yet.
1. Use a trigger at the area we want to stop player and start cutscene
2. Trigger calls a script
3. Script stops player movement and input (turning off keyboard/mouse/etc)
4. Script then executes a single function that executes line by line camera movements, ai character movement with onreach calling a new character model animation, text output to a gui control displaying captioning linked to mp3/wav audio for voiceovers.
5. When script reaches the end player control is re-established.
eg
Trigger calls area1.cs
area1.cs is as such
{
//stop player input
camera.move(0,0)
aichar1.move(10,100)
aichar1.onreach(10,100) {
aichar1.call(wave)
aichar1.output("Hi bill, what can I do for you")
}
camera.sweep(180, 5) //using fxGui code to sweep camera 180 degree's in 5 seconds
aichar2.move(20, 100)
aichar2.onreach(20,100) {
aichar2.call(unhosltergun)
aichar2.call(aimgun)
aichar2.call(firegun)
aichar2.output("You've done quite enough")
aichar2.call(smirk)
aichar2.move(500,300)
}
//restart player input
This is obviously just a basic outline that needs to be expanded upon, but it's the simpelest way to do it I think, and look forward to discussion on it.
Brad "Knytestorme" Crawford
Going to set out the basic idea I have for doing so, and am looking for yes/no or further ideas/discussion on it's implementation based on the fact that I have had projects at work reaching deadline and havn't had a lot of time to look at tge yet.
1. Use a trigger at the area we want to stop player and start cutscene
2. Trigger calls a script
3. Script stops player movement and input (turning off keyboard/mouse/etc)
4. Script then executes a single function that executes line by line camera movements, ai character movement with onreach calling a new character model animation, text output to a gui control displaying captioning linked to mp3/wav audio for voiceovers.
5. When script reaches the end player control is re-established.
eg
Trigger calls area1.cs
area1.cs is as such
{
//stop player input
camera.move(0,0)
aichar1.move(10,100)
aichar1.onreach(10,100) {
aichar1.call(wave)
aichar1.output("Hi bill, what can I do for you")
}
camera.sweep(180, 5) //using fxGui code to sweep camera 180 degree's in 5 seconds
aichar2.move(20, 100)
aichar2.onreach(20,100) {
aichar2.call(unhosltergun)
aichar2.call(aimgun)
aichar2.call(firegun)
aichar2.output("You've done quite enough")
aichar2.call(smirk)
aichar2.move(500,300)
}
//restart player input
This is obviously just a basic outline that needs to be expanded upon, but it's the simpelest way to do it I think, and look forward to discussion on it.
Brad "Knytestorme" Crawford
About the author
#2
I am looking at it from a viewpoint of a system to create cutscenes such as in NOLF, Soldier of Fortune etc for a single player game and so I would be expecting to be able to guide players over the triggers in the order I wish.
I'm not sure it's possible to write a generic system that will work for everyone without it needing to be heavily scripted.
I don't know if you ever did any mission scripting for Freespace 1 or 2, but there each cutscene/mission briefing is heavily scripted and I think that is the only real way to do it, so am looking for the most efficient way to read in a script that line-by-lines the action of each actor.
I will look at a way to try to do a generic one as well, since it might be useful for scripting things like changes to the banners a team controls, or the explosion of something further away based on a trigger event at the player.
Looks like there will be a few ways to do it of course, just hoping that with some initial discussion we can come up with a plan for the most efficient method, even if it means heavy hand-scripting on a game-by-game basis rather than a generic system.
03/25/2002 (3:22 am)
I agree that it would be time consuming Phil, but nothing wrong with doing an editor for it.I am looking at it from a viewpoint of a system to create cutscenes such as in NOLF, Soldier of Fortune etc for a single player game and so I would be expecting to be able to guide players over the triggers in the order I wish.
I'm not sure it's possible to write a generic system that will work for everyone without it needing to be heavily scripted.
I don't know if you ever did any mission scripting for Freespace 1 or 2, but there each cutscene/mission briefing is heavily scripted and I think that is the only real way to do it, so am looking for the most efficient way to read in a script that line-by-lines the action of each actor.
I will look at a way to try to do a generic one as well, since it might be useful for scripting things like changes to the banners a team controls, or the explosion of something further away based on a trigger event at the player.
Looks like there will be a few ways to do it of course, just hoping that with some initial discussion we can come up with a plan for the most efficient method, even if it means heavy hand-scripting on a game-by-game basis rather than a generic system.
#3
Then it would just be a matter of starting the camera in the correct location and running an animation on it.
Frank
05/03/2004 (9:34 pm)
Can sequences be applied to the camera?Then it would just be a matter of starting the camera in the correct location and running an animation on it.
Frank
#4
05/05/2004 (10:25 am)
Yes, they can.
#5
10/11/2004 (2:17 pm)
How does one apply sequences to the camera?
#6
10/11/2004 (5:13 pm)
Thrid-person cut scenes areout dated. You should allow your player to move around and interact with your "cut scenes". So you still have the same objects/players moving around doing what they do, but you'll view it from a first person point of view.
#7
10/12/2004 (1:52 am)
Unless there is something going on that you don't want the player to miss I guess. Like in a more RPG-like game?
#8
Even though its a few years old, its not the design or the cutscenes that appear 'aged' in the game.
Nick
10/12/2004 (2:03 am)
Outdated is a tough call, surely it depends entirely on the design of your game. NOLF has third person cutscenes and they (IMHO) help make the game great...Even though its a few years old, its not the design or the cutscenes that appear 'aged' in the game.
Nick
Torque 3D Owner Phil Carlisle
What your ideally looking for, is a system that sets up a bunch of scripts for each item you want scripted sequences for, then executes them all using the same time.
I'm not quite clear on how one would execute a specific call at a specific time, other than having a dummy "sequence" object which did nothing but read the time and call script functions or object methods at the correct time.
I'll have to think on this a bit.
Phil.