• Welcome to Battlezone Universe.
 

News:

Welcome to the BZU Archive dated December 24, 2009. Topics and posts are in read-only mode. Those with accounts will be able to login and browse anything the account had access granted to at the time. No changes to permissions will be made to be given access to particular content. If you have any questions, please reach out to squirrelof09/Rapazzini.

Main Menu

cutscenes, how do I make 'em?

Started by Mafioso, January 09, 2008, 04:46:51 AM

Previous topic - Next topic

Mafioso

I need to know how to make a cutscene.

And does it require any high level of programming skills?  :|

Lizard

just use the DLL scriptor to set up a scripted camera sequence , it's very easy to do .

Avatar

Um...  I have to disagree.

It's easy to set one up, but it's hard to do one safely.   In the Scriptor look at the 'cam' commands, but consider them a loaded gun.  I almost always cringe when one occurs in SP, FE or Fleshstorm, because bad things happen afterward.

Why?

The BZ2 engine never stops...  there's no 'pause' while in the cutscene and hitting the space bar to end it jumps you forward in time, as if the whole thing had played.  If one occurs while you're in the middle of a fight you're dead...

There are things you can do to help make them safer, though:

1. You can make everyone an Ally before starting a cutscene.  This stops any fights because everyone's one big happy team.  After the cutscene is done everyone is put back on their own team and the fighting starts up again.

The main drawback to this method is that any attack waves keep moving to wherever they were going.  Suddenly there's a dozen enemies around you or your Recycler despite the wall of GT's that was holding them back before the cutscene.  You also may end up off a cliff or coasting into a tight spot when it starts, so getting your bearings is tough afterwards.

Another thing that can happen is that a unit told to 'attack' something at that time won't, they'll stop wherever they are and you end up with 'orphan' units.

Still, this is better than instant, unavoidable death due to cutscene.

2.  You can set up some conditions that have to occur before the cutscene triggers.  Make it the destruction of the last attack wave AND the Player being a certain distance from the nearest enemy, so both the base and the Player are safe during the cutscene, and don't send any more attack waves until the cutscene ends.  Players being what they are this can end up causing the cutscene never to happen, or if the Player goes and sits next to the enemy base he'll effectively stop all attack waves, giving him a major advantage.  It can also cause some long pauses between attacks depending on how far away they're coming from.

An alternative to this is to use the conditions as a guide to how to present what you're trying to say.  In this case after the last attack wave you'd check to see if the Player is near an enemy.  If he is you just play a wav sound with no camera activity.  If he isn't you do the full blown cutscene.  This is the method I've tried to use for BZC, but there are times when this isn't appropriate, either.  It all depends on what you're trying to show with the cutscene.

3.  You can temporarily move the Player off the map or to somewhere on the map that you know is safe, then put them back where they were when the cutscene ends.  This can give you a flicker of seeing that you're somewhere else (unless you use an actual DLL, but the Scriptor has a bit of lag to it).

***

So, be careful with cutscenes unless you want people to hate you...   there are a lot of options available to try to minimize how much damage can occur during one, and to make them more presentable to all different types of players...

-Av-

Steeveeo

Good tips Av, will keep those in mind for my next project.

