Jump to content

Intro Cutscene Mod - Paradise City


Jimbob
 Share

Recommended Posts

This is a modification I made to demonstrate many of the things you can do with cutscenes, as covered in my >Custom Cutscenes tutorial. It changes the 'intro' to LEGO Racers 2, where you first speak to Sparky on Sandy Bay and learn the controls, replacing it with an intro to the island in a movie-style with various camera techniques (and a suitable background song to go with it).

 

You can check out the mod in the video below:

 

http://youtu.be/sVz6zpMtErA

 

Credits:

- A huge thanks to le717 for recording this mod for me!

- le717 combined the mod with 's >Hudless Arrowless mod, so thank you Segatendo for that :)

- The song that is played is Paradise City by Guns N' Roses.

 

Because this mod contains a song, uploading it would be a breach of copyright. However, other than the song, there is only one file that is modified so I'll post it below.

 

 

The script below is INTRO1.TXT, which you can find in GAME DATA/SCRIPTS/SANDY ISLAND. I have commented it to some extent to give you an idea of what is going on in each section.

$global
        $name  intro
        $story  INTRO

        $length 82

        $setactor PLAYER CB_IDLE
        $setactor SPARKY CB_IDLE
        $setactor workman2 CB_IDLE
        $setactor doctor CB_IDLE
        $setactor genmale1 CB_IDLE
        $setactor beachbabe1 CB_IDLE
        $setactor genmale2 CB_IDLE
        $setactor beachbabe2 CB_IDLE
        $setactor postman CB_IDLE
        $setactor fireman CB_IDLE
        $setactor policeman CB_IDLE

        # Place player and car in town
        $figposition intro1_sparkypos
        $carposition intro1_carpos

        # Paradise City
        $setsound MUSIC1
                $sample Game DataMUSICparadisecity.aif
                $bindto PLAYER
        $end

        $nocancel
$end

# Establishing shot
$time 0
        $effect FADE UP
        # Place Sparky
        $actor 1
                $position intro2_sparkypos
        $end
        # Place camera
        $cinematic
                $shot OBJECT_STATIC PLAYER
                $startrelative -20.0 40.0 -65.0
                $endrelative   -20.0 40.0 40.0
                $targetoffset  -20.0 5.0 -80.0
        $end
        # Play music
        $sound MUSIC1

# Down at beach
$time 5.5
        $actor 1
                $animation WAVE 5.5 0.75
                $expression HAPPY1 5.5
        $end

        $cinematic
                $shot OBJECT_STATIC SPARKY
                $startrelative 60.0 5.0 20.0
                $endrelative   -40.0 5.0 20.0
                $targetoffset  0.0 2.0 0.0
        $end

# Construction site
$time 11
        $actor 2
                $position default_workman2pos
        $end

        $cinematic
                $shot OBJECT_STATIC workman2
                $startrelative 60.0 10.0 0.0
                $endrelative   -40.0 10.0 0.0
                $targetoffset  0.0 2.0 0.0
        $end

# Doctor and space area
$time 16
        $actor 3
                $animation ANGRY 4.5 0.5
        $end

        $cinematic
                $shot OBJECT_STATIC doctor
                $startrelative -20.0 5.0 20.0
                $endrelative   40.0 10.0 0.0
                $targetoffset  20.0 8.0 -20.0
        $end

# 'Take me down to the paradise city...' - random singer
$time 20.5
        $actor 4
                $animation TALK_SUPRISED 1.5 1.0
                $expression TALK 2.5
        $end

        $cinematic
                $shot OBJECT_STATIC genmale1
                $startrelative 0.0 1.2 7.0
                $endrelative   0.0 1.2 1.0
                $targetoffset  0.0 1.4 0.0
        $end

# '...where the grass is green...' - show some grass
$time 23
        $cinematic
                $shot OBJECT_STATIC doctor
                $startrelative 0.0 1.0 70.0
                $endrelative   0.0 1.0 70.0
                $targetoffset  0.0 -5.0 70.0
        $end

# '...and the girls are pretty' - random girl
$time 24.5
        $actor 5
                $animation TALK_EXCITED 1.5 1.0
                $expression HAPPY1 1.5
        $end

        $cinematic
                $shot OBJECT_STATIC beachbabe1
                $startrelative 0.0 1.2 3.0
                $endrelative   0.0 1.2 3.0
                $targetoffset  0.0 0.4 0.0
        $end

