horrorgun Posted June 25, 2014 Share Posted June 25, 2014 Hey guys, I'm thinking about making a mod that relies on a narrator telling a story in certain areas. I'm curious about adding a voice narration that plays while the player is making his way though a dungeon, or other areas, how do I go about doing this? I tried Googling how to make one but found nothing. In some dungeons in Skyrim you can hear a voice over come from nowhere when you enter certain areas, especially in the Ansilvund dungeon. Hopefully should be able to make a narration or a voice that doesn't come from a character in the creation kit. Any help would be much appreciated. Link to comment Share on other sites More sharing options...
shittakaburi Posted June 25, 2014 Share Posted June 25, 2014 I may not be understanding, but it seems what you are asking for is pretty simple. Create the dialogue, place a trigger box at the point you want the dialogue to play, script the trigger box to play that line of dialogue when the player enters the box. Link to comment Share on other sites More sharing options...
BlackRoseOfThorns Posted June 25, 2014 Share Posted June 25, 2014 It would be so cool if it was anything like Castlevania narration. It's hard to believe that one actor can fit both Shakespeare plays and leading role in Star Trek :laugh: Link to comment Share on other sites More sharing options...
Mattiewagg Posted June 25, 2014 Share Posted June 25, 2014 Take a look at what happens in Meridia's quest. Alternatively, you could create a trigger box, as shittakaburi said, and then have a talking activator speak. Then, in the dialogue, set the audio output override super high so you can hear it from anywhere. Link to comment Share on other sites More sharing options...
horrorgun Posted June 26, 2014 Author Share Posted June 26, 2014 Take a look at what happens in Meridia's quest. Alternatively, you could create a trigger box, as shittakaburi said, and then have a talking activator speak. Then, in the dialogue, set the audio output override super high so you can hear it from anywhere. I may not be understanding, but it seems what you are asking for is pretty simple. Create the dialogue, place a trigger box at the point you want the dialogue to play, script the trigger box to play that line of dialogue when the player enters the box.Hey guys thanks for helping, after reading what you said I looked up how to make triggers and found a tutorial that showed how to make objects appear. https://www.youtube.com/watch?v=UQvM520pyjo I followed it and retrofitted the trigger so it played sounds instead and got the narration to work, while also editing a script that I found from here. http://tesalliance.org/forums/index.php?/topic/4785-trigger-scripts/ Although I have encountered one problem. Every time I enter the trigger the sound file plays again over the current sound file, how do I make it so it only plays once and never again even when the player enters the trigger again? So for example the player will only hear the sound play the first time he enters the trigger and never again in the entire game, unless he reloads an old save. Here's the code I am using for the trigger below: Scriptname VoiceScript extends ObjectReference Sound Property FXVoiceNarrationTest Auto Event OnTriggerEnter (objectReference activateRef) if activateRef == Game.GetPlayer() FXVoiceNarrationTest.Play(Self) ;Depends on what you want to do endifendEvent Link to comment Share on other sites More sharing options...
Mattiewagg Posted June 26, 2014 Share Posted June 26, 2014 You would do: Scriptname voicescript extends objectreference Sound property fxvoicenarrationtest auto Int controlvar = 0 Event ontriggerenter(objectreference activateref) If activateref == game.getplayer() && controlvar == 0 FXVoiceNarrationTest.Play(self) ; depends on what you want to do Controlvar = 1 Endif Endevent Does that make sense? Link to comment Share on other sites More sharing options...
horrorgun Posted June 26, 2014 Author Share Posted June 26, 2014 You would do: Scriptname voicescript extends objectreference Sound property fxvoicenarrationtest autoInt controlvar = 0 Event ontriggerenter(objectreference activateref) If activateref == game.getplayer() && controlvar == 0 FXVoiceNarrationTest.Play(self); depends on what you want to doControlvar = 1 Endif Endevent Does that make sense?Thank you :) I just tried it in the dungeon and it works great, I'll upload a small clip of the test in action. Thank you for this, now I'll be able to start work on the mod now that you've shown me how to add narration.Most of the code makes sense but I am pretty new to all of this, If I'm correct in thinking, should just be able to copy and paste the code but change the names of what is being activated. Link to comment Share on other sites More sharing options...
Mattiewagg Posted June 26, 2014 Share Posted June 26, 2014 You would do: Scriptname voicescript extends objectreference Sound property fxvoicenarrationtest autoInt controlvar = 0 Event ontriggerenter(objectreference activateref) If activateref == game.getplayer() && controlvar == 0 FXVoiceNarrationTest.Play(self); depends on what you want to doControlvar = 1 Endif Endevent Does that make sense?Thank you :smile: I just tried it in the dungeon and it works great, I'll upload a small clip of the test in action. Thank you for this, now I'll be able to start work on the mod now that you've shown me how to add narration.Most of the code makes sense but I am pretty new to all of this, If I'm correct in thinking, should just be able to copy and paste the code but change the names of what is being activated. For similar situations? Yep. Explanation of Controlvars: I simply added a small variable (I called it Controlvar, but it can be whatever) that was originally 0. When you walked through the trigger, it checks to see if the actor walking through the trigger is the player and if controlvar is 0, which it should be originally. Once the code activates, the controlvar is set to 1, so the trigger no longer does anything (it no longer passes the check). Link to comment Share on other sites More sharing options...
horrorgun Posted June 26, 2014 Author Share Posted June 26, 2014 (edited) You would do: Scriptname voicescript extends objectreference Sound property fxvoicenarrationtest autoInt controlvar = 0 Event ontriggerenter(objectreference activateref) If activateref == game.getplayer() && controlvar == 0 FXVoiceNarrationTest.Play(self); depends on what you want to doControlvar = 1 Endif Endevent Does that make sense?Thank you :smile: I just tried it in the dungeon and it works great, I'll upload a small clip of the test in action. Thank you for this, now I'll be able to start work on the mod now that you've shown me how to add narration.Most of the code makes sense but I am pretty new to all of this, If I'm correct in thinking, should just be able to copy and paste the code but change the names of what is being activated. For similar situations? Yep. Explanation of Controlvars: I simply added a small variable (I called it Controlvar, but it can be whatever) that was originally 0. When you walked through the trigger, it checks to see if the actor walking through the trigger is the player and if controlvar is 0, which it should be originally. Once the code activates, the controlvar is set to 1, so the trigger no longer does anything (it no longer passes the check). Ahh I see, that makes sense now.https://www.youtube.com/watch?v=WiLlkqs7ZYE&feature=youtu.beHere's a video of the test I did, the voice is from Spec Ops the Line and the music is Incubus- 2nd Movement of the Odyssey from Halo 2. Edited June 26, 2014 by horrorgun Link to comment Share on other sites More sharing options...
Mattiewagg Posted June 26, 2014 Share Posted June 26, 2014 I'm glad it worked. Link to comment Share on other sites More sharing options...
Recommended Posts