VERY BASIC HAIR MESH WEIGHT TRANSFER TIPS FOR TS4 HAIRS
Ok so this is very basic stuff, but I realise its helpful to have as the background for this other post of mine. I know this is basic, but if someone learns from me, then, that's better -
I reccomend highly downloading this extension by Vyxated.
It makes things easier and it's how I personally do it.
I have prepared a blend file with the first couple of steps completed - i.e, it ought to be ready for transfer.
[First weighting pass - I later will manually paint and refine, but this can get most of your hair fixed for you.]
Grab a sim-body. For short hairs, the head suffices, for longer, the head and the sim top- for ridiculously long hair, you need the head, top and bottom, or a full body.
This we will use for weight transfer. Usually, people weight transfer from a similar object or existing hair, but I prefer to use the sim body. To prepare for the weight transfer, we are going to remove certain vertex groups.
Here are the vertex groups that should be kept (all else must be removed) :
b__Head__
b__Neck__
b__L_Clavicle__
b__R_Clavicle__
b__Spine2__
b__Spine1__
b__Spine0__
b__CAS_L_Breast__
b__CAS_R_Breast__
b__R_OutBrow__
b__R_MidBrow__
b__R_InBrow__
b__L_MidBrow__
b__L_InBrow__
b__L_OutBrow__
If your hair has strands that cross the face, you may also keep the cheek bones b__L_Cheek__ b__R_Cheek__
If your hair goes below the waist, keep the b__Pelvis__ also!
It's not reccomended to keep any limb weights (arm or leg) because it's a lot more trouble than it's worth to account for all the possible positioning of your hair when it's weighted to a limb- even though the concept of 'long hair moves with arms/ shoulders majestically' sounds tempting, it's doomed to look rather awful in game.
Here's how the weights look when you're just using the EA weights:
Usually, you'll get a good transfer with this when you have a low-mid polygon mesh!
mesh clean up > merge by distance , then subdivide the mesh.
Depending on how many polygons your mesh has, subdivide the sim-mesh till it is similar.
Smooth the vertices. then, smooth the weights of the mesh - once or twice, then limit the total weights, and smooth and limit again.
Here's how that ends up looking :
Use this sort only when you have a high poly hair mesh.
You can use the ones I provided in the blend file, or you can make your own if you want.
Duplicate the reference mesh, and join one to your hair- this makes sure your mesh has the correct vertice groups that match the transfer. If your hair mesh already has vertex groups, you can delete them prior to joining the mesh to your hair.
You will separate the body from your hair-mesh later.
This now prepares the mesh to transfer. Your mesh will now only have the necessary vertice groups for a hairstyle.
Size up the transfer mesh to be slightly larger than the hair mesh.
1.12 - 1.30 scaling in all dimensions usually works to 'encase' most short- bob length hairs
Weight mesh in wireframe, sim-mesh (that is the one joined to your hair) is in solid mode - this is just for demonstration's sake. Depending on hair volume or other aspects, you might want to resize the weight mesh differently.
Then, transfering with Vyxated's extenion :
Vyxated has included a super useful clarification for what must be selected.
In this screenshot 'AT Top' is the selected ( in a darker orange) and 'AT Top.001' is the active.
While you have the two meshes (your hair and the joined sim-mesh in place of 'selected', while your weight reference is 'active) press the middle button here with 'weights' ONCE.
Your hair should now quite seamlessly fit with the EA weights.
Seperate the hair from the sim body mesh. You do not need this anymore!
Next, we test the weights. I reccomend exporting an animation with strong facial expressions using S4S and appending your hair mesh onto the rig which has the animation active.
I use the chased by death CAS trait animation in order to check jaw and forehead weights specifically, because the sim screams and raises their eyebrows dramatically. If this intense movement can be accounted for, then, most subtler in-game animations will be accounted for also, so long as the range of movement is similar to EA's, and not more exadgerrated.
Now, you'll see some crunchiness. This is when you smooth and limit your weights until there's a good balance between the mesh moving smoothly, and not being too weak/ patchy that the movement gets crunchy again. You will check every group in this manner.
(as you can see, now it does not crunch!)
If smoothing and limiting (every time you smooth, you must limit. never leave your weights unlimited!!!) does not correct an issue (more common with longer hairs), then, we manually paint the weights and ensure there is smooth movement to the best of our ability.
Because the sim rig is limited, and you always must limit your weights to 4, you'll inevitably find some areas will not co-operate with you. That's fine. It's best to pick your battles!
That's essentially it. Very basic, but yeah.
I know other people tend to transfer weights from similar EA hairs, but tbh, I find preparing the rig in this manner to give better results and easier to work with, especially when the hair in question isn't similar enough to the EA hairs you have access to!