basvanbeu Posted March 30, 2012 Share Posted March 30, 2012 HiIm working on a mod that will enable the player to chose whatever vanilla race he wants and use the headshape of any of these he wants without compromising the NPCs in the gameThe mod will consist of a .esm and a esp file.The .esm will have a custom headpart that points to another directory containing the nif and tri files.The .esp will enable the races with this custom headparts.After the character is created and saved the .esp file can be disabled to avoid any conflicts with other modsSince the .esm contains the headpart the character will keep his headshape/morph even after the .esp is disabled. The problem is of course that all races headparts points to exact the same files. Either there is someway to adjust the racial settings in how the game engine read these tri filesor maybe it is possible to edit the Headraces.tri so that the shape becomes the same for all races So my question is how the game engine reads and applies these files I appreciate any help or info :) Link to comment Share on other sites More sharing options...
GrindedStone Posted March 30, 2012 Share Posted March 30, 2012 FACEGEN - This is basicly a string of 160 characters or so of hex like data that applies to a base mesh (the head) FACEGEN itself is a 3rd party software developed to be able to create endless random faces, though the software also works somewhat like a 3D scanner of the real world face. It can spit out a string that will make a mesh look like a real world person if you have 3 pictures of the person. It's 3rd party and built into the game so you only see a partial version of it. What this does is set a basic string of the features the race has inside the actual race entry. The NPC has it's own string of FACEGEN data which makes them look unique. The race data changes the base mesh to a point. The NPC data changes it from that base point that was set in race. You need both of the types of data to get the end result. Each race FACEGEN data is very different, and there is no way to combine them, thus making your goal impossible. You wouldn't ever change the vanilla .tri this basicly sets up how the face is animated on the base mesh. You would use the .tri to create another .tri for something like a cloth facemask that would move when the NPC talked. Though you can use it for anything covering the face. You don't generate a new tri most of the time instead the .tri is used in order to create a morph for headgear or hair so it will fit the small or large head. You could maybe make 6-7 duplicates of the nord race for example. Then set those races to use the FACEGEN data from the other races. You would also need to duplicate the FACEGEN presets for these races an set them to use the new race. Then you would need to change the actual assets being used in the race entry. This might not even be possible without a fully develped version of TES edit. In the past the CS was limited so often a heavy text editor was used. Link to comment Share on other sites More sharing options...
basvanbeu Posted March 31, 2012 Author Share Posted March 31, 2012 Thanks for answerI dont intend to combine them though.My idea was born from a problem I encountered with my mod Race Morpher.I had enabled all skincolours, hairs, eyes etc for all races and added all presets to all races.The racial headmorph wasnt possible to the same so I made .esp instead. 1 vanilla and 1 for each race headmorph When you have created your character you can actually disable the .esp and keep the appearance except for the headmorph.What I try to figure out is how to keep the headmorph. Link to comment Share on other sites More sharing options...
GrindedStone Posted March 31, 2012 Share Posted March 31, 2012 Base mesh + Race FACEGEN +Preset FACEGEN +Player adjusted FACEGEN = Save game character I don't get what it is you are trying to do. All the vanilla races are already there. A player can at any time type showracemenu an pick anyone they want which is also threaded deeply into the gameworld. Further as a modder if you wanted a new race it's only a matter of creating a new race. It's that simple. Link to comment Share on other sites More sharing options...
basvanbeu Posted March 31, 2012 Author Share Posted March 31, 2012 (edited) "I don't get what it is you are trying to do. All the vanilla races are already there. A player can at any time type showracemenu an pick anyone they want which is also threaded deeply into the gameworld. Further as a modder if you wanted a new race it's only a matter of creating a new race. It's that simple." Ok I shall try to explainCreating new races are simple. Already done a mod for that. Dark Half Elves. However these races miss the race based dialogues in the game.So I made a new mod Race Morpher as described above. Save your game and disable that mod and you will still keep your appearance. Well except for the head shapes that is. They become vanilla.I can separate the players head shape from the NPCs by creating an .esm file that contains a formlist with the other races in it and a custom made head part that points to those files in another directory. After that create an .esp that enables all races with that custom head part.I have tested it with RANs Chargen files and it works.Only thing I actually need to do is to get different HeadRaces.tri for the different racial head shapes Bear with me now please since what I write below is very conceptual and abstractI assume it looks little bit like a Database where you have sheets, primary keys and values etcEx:Game Engine has a sheet where the Race id is the primary key and Morph is a valueRaceId------------- MorphNordRace------------ xDarkElf-------------- yWoodElf------------- zetc.. HeadRaces.tri has another sheet where Morph is the Primary Key and String is valueMorph--------------- Stringx--------------- stringxxxxxy--------------- stringyyyyyz--------------- stringzzzzzetc....You could work in the Game Engine and set it like this:RaceId---------- MorphNordRace---------- yDarkElf------------ yWoodElf----------- yetc..Result would be that all races and up with DarkElf headshapes. Save .esp and name it DarkElfMorphRinse and repeat with the other morphs.I don't think it is possible though since I guess it is hardcoded in the engine. And actually it would also effect all NPCs However if I edited the HeadRaces.tri and set it like this:Morph-------------------- Stringx-------------------- stringyyyyyy-------------------- stringyyyyyz-------------------- stringyyyyyetc....That would give the same result. Save the file and name it and repeat. This wouldn't effect the npc since the custom headpart is pointing to this file in another directory. I hope you understand what I am after :) Edited March 31, 2012 by basvanbeu Link to comment Share on other sites More sharing options...
GrindedStone Posted March 31, 2012 Share Posted March 31, 2012 yeah I'll try to read it again later. I'm just focused on the .Tri part right now. You could take a base or default .tri which ever one you think is the generic or default race. Then take those assets, I take the head mesh, .egm an .tri then put that in a folder named after the race, I put that inside a folder named HEADWORKS that is located in my documents. This way It's always easy for me to navigate the different races. I'm pretty sure that the conformulator looks for files in my documents so it's also an easy way to run that. You would need to drop the race you were adapting in there too in another file. You would open the mesh for the race you are adapting then export it's shape as an .obj (object) The conformulator is only going to use the original .Tri an the export object from the base mesh. It's basicly open conformulator, point it to the original .Tri, point it to the object. Nearest face an Full .Tri generation would be the only options. Then generate an hopefully your computer won't catch on fire from the calculations. It spits out a .egm morph file an full face .Tri The tricky part is these would need to match the name of the original mesh, not the adapted one. At least this is how we did it before skyrim. I would look for a TES 5 version of conformulator. Bethesda was never like "oh hay you crazy players that gave us all this money, you know .egm an .tri works like this, har har har let's go get coffee we like you, please give us mooney" It's a risk an you basicly betting that the process hasn't changed much. For example the human lizzard adaptation would then animate the lizzard head as if it were a mask covering the human head (but there wouldn't be anything under the mask) The .egm would be kind of useless, but who knows this whole thing is an experiment. My brain isn't working well enough to say anything else. Soorah, I can say though if it were me doing this I would have thought, hmmm that's crazy, no freaking way that will ever work without killing me, I should stick to what is easy in order to keep living. Link to comment Share on other sites More sharing options...
basvanbeu Posted April 1, 2012 Author Share Posted April 1, 2012 Ah thanks for the helpAnyway Beast races was not a part of my plan though :)I will try it out Link to comment Share on other sites More sharing options...
GrindedStone Posted April 1, 2012 Share Posted April 1, 2012 You were pretty deep in it already, but maybe now it's time to consider the alternative. Which would be learning how to add conditions to dialog. Greeting is a topic that is vast so it would be hard to find the race checks for greetings, but adding the conditions would be easy. There are over 300 quests in Skyrim so no doubt race gets called upon in both quest an scripts. Over time though you could play test these issues out of the mod. Much more easy than what it is you are trying to do. Link to comment Share on other sites More sharing options...
basvanbeu Posted April 1, 2012 Author Share Posted April 1, 2012 I agree. Im pondering it actually and came up with a solution. When you in CK right click an Race objekt then click UseInfo you get a list all objekts that use that race. You will find a Type called Info. Open those and you find the topic dialogues whith functions as GetIsRace etcIt would be easy to add functions and your Custom races. Its gonna be tedious work that way but surely doable especially since you dont need to go through all topics. My idea is to add the function GetItemCount to the Condition instead of another GetIsRace.That way I can by script at start of game give the player a choice on wich identity he wants and then add the correct created item.This way it saves a lot of work and make possible to add more races without the need of editing the topics whole the timeTried it out for the first Hadvar Dialogue using a duplicate of a book that i renamed to Nord Passport. Hasnt worked yet since it doesnt add the item to my inventory. I tried to add the item to my inventory by using console command. Vanilla items gets added but mod created items doesn't. I have tested to add items from other mods aswell but with the same result. Link to comment Share on other sites More sharing options...
GrindedStone Posted April 1, 2012 Share Posted April 1, 2012 You might be better of just replacing the vanilla races. You could do one set that looks one way an a new set that looks another. Then players could switch or use whatever they liked. All the armor, dialog, an quest stuff you could then ignore. Over the last 4 years the big thing that became important was presentation. I swear you could have the worst mod on the planet but a good presentation an everyone would love it. With the replacer packs you could have a ton of fun with the presentation/package instead of this complex web of developer grade threading. Link to comment Share on other sites More sharing options...
Recommended Posts