# -------------------------------------------------------------------------
# Next bit
# -------------------------------------------------------------------------

# 'Oh won't you please take me home' - pan to player
$time 26 
        $cinematic
                $shot OBJECT_STATIC PLAYER
                $startrelative -30.0 1.4 8.0
                $endrelative   0.0 1.4 8.0
                $targetoffset  0.0 1.4 0.0
        $end

# Continuation of previous shot, camera is stopped on player
$time 29
        $actor 0
                $animation I_AM_THE_BEST 1.5 1.0
                $expression HAPPY2 2
        $end

        $cinematic
                $shot OBJECT_STATIC PLAYER
                $startrelative 0.0 1.4 8.0
                $endrelative   0.0 1.4 8.0
                $targetoffset  0.0 1.4 0.0
        $end

# 'Take me down to the paradise city...' - another random singer
$time 31
        $actor 6
                $animation TALK_NO_WAY 2.5 1.0
                $expression TALK 2.5
        $end

        $cinematic
                $shot OBJECT_STATIC genmale2
                $startrelative 0.0 1.2 1.0
                $endrelative   0.0 1.2 10.0
                $targetoffset  0.0 1.4 0.0
        $end

# '...where the grass is green...' - show some grass
$time 33.5
        $cinematic
                $shot OBJECT_STATIC doctor
                $startrelative 0.0 1.0 70.0
                $endrelative   0.0 1.0 70.0
                $targetoffset  0.0 -5.0 70.0
        $end

# '...and the girls are pretty' - another random girl
$time 35
        $actor 7
                $animation LOOK_AROUND 1.5 1.0
                $expression HAPPY1 1.5
        $end

        $cinematic
                $shot OBJECT_STATIC beachbabe2
                $startrelative 0.0 1.2 3.0
                $endrelative   0.0 1.2 3.0
                $targetoffset  0.0 0.4 0.0
        $end

# 'Oh won't you please take me home' - pan to player again
$time 36.5 
        $cinematic
                $shot OBJECT_STATIC PLAYER
                $startrelative 0.0 20.0 20.0
                $endrelative   0.0 1.0 5.0
                $targetoffset  0.0 1.0 0.0
        $end

# Continuation of previous shot, camera is stopped on player
$time 40
        $actor 0
                $animation WAVE 1.5 0.75
                $expression HAPPY1 1.5
        $end

        $cinematic
                $shot OBJECT_STATIC PLAYER
                $startrelative 0.0 1.2 5.0
                $endrelative   0.0 1.2 5.0
                $targetoffset  0.0 1.2 0.0
        $end

# -------------------------------------------------------------------------
# Instrumental 1 - Sandy Bay jump point shots
# -------------------------------------------------------------------------

# Dino Island take-off
$time 41.5
        $actor 1
                $animation TALK_ANGRY 2.5 1.0
                $expression HAPPY2 2.5
                $position sparkydinopos
        $end

        $cinematic
                $shot OBJECT_STATIC SPARKY
                $startrelative 6.0 15.0 15.0
                $endrelative   -12.0 10.0 -15.0
                $targetoffset  -6.0 3.0 -25.0
        $end

# Arctic helipad
$time 44
        $actor 1
                $animation I_AM_THE_BEST 2.5 1.0
                $expression HAPPY2 2.5
                $position sparkyarcpos
        $end

        $cinematic
                $shot OBJECT_STATIC SPARKY
                $startrelative 8.0 5.0 10.0
                $endrelative   8.0 5.0 -20.0
                $targetoffset  15.0 5.0 -25.0
        $end

# Life on Mars launchpad
$time 46.5
        $actor 1
                $animation LOOK_AROUND 2.5 1.0
                $expression HAPPY1 2.5
                $position sparkylompos
        $end

        $cinematic
                $shot OBJECT_STATIC SPARKY
                $startrelative -13.0 1.2 -35.0
                $endrelative   -13.0 90.0 -35.0
                $targetoffset  -17.5 1.2 -45.0
        $end

