Bluegunk Posted Monday at 11:51 AM Posted Monday at 11:51 AM This mod has a weird head. The author says he took a HPH and another head, converted to LE, used NIFmerge, converted it back to SE. In the process, it's lost its Head Morphs (!), and there's no NIF route to animating the lips. There's a lot of issues going on it its construction. I used AI to try and fix this and have been down pretty much every path I can think of - and I know nothing about NIF structures. I've moved blocks, branches, deleted / replaced / worked in Nifskope, Outfit Studio and the Creation Kit. Please. Is there a "NIFologist" out there who can take this head run a quick fix it so the lips move? I accept - it may not be possible. Thanks. Mod - https://www.nexusmods.com/skyrimspecialedition/mods/130426
traison Posted Monday at 02:08 PM Posted Monday at 02:08 PM Are the necessary tri files associated with this HDPT record: RaceMorph, Tri and Chargen Morph?
Bluegunk Posted Monday at 03:12 PM Author Posted Monday at 03:12 PM 58 minutes ago, traison said: Are the necessary tri files associated with this HDPT record: RaceMorph, Tri and Chargen Morph? Hi Traison IN the CK the HDPT has no Tri files. That's the problem. The author said he didn't know how to generate them. I suspect I won't be able to, either!
traison Posted Monday at 04:38 PM Posted Monday at 04:38 PM I imagine the only way these could be generated would be to write an obj parser and create a delta file between the modified and original HPH head. Apply this delta to all obj files in the HPH tris. Work is crazy right now because of oil crisis, war and the orange criminal, so I can't promise anything. obj should be a simple format though if you want to LLM it together in Python.
Bluegunk Posted Monday at 05:44 PM Author Posted Monday at 05:44 PM (edited) 1 hour ago, traison said: I imagine the only way these could be generated would be to write an obj parser and create a delta file between the modified and original HPH head. Apply this delta to all obj files in the HPH tris. Work is crazy right now because of oil crisis, war and the orange criminal, so I can't promise anything. obj should be a simple format though if you want to LLM it together in Python. Thank you. Sadly, I haven't a clue about this - but I'll go and read up about it! Thanks for the idea. And having read up about it and "talked it over" with AI, It's not worth spending the time on this. Thanks anyway! Edited Monday at 05:51 PM by Bluegunk
traison Posted Tuesday at 02:26 PM Posted Tuesday at 02:26 PM (edited) Go get Animation_Tools_N2 if you don't have it already. Extract the tri files that came with the original head mesh, presumably High_Poly_Head_v1.4_(SE). Locate the unmorphed head obj which should have been in one of the tri files. Most likely named femalehead.obj. Obtain the obj file from the modified HPH head. Remember that the vertex order and count has to be identical to the tri files. Blender and Outfit Studio may be able to do this, if all you have is the nif. Some versions of NifSkope can also save meshes as obj. I do not know which (if any) of these maintain the vertex order when going nif -> obj. If the game crashes, the vertex count was wrong. If your character's face turns into a hedgehog then the order was wrong. Go get Python3 if you don't have it already. Extract my scripts anywhere. Closer to the tri files for less typing. Open a terminal/powershell where the scripts are. Make the delta obj file with make_delta.py. Apply the delta obj file to the obj files extracted from the tri files with apply_delta.py. Rebuild the tri files with Animation_Tools_N2 by drag-n-dropping the included txt files onto it. $ py .\make_delta.py -h usage: make_delta.py [-h] source_file target_file output_file positional arguments: source_file target_file output_file options: -h, --help show this help message and exit $ py make_delta.py femalehead.obj modified_head.obj delta.obj $ py .\apply_delta.py -h usage: apply_delta.py [-h] delta_file files [files ...] positional arguments: delta_file files options: -h, --help show this help message and exit $ py apply_delta.py delta.obj .\my_tri_files\ Disclaimer: Not tested. The obj parser is not fully implemented, but it seems to handle the HPH obj files I used as samples. skyrim-obj-delta.7z Edited Tuesday at 02:28 PM by traison
Bluegunk Posted Tuesday at 05:36 PM Author Posted Tuesday at 05:36 PM Hi Traison. That's a lot to take in! But thank you, I'll give this a roll (probably tomorrow when I'm fresher). Animation Tools N2. Is it this one: https://www.nexusmods.com/skyrim/mods/30162?tab=description ?
traison Posted Tuesday at 06:06 PM Posted Tuesday at 06:06 PM 30 minutes ago, Bluegunk said: Animation Tools N2. Is it this one Yes. 1
Bluegunk Posted Wednesday at 11:04 AM Author Posted Wednesday at 11:04 AM OK I'm on this now! Extract the tri files that came with the original head mesh, presumably High_Poly_Head_v1.4_(SE). The mod has no head mesh tri file. SHould I use a copy of the HPH tri file instead?
traison Posted Wednesday at 12:07 PM Posted Wednesday at 12:07 PM (edited) 1 hour ago, Bluegunk said: The mod has no head mesh tri file. [03] High Poly Head.esm (9B702BC0) \ Head Part \ 03000A06 <00KLH_FemaleHeadNord> Race Morph = KL\High Poly Head\FemaleHeadRaces.tri Tri = KL\High Poly Head\FemaleHead.tri Chargen Morph = KL\High Poly Head\FemaleHeadCharGen.tri $ ls Directory: .\Skyrim Special Edition\MO\mods\High_Poly_Head_v1.4_(SE)\meshes\KL\High Poly Head Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 12/27/2019 4:31 PM 1284045 femalehead.tri -a---- 7/24/2020 4:02 PM 3055880 femaleheadchargen.tri -a---- 7/24/2020 4:02 PM 478752 femaleheadraces.tri Seems fine to me. Edit: PM me with your Discord name or something similar if you want faster comms. It's summer and work day here so I'm in and out of the "office" as it were. Gonna take all day if you have to wait an hour for a response. Edited Wednesday at 12:35 PM by traison
Bluegunk Posted Wednesday at 12:40 PM Author Posted Wednesday at 12:40 PM (edited) Thanks for the HPH info. I'll take it from here. I do have a Discord account but if I knew how it worked I'd use it more...lol. It's the same name, anyhow. There's no rush so leave the discussion here. Edited Wednesday at 01:29 PM by Bluegunk
Bluegunk Posted Wednesday at 02:49 PM Author Posted Wednesday at 02:49 PM Thanks for your help, Traison. I have an issue with this mod that it actually has two heads merged together in the facegen nif. I extracted the OBJ from each of them using Outfit Studio. Result: I've got 2 obj files: 0_HeadFemaleCustom_Saeong.obj, and VirtualHeadDUPLICATE005.obj. The contents of each are just a mass of vertices locations. Set ready in one folder I have: The two OBJ files above The original HPH femalehead.obj. your 3 scripts . On the PC I have Python 3.14 Now, I don't have any Python ability. It's a language I've never used, only been aware of it, and remain at proto-dufus level at using. So this is where I come undone. I see your scripts above. But applying them is where I neede a couple of pointers.
traison Posted Wednesday at 03:20 PM Posted Wednesday at 03:20 PM 20 minutes ago, Bluegunk said: The contents of each are just a mass of vertices locations. You could count the number of lines starting with "v " to get the vertex count. Make sure it matches the line count in femalehead.obj from HPH. If the count is different my python script will most likely throw some out-of-bounds error. I'm not checking of these errors since it wouldn't work in the game anyways. After making the delta obj files, you can do a sanity check by going through the lines starting with "v " looking at how many have been set to 0.0 0.0 0.0. Presumably this modified head will not have all its vertices changed, so a good portion of them should be all zero. If the values are large, similar looking to one of the original obj files, then it's quite likely the vertex order was not maintained in the nif -> obj export. 22 minutes ago, Bluegunk said: But applying them is where I neede a couple of pointers. Usage examples are in the console prints in my post above. Here's what they could look like given your file names: $ py make_delta.py femalehead.obj 0_HeadFemaleCustom_Saeong.obj delta1.obj $ py make_delta.py femalehead.obj VirtualHeadDUPLICATE005.obj delta2.obj Where $ is the prompt*; yours may be different. If py is no a recognized command (depends on install settings) then try python or python3. If that's also not a recognized command (i.e. Python3 is not in PATH) then you'll have to type out the absolute path to python3.exe instead of "py". * See 2nd paragraph of this.
Bluegunk Posted Wednesday at 03:48 PM Author Posted Wednesday at 03:48 PM 22 minutes ago, traison said: You could count the number of lines starting with "v " to get the vertex count. There's a difference of 9 lines with both Saeong files VS the HPH one, plus a break for comment inside each Saeong file. Which would suggest we'll get a head that looks like it was run over by a semi. And reversed over for good measure. Thanks for the examples - that's easy enough to apply, but if our vertices counts are well off it's probably not going to work?
traison Posted Wednesday at 03:53 PM Posted Wednesday at 03:53 PM That's fundamentally a different head then. I'm not aware of any other high-poly heads other than HPH. Not going to work until count and order match.
Bluegunk Posted Wednesday at 06:25 PM Author Posted Wednesday at 06:25 PM That's what I'm thinking. OK - many thanks for your time and help. Shame this one's a no go, but that's the way of things. I'm sorry to have wasted your time on things. But I did learn a lot about Tris and Obj. That's something to take away.
traison Posted Wednesday at 07:19 PM Posted Wednesday at 07:19 PM (edited) No hints from the author as to what this original HPH mesh was, or where it came from? Edit: Did HPH exist for Skyrim LE? Could go through all known versions to see if one existed at one point with 9 more vertices. I only have one version archived here. Edited Wednesday at 07:21 PM by traison
Bluegunk Posted Wednesday at 08:15 PM Author Posted Wednesday at 08:15 PM 51 minutes ago, traison said: Edit: Did HPH exist for Skyrim LE It did but the originating site is dead in the water. I've probably got the LE version somewhere on disk. But If I recall the author said he'd built in SSE, converted to LE, used NIFmerge which is LE only, then converted back to SE. It's too much of a nightmare to continue!
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now