Surilindur Posted July 4, 2017 Share Posted July 4, 2017 (edited) Okay! Sorry for the delay, I have (again) managed to accumulate more things to do that I actually have the time to... well... do. Hehe. :blush: But this was a short check, actually, a lot shorter than I expected even! Literally a ten-minute or so one. The only aim was to check how to create a new race, then convert an NPC to that custom race and then fix missing voice+lipsync. I will write as much of it down as I think is reasonable, I have some time now to do it and maybe someone will find it useful. The test setup (for reference only, everyone can use whatever they want):Oblivion with OBSE 21 on Windows 10 and a ton of mods piled on it (I do not have a separate clean mod development installation... apparently some people have)TES Construction Set with Construction Set Extender (version 8.0) for race and NPC editing and tracking down voice+lipsync filesMod Organizer (version 1.3.11) for file organisation, to keep the project files truly under control, and in one single placeBSAopt (version Beta 2.0.0, the 16 December 2012 one) for BSA archive browsing and extraction - I also use it for creating BSA archives for my Oblivion and Skyrim modsElys Universal Silent Voice for making voiceless+lipsyncless dialogue actually visible, I have also toggled on dialogue subtitles to see that a line is actually delivered by an NPCThe first step: creating a new custom race. This is actually quite fast when duplicating existing one. One will need to load the Oblivion.esm when/if duplicating a vanilla race. For testing purposes, I duplicated the Imperial race to a new race record, assigned the editor ID "GreenBanana" to it and also assigned the name "Green Banana" to it. To duplicate and rename a racein the Construction Set, in the menubar at the top, open Character -> Race...right-click the race you want, select Duplicate, an entry like RaceCOPY0000 will appearslowly double-click the new race's editor ID (the one without spaces, first column), then enter a new editor ID for the race, in this case, I picked "GreenBanana", then apply changesselect the race, navigate to the Text Data tab on the right side of the race edit window, then type a new name for the race in the name box, then apply changesin the General Data tab, one may choose another race to use as the base for all voice - this is the base only and it is usually handy to select something smart for this to avoid having to move as much dialogue (like common taunts or greetings for all NPCs of a race)!the race should now have been created and configured, you may close the race windowThe second step: converting an NPC to that new race. This is even faster, I picked Angalmo, the High Elf at Chorrol Mages Guild. Changing the race of an NPC happens by editing the base record in the Construction Set:find the base record, the one located in the Object Window of the Construction Set, for Angalmo it is under Actors -> NPC -> HighElf (the current race editor ID) -> Male, the record has an editor ID of "Angalmo" and a form ID of 000234BBdouble-clicking the base record will open a popup windowin the window, select the new race (by editor ID) as the race for the actorclick OKSince I created a duplicate of the Imperial race and selected the Imperial race as the base voice provider and because Angalmo was not originally of the Imperial race, then this will be a handy test, since Angalmo will not be able to deliver his custom greetings with the Imperial voices! The custom greetings of Angalmo are only available under the High Elf race and voice set. The third step: save the plugin and activate it. Everyone knows how to do this. Then load the game and navigate to Chorrol Mages Guild. The fastest way is through console (and make sure NOT to do this from the Shivering Isles, otherwise you need to toggle the "player in SI" flag): coc ChorrolMagesGuildFind Angalmo. He should look like an Imperial now, if you duplicated the Imperial race at step one. If you duplicated another race, then Angalmo will look like that other race. Enter dialogue, he should deliver a silent greeting line without lipsync or anything, with the contents being: Excuse me. My name is Angalmo. Can I help you? This is fine. At this point, Angalmo uses the custon race, but has lost his voice as a result. This is where the topic started for those NPCs and your custom race! :smile: The fourth step: find information about the silent line the NPC just delivered. This time it happens through the Construction Set. The custom race plugin needs not to be loaded, the idea is to hunt for the vanilla dialogue. You will need to load Oblivion.esm for example.the toolbar below the menubar in the CS has a speech ballon-like icon in it, clicking the icon opens a dialogue filter window to filter all dialogue in the game (as in, added by the currently loaded mods)there is the Filter (odd name...) dropdown menu at the top left corner - use this to select Angalmo, the window will then filter dialogue so that only the lines Angalmo can deliver will be visiblethe Topics selection (selected by default) on the right should now have become considerably less crowded, and should have a topic named GREETING in it (in caps, yes) - this is the topic from which lines will be delivered when initiating dialogue with an NPC, the starting line of an NPC of sortsselect the GREETING topic, and within it (in the list further right), there should be a line with contents of the Info column that match the actual words by Angalmo, that is, "Excuse me. My name is Angalmo. Can I help you?" - this set of lines only has the first line, the lower list will list all individual lines in this setthe Quest column will reveal that the quest for that set of lines is NQDChorrolthe topic is called GREETINGexpanding one of the columns in the upper list will reveal that the form ID of the line set is 00024C7Athe line we are interested in is the first one (1), in the lower list, and is currently the only oneThis will make it easy to locate the actual files. We know the following:original NPC race: High Elforiginal NPC gender: M (stands for male)line set owner quest: NQDChorroltopic editor ID: GREETINGline set form ID (the upper list, expanding the collapsed column after Info): 00024C7Aline number within the line set (the lower list, when selecting the line set): 1All of those will be used when tracking down the original files to bring back voice and lipsync. The fifth step: acquiring the original voice+lipsync file pair for that line. The voice+lipsync files for the original game have been packed in two archives:Oblivion - Voices1.bsaOblivion - Voices2.bsaThe first one seems to contain races from Argonian to High Elf, and the second one the rest. I cannot remember what the second one contains, exactly, but the topic we are after seems to be in the first one. I use BSAopt to open and browse the archive:open BSAopt, at the top right there is a button that says Browse, clicking it will open a file selector, navigate to Oblivion\Data and select Oblivion - Voices1.bsaBSAopt will load the archive and display a tree view of the contents at the top white spacetick the "show recursive" box below the upper tree view, then select the root node indicated by a slash /the lower space will receive a list of all files in the archive, everything is selected by default, which we do not want - we are only after two fileshit the red button to unselect everythingbecause the original race was "High Elf" and gender "M", navigate, in the upper tree view, to "\sound\voice\oblivion.esm\high elf\m" and select the "m", the lower list will updateThis is where the line set form ID, quest and all that steps in. The format seems to be, for files QuestEditorID_TopicEditorID_LineSetFormID_LineNumberWithinLineSetwith extensions being .mp3 for the actual voice and .lip for lipsync files. Both voice and lipsync are needed. In our case, filling in the info, the files would be named NQDChorrol_GREETING_00024C7A_1.mp3 NQDChorrol_GREETING_00024C7A_1.lipbut BSAopt seems to like lowercase so it will be lowercase. But it does not matter, just find those two in the BSA archive, under "high elf\m", and tick them. The full paths being: \Sound\Voice\Oblivion.esm\High Elf\M\NQDChorrol_GREETING_00024C7A_1.mp3 \Sound\Voice\Oblivion.esm\High Elf\M\NQDChorrol_GREETING_00024C7A_1.lipWhen you only have those two ticked (as in, ticked = marked for extraction), you can click the "unpack" button and BSAopt will unpack those two files for you. By default, the target directory is a folder named "out" in the same place as your BSAopt executable. The extracted files will retain their original path, so that when the path originally was relative to Data folder Oblivion\Data\Sound\Voice\Oblivion.esm\High Elf\M\NQDChorrol_GREETING_00024C7A_1.mp3 Oblivion\Data\Sound\Voice\Oblivion.esm\High Elf\M\NQDChorrol_GREETING_00024C7A_1.lipbut without the Data, because they were in BSA, the resulting path will, by default, be <your_BSAopt_exe_folder>\out\Sound\Voice\Oblivion.esm\High Elf\M\NQDChorrol_GREETING_00024C7A_1.mp3 <your_BSAopt_exe_folder>\out\Sound\Voice\Oblivion.esm\High Elf\M\NQDChorrol_GREETING_00024C7A_1.lipand now you have the files! Of course anyone can use whatever tools they want, BSAopt is just handy for precisely extracting two files out of a giant archive. Just remember to first tick "show recursive", then unselect all, and then only select the ones you want to extract, or else BSAopt will have everything marked for extraction (which is the default behaviour) and will extract the entire BSA archive, which is a LOT of files! :wacko: But then again, you might need to find quite a lot of files so maybe you can extract both Oblivion voices archives completely, too, and then pick the files. The sixth step: adjusting the voice+lipsync file paths to accommodate your changes! This is actually universal, when trying to use existing vanilla dialogue for something new. The new path will follow the exact same format as the old one, except that the race name will be different this time. As in:(unchanged) default root voice file path: \Sound\Voice\(unchanged) plugin name from which the dialogue line set(s) (I think) come from: Oblivion.esmrace name, the new race this time (name, NOT EDITOR ID - the name!): Green Banana (my race name, yours is different)(unchanged) NPC gender (either M or F): M(unchanged) topic line set owner quest: NQDChorrol(unchanged) topic line set form ID: 00024C7A(unchanged) the line number of the line within the line set: 1So the final path would be (for both files) with the new race only, old everything else: \Sound\Voice\Oblivion.esm\Green Banana\M\NQDChorrol_GREETING_00024C7A_1.mp3 \Sound\Voice\Oblivion.esm\Green Banana\M\NQDChorrol_GREETING_00024C7A_1.lipAdding those to the mod, then making sure they are installed, and everything should be fine. Full path: Oblivion\Data\Sound\Voice\Oblivion.esm\Green Banana\M\NQDChorrol_GREETING_00024C7A_1.mp3 Oblivion\Data\Sound\Voice\Oblivion.esm\Green Banana\M\NQDChorrol_GREETING_00024C7A_1.lipIf you were to also change the gender, then you would need to change M to F, for example! Well, it would sound awkward in-game indeed, as the voice would not change, but let us nevermind that! :D The seventh step: checking! With the race mod active, and with the dialogue line(s) correctly in-place, having another chat with the test NPC, in this case, Angalmo, would result in the "Excuse me..." line being voiced and lipsynced again, with Angalmo having the new race. However there are some issues still:that method only works for having NPCs retain their full original voice and lipsync - if you convert multiple NPCs from different races to your custom race, then they will all speak with their original voices, and your race will not actually have a unique voice at all, but instead be a mix of all existing voicesbecause of that above, an NPC might actually even shout standard combat dialogue in the base voice supplier race's voice for your race (selected in the Race edit window) while switching to another voice when speaking unique dialogue - the same sudden change goes for rumours vs custom dialogueyou would need to manually hunt down, extract and move all custom, unique dialogue for all converted NPCs and even after that, the result would still be an inconsistent mix for each NPC as described aboveIf you have any questions or other, just ask. It is getting late, I usually make lots of mistakes, and this is a long post, so chances are there is something inconsistent or otherwise odd or off in there. Also everyone else feel free to point out any issues! :smile: I will see about uploading the test mod when I have finished my website and finally have an easy, reliable, ad-free and first of all my very own private file hosting service on an old laptop. Edit: The editor leaves huge spaces between lines in a list for me, for some reason. Odd. I tried to get rid of them but it does not seem to work... Edit 2: The huge spaces seem to finally be gone after a huge edit battle... :sweat: Edited July 4, 2017 by Contrathetix Link to comment Share on other sites More sharing options...
Recommended Posts