# Xalax portal
$time 49
        $actor 1
                $animation TALK_EXCITED 1.5 1.0
                $expression HAPPY1 1.5
                $position sparkyccpos
        $end

        $cinematic
                $shot OBJECT_STATIC SPARKY
                $startrelative 5.0 1.0 15.0
                $endrelative   40.0 15.0 -20.0
                $targetoffset  45.0 3.0 -25.0
        $end

# -------------------------------------------------------------------------
# Instrumental 2 - Sandy Bay racers (group shots)
# -------------------------------------------------------------------------

# Builder
$time 51
        # Position postman
        $actor 8
                $position intro3_postmanpos
        $end
        # Position fireman
        $actor 9
                $position intro3_firemanpos
        $end
        # Position policeman
        $actor 10
                $position intro3_policemanpos
        $end
        # Position and animate builder
        $actor 2
                $position intro3_workman2pos
                $animation  TALK_ARG_LEFT 2.5 1.0
                $expression HAPPY1 2.5
        $end
        # Position Sparky back where he belongs (bad Sparky)
        $actor 1
                $position intro2_sparkypos
        $end
        # Camera on both characters
        $cinematic
                $shot OBJECT_STATIC workman2
                $startrelative 0.0 2.5 3.0
                $endrelative   0.0 2.5 3.0 
                $targetoffset 0.0 1.2 0.0
        $end

# Postman
$time 53.5
        # Animate postman
        $actor 8
                $animation  TALK_EXCITED 2.5 1.0
                $expression HAPPY1 2.5
        $end
        # Camera on postman
        $cinematic
                $shot OBJECT_STATIC postman
                $startrelative 0.0 1.2 3.0
                $endrelative   0.0 1.2 3.0 
                $targetoffset 0.0 1.2 0.0
        $end

# Fireman
$time 56
        # Animate fireman
        $actor 9
                $animation  LAUGH2
                $expression HAPPY2 2.5
        $end
        # Camera on fireman
        $cinematic
                $shot OBJECT_STATIC fireman
                $startrelative -6.0 3.0 6.0
                $endrelative   6.0 3.0 6.0 
                $targetoffset -2.0 4.0 -2.0
        $end

# Policeman
$time 58.5
        # Animate policeman
        $actor 10
                $animation  I_AM_THE_BEST 1.5 1.0
                $expression HAPPY1 1.5
        $end
        # Camera on policeman
        $cinematic
                $shot OBJECT_STATIC policeman
                $startrelative 0.0 2.5 2.0
                $endrelative   0.0 2.5 4.0 
                $targetoffset 0.0 1.2 0.0
        $end

# -------------------------------------------------------------------------
# Final singing - part 1
# -------------------------------------------------------------------------

# 'Take me down to the paradise city...' - random singer
$time 61
        $actor 4
                $animation TALK_SUPRISED 1.5 1.0
                $expression TALK 2.5
        $end

        $cinematic
                $shot OBJECT_STATIC genmale1
                $startrelative 0.0 1.2 7.0
                $endrelative   0.0 1.2 1.0
                $targetoffset  0.0 1.4 0.0
        $end

# '...where the grass is green...' - show some grass
$time 63.5
        $cinematic
                $shot OBJECT_STATIC doctor
                $startrelative 0.0 1.0 70.0
                $endrelative   0.0 1.0 70.0
                $targetoffset  0.0 -5.0 70.0
        $end

# '...and the girls are pretty' - random girl
$time 64.5
        $actor 5
                $animation TALK_EXCITED 1.5 1.0
                $expression HAPPY1 1.5
        $end

        $cinematic
                $shot OBJECT_STATIC beachbabe1
                $startrelative 0.0 1.2 3.0
                $endrelative   0.0 1.2 3.0
                $targetoffset  0.0 0.4 0.0
        $end

# -------------------------------------------------------------------------
# Next bit
# -------------------------------------------------------------------------

# 'Oh won't you please take me home' - pan to player
$time 66 
        $cinematic
                $shot OBJECT_STATIC PLAYER
                $startrelative -30.0 1.4 8.0
                $endrelative   0.0 1.4 8.0
                $targetoffset  0.0 1.4 0.0
        $end

# Continuation of previous shot, camera is stopped on player
$time 68
        $actor 0
                $animation I_AM_THE_BEST 1.5 1.0
                $expression HAPPY2 2
        $end

        $cinematic
                $shot OBJECT_STATIC PLAYER
                $startrelative 0.0 1.4 8.0
                $endrelative   0.0 1.4 8.0
                $targetoffset  0.0 1.4 0.0
        $end

