Search the Community
Showing results for tags 'soundsets'.
Found 2 results
OK, long faculty meeting, and no access to stuff I am supposed to be working on, or even modding stuff - and most of all, a long pointless argument raging over "No Child Left Behind"'s merits, which really is moot - it isn't as if we can choose to ignore it. So, I already have a bunch of stuff done on soundsets - I'll scribble while Rome burns. The soundset. Straightforward stuff like .cre files, etc., really are not a concern until later. I am working from a "character first" perspective, and BG2 graphics are not Oblivion stuff; we can build that stuff later. So, sounds - recorded lines or not? Argument for: everyone has 'em. They help some people characterize the NPC and fill them out in their brain. Argument against, thousands - including tons of time, energy, and work balancing the sounds, only to have a bunch of folks who had supplied the voice and accent in their heads think "hey - that is not how Aran should sound". In fact, I often rip the soundfiles out of mods before playing them - my inner voice is much more comfortable to me than an outsider's interpretation. I like bg1npc's idea of "soundtracks" for speakers, called by script, but that is a whole other topic, and weeks away. But you know what, it doesn't matter at this point - until Aran is 90% or more done, taking the time to record (or hire someone to record) a soundset and/or lines is silly. Things may will change, and perhaps the entire characterization will shift slightly. So the sound recordings themselves, next to last to do. Let's move on to the text strings, and set them up to handle sound when it is eventually recorded and added. Note: This looks like just a quick couple of days to whip through this, but actually took place over several weeks, and the final draft was vetted by berelinde and Amaurea to make sure I wrote something that fit my idea. Unfortunately, we all write from within our own heads. While I'm not writing Aran for anyone but my personal enjoyment, it is nice to check to see if the communication moves off the page to other folks, or if it ends up being stilted/odd. Some soundreferences with tobbacco use got nixed because the ladies (quite rightly) pointed out that it was a potential turn-off for some readers, while adding nothing really to his character - so I blatantly stole berelinde's rephrase of it into "twig chewing". This stuff is tougher than it looks, because we all want the character to have what comes up in our head during fanfic-like daydreams; unfortunately, if you create a line like La Traviata for dying, it will stink as a soundset: This might be fun to envision in my head, but really, soundset entries are supposed to be very quick, or the lines will trip over others. Wicked short, to the point - that's why they are some of the toughest writing out here. "Characterize your NPC's reactions in less than four words.... GO!" But, we have caught a break with it, because we have a format to work in, and we know the parameters. Short, simple, to the point, in character. And, WeiDU has taken the work out of all the coding completely. A standard setup in the .tp2 will install the right strings in the right places - and the i.e. engine has a simple format for strings that deal with sound. STTREF/OFFSET ~[comment] text string~ [sOUNDREF] Here, STTREF/OFFSET is where in the .cre file the string reference in dialog.tlk is stored. This is why soundsets can get scrambled, and other lines, too - the .cre file carries only a reference number, or index lookup to dialog.tlk. Technically, you could go all fancy hard-core Old Skool here and tell WeiDu the specific offset for the .cre sound, but why when WeiDU does the work for you: SAY MORALE The next, the actual string created in dialog.tlk, ~[comment] text string~ well, that's pretty straightforward - the [comment] will not be seen by the player. In fact, it is where I picked up the idea to try to use this to help translators - when Smoketest, devSin, and Grim Squeaker patiently led me through how sound works in i.e. games, it was there for the BioWare developers. Every soundset in BG carries the referenced sound file in the test string in this format. It is especially useful for usually "no word" things, like "Hurt" and Dying" - the blank sound reference can be labled and searched for by the comment, like this: SAY DAMAGE ~[c-aran13]~ [c-aran13] sounds like "Ah!", but carries no text - and would get skipped in traification if it were traified as this: SAY DAMAGE ~~ [c-aran13] So, last part - [sOUNDREF]. Here, the .wav (or wavc, acm) that we will eventually place in the game override file is referenced. It can only be 8 characters long, and looking at other folk's mods there are lots of ways to label this stuff - BioWare had an odd numbering system that is consistent but does not match .cre ordering - so i am going to arbitrarily label these c-aran## and use the comment as the soundreference. The game won't care if there is no sound matching in the override - it will silently skip it. And then, if I get a soundset recorded and dropped into the override, it will be picked up when that particular string is called by the engine. Here is the blank template that can be applied for all BG2 engine games (not BG, etc - they have the same structure, but the .cre file has less of these enabled.) COPY_EXISTING ~myMod/myFolder/myCre.cre~ ~override/myCre.cre~ SAY NAME1 ~ << Full Name Of Creature >> ~ SAY NAME2 ~ << Short (tooltip hovering) Name Of Creature >> ~ SAY MORALE ~[sOUNDREF] << Morale Failure >> ~ [sOUNDREF] SAY HAPPY ~[sOUNDREF] << When Happy on .2da >> ~ [sOUNDREF] SAY UNHAPPY_ANNOYED ~[sOUNDREF] << When Annoyed on .2da >> ~ [sOUNDREF] SAY UNHAPPY_SERIOUS ~[sOUNDREF] << When Close to leaving on .2da >> ~ [sOUNDREF] SAY UNHAPPY_BREAKING_POINT ~[sOUNDREF] << When leaving on .2da >> ~ [sOUNDREF] SAY LEADER ~[sOUNDREF] << Moved to Leader >> ~ [sOUNDREF] SAY TIRED ~[sOUNDREF] << Tired >> ~ [sOUNDREF] SAY BORED ~[sOUNDREF] << Bored >> ~ [sOUNDREF] SAY BATTLE_CRY1 ~[sOUNDREF] << Attack Commanded >> ~ [sOUNDREF] SAY BATTLE_CRY2 ~[sOUNDREF] << Attack Commanded >> ~ [sOUNDREF] SAY BATTLE_CRY3 ~[sOUNDREF] << Attack Commanded >> ~ [sOUNDREF] SAY BATTLE_CRY4 ~[sOUNDREF] << Attack Commanded >> ~ [sOUNDREF] SAY DAMAGE ~[sOUNDREF] << Hit by other >> ~ [sOUNDREF] SAY DYING ~[sOUNDREF] << Toast >> ~ [sOUNDREF] SAY HURT ~[sOUNDREF] << Low HP >> ~ [sOUNDREF] SAY AREA_FOREST ~[sOUNDREF] << in area flagged with Forest bit >> ~ [sOUNDREF] SAY AREA_CITY ~[sOUNDREF] << in area flagged with City bit >> ~ [sOUNDREF] SAY AREA_DUNGEON ~[sOUNDREF] << in area flagged with Dungeon bit >> ~ [sOUNDREF] SAY AREA_DAY ~[sOUNDREF] << Daytime >> ~ [sOUNDREF] SAY AREA_NIGHT ~[sOUNDREF] << Nighttime >> ~ [sOUNDREF] SAY SELECT_COMMON1 ~[sOUNDREF] << Select the .cre >> ~ [sOUNDREF] SAY SELECT_COMMON2 ~[sOUNDREF] << Select the .cre >> ~ [sOUNDREF] SAY SELECT_COMMON3 ~[sOUNDREF] << Select the .cre >> ~ [sOUNDREF] SAY SELECT_COMMON4 ~[sOUNDREF] << Select the .cre >> ~ [sOUNDREF] SAY SELECT_COMMON5 ~[sOUNDREF] << Select the .cre >> ~ [sOUNDREF] SAY SELECT_COMMON6 ~[sOUNDREF] << Select the .cre >> ~ [sOUNDREF] SAY SELECT_ACTION1 ~[sOUNDREF] << Action >> ~ [sOUNDREF] SAY SELECT_ACTION2 ~[sOUNDREF] << Action >> ~ [sOUNDREF] SAY SELECT_ACTION3 ~[sOUNDREF] << Action >> ~ [sOUNDREF] SAY SELECT_ACTION4 ~[sOUNDREF] << Action >> ~ [sOUNDREF] SAY SELECT_ACTION5 ~[sOUNDREF] << Action >> ~ [sOUNDREF] SAY SELECT_ACTION6 ~[sOUNDREF] << Action >> ~ [sOUNDREF] SAY SELECT_ACTION7 ~[sOUNDREF] << Action >> ~ [sOUNDREF] SAY SELECT_RARE1 ~[sOUNDREF] << rare sound >> ~ [sOUNDREF] SAY SELECT_RARE2 ~[sOUNDREF] << rare sound >> ~ [sOUNDREF] SAY CRITICAL_HIT ~[sOUNDREF] << successful critical roll >> ~ [sOUNDREF] SAY CRITICAL_MISS ~[sOUNDREF] << dysmal critical roll >> ~ [sOUNDREF] SAY TARGET_IMMUNE ~[sOUNDREF] << Up the creek without a paddle >> ~ [sOUNDREF] SAY INVENTORY_FULL ~[sOUNDREF] << dropping items >> ~ [sOUNDREF] SAY SPELL_DISRUPTED ~[sOUNDREF] << hit wile casting >> ~ [sOUNDREF] SAY SET_A_TRAP ~[sOUNDREF] << successful trap set >> ~ [sOUNDREF] SAY HIDDEN_IN_SHADOWS ~[sOUNDREF] << successful attempt to hide >> ~ [sOUNDREF] SAY PICKED_POCKET ~[sOUNDREF] << successful pickpocket attempt >> ~ [sOUNDREF] SAY BIO ~[DUMMYREF] << character screen, no sound - text with blank sound reference >> ~ [bLANK] Well, here goes - in file aranw.tp2, right now empty, we toss in the set of references: COPY_EXISTING ~aranw/cre/c-aran.cre~ ~override/c-aran.cre~ SAY NAME1 ~Aran Whitehand~ SAY NAME2 ~Aran~ SAY MORALE ~[c-aran01] Helm's bones - RETREAT!~ [c-aran01] SAY HAPPY ~[c-aran02] Aye, 'tis a fair group. 'Tis better than a clear day on Trade Way.~ [c-aran02] SAY UNHAPPY_ANNOYED ~[c-aran03] By Tymorra's bright coin, you make some strange decisions. I don't rightly agree.~ [c-aran03] SAY UNHAPPY_SERIOUS ~[c-aran04] I gave up some serious opportunities to travel with you. Wasn't expectin' this kind of 'adventure'. Stop this, or I'll dissolve th' contract.~ [c-aran04] SAY UNHAPPY_BREAKING_POINT ~[c-aran05] I'll see you in the hands o' Kelemvor, but not one second before.~ [c-aran05] SAY LEADER ~[c-aran06] I'll lead, but 'tisn't my strong point.~ [c-aran06] SAY TIRED ~[c-aran07] Time to make camp. This gear is startin' to chafe.~ [c-aran07] SAY BORED ~[c-aran08] By Torm's Blood, are we beggin' to be ambushed? Standin' 'round with our swords up our...~ [c-aran08] SAY BATTLE_CRY1 ~[c-aran09] Archers to th' rear!~ [c-aran09] SAY BATTLE_CRY2 ~[c-aran10] Spellcasters die first!~ [c-aran10] SAY BATTLE_CRY3 ~[c-aran11] By Tymorra's Luck!~ [c-aran11] SAY BATTLE_CRY4 ~[c-aran12] By Sune's Bottom!~ [c-aran12] SAY DAMAGE ~[c-aran13]~ [c-aran13] //ah... SAY DYING ~[c-aran14]~ [c-aran14] //aarrgh... SAY HURT ~[c-aran15] Send the rest o' them to hell for me...~ [c-aran15] SAY AREA_FOREST ~[c-aran16] Need less trees, more road. Too many places for enemies to hide.~ [c-aran16] SAY AREA_CITY ~[c-aran17] Trade time! Some trade, then some drinkin', then some sleep... or more drinkin'.~ [c-aran17] SAY AREA_DUNGEON ~[c-aran18] I gave up comfortable inns an' guardin' simple caravans to poke around this dank musty place. I'm a bloody idiot.~ [c-aran18] SAY AREA_DAY ~[c-aran19] Lathander's fat arse is up at last. 'Bout time he shed some light around here.~ [c-aran19] SAY AREA_NIGHT ~[c-aran20] Bloody dark. Good for coverin' enemies an' ambushes. Someone light a torch, eh?~ [c-aran20] SAY SELECT_COMMON1 ~[c-aran21] Yep?~ [c-aran21] SAY SELECT_COMMON2 ~[c-aran22] What's to be done?~ [c-aran22] SAY SELECT_COMMON3 ~[c-aran23] Do I needs lead?~ [c-aran23] SAY SELECT_COMMON4 ~[c-aran24] Aye?~ [c-aran24] SAY SELECT_COMMON5 ~[c-aran25] Yes?~ [c-aran25] SAY SELECT_COMMON6 ~[c-aran26] I'm listenin'.~ [c-aran26] SAY SELECT_ACTION1 ~[c-aran27] Got it.~ [c-aran27] SAY SELECT_ACTION2 ~[c-aran28] Sune's sweet cheeks, I heard.~ [c-aran28] SAY SELECT_ACTION3 ~[c-aran29] On it.~ [c-aran29] SAY SELECT_ACTION4 ~[c-aran30] Understood~ [c-aran30] SAY SELECT_ACTION5 ~[c-aran31] Sune's Bosom, I'm movin', already!.~ [c-aran31] SAY SELECT_ACTION6 ~[c-aran32] Ilmater's Blood. I said I'd do it.~ [c-aran32] SAY SELECT_ACTION7 ~[c-aran33] Less talk, more action.~ [c-aran33] SAY SELECT_RARE1 ~[c-aran34] Watch where you point that thing.~ [c-aran34] SAY SELECT_RARE2 ~[c-aran35] Aye, I'm here.~ [c-aran35] SAY CRITICAL_HIT ~[c-aran36] Good.~ [c-aran36] SAY CRITICAL_MISS ~[c-aran37] Cyric's Black Heart!~ [c-aran37] SAY TARGET_IMMUNE ~[c-aran38] Bounced off. Damn.~ [c-aran38] SAY INVENTORY_FULL ~[c-aran39] I'm already carryin' more than my share.~ [c-aran39] SAY SPELL_DISRUPTED ~[c-aran40] Never did get that one right...~ [c-aran40] SAY SET_A_TRAP ~[c-aran41] Try that, you bugger.~ [c-aran41] SAY HIDDEN_IN_SHADOWS ~[c-aran42] Huntin'...~ [c-aran042] SAY PICKED_POCKET ~[c-aran043] Hey, look what I found.~ [c-aran43] SAY BIO ~[c-aranbio] When you ask him about his past, ARAN WHITEHAND grasps at a nearby twig to chew on. He explains that he grew up in a small independent family-run Coster plying the Trade Way and Coast Way from Waterdeep both north and south. Working as both Pen and Sword (scribe and fighting guard) made him attractive as an independent, since he could balance accounts, keep inventory, and still operate as a sellsword. A few campaigns with mercenary companies, a few battles, and lots of wandering about has brought him to Amn. He hastens to note that he is not the man to send in to negotiate anything, preferring to wield weapons rather than the spoken word - but if you want a trading contract written up, he's the right man for the job.~ [c-aran44] Later on, the sound references will be c-aran01.wav to c-aran43.wav, and weeks/months from now when we get there we can deal with how to set the darned thing up to install on Windows/OS X/Linux and play in-game. Ok, the faculty talk is back to reality-based stuff, like what we are doing with dress-code this year, and how the heck us male teacher-dudes are supposed to inform a 14 year old that her underwear is showing and not get arrested... and worse, how to not insult the mom that sent the girl to school in one of those new thigh-length baby-doll tops designed for use over a pair of shorts, sans shorts. I'd better pay attention again. I'll type this stuff up later, and post it up on an odd moment. Well, technically, if you are reading this, I already did.
I've crafted a mod to add the twelve additional soundset from IWD2 into IWD1, including the subtitles. Testing seems to work, with one important exception. The sound folders are created, the Charstr.2da updates with the new soundset names and strings, but the .wav files aren't copying to the new folders. Since each soundset has 40 files, I want to copy them all with a single .tp2 command line from the mod subdirectory to the game Sound directory. Each soundset installs separately, so the mod has twelve components. What I've found so far is that COPY and COPY_EXISTING_REGEXP aren't working as I've coded them, and to use a basic DOS command line I'd have to call an external batch file like Kulyok did with her IWDNPC mod (which is the template for my coding). My coding skills aren't very good, and the WeiDU readme is a little difficult to work through in this case for me. This was my last attempt at coding: COPY_EXISTING_REGEXP ~IWD2_Sounds_for_IWD1\Sounds\Female_Barbarian_1\2BFF.*.wav~ ~override~ MOVE (~override~ ~^[2BFF].*\.wav$~) ~Sounds\FEMALE_BARBARIAN_1~ Seems COPY_EXISTING_REGEXP looks at the CHITIN.KEY file, doesn't find it, and faults out. Anyone willing to get me going the the right direction?