Tchos Posted August 8, 2014 Share Posted August 8, 2014 For audio, NWN2 uses BMUs renamed as wavs, as far as I can tell. I believe these files are the same kind that NWN1 uses. To get the NWN1 voice files, you need to extract them from the BIF files in the NWN1 data folder. The BIF Manager program in this pack will work. I found many wav files for characters with names including "valen", "tomi" and "seer", beginning with vs_nx2 (I opened the expansion key file). Those are your dialogue. I extracted one of the files and put it into one of my test module folders and played it in the toolset: vs_nx2valem_55, which has Valen saying "Might we speak?" So this confirms you don't need to convert them. Just extract them and drop them into your override folder (I hope you have a subfolder in there so it's not getting cluttered). What do you mean about the best way to add in a new NPC? If you mean where to put them, you can spawn them anywhere in the world that already exists. Creating a new area would be more complicated than I think you want to get at this point, though it can be done. I would recommend starting by just spawning him somewhere that already exists. This will work in a game in progress, as long as you put the script that makes it happen into a slot that will get fired anyway, or else you can just do it with the console. To answer your question about doors -- doors are special objects that can't be made usable or unusable through script. If they're not usable already, then they'll never be usable. However, you can spawn a new, usable door in front of it in the same doorframe, to serve the same purpose. You can also change the destination of an existing, usable door. But those things are for later, since area manipulation is a more advanced topic. Link to comment Share on other sites More sharing options...
Tchos Posted August 8, 2014 Share Posted August 8, 2014 A few notes on spawning Valen... Open up whatever area you think you'd like him to appear in. You're not going to save anything in there, but you need to get some information. The OC areas should be littered with waypoints, so find one with a unique tag. It's important that the tag is unique because if there's some other waypoint anywhere in any of the areas of that same module, the script might find that one first instead of the one you thought you were referring to, and you won't be able to find him and it'll look like it didn't work. You can get around that by specifying an actual location by vectors instead of getting the location of a waypoint, and I often do that myself, but that's more complicated. One of those plugins I recommended adds an option under its "Module" submenu to "Find instances". With it, you can search all areas to make sure the tag you picked is unique. Technically, the tag doesn't need to be unique, since there are ways of ruling out unwanted instances in the script, and I often do this, but again, it's more complicated. Once you have a unique waypoint tag (and it doesn't actually need to be a waypoint...it can be any object in a walkable location, including an NPC, a trigger, an area of effect, etc.), that's where you'll spawn Valen. Link to comment Share on other sites More sharing options...
Xxtayce Posted August 8, 2014 Author Share Posted August 8, 2014 That tool is amazing. A little annoying to have to extract audio files one at a time, but much easier than any other way I could think of. Just pulled out all Valen's audio :) Thank you for the unique tag trick - I didn't think of that one. That will work much better for my purposes, I think. Maybe modify the OnEnter of one of the existing scripts to force Valen to spawn at the unique tag, and then the override folder set would be the export of the character, that one script, the dialogue file, and a crapton of voice files? You're very kind to help me with this, by the way. I appreciate it. Link to comment Share on other sites More sharing options...
Tchos Posted August 8, 2014 Share Posted August 8, 2014 (edited) Hmm, it doesn't have to extract one at a time. You can select multiple sound files at once. Click on the first one, then scroll down to the last one, hold shift, and click on the last one. Or you can select none of them, and it'll extract the whole thing, and you can delete the extracted files that you don't need. Since almost no mods modify the OC, it's pretty safe to modify an On Client Enter script to spawn him. You'll be hard pressed to find another mod that modifies the same file, especially if you modify one from a lesser-used location. Also, it only needs to fire once, and won't matter if another mod overrides that file once he's spawned. It can be any area in the module, and it will spawn him in any area you want, including ones you're not currently in. Which reminds me, you need to add code to mark the spawning as done, and make it check that condition before running, so that he only spawns once. You can use the "MarkIsDone()" function and its corresponding check in ginc_vars. And yes, the files you mention are all you should need in the override folder. The exported character should be a UTC file. The toolset exports resources packed into ERF files, so you'll need to extract the UTC from the ERF and put it in the override. I use NWN2Packer. Also, you're welcome. :) Edited August 8, 2014 by Tchos Link to comment Share on other sites More sharing options...
Xxtayce Posted August 9, 2014 Author Share Posted August 9, 2014 I tried the ctrl+click, shift+click method - I may have been using a different tool than the one you were referring to. There were a bunch on that link. There I go again, making things harder on myself. :confused: Going through Valen's lines and writing down what goes with what .wav file so I can put together a convo in my head first. Holy crap, he's got some seriously cheesy stuff going on. I'd forgotten, or maybe it doesn't seem so bad when it slowly progresses over ~100 hours of playtime and character progression, but stuff like: "And it begins again. I swear to stand at your side, my love, and guard you to my last breath – and beyond." Yeah... I'll try to go for the less cheesy ones, lol. So, in looking at the other henchmen's convos, I'm wondering if I could copy over Casavir's convo, and just edit it from there since I want a lot of the same conditionals being met. I'm guessing the {Comments} are notes to the voice actor who hadn't yet recorded his lines, and the |Comments| are from the writer - and don't have an actual use? MarkIsDone() sounds like a new function that I didn't have before? I think I remember having to set an int for "IsDone" and set to true, and check in advance if that int was set to true before running a script. This sounds like less hassle :) Link to comment Share on other sites More sharing options...
Tchos Posted August 9, 2014 Share Posted August 9, 2014 The one I used and suggested was called BIF Manager. You can certainly make a copy of the conversation of one of the other companions and edit it as needed. Just check all of the Actions and Conditions and make sure they refer to Valen's tag instead of Casavir's. Both pipes || and curly braces {} mark comments that don't appear in the game. I use them often to make it easy to see at a glance what conditions a line checks, or what stage of the quest a player is supposed to be on. MarkIsDone() sets a local int on the object calling the function, just like you were doing manually, and has a few options you can use if you want to be more specific. It's purely for convenience. Link to comment Share on other sites More sharing options...
Tchos Posted August 9, 2014 Share Posted August 9, 2014 BTW, to copy a conversation, just right-click it in the conversations palette and choose "duplicate", then you can rename it to whatever you want. That's the best way. You could also copy the main nodes and paste them into a new conversation, but you might lose node links if you do that. Link to comment Share on other sites More sharing options...
Xxtayce Posted August 9, 2014 Author Share Posted August 9, 2014 (edited) There seem to be multiple conversations for each NPC (intro convo, convo as henchman, then other little convos that everyone can participate in). Is it not still possible to set conditionals at each root line so it's all done in one conversation instead? Oh - and a general preference question:If you were to add Valen into the story, where would you put him? I'd like him to be in early enough on that he's able to grow with you, but the music in the beginning parts just sound so happy and that doesn't fit. I'm thinking maybe when you enter the graveyard after Fort Locke, he spawns inside the crypt. I eventually (if this goes well) also want to make Tomi in the Docks on the way to the Back Alley, and turn Deekin the Merchant into Deekin the Companion. Edited August 9, 2014 by Xxtayce Link to comment Share on other sites More sharing options...
Tchos Posted August 9, 2014 Share Posted August 9, 2014 Certainly it can all be done in a single conversation. People have different preferences on that, with some preferring to keep certain things completely separate, and others preferring to do it all with conditions within the conversation. I only use a single conversation for my companions, but their conversations aren't as complex as what's in the official campaigns. The crypt could work, or the castle(?) around Highcliff, I think? I don't remember exactly where it was or why we're sent there, but it could be a good spot. I'd definitely prefer him showing up before going to Neverwinter. Link to comment Share on other sites More sharing options...
Xxtayce Posted August 9, 2014 Author Share Posted August 9, 2014 My writing capability is severely limited by the small number of actual spoken lines Valen has. I think I have about 45 seconds worth of usable audio for an intro. :dry: Link to comment Share on other sites More sharing options...
Recommended Posts