# 'Take me down to the paradise city...' - another random singer
$time 70
        $actor 6
                $animation TALK_NO_WAY 2.5 1.0
                $expression TALK 2.5
        $end

        $cinematic
                $shot OBJECT_STATIC genmale2
                $startrelative 0.0 1.2 1.0
                $endrelative   0.0 1.2 10.0
                $targetoffset  0.0 1.4 0.0
        $end

# '...where the grass is green...' - show some grass
$time 73
        $cinematic
                $shot OBJECT_STATIC doctor
                $startrelative 0.0 1.0 70.0
                $endrelative   0.0 1.0 70.0
                $targetoffset  0.0 -5.0 70.0
        $end

# '...and the girls are pretty' - another random girl
$time 74
        $actor 7
                $animation LOOK_AROUND 1 1.0
                $expression HAPPY1 1
        $end

        $cinematic
                $shot OBJECT_STATIC beachbabe2
                $startrelative 0.0 1.2 3.0
                $endrelative   0.0 1.2 3.0
                $targetoffset  0.0 0.4 0.0
        $end

# 'Taaake meee hooome' - pan to player again
$time 75
        $cinematic
                $shot OBJECT_STATIC PLAYER
                $startrelative 0.0 20.0 20.0
                $endrelative   0.0 1.0 3.0
                $targetoffset  0.0 1.0 0.0
        $end

# Continuation of previous shot, camera is stopped on player
$time 78
        $actor 0
                $animation WAVE 2 0.75
                $expression HAPPY1 2
        $end

        $cinematic
                $shot OBJECT_STATIC PLAYER
                $startrelative -1.5 1.2 5.0
                $endrelative   -1.5 1.2 5.0
                $targetoffset  0.0 1.2 0.0
        $end

# Continuation of previous shot, fade out
$time 80
        $actor 0
                $animation WAVE 2 0.75
                $expression HAPPY1 2
        $end

        $cinematic
                $shot OBJECT_STATIC PLAYER
                $startrelative -1.5 1.2 5.0
                $endrelative   -1.5 1.2 5.0
                $targetoffset  0.0 1.2 0.0
        $end

        $effect FADE DOWN 

 

The majority of this cutscene didn't actually take that long to produce, the only part that took hours (literally) was the small section with the Sandy Bay racers having a conversation. I tried putting them in various places around the island and doing different things, but it turned out these characters (and them alone, I'm pretty sure) are really buggy to work with as they are both found around the island and conversed with before/after races. If you can avoid using them, I would, hence why that particular section wasn't as good as the rest.

Link to comment
Share on other sites

If all LEGO Racers 2 cutscenes were like this, the game would be way more interesting. Good job, JJ! :D

O.T.

Next time, I'll preview the mod before I commit to recording it. I was a bit set back the first time seeing it because I did not know the song or why you were cutting to the beach so much. :P
Link to comment
Share on other sites

If all LEGO Racers 2 cutscenes were like this, the game would be much more interesting.

 

Yes, exactly. There's a lot of stuff like that in this game, and seeing this cutscene actually happen is awesome.

 

How much can you do with cutscenes? Can you add one that wasn't there before? Also, some races have dialogue from Sparky before them. Are these defined under cutscene files, or something different? If so, I am interested in making a mod that adds a "preview track" cutscene before each race.

  • Like 2
Link to comment
Share on other sites

All cutscenes in Lego Racers 2 mods should be like this from now on. Well done. Have a gold brick.

Challenge for the future: recreate the Lego Island intro movie using LR2 elements as best you can.

Link to comment
Share on other sites

Fluffy Cupcake

Erm, I dunno why, but the script doesn't work for me, even on vanilla. Sandy Bay can be seen for 0.001 seconds and then the game crashes.

Nvm, didn't realize you kept the requirement for the song.

Link to comment
Share on other sites

I hope someone will remake every cutscene that the developers didn't make well, in a kinda epic way like you did in this mod! I would be really pleased to see that.

Link to comment
Share on other sites

I'm going to spoiler this, as I'd like to reply to every comment :)

Awesome, I like it! :D

Thanks!

 

