Jump to content

Photo

Good bye neck seam: the socket method


  • Please log in to reply
4 replies to this topic

#1
Selene310187

Selene310187

    Allons-y

  • Members
  • PipPipPipPip
  • 1,145 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.

 

Attached File  ScreenShot23 - smaller.jpg   45.83KB   0 downloads Attached File  ScreenShot22 - smaller.jpg   50.74KB   0 downloads

 

 

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).

Edited by Selene310187, 28 June 2020 - 05:31 PM.


#2
Selene310187

Selene310187

    Allons-y

  • Members
  • PipPipPipPip
  • 1,145 posts

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, 28 June 2020 - 05:35 PM.


#3
ImmortalD7

ImmortalD7

    Stranger

  • Members
  • Pip
  • 5 posts

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.



#4
KatsAwful

KatsAwful

    Regular

  • Supporter
  • PipPip
  • 65 posts

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



#5
Selene310187

Selene310187

    Allons-y

  • Members
  • PipPipPipPip
  • 1,145 posts

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 :)






Page loaded in: 1.012 seconds