Jump to content

Good bye neck seam: the socket method


Selene310187

Recommended Posts

In the last couple of months, I developed a way to remove the neck seam completely without worrying that certain color slider combinations in the character creation menu mess something up. It's an extended upper body neck which is wrapped around the original neck like a socket (hence the name :D). But in order to make it look seamless and smooth you need to manipulate the direction of the normals of the extended neck and a part of the area below, so that they have the same direction like the neck of the head.

 

 

 

I used Blender (version 2.49 and 2.79), Nifskope (version 1.0; yes, the old version is required), the normal manipulation tool Y.A.V.N.E. and a modified .obj export script. The next paragraph is about how I achieved this.

 

From the description of one of my uploaded images:

 

In my first attempt on the mesh seams I used the Seam Mender script (part of Room207's Blender Portable version), which works great with HGEC and RM, but the Vanilla body had some lighting issues around the mended neck seam. It's because of the normals of the Vanilla head and body showing in very different directions. I was able to change the direction of the body normals. If I want to export an head with custom normals I need to recreate .egm and .tri files of the head as the number of vertices is a different one after export; creating head .egm and .tri files from scratch is beyond my capabilities.
So my workaround was making a modified version of the upperbody which has an extended and little wider neck which aligns with the neck of the head (I dupilcated head neck and joined it with the upperbody neck). In the next step I copied the head neck normals to extended upperbody neck normals with Y.A.V.N.E.. I couldn't get the newer Nif Scripts work with Blender 2.79 properly. That's why I exported the modified upperbody mesh as .obj via a custom .obj export script that keeps the edited normals. Export settings (for Nifskope); upperbody and arms must be exported separately: Y Forward, Z Up, Selection Only, Write Normals, Include UVs, Write Materials, Objects as OBJ Objects, Keep Vertex Order, Scale: 10. I noticed that only a very old version of Nifskope can import the .obj into the template .nif (a copy of the vanilla upperbody mesh) properly (the true normals patch of Room207's Blender Portable version only works with imported .nif files as I saw it in my experiments; or maybe I did something wrong). I copied the NiBinaryExtraData and the NiTexturingProperty from the original upperbody and arms NiTriShapes to the imported NiTriShapes. Then I deleted the original NiTriShapes, gave the imported ones the same names as the original ones and removed all bogus nodes (Spells > Optimize > Remove Bogus Nodes). Now this edited .nif was ready to import into Blender 2.49.
I already imported the original upperbody and arms in Blender (they are needed for copying the weight painting). I joined and removed the double vertices. After I imported the modified upperbody mesh I made it parent to armature and copied the weight painting from joined upperbody/arms meshes to the imported meshes via Bone Weight Copy script (the imported mesh needs to be selected first, then the mesh which has the weight painting; in the bottom menu: Object > Scripts > Bone Weight Copy; Quality: 2 or more*; Update Selected > OK). Important: the imported meshes need to be parented to the armarture again, otherwise they won't display correctly in the game. So the meshes show up correctly after exporting but I forgot one thing: the upperbody with extended neck should have only one material and a texture which includes the upperbody and the duplicated head neck. So I went back to Blender 2.79, deleted the redundant material, adjusted the UVMap, made a matching upperbody texture and repeated all previous steps. I made the adjusted texture with a copy of the modified upperbody .blend which has an unaltered UV and the adjusted UV. I copied the head neck portion from the unaltered UV to the adjusted UV with Blender's clone brush (it's really a very useful tool :wink:).
* higher values = better quality but takes longer

 

 

Feel free to use this method with other body types like HGEC or Robert's Male Body (RM). At the moment, I plan to overhaul the Vanilla bodies only for now and I don't want to trash the work I did for HGEC/RM version of the Abyss Demon race using the older Seam Mender method (it works fine with these replacers but it still has the color slider issue I mentioned above).

 

Things I forgot to mention in my walkthrough:

  • The head and upper body need the same lighting and glossiness settings in their material properties; differences in these settings cause the neck seam as well. That's the setting I use: white for the Ambient and Diffuse Color, black for the Specular and Emissive Color, Glossiness: 10
  • When you are done with editing mend with Seam Mender the shoulder and wrist seams (options: "Vertex Normals" and "Match Selected Vertices Only") in both directions (e. g. upper body arms and then arms and upper body).

 

 

Update May 2021

I released the corresponding project files as a modders resource which you can download here.

Edited by Selene310187
Link to comment
Share on other sites

For better results, you can mend the weight painting at the seam with Seam Mender (part of Room207's Blender Portable version). But this screws up the normals. So first make a duplicate of the upper body mesh. Separate the extended upper body neck at the orignal seam. Select the seam vertices from both separated meshes in Edit Mode. Go to Object Mode select one separated mesh and then the other. Go to Object > Scripts > "Mesh: Mend Seams" and choose only "Vertex Bone Weights" and "Match Selected Vertices Only". Then repeat the weight paint seam mending the other way round. Recalculate the normals if necessary. Join the upperbody neck with the extended neck and remove the doubled Vertices. In Object Mode select the unaltered mesh and the altered duplicate. Go to Object > Scripts > Bone Weight Copy (Quality: 2 or more, "Update Selected"). Make the upperbody parent to the armature again and delete the duplicated upperbody.

 

If necessary, mend the wrist and shoulder seams with Seam Mender (options: "Vertex Normals" and "Match Selected Vertices Only") in both directions (e. g. upper body arms and then arms and upper body).

Edited by Selene310187
Link to comment
Share on other sites

I've just returned after a decade away, and I am oddly pleased to see that Neck Seam remains a relevant issue, lol. Those pictures are clean af, bravo sir. I'm currently sorting through my HGEC 4096 files, and still have the original Body Seam Reducer. It's good enough with the right skin color, but what you have done is perfect.

Link to comment
Share on other sites

The mod Seamless on the nexus does the same thing in a different manner. It modifies the body and head normals to match up. This method seems simpler to implement if Seamless doesn't support the body and head mods you want (its basically only for Robert's bodies, HGEC, full vanilla, and OCOv2). You'd have to modify the meshes in questions and idk if there's an automated way to do it

Link to comment
Share on other sites

Yes, the Seamless mods do the same thing in a different manner. The author used the Seam Mender created by Kromgar (aka gerra6) to match the normals of the head and body. But the Seam Mender method doesn't work well with the Vanilla body (shading issues), at least when I worked with this tool. That's why I developed the socket method. The advantage of my method is that the skin color of the head and body will match even with extreme skin color slider combinations and every lighting condition.

 

I use the Seam Mender for the wrist and shoulder seams though. It's part of the KG Tools which nowadays can be downloaded as a standalone version called Mesh Rigger and a Blender script version which can be found inside Room207's Blender Portable version.

 

 

@ ImmortalD7: Thank you :)

Link to comment
Share on other sites

I rediscoverd that RGMage2 came up with a very similar method for Fallout 3 some years ago. The idea of a socket (or sleeve) neck came to my mind recently but I forgot that I read it somewhere else. Yesterday, during my research, I stumbled across this thread again. The pictures in RGMage2's thread visualize the sleeve neck approach. I extended the body neck further so that there is no gap under the chin (but if you do this you need to copy the normal data from the head neck to the extended body neck again as the locations of the vertices have changend).

Edited by Selene310187
Link to comment
Share on other sites

The rigity of the extended upperbody neck caused clipping at the area under the ear using certain slider combinations in the character creation menu. My old workaround was resetting the face to default before starting to tinker with the sliders. I finally fixed this issue by manipulating the .egm of the head (it contains the face morph data), copying the shape data of the selected vertices from the Base shape (the vertices are selected on both sides of the head) to all other shapes with W key and going to Propagate To All Shapes in Blender. I needed to export every shape of the 80 shapes as .nif, import them into FaceMix and save the file as a new .egm.

Edited by Selene310187
Link to comment
Share on other sites

  • 1 month later...

I needed to change the method a bit as some NPCs had display issues with the chin and/or throat areas. I tried to fix it by edited the .egm at these areas. That wasn't a good idea. Editing the chin and throat vertices of a shape can mess up your final .egm in some way. I also reduced the area of the vertices which should not be deformed by the .egm because some NPCs had major chin distortions. The only workaround was editing the neck area of the head nif itself. Furthermore, I changed the weight paint of both the head and the upperbody so the modified head doesn't clip with the extended upperbody neck ("Growlfs Blender Animation Chain" helped me to locate the clipping areas).

 

The new selection of vertices of the edited .egm (next step: W key > Propagate to All Shapes)

 

extended upperbody neck - default normals

 

extended upperbody neck - edited normals

 

the modified head neck

 

 

Now I need to redo all outfits again as they contain a part of the body.

 

Yes, sometimes it's necessary to scrap things when they didn't work out the right way to make room for something new.

Edited by Selene310187
Link to comment
Share on other sites

  • 1 month later...
  • 7 months later...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...