If all LEGO Racers 2 cutscenes were like this, the game would be way more interesting. Good job, JJ! :D

O.T.
Next time, I'll preview the mod before I commit to recording it. I was a bit set back the first time seeing it because I did not know the song or why you were cutting to the beach so much. :P

Thank you, and for recording it :) I don't see anything wrong with the recording?

 

 

If all LEGO Racers 2 cutscenes were like this, the game would be much more interesting.

 

Yes, exactly. There's a lot of stuff like that in this game, and seeing this cutscene actually happen is awesome.

 

1) How much can you do with cutscenes? 2) Can you add one that wasn't there before? 3) Also, some races have dialogue from Sparky before them. Are these defined under cutscene files, or something different? If so, I am interested in making a mod that adds a "preview track" cutscene before each race.

1) I think I've covered most of it already, in that one cutscene. In terms of the range of techniques that is. There are some things I haven't played with, e.g. animations such as the builder walking from his digger, I'll have to look into them more.

2) I have no idea, I'd think it's more likely that they're hardcoded though :/ However, the $trigger code can set up which character triggers the next cutscene, but not the cutscene that it triggers. So you can certainly change who you speak to.

3) The words in the dialogue are in the script files, JMMB posted some documentation on them so they are editable. However, to actually get someone to say them, you declare it in the cutscene files. So yes you can change who says what, when and where - this example intro completely replaces Sparky teaching you how to drive your car, for instance. :)

 

All cutscenes in Lego Racers 2 mods should be like this from now on. Well done. Have a gold brick.

Challenge for the future: recreate the Lego Island intro movie using LR2 elements as best you can.

Thank you, I will display this brick with pride. I've been saving up for a trip to Xalax.

As for the challenge... I would love to say 'CHALLENGE ACCEPTED', but with the amount of animation in the video, I think some more research would need to be done first.

 

Erm, I dunno why, but the script doesn't work for me, even on vanilla. Sandy Bay can be seen for 0.001 seconds and then the game crashes.

Nvm, didn't realize you kept the requirement for the song.

Oops, maybe I should have mentioned that. The song is just the original one with much of it cut out, no special version was used.

 

I hope someone will remake every cutscene that the developers didn't make well, in a kinda epic way like you did in this mod! I would be really pleased to see that.

If I had the time, I would love to :D It's not that hard, I'm sure someone could do it.

Link to comment
Share on other sites

All afternoon I keep saying "Take me down to the paragraph city". My mind must really be wound on finishing this paper. :P

 

Later, after I posted this (after getting high on laughing my head off thanks to the LMBs), I started saying this line as "Take me down to the paragraph city, where the girls are green and the grass is pretty". I.... :S:P

  • Like 2
Link to comment
Share on other sites

So what I think I understand from what you're saying is that only the tracks that have Sparky giving tips before them would be able to have anything greater than that (like a track preview) added on, correct?

Link to comment
Share on other sites

Sorry I wasn't clear enough. First off, any cutscene in the game - Sparky-triggered or not - can be modified (which includes the dialogues with residents of Sandy Bay, the residents of Dino Island, etc.). However, most of the time, it's not possible to change who you have the conversation with nor to add cutscenes (I think so anyway). You could probably remove cutscenes to some extent by leaving them empty.

 

To answer your question, do you mean the little tips Sparky gives while everyone is waiting at the starting line? If so, it may be possible, but I haven't tried it. If I recall correctly, the racers all seem to be placed again after that short dialogue from Sparky, so you may well be able to :) I guess one of us will just have to try it out. And yes, it would only be the ones Sparky talks in, if there's no dialogue from anyone then you can't have a cutscene.

Link to comment
Share on other sites

Fluffy Cupcake

You could probably remove cutscenes to some extent by leaving them empty.

Or by removing the trigger (entries are OBMGcScriptTrigger) in the WRL, this does not remove the minifigure (OBMGcMiniFig) as the entries are seperate.

 

But what you said is actually what I did for my speechless Sparky mod. Both are just as a simple task to me.

Link to comment
Share on other sites

 

You could probably remove cutscenes to some extent by leaving them empty.

Or by removing the trigger (entries are OBMGcScriptTrigger) in the WRL, this does not remove the minifigure (OBMGcMiniFig) as the entries are seperate.

 