(Click it for more art, y'know you wanna!)

Gone to college, but I now have internet.

Mafioso

Thanks for the tip Ava, but I think it will take me some time to understand the scriptor fully  :-P

Red Devil

Pretty sure you can record a game, then play it back and just move the camera where you need it while using Fraps to record it.  Not sure though.
What box???

bigbadbogie

yeah you can do that, but only if you actually have fraps - and i dont mean the demo
Others would merely say it was good humour.


My BZ2 mods:

QF2: Essence to a Thief - Development is underway.

Fleshstorm 2: The Harvest - Released on the 6th of November 2009. Got to www.bz2md.com for details.

QF Mod - My first mod, finished over a year ago. It can be found on BZ2MD.com

Avatar

While the Scriptor does support "Playmovie, filename" I've never actually gotten it to play a movie during a mission...  so if that works I've never done it.

The other cutscene commands, under "cam____" in the Scriptor, are very easy to do.  Here's a sample  from BZC that triggers if a Soviet Tug captures the Relic.  The first time this happens the mission will show you the Tug taking off with the Relic.  If it happens again it'll skip the movie:


   GetPlayer,ThePlayer              //find the player and assign it "ThePlayer" as a name
   NearEnemy,BadGuy,ThePlayer //find the nearest enemy to "ThePlayer" and assign it "BadGuy" as a name
   DistObject,BadGuy,ThePlayer  //find out how far away the "BadGuy" is from the Player, the next operation will use that number
   IfLT,200,SKIPMOVIE              //if the nearest bad guy is less than 200m away go to SKIPMOVIE
   CamObject,SovTug,CameraSpawn,SovTug,25  //Set a camera on the Soviet Tug, using the position "CameraSpawn" away, and follow the Tug for 25 seconds
SKIPMOVIE:                                 //go here if there's an enemy around
   Set,TugMovie,1                    //set the variable "TugMovie" to 1, indicating the movie was triggered
   JumpTo,CHECKESCORT1       //go to another part of the script


The whole camera operation is one line, and it does a very cool cutscene of the Tug running away with the Relic...

You know, we could have a whole seperate board just one the Scriptor...

-Av-

Red Devil

Looking at the DLL, I'm thinking that we may be able to get the camera to follow a unit in sat view in-game.  Maybe.  Back burner though.
What box???

Avatar

You could fake it in the Scriptor easily enough by just specifying a high position, looking down. 

There's no end to what you can do, up to making entire 'sets' via DLL, running the camera sequence, and then removing it all also by DLL.  If you were trying, say, to show a news broadcast from Earth you could make a whole Earth-like area, complete with environmental changes (blue sky, green grass), run through the camera sequence, and then put the environment back to say, the Moon after you remove any 'props'.

Keep in mind that extended camera sequences, no matter how cool looking, will annoy about 75% of the players.  Toss in unexpected skyrides, attackers breezing past your defenses, or exiting to find your sitting in lava and another 20% will be annoyed with you.

So keep them clear, short, and to the point while keeping the player and his toys as safe as possible.

-Av-

Red Devil

Talking about targeting a unit in sat view in MP and having the camera follow it.
What box???

GSH

Quote
Keep in mind that extended camera sequences, no matter how cool looking, will annoy about 75% of the players.  Toss in unexpected skyrides, attackers breezing past your defenses, or exiting to find your sitting in lava and another 20% will be annoyed with you.

Doing the math, you're saying that 5% of players like cutscenes. I think that's rather high.

(Unless you're talking Final Fantasy or Metal Gear Solid, games with more cutscene than interactive times, it seems. Hasn't hurt their sales.)

-- GSH

Sonic

Way back when I first started "In The Shadows", I created a special cutscene mission that I gave to CmptrWz who captured and edited into an intro movie which has been sitting on my site ever since (http://www.starfleetplatoon.com/users/sonic/bz2/its.wmv). Timming was particularly hard, especially when you write the script on one computer and another computer actually ran it.

Here's the script for that mission, if you want it:
// Script used to create the ITS Trailer Clip

[objects]
Builder1
Builder2
Recycler1
Recycler2
OS
Attacker1
Attacker2
Attacker3
Bomber
Player

[positions]

[variables]

[text]
Start,
"Hey You!  Yea You! \nSay Cheese! ^_^"

[routine,Main,1,true]
Display,Start,turquoise
Wait,3
BeaconOn,OS
Createp,Attacker1,">fvtank",6,"attack1"
GiveWeapon,Attacker1,"gomburst2_c"
GiveWeapon,Attacker1,"gshield"
Attack,Attacker1,Recycler1,1
Createp,Attacker1,"fvtank",6,"attack1"
GiveWeapon,Attacker1,"gomburst2_c"
GiveWeapon,Attacker1,"gshield"
Attack,Attacker1,Recycler1,1
Createp,Attacker1,"fvtank",6,"attack1"
GiveWeapon,Attacker1,"gomburst2_c"
GiveWeapon,Attacker1,"gshield"
Attack,Attacker1,Recycler1,1
Wait,1
RunSpeed,Cheese,1,true
Wait,15
Createp,Attacker1,"fvtank",6,"attack1"
GiveWeapon,Attacker1,"garc_c"
GiveWeapon,Attacker1,"gshield"
SetMaxHealth,Attacker1,10000
SetSkill,Attacker1,2
Createp,Attacker2,"fvtank",1,"attack2"
GiveWeapon,Attacker2,"gomburst2_c"
GiveWeapon,Attacker2,"gabsorb"
Attack,Attacker2,Attacker1,1
SetMaxHealth,Attacker2,12000
SetCurHealth,Attacker2,12000
SetSkill,Attacker2,3
Createp,Attacker3,"fvtank",1,"attack2"
GiveWeapon,Attacker3,"gomburst2_c"
GiveWeapon,Attacker3,"gabsorb"
Attack,Attacker3,Attacker1,1
SetMaxHealth,Attacker3,12000
SetCurHealth,Attacker3,12000
SetSkill,Attacker3,3
Wait,5
SetCurHealth,Attacker1,4000
Wait,8
Build,Builder2,"fbbomb",1
DropOff,Builder2,"build_here",1
CHECKING:
GetByLabel,Bomber,"unnamed_fvbomb"
IsAround,Bomber
IfEQ,false,CHECKING
Wait,16
Attack,Bomber,OS,1
Remove,Attacker2
Remove,Attacker3
Createp,Attacker1,">fvwalk",6,"attack1"
Attack,Attacker1,Recycler1,1
Createp,Attacker1,"fvwalk",6,"attack1"
Attack,Attacker1,Recycler1,1
Createp,Attacker1,"fvwalk",6,"attack1"
Attack,Attacker1,Recycler1,1

[routine,GetStuff,1,true]
GetByLabel,Builder1,"cons_good"
GetByLabel,Builder2,"cons_bad"
GetByTS,Recycler1,1,1
GetByTS,Recycler2,6,1
GetByLabel,OS,"over"

[routine,Cheese,0,false]
CamOf,Attacker1,-25,10
CamPath,"cam2",2500,2500,Recycler1
CamPath,"cam1",1000,3000,Attacker2
CamPath,"cam3",2500,900,Builder2
CamOf,Bomber,-50,10
CamPath,"cam2",2500,2000,Bomber

[Routine,ThePlayer,1,true]
START:
GetPlayer,Player
JumpTo,START
"Linux is user friendly...
...it's just very selective about who its friends are."

bigbadbogie

in the shadows...brings back some memories -- i remember checking the sfp site every month to see if it was going anywhere -- i am still DISAPPOINTED!!!!!
Others would merely say it was good humour.


My BZ2 mods:

QF2: Essence to a Thief - Development is underway.

Fleshstorm 2: The Harvest - Released on the 6th of November 2009. Got to www.bz2md.com for details.

QF Mod - My first mod, finished over a year ago. It can be found on BZ2MD.com

Avatar

Quote from: GSH on January 09, 2008, 06:36:47 PM
Quote
Keep in mind that extended camera sequences, no matter how cool looking, will annoy about 75% of the players.  Toss in unexpected skyrides, attackers breezing past your defenses, or exiting to find your sitting in lava and another 20% will be annoyed with you.

Doing the math, you're saying that 5% of players like cutscenes. I think that's rather high.

(Unless you're talking Final Fantasy or Metal Gear Solid, games with more cutscene than interactive times, it seems. Hasn't hurt their sales.)

-- GSH

I felt that a safe statistic as 5% of the population will enjoy watching paint dry or grass grow...  just look at the Nielson ratings for shows like "Alf", or "Smarter than a Fifth Grader".   :)

I personally love a good cutscene.  Makes the whole experience more like being in an epic movie.  The trouble is there aren't many good cutscenes IN missions in BZ2 because of the downside to freezing the Player.  They're much better used at the beginning/ending of a mission to set the stage, or show the result of the mission.

-Av-