Help with a Cutscene

I’ve been playing about with Cutscenes using the Gestalt system and looking at a few modules from here which use the system and am gradually coming to grips with it.

However, one in particular defeats me. It is where the camera tracks backwards ( along a road?) from a point gradually revealing the area and ending up with the PC standing on the edge of the area. No change of height or direction needed but I can’t work out which, if any, of the Gestalt functions would provide this. Most of them seem to be predicated on starting at least close to the PC (naturally).

I came across this when using “The Pillaging of Waycrest” with our class of games design kids. One of the better pupils has asked how that could be done. It starts with such a camera movement at night and is very effective ( the whole module is a bundle of fun actually and very different). I do notice, looking at the scripts in that module, that they don’t seem to have used the Gestalt system. I’ve taken a video of the opening minute or so to give you an idea of what I mean. Any help would be appreciated.

EDIT. I had a thought that GestaltCameraFaceTarget might work by placing a WP at the far end of the area where I wanted it to start and using something like this


 #include "in_g_cutscene"

void main()
{
    object oPC = GetFirstPC();
    object oTarget = GetObjectByTag("target");

    GestaltCameraFaceTarget (oTarget
                            5.0, 50.0,
                            oPC,
                            0, 0);
}

However, that code doesn’t even compile before I started mucking with it.

Try replacing -

object oTarget = GetObjectByTag("target");

with -

object oTarget = GetWaypointByTag("target");

Also there is a typo in

    GestaltCameraFaceTarget (oTarget
                            5.0, 50.0,
                            oPC,
                            0, 0);

No comma after oTarget. It should be

    GestaltCameraFaceTarget (oTarget, 5.0, 50.0, oPC, 0, 0);

Re. the original how do I do this in a cutscene? Have you not loaded the module into the toolset and looked at their script?

TR

2 Likes

Thanks, Tarot. I did load the module into the toolset but as far as I can tell they didn’t use the Gestalt system. Will try your suggestions.

Just gone back to check the Bye Gestalt tutorial. There’s no comma in that either so I’m guessing nobody’s noticed it till now.

If you want to paste a link to the module and if I get time I’ll take a look.

TR

Thanks. Here it is.

No hurry. Btw, it’s a zip file, no haks

Btw, that script now compiles with your suggestions but still doesn’t seem to work - or maybe I’ve misunderstood what it should do.

OK, had a quick look in that module. The way that, that cutscene is achieved is complicated. It was probably written before gestalt’s routines were released and only uses the built-in cutscene scripts. The thing is, that cutscene is achieved with between 12 and 20 separate scripts (includes at least 1 heartbeat script). As far as I can see the way that it is done is almost above my pay-grade, never mind yours. It could be done simpler and maybe in just a scripts if you use gestalt’s routines and generic triggers. The way I would go about it would be to try what I am about to suggest and then keep tweaking it until satisfied. So here is what I think you would need to do -

OnEnter save the current camera position then turn screen black
turn off the PC’s footprint sounds
use cutscene ghost and cutscene invisible on the PC
put the camera in front of the PC (it should automatically be facing them anyway)
fade out from black
make the PC walk to a number of waypoints with triggers
when the PC reaches the last trigger, remove all the effects on them
exit cutscene mode

But remember, that is only the first draft. There are bound to be things in that which need altering or be added to.

But anyway, hope that helps.

TR

1 Like

Thanks, Tarot. That’s pretty detailed. Unfortunately I suspect even your easier version is above my pay grade ! The chances of me being able to then cascade to the guy in the class are minuscule, I’m afraid. I was hoping that they’d used a single zoom out from designated waypoint type Gestalt function.

Am I right in presuming that you’re doing most of this through scripts rather than the Gestalt system? If so, I’m definitely on your lawn rather than my decking . . .

  1. Yup, can do .
  2. Turn off the what ?
  3. Cutscene ghost and cutscene invisible aren’t gestalt functions, are they ? Never heard of them but I’m assuming they are functions from the built in cutscene system. Camera facing is fine.
  4. Fade from black? Yup.
  5. WPs okay.
  6. Triggers fine.

What I don’t think I understand is that the Waycrest cutscene camera is pointing into the distance and travelling backwards. Which bit of this gets the backward look If the camera is facing the PC?

Mind you, it’s looking like I’ll get some time to play about with this tomorrow given the non golfing weather! Thanks again.

I’ll assume that you can’t make the downloadable Lexicon work on a mac then.

void SetFootstepType(int nFootstepType, object oCreature = OBJECT_SELF);

using FOOTSTEP_TYPE_NONE

Quoting the Lexicon -

Changing a creature’s footstep type will change the sound that its feet make whenever the creature takes a step.

    // Create the effect to apply
    effect eGhost = EffectCutsceneGhost();

and

    //Make PC invisible
    effect eInv = EffectVisualEffect(VFX_DUR_CUTSCENE_INVISIBILITY);

are effects so you’ll need to look up how to use them.

In NwN the camera always faces the PC and maintains the same distance from the PC unless the player alters this distance. So if an invisible, silent PC moves towards the camera, the camera should back away through the scene.

TR

2 Likes

JD,

I took a quick look at your question and at the video. I think this is an example of something that is very difficult to accomplish with NWN, but can be done. I had to learn to do it to produce one of the cutscenes in my modules. You can see a video of that scene here.

The key to understanding this is NWN doesn’t actually seem to have (at least to my knowledge) a capability for free camera movement. NWN’s camera is always anchored on, and positioned relative to, the player. So when I wanted to create a panoramic camera sweep for my cutscene that was centered on a position different from where the player was, I found that it didn’t seem to be possible. The same thing seems to be going on in the video you posted, except that the camera trajectory was linear rather than circular.

The trick to this is that you always have to center the camera’s movement on the player, but the player doesn’t have to be visible in the scene. So I’m guessing that the player is right there in the scene in your video all along, probably walking along the road with the camera tracking along with them as they go, but you can’t see them because they have a cutscene invisibility effect on them. If you look at the Sanctum cutscene you’ll see the player there (he’s the one in the Wizard’s Hat with the stoneskin effect), but that’s actually a clone I created to take his place. The actual PC was moved to where I wanted the camera sweep to be centered, and turned cutscene invisible.

P.S. By the way, how did you get that video to embed into the post?

2 Likes

Thanks, guys. I’ll give it a go later today but having heard my failure isn’t ( just) down to my stupidity I may settle for an easier cutscene. I’ve got the tracking, crane and a couple of other Gestalt ones working and they’re fairly easy once you get the hang of them - just fiddling with numbers then.

Tarot, I just can’t get that Lexicon to work on my Mac as you guessed. Never deals well with html docs and links. Thanks for the suggestions and help though.

A tip from Tarot, actually. Its a Dropbox link and if you copy the link on DB to share it you just change the final character,which should be a zero, to 1.

1 Like