Been working on my first module, and I came across an opening cutscene issue that wasn’t happening previously - but now is, and it’s driving me crazy (because I didn’t change anything).
Some info:
I set the Start Location inside the SpeakTrigger to fire the cutscene on module start
The cutscene setup is simple - speaker is an i-point (supposedly invisible - I set speaker name to “DM Narrator” so that shows up in the chat box instead of “Ipoint” )
There is a single static camera above the PC tjat’s used for only one node of opening dialogue (a short intro), nothing fancy. A journal entry also appears, but this is inconsequential.
This cutscene would previously fire just fine – the PC would spawn and remain still, the dialog displayed as intended with a cool opening shot of the palyer, and the journal entry would populate. But now there are two issues:
[1] the game auto-skips / auto-advances through the dialog on module start (as if being clicked through)
[2] the PC turns to face the invisible i-point when the script fires instead of remaining still.
FYI: the auto-advancing dialog issue doesn’t happen if I set the Start Location outside of the SpeakTrigger and then walk into it (I tested it), but the PC still turns to face the invisible speaker which I do not want.
Does anyone know what might be causing these problems or how to fix them?
(I toggled a ton of settings and did 2 hours of troubleshooting to no avail. I have so many good & creative ideas to flesh out in this mod, but keep getting discouraged with mystery issues like this.) Thanks!!
“jumping inside” a speak trigger is a source of problems, beceause normally the trigger launch when you cross the line, when you jump in it you don’t cross the line.
The good solution isn’t to use a speak trigger but to launch the conversation into the on enter area event.
When “inside” a trigger the good way to catch the object is to use the on heartbat field of the trigger.
Enter and exit event are for when you cross the line, and they are enought for 99% of the case.
In your case you don 't enter the trigger, but enter the area. that why the “launch” of the conversation should be triggered into the on enter area events and not from a trigger.
What Shallina says is true. Though, to be honest, I’ve had very little problems with the opening cutscenes of my modules. Sometimes I’ve used SpeakTriggers and in other cases I’ve used a GenericTrigger instead. In my latest (and as for the moment unreleased module) I’m using this script on the OnEnter of the GenericTrigger where I place the StartingLocation.
This script was made by travus and hasn’t failed a single time that I’ve tested:
/*
This will start a convo regardless of the distance between actors.
Place on the trigger's OnEnter event.
You may have to give the convo a few second delay if it is supposed fire when the mod loads.
Script by travus
*/
void main()
{
object oEnter = GetEnteringObject();
object oNPC = GetNearestObjectByTag("speakertag"); // speaker tag
string sConvo = "introconversation"; // dialog name if not using the speaker's assigned convo
if (!GetIsPC(oEnter)) return;
if(GetLocalInt(OBJECT_SELF,"Done")) return;
AssignCommand(oEnter, ClearAllActions());
AssignCommand(oNPC, ClearAllActions());
SetLocalInt(OBJECT_SELF,"Done",1);
DelayCommand(0.0f, AssignCommand(oNPC, ActionStartConversation(oEnter, sConvo, FALSE, FALSE, TRUE)));
}
This is the way things normally go. If the owner of the conversation is the iPoint then the PC will turn towards the iPoint. Maybe place another iPoint, where you want the PC to look, and make the PC turn towards that instead by using ga_face_target?
All I had to do was tweak the DelayCommand f value to 1.0 (after customizing speaker tag & convo name of course) and it works nicely. Much appreciated!