But what you said is actually what I did for my speechless Sparky mod. Both are just as a simple task to me.

 

There's stuff like that in the WRL file? :o

Do you know if it's possible to add cutscenes, perhaps as trigger events, through the WRL file?

Link to comment
Share on other sites

Fluffy Cupcake
There's stuff like that in the WRL file? :o

Well, yeah. Just take a look at >the list.

 

Do you know if it's possible to add cutscenes, perhaps as trigger events, through the WRL file?

I haven't tried so I don't know, but what I can say is that in the section there is a part that refers to the directory+file the script uses, so it may very well be possible to add new ones.

I am clueless on how the ones at the start of races work at the moment, but I can say they still use OBMGcScriptTrigger.

  • Like 2
Link to comment
Share on other sites

 

If I recall correctly, the racers all seem to be placed again after that short dialogue from Sparky

 

This is what gave me the idea that it would be possible in the first place, so I was banking on it being related to cutscenes. If only the races that have dialogue before them are able to be modified, my idea is kind of shot, but it sounds like we haven't come to that conclusion yet.

Link to comment
Share on other sites

 

There's stuff like that in the WRL file? :o

Well, yeah. Just take a look at >the list.

Do you know if it's possible to add cutscenes, perhaps as trigger events, through the WRL file?

I haven't tried so I don't know, but what I can say is that in the section there is a part that refers to the directory+file the script uses, so it may very well be possible to add new ones.

I am clueless on how the ones at the start of races work at the moment, but I can say they still use OBMGcScriptTrigger.

Ah, I almost forgot about that list. I have little experience with hex editing though, that all looks like jargon to me :P

 

If you can change the directory used then I don't see why new cutscenes can be added, as you said. I'll take a look!

 

 

If I recall correctly, the racers all seem to be placed again after that short dialogue from Sparky

This is what gave me the idea that it would be possible in the first place, so I was banking on it being related to cutscenes. If only the races that have dialogue before them are able to be modified, my idea is kind of shot, but it sounds like we haven't come to that conclusion yet.

I'll try this out too, in fact I'm going to boot up my laptop to test it out now.

Link to comment
Share on other sites

Fluffy Cupcake

I uncommented a cinematic scene that was commented out in one of track intros, and indeed it worked, although the camera was set in some odd location.

Link to comment
Share on other sites

I uncommented a cinematic scene that was commented out in one of track intros, and indeed it worked, although the camera was set in some odd location.

Adding on to this, I've had a go at making a custom cutscene for the intro. It's nothing fancy though, it just shows that it can be done :)

 

To test it out, copy the script below into any of the four 'TRACK#INTRO' files, which are located in all the world's script folders other than Sandy Bay's.

$global
        $length 15 
        $name standard_intro
        # Note the use of DRIVE_CENTRE here rather than CB_IDLE, so that the player is seated in his car rather than standing through it
        $setactor PLAYER DRIVE_CENTRE

        $nocancel
$end

$time 0
        $cinematic
                $shot OBJECT_STATIC PLAYER
                $startrelative 0.0 20.0 30.0
                $endrelative   0.0 1.0 30.0
                $targetoffset  0.0 1.2 0.0
        $end

$time 5
        $cinematic
                $shot OBJECT_STATIC PLAYER
                $startrelative -2.0 0.5 -5.0
                $endrelative   -2.0 0.5 5.0
                $targetoffset  0.0 0.5 0.0
        $end
$time 10
        $cinematic
                $shot OBJECT_STATIC PLAYER
                $startrelative 0.0 1.5 5.0
                $endrelative   0.0 1.5 1.0
                $targetoffset  0.0 1.0 0.0
        $end

 
Unfortunately, characters such as Sparky cannot be used in these cutscenes as they don't actually appear in them. But if you're hoping to do a track preview then you shouldn't need that anyway.
  • Like 2
Link to comment
Share on other sites

That's a really good idea! I can't wait to see a working mod for epic track previews.

You don't have to, you could make one! :) It really isn't that difficult.

Link to comment
Share on other sites

  • 4 months later...
Rocket Racer

This is really amazing!

I just finished a custom soundbyte, nearly identical to the one used in the clip you posted. I'm getting some crashes, but let's see if I can get it working. :)

Link to comment
Share on other sites

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.