Hair Meshing Reference Sheet
Jan. 6th, 2011 08:45 pmThis isn't a tutorial because it assumes you know a fair bit about meshing already and only covers highlights of things often not covered by tutorials. After going on a bunch of wild goose chases to track down obscure bits of information and thinking gee, someone needs to put this all in one place, I decided I might as well be that someone.
It's not exactly exhaustive, but these are some of the more trying issues I've run into and then had to dig for solutions on.
Importing your Mesh
First and foremost you have to import a mesh to give your hair the right skeleton. Wrong skeleton = the hairstyle sitting well above or below the sim's actual scalp and possibly having weird crunched animations.
If you're making a static style (no animations i.e. bones assigned to head or neck only, no bouncing) you might be fine so long as you import a mesh of the right age1. However, there's some fiddly weirdness with bones and hair meshes, as you will see in this MTS thread.
So, for best results, import one of the following base game meshes, matching up age2:
Now import the mesh you want to alter/convert, and delete the first mesh.
What happens if you don't do this? Well, you might get lucky and everything works as expected. However, you're more likely to end up with parts of your mesh squishing themselves up into the sim's skull or bulging out at the back. You may as well do it this way and save yourself the headache.
Age/Gender Converting
... is trial and error.
Teens have similar skull sizes to adults, the actual around-the-head bits won't have to be resized much. The length, if there is any, may need some work (especially with length discrepencies in some body parts, like AF's giraffe neck).
Children have smaller heads and will need to have the mesh scaled in all directions -- but they also have shorter bodies proportionally and semi to very long styles might have to have parts of the length cut off and the UV map adjusted for the mesh to fit right without making the animations crunchy.
Toddlers have MUCH shorter bodies and different proportions, and you will have to push, pull, cut up, and tweak considerably to get the mesh to fit right.
No wonder Peggy, Rose, et al do such shoddy work with styles for the kids, huh?
Groups and Other People's Meshes
Sometimes trying to open up someone else's meshes will give you a Too many P1 sections for this implimentation error. This means the mesher used WAY too many groups. You'll have to export it in two halves and import those halves into Milkshape.
Some meshes will have lots of groups named the same thing (like three each of hairalpha5 and hairalpha7). What this means is they are using the same UV map, and quite possibly the same spot on it, but all the groups have different opacities in the comments so they don't cause weird transparency issues in game. This is how meshes where trying to alpha edit off the bangs also edits off big chunks of the body of the hair are grouped.
You can change the groupings -- like, change the group names of the bangs to hairalpha11 and hairalpha9 (that's the frontside and backside) so they're seperately editable (make sure to keep the opacities the same). This means it needs more textures and needing new recolor packages, so don't make a mesh you change this way replace the original.
This can go the other way around. Some old meshes have a zillion seperate groups, the numbers going up so high Milkshape chokes on trying to import them and producing a zillion texture files when you go to recolor them. These meshes can be re-made to be more efficient by simply renaming/recommenting the groups, possibly adjusting some UV mapping, and then linking to a new recolor with the appropriate names and numbers of groups.
Meshes that have a hair group and a hairalpha5 group are hopelessly screwed up -- they have the top and underside of each piece, and then all of the pieces grouped together, causing weird transparency issues (I'm looking at YOU, XMsims). I haven't yet figured out how to unstick two layers of polygons from one another so I can even begin to fix these.
Building Your Mesh Package
As far as I can tell, the same rules apply when making your mesh package as do when you're importing your mesh into Milkshape -- you need to extract a mesh of the same age as the one you're making. The bone issue might exist here also; better to be safe than sorry and extract the same mesh for your base as you did for importing into Milkshape.
I can't say for certain if you HAVE to do things in just that order, but I always get expected results from that method.
Linking
Always create one mesh package for each age. Keep them seperate until each mesh is absolutely perfect.
When making a dummy recolor to link your meshes to, it's easiest to use a recolor from a mesh with the same number and names of groups. The braidsup hair (two pigtail braids laying over the shoulders) is good for a lot of purposes; you can also use a recolor of a custom mesh if that mesh has the right name and numbers of groups.
There's also the long way around. It's a bit tedious, but it works.
When it comes time to link, click on the All Res label in the left pane. Now in the right pane sort by instance (the one on the far right). You should get a list starting with property sets, binary indices, and property sets. If not, click the instance button again. The instance numbers you want are single digit hex numbers, not the long long ones.
Choosing the correct 3DIR can be a bit of a headache. I go by noting the instance number of the correct property set and choosing the matching 3DIR. Click carefully when choosing a mesh; more than once I've grabbed the wrong one entirely by clicking too fast, so I've taken to choosing the mesh with one click, then clicking okay, rather than double-clicking on the mesh.
1 YA and Elders are equivalent to adults as far as hair meshes go; adult covers YA, A, and E. You'll link the YA and elder 3DIRs to the adult mesh.
2 As far as I can tell, sex doesn't matter. It definitely doesn't matter for children and toddlers, as girls and boys use the same bodies anyway.
It's not exactly exhaustive, but these are some of the more trying issues I've run into and then had to dig for solutions on.
Importing your Mesh
First and foremost you have to import a mesh to give your hair the right skeleton. Wrong skeleton = the hairstyle sitting well above or below the sim's actual scalp and possibly having weird crunched animations.
If you're making a static style (no animations i.e. bones assigned to head or neck only, no bouncing) you might be fine so long as you import a mesh of the right age1. However, there's some fiddly weirdness with bones and hair meshes, as you will see in this MTS thread.
So, for best results, import one of the following base game meshes, matching up age2:
afhairpgchoppy
amhairpgskater
tfhairbald
tmhairbald
cuhairbald
pfhairmob
Now import the mesh you want to alter/convert, and delete the first mesh.
What happens if you don't do this? Well, you might get lucky and everything works as expected. However, you're more likely to end up with parts of your mesh squishing themselves up into the sim's skull or bulging out at the back. You may as well do it this way and save yourself the headache.
Age/Gender Converting
... is trial and error.
Teens have similar skull sizes to adults, the actual around-the-head bits won't have to be resized much. The length, if there is any, may need some work (especially with length discrepencies in some body parts, like AF's giraffe neck).
Children have smaller heads and will need to have the mesh scaled in all directions -- but they also have shorter bodies proportionally and semi to very long styles might have to have parts of the length cut off and the UV map adjusted for the mesh to fit right without making the animations crunchy.
Toddlers have MUCH shorter bodies and different proportions, and you will have to push, pull, cut up, and tweak considerably to get the mesh to fit right.
No wonder Peggy, Rose, et al do such shoddy work with styles for the kids, huh?
Groups and Other People's Meshes
Sometimes trying to open up someone else's meshes will give you a Too many P1 sections for this implimentation error. This means the mesher used WAY too many groups. You'll have to export it in two halves and import those halves into Milkshape.
Some meshes will have lots of groups named the same thing (like three each of hairalpha5 and hairalpha7). What this means is they are using the same UV map, and quite possibly the same spot on it, but all the groups have different opacities in the comments so they don't cause weird transparency issues in game. This is how meshes where trying to alpha edit off the bangs also edits off big chunks of the body of the hair are grouped.
You can change the groupings -- like, change the group names of the bangs to hairalpha11 and hairalpha9 (that's the frontside and backside) so they're seperately editable (make sure to keep the opacities the same). This means it needs more textures and needing new recolor packages, so don't make a mesh you change this way replace the original.
This can go the other way around. Some old meshes have a zillion seperate groups, the numbers going up so high Milkshape chokes on trying to import them and producing a zillion texture files when you go to recolor them. These meshes can be re-made to be more efficient by simply renaming/recommenting the groups, possibly adjusting some UV mapping, and then linking to a new recolor with the appropriate names and numbers of groups.
Meshes that have a hair group and a hairalpha5 group are hopelessly screwed up -- they have the top and underside of each piece, and then all of the pieces grouped together, causing weird transparency issues (I'm looking at YOU, XMsims). I haven't yet figured out how to unstick two layers of polygons from one another so I can even begin to fix these.
Building Your Mesh Package
As far as I can tell, the same rules apply when making your mesh package as do when you're importing your mesh into Milkshape -- you need to extract a mesh of the same age as the one you're making. The bone issue might exist here also; better to be safe than sorry and extract the same mesh for your base as you did for importing into Milkshape.
1. In SimPE, create a new package and extract the mesh for your base (i.e. afhairpgchoppy)
2. Fix integrity, put in the name you want to call it, update all, and press okay
3. Save
4. Import your new GMDC
5. Save again
I can't say for certain if you HAVE to do things in just that order, but I always get expected results from that method.
Linking
Always create one mesh package for each age. Keep them seperate until each mesh is absolutely perfect.
When making a dummy recolor to link your meshes to, it's easiest to use a recolor from a mesh with the same number and names of groups. The braidsup hair (two pigtail braids laying over the shoulders) is good for a lot of purposes; you can also use a recolor of a custom mesh if that mesh has the right name and numbers of groups.
There's also the long way around. It's a bit tedious, but it works.
When it comes time to link, click on the All Res label in the left pane. Now in the right pane sort by instance (the one on the far right). You should get a list starting with property sets, binary indices, and property sets. If not, click the instance button again. The instance numbers you want are single digit hex numbers, not the long long ones.
Choosing the correct 3DIR can be a bit of a headache. I go by noting the instance number of the correct property set and choosing the matching 3DIR. Click carefully when choosing a mesh; more than once I've grabbed the wrong one entirely by clicking too fast, so I've taken to choosing the mesh with one click, then clicking okay, rather than double-clicking on the mesh.
1 YA and Elders are equivalent to adults as far as hair meshes go; adult covers YA, A, and E. You'll link the YA and elder 3DIRs to the adult mesh.
2 As far as I can tell, sex doesn't matter. It definitely doesn't matter for children and toddlers, as girls and boys use the same bodies anyway.