It's tutorial time again!
This time we'll be adding morphs to clothing using the good old manual method aka doing them by hand. If you'd prefer having the process automated there's tutorial for that here (and related files here). I actually like taking my time tweaking morphs so I like doing morphs by hand.
For this tutorial you need the following things:
- Simpe
- Milkshape
- WesHowe's UniMesh plugins for MilkShape
- WesHowe's Unimesh vertex/normal data merge plugins (if you want to work on bottom/top meshes that have skin showing, these aren't necessary for fullbody meshes since we don't have anything to match unless your neck has gotten messed up somewhere between. IMO these are good plugins to have though)
- Sims 2 base meshes (Serenity-Fall has them extracted around half way down the page here, search for line; "you can download TS2 body bases here.")
Optional things to grab (= recommended to grab for convenience):
- Extracted Top & Bottom meshes for all ages and both genders (you can extract these yourself but it's faster to just grab them here)
- My Morph notes. This is cleaned up version of my notepad where I copy paste all morph comments to make sure they're written correctly. (My own version has tons of my other notes so that's why you get the cleaned version)
In this tutorial we'll start with the easiest one: fullbody mesh then we'll do bottom and lastly a top. This is because full body and bottom are more alike than a top is to either. I recommend doing them in such order actually, try first with body mesh, then bottom and finally top one.
Without further ramblings.....
Body mesh Morphs:
Step 1. Open your mesh in SimPE.

As you can see my mesh has quite few groups, usually you'd only see one or two here. I chose one with multiple groups on purpose for this tutorial since then I can better explain how to handle meshes with many groups. I wouldn't recommend starting with mesh like this however, rather choose something that has only one or two groups.
Also note worthy is that you can actually check if your mesh has morphs by hitting on that Model tab like so:

If this mesh had morphs it would read something like this (this is picture of another mesh)

Anyway returning back to the file at hand, let's extract the mesh, in the resource list right click on it and click on the extract...

It doesn't matter what name you use for saving it, I usually go with a simple af/am/tm/tf/cu/shirt/pants/dress or whatever the file is or if I'm particularly lazy I and not working on any other files that day just let it save the file as it is. I saved this one as "af" since that's what the file is.
2. Open a texture file of your mesh and export the texture(s) If there are empty alphas you don't need to export those, you also don't need any files called "NormalMap", those are just the bumpmaps. My file had two textures (and two normals) so I exported the 2 textures.

Step 3. Open up milkshape and import your mesh there.

Since the mesh you're editing doesn't have any morphs it shouldn't throw any messages at you. If it says "Create blend groups?" then it has some morphs, if you're for example adding pregmorph to a mesh that has fatmorph you then you should say "yes" to keep the fatmorph but if you're going to make them from the scratch say "no". Another possible message is "Some Skin Weights do not total 100%. Do you want these corrected?" click yes. And then here we have the mesh open in milkshape:

While we're in this view take a look at the buttons there. We won't be using many, only Select, Scale, and a tiny bit of Move. With select make sure the option is set to Vertex as it is in the picture (select has to be clicked for the Select Options to show up).
Next switch over to the groups tab and double click on the first group to see what belongs to that group:

That part showing in red would be the body group of my mesh, you can from this determine that this part will need morphs made to it. Click on the group again to unchoose it (or click anywhere in the gray area to do the same) and check the rest of the groups too, keep a note of which groups need morphs and which ones can be left alone. (I know all groups of my mesh will but if you had for example separate shoes group that most likely wouldn't need morphs)
Then we get to the fun part, adding the required parts for all groups. Since this is a part where making sure everything is written correctly is important I present you: My morph notes. You don't have to download it but it's something I keep open every time I'm adding morphs to something so I can easily copy paste from it. Anyway moving on, let's go back to the first group of your file, click open the comments on it:

Since it's the first group we'll add morphs it'll be group 0. There at the bottom of the comments add line: MorphRefNum: 0 like so:

Click on OK, then choose the next group (that needs morphs) and to it add MorphRefNum: 1, if you have more groups the next one will be MorphRefNum: 2 and so on, add the line to each one. My mesh has so many groups that I went all the way till 6.
Once you've added the number to them all it's time to make copies of each group. So make sure nothing is chosen and then double click on the first group (that needs the morphs) again to turn it red, then duplicate it (edit > duplicate selection or hit ctrl+d) do it twice if you're also adding pregmorph.

You'll notice that at the bottom of the Groups list appears two new groups called Duplicate01 and Duplicate02 (or one if you're only doing fat morph)

These are what will be morphs of the first group in your mesh. Use the Up button there and lift these below the group they are duplicates of. We're doing it at this point since it will get very confusing if you just go ahead doing copies of each group and then try to figure out which one belongs to which group. Here we go all arranged nicely:

Next unchoose everything again and then choose the next group of your mesh and duplicate that too. Repeat for all groups that need morphs and finally you'll have something like this:

All of my groups don't even fit in the list but let's not mind that. Now remember which number you gave after MorphRefNum: for the first group of your mesh? If you followed my tutorial word to word it should be 0 so the morph groups should be named accordingly. Choose the Duplicate01 and rename it to ~00MORPHMOD.1 similarly rename the duplicate02 as ~00MORPHMOD.2 (if you plan to have pregmorph that is, if you don't skip that)

Similarly for the second group, the MorphRefNum (if you followed tutorial closely) should be 1 so the morphs for this group will be named ~01MORPHMOD.1 & ~01MORPHMOD.2 For the third group it'll be ~02MORPHMOD.1 & ~02MORPHMOD.1 and so on. Rename all the groups following this pattern until you have something like this (again all my groups aren't visible in the list)

Now look at the morph groups, you'll notice that each group has one that ends in 1 and another that ends in 2. In this case 1 will be fat morph and 2 pregmorph. Now we'll have to edit the comments of these. For body and bottom meshes the comments will be:
MorphNames: botmorphs fatbot
MorphNames: botmorphs pregbot
Tops have slightly different comments but we'll get back to that in the top section.
Choose the ~00MORPHMOD.1 group and click on the comment button

Delete everything written there and paste in: MorphNames: botmorphs fatbot
Repeat this step for every morph group that ends in number 1. Double check to make sure each one of them has the correct comment. Then open the ~00MORPHMOD.2 if you made it and in it's comments replace it all with: MorphNames: botmorphs pregbot again repeat for each file ending in .2 and then double check that you surely got them all. All good? Great, then we can move onto actually making those morphs.
Import the extracted Sims 2 basebody in, when it asks if you want to create blend groups hit yes, and for "Some Skin Weights do not total 100%. Do you want these corrected?" it's a yes too. If it asks about including additional bones then hit no, we don't want those since it would mess up the file. Here you can already see at least the preg morph of the base mesh poking through my mesh:

This will probably sound weird but hit ctrl+a and then ctrl+h to hide everything. This is because then we won't accidentally edit parts that aren't supposed to be edited. Then using the Hide button only make the fatmorph groups (those ending in .1) visible again, except for the imported simbody base at the bottom. Choose them all (ctrl+a) and click on Materials tab, hit new, then the upper and navigate to the texture(s) you extracted at the beginning. Double click on the material to apply.

In the 3D view you should see the model with your texture now. If you don't then right click on the frame and choose "Textured" If it still looks funky you can adjust the transparency settings by right click > transparency > choose Depth Buffered with Alpha Reference (if needed change also "set alpha reference", you may need to test around to find the best setting for you, I have it currently set to 0.5. My model actually has two texture groups (body and bodyalpha) and I only imported the alpha texture so I'm adding in another texture too with only the body group chosen to see the whole texture correctly. It's not necessary but certainly helps seeing things.
Now bring the basebody fat morph visible too, as you can see below the fat morph is quite a lot bigger than my mesh is:

From the sideview I can tell that I'll need to edit at least the boobs, butt and stomach bigger:

It's really up to anyone how they choose to go about the editing but I usually start by choosing the chest area and tweaking that first since it gives me pretty good idea how to further edit the body. So hide the reference maxis body and then with the Select tool paint the chest (just drag your mouse over it, if you didn't choose everything at once you can add more by holding shift and clicking/dragging the mouse. Similarly if you chose something you weren't supposed to shift and right mouse button will unchoose) Make the maxis mesh visible again (I forgot to do so in the picture below but you do it)

Go back to model tab and click on the Scale button, that will bring up scale options, change the x and z axis to 1.01 and leave the y as is:

Then hit on the scale button until your boobs are around the same size as the maxis base mesh's.

This is about right, now click on the Move Button and move them to the right place (it doesn't have to be exact, just "about right" is good enough.)

(never mind the numbers I have inputted there in the Move Options, those were leftover from something I worked earlier) Next similarly choose the butt area, hide the maxis mesh so that it doesn't get included in the area and will be unchosen. Then tweak the size and position of the butt similarly to what you did with the chest. Switch between the Scale and Move tool for the best outcome:

It looks like her hips also could use some widening and the stomach is also still untouched so do those next. And then once you're happy with the shape you're done with the fat morph:

Meaning that next up is the pregnancy morph then. Hide all the groups again and choose only those ending in .2, similarly to the fat morph apply the textures over your mesh and then compare it with the maxis base mesh to see what you're changing. In case of pregmorph it's most likely just the stomach since it's obviously the most notable part of the pregmorphs.

So let's choose the stomach area, I like making my pregmorphs very roughly and then fine tuning them so I start with this:

I know, that looks bad, but that's where the fine tuning comes in. Hide the maxis base mesh, we don't need it anymore. Choose the stomach area and hit the Scale button again couple times to give it some extra size.

Then unchoose the vertexes from the middle leaving only the rows at the sides chosen and use move to move those backwards:

Repeat for the second outsidest row and keep tweaking the shape until you're happy with it. As you can see the textures at the side are quite stretched here:

Right click on the 3D frame and find the line that says "Wireframe overlay" and click on it, you'll see the fireframe appear over the 3D mesh view. 3D view is bit different from the other views, here, if you want to choose something you have to keep alt pressed down and click, if you want to choose multiple points keep alt pressed and also press the shift button while clicking. Anyway here's view of some stretched parts chosen:

I'm simply going to drag that back a little in the regular view and it should about look right. There's also the side line of vertices, it's not too obvious in this mesh but on meshes where it is more obvious you might want to make that curve a little in the same direction as the stomach does to make it look bit better.
The last step here is to make sure there's no clipping anywhere and fixing that. You'll likely find setting the 3d view to "color groups" helpfull when doing that, as you can see below my mesh has quite few parts I still need to fix:

Fix the problems and then perform the same check on the fat morph version and fix its problems too.
Then lastly, from the bottom of the groups list delete the maxis body and its morphs (the numbers will be different depending on the mesh you're working on and the amount of groups it has but in my case it's these):

Perform one last check that all groups have the correct comments and then you're ready to export your edited file.

(I never overwrite the original just in case so I clicked on it to get the file format and added the -e in the file name to indicate that it's edited) Don't close your file yet since you might have to go back to it to edit it further. Then let's return to SimPE, open the mesh again and choose the GMDC file of it. Highlight the filename line and copy what's written there to notepad or such then right click on the mesh and choose replace:

When the mesh is replaced you'll notice the Filename line gets changed, this is why we copied the Filename just now, it simply looks nicer if it's like the others so highlight the line again and paste the old name back then hit commit.

Now if everything in your mesh is as it should, under the Model tab you should be able to see this:

Yes! The game can read the morphs you made so save it and head to testing it in game/bodyshop.
If you're not seeing this here after replacing the mesh I'm sorry to say but you'll have to go back to check what's wrong with it and fix that. Sometimes I mess up and wrong comments end up in wrong places so I've for example seen it once say pregbot on both of those lines, in such cases you'll just have to go back and see what went wrong and fix the problem too.
Bottom morphs:
For the most part bottoms are the same as body meshes, in fact the only part different is matching the bottom to the top. So that's the part I'll cover and for the rest you should just read the body morphs part. For your convenience I've uploaded extracted maxis bottoms and tops here so you can grab those to use for matching parts up. Or if you want and are comfortable with SimPE you can extract what you need yourself by searching for "bottomnude" and "topnude" through simPE. Going through how to do that is not part of this tutorial though. Either way, you'll need the extracted top soon so prepare one.
So like in the body section extract the mesh of the bottom you're editing, open it up in Milkshape, check which parts need morphs by highlighting the groups. In the bottom I'm editing the part needing morphs is bottom while bottom2 is the shoes:

Let's add the morph info to the bottom first, open the comments and add to the bottom "MorphRefNum: 0" like so:

If you have another group that needs morphs to the comments of that one make it MorphRefNum: 1 and if there's third group needing morphs then it's MorphRefNum: 2 and so on, they all need unique number. (see the body part above for more info)
Next, like in the body part of tutorial duplicate (edit > Duplicate selection or ctrl+d) the required groups, once if you only wish to add fatmorph and twice if you also want the pregmorph. We're doing both so I made two duplicates.

Like with the body we'll need to change the group names, the first one, fat morph will be called ~00MORPHMOD.1 and the pregmorph will be called ~00MORPHMOD.2. If you have more groups that will need morphs the group names should be named ~01MORPHMOD.1 and ~01MORPHMOD.2. For the next group it'll be ~02MORPHMOD.1 and so on. (See the body part for more) Here are our groups renamed:

Now open the comments of the first morph group (~00MORPHMOD.1) and delete everything written there and replace it with MorphNames: botmorphs fatbot - similarly for the pregmorph (~00MORPHMOD.2) change the comment to MorphNames: botmorphs pregbot like shown in the below (I figured that one picture is enough so there's no separate picture of the fat one but it's almost the same)

Now the files are ready for actually adding the morphs so import top of the correct age group to your file by hitting file > import > Sims2 Unimesh Import V4.09A. When it gives you pop up saying "If you import over another model, results maybe unreliable. Do you want to continue?" hit yes. If it asks about including additional bones then click no, never include additional bones since that will mess things up. Navigate to where you extracted the bottoms/tops and pick the correct one. Since the bottom I'm editing belongs to AM amTopNaked is the file I'm importing. When it asks if you want to create blend groups hit "yes" Next will most likely pop up note saying "Some Skin Weights do not total 100%. Do you want these corrected?" Click yes again.
You should be seeing something like this now:

Hit ctrl+a to choose everything and then ctrl+h to hide it all. This is so we don't accidentally edit something we shouldn't touch. Then click on the hide button on the morphs ending in number 1 to make them visible again like so:

Now take the top morph group (~04MORPHMOD.1 here) and using the up button move it on top of the file list (or at least above the bottom group). Delete the ~ from the name and hit rename to rename it. If you leave the name as is it you can't use the group to match the vertices and normals. So things should look something like this:

Right click in the 3D panel and choose the wireframe overlay to make it visible:

[ Remember that in the 3D view you can't just click on the vertexes you need to keep the alt pressed down to do so. If you need to choose multiple ones also hold shift button down. If you want to unchoose something keep alt+shift and click with the right mouse button. ]
Hide the top group. Then choose the middle vertex in the front like so (it's the red one on the image, barely visible I know):

Make the top visible again and similarly choose the front middle vertex on it (remember to hold both alt+shift to also keep the already chosen vertex chosen)

Then navigate to menu and find vertex > Sims 2 Unimesh Vertex Data merge and click on it, right after that go back to the same menu and hit also Sims 2 Unimesh Normal Data merge:

Extra Note: That reminds me, since clicking back and forth the menu like that is quite a hassle you can set shortcuts for commands through tools > edit shortcuts, as you can see in the picture I have these two set to use ctrl+shift+n and ctrl+shift+v. They are bit hard to find in the list due their names but if you open PlugIns section they're the ones called msTS2NDM (=normal data merge) and msTSNVM (=vertex data merge), give them a shortcut that is easy for you to remember and use that instead if you want. (Doing so speeds things up considerably so I really recommend it!)
Moving on, if you tilt the 3D model a little you'll notice that the two vertexes are now snapped together so that the top one didn't move:

Continue from here by hiding the top and choosing the next vertex of the bottom, then the corresponding vertex on the top, do vertex data merge, vertex normals merge, choose the next two vertexes and rinse and repeat until you have them all done. If you accidentally chose something extra you weren't supposed to snap together there just hit on ctrl+z to cancel and try again. Do the whole row until you have something like this:

Your waist lines are now matched and you can start working on the parts below it to make them properly fat, choose them with select tool and shape it with scale and move tool like in the body mesh part until you're happy with how it looks like. Just make sure to not touch the row of vertices that is connected to the top or you'll get gaps. The part you should be editing is about this one here:

At the end I got something like this (the top was set visible to show that the morph looks alright with it)

Note that if you hide the wireframe overlay and can see lines somewhere (see picture below) that means the normals in that part aren't matched and you should fix those:

Just make the wireframe overlay visible again and choose the missmatched part vertex by vertex (always one top/bottom vertex pair at the time) and merge the normal data. Make sure you've fixed all the lines since they'll show up in bodyshop and game too.
Once you're done with the fat morph hide those groups and make the groups ending in .2 visible instead. Move the top group on top of the list and remove the ~ from its file name and similarly to fat morph choose vertexes one by one pairing top and bottom together, merge the vertex data and normal data between the two, rinse and repeat for all parts where necessary. Then shape the pregnant belly for the bottom part too, you only need to edit few front lines of vertexes (shown in red) for this so preg morphs are usually very easy when working with bottoms:

And this is how the final pregmorphs should look like (again shown with the top so you can see that it looks okay):

Last thing left in milkshape is to delete the top groups, make sure the comments and group names are correct and then export your edited mesh and replace the one you have open in SimPE with it. (don't close the milkshape yet just in case if you have to back edit something) If you look under the model tab you should be able to see that the mesh now has the morphs you gave it like so:

If it does show up you did everything right and can give yourself a pat on the shoulder and move on to test your edited mesh works in bodyshop and doesn't explode in the game either. If nothing shows up here I have bad news for you, something went wrong so go back and recheck the comments and group names etc. and fix it.
Top morphs:
For the most part tops are same as body and bottom meshes too. The big difference is that the comments are slightly different and like with bottoms you have to match the normals with the bottom normals. For your convenience I've uploaded extracted maxis bottoms and tops here so you can grab those to use for matching parts up. Or if you want and are comfortable with SimPE you can extract what you need yourself by searching for "bottomnude" and "topnude" through simPE. Going through how to do that is not part of this tutorial though. Either way, you'll need the extracted bottom soon so prepare one. (yes I totally copy pasted this from the bottom part :P )
Now the tops can be very roughly put into two categories: the ones where them matching the bottom matters and those where it doesn't. If you have a big baggy hoodie that will go over the waist line there's no need to make sure the vertexes have matching normals but if you had, say, crop top then you should match the normals with the bottom for that for sure.
So, extract your mesh like in the body part then import it to milkshape. Like in the previous parts check which parts require morphs, in this we'll need to add morphs to the noblend group and the higher top group:

Since there's no point in duplicating the arms too, I'm going to separate the (lower)top part that requires morphs into it's own group. This step isn't necessary, I just feel like I have better control over things the less visible parts I have to work with. Hide all the other groups and then with your select tool set to "face" choose the part you want separated and then under the groups tab hit "regroup"

Open the group's comments to see that it copied the ones from the top it was separated from (if it for some reason didn't then go and copy them from the original top group)

Everything seems to be fine here so while we've got the group open let's add the morph reference there. Since this is now below the other group that needs morphs I'm giving this one MorphRefNum: 1 and the other one will be getting MorphRefNum: 0 then.

As you can see there it reads ModelName: top meaning that "top" is what it expects the group name to be, so let's fix that group name next, close the comments hitting ok, then choose the part where it says Regroup00 and write over top then hit rename button:

(note: if your group was called something else then use that instead!)
Next open the comments of the noblend group and add the MorphRefNum to it too, like mentioned earlier I'm giving that one 0 since it's above the other group. (it could be actually any number just as long as the morph groups have matching number in their name)

Make sure nothing else is chosen and double click on the first group that needs morphs to choose it then duplicate it once for fat morphs and twice to also make pregmorph, we'll do both so I'm making two copies. The new groups appear at the bottom of the group list:

Use the up button to move them below the group they're duplicates of and rename them to ~00MORPHMOD.1 and ~00MORPHMOD.2 like so:

If there is another group that needs morphs also make duplicates of that (so in my case the separated top group... which in the above picture is still called regroup00 apparently, oops. Well it'll be fixed in the next picture.) Rename those groups ~01MORPHMOD.1 and ~01MORPHMOD.2 (and if you have third group needing morphs that one will be ~02MORPHMOD.1 and so on. We've been over this already in the body part) Below we have all the groups that require morphs with the morph groups below them.

In order the first top group is the neck and arms, noblend is the actual clothing, second top-group is smooth hands and the lowest top is the part I separated from the neck&arms group to be its own group. Next we'll add the comments to these, now unlike body and bottom meshes these don't have MorphNames: botmorphs fatbot and MorphNames: botmorphs pregbot. Instead tops have: MorphNames: topmorphs fattop & MorphNames: topmorphs pregtop so the top word appears in the morph comments too. So add MorphNames: topmorphs fattop to all morphmods ending in 1 and MorphNames: topmorphs pregtop to those ending in 2.
Next import the corresponding bottom mesh (so if you're editing am-top you need am-bottom and so on) Say "yes" to including blend groups and fixing skin weights, "no" to additional bones if it asks about importing those. You should get something like this:

Hit ctrl+a to hide everything then make the groups ending in 1 visible again. Move the bottom .1 group on top of the file list and delete the ~ from its filename.

I'm gonna mind about matching the top and bottom group later on for now let's just reshape the top to be, well, fat. Make sure your select options are set back to vertex instead of face and choose the area you want to edit, the using scale and move tool shape your top morph. Oh also, hide the bottom before editing anything and make it then visible again so that its shape doesn't get changed along the way too.

Now if this was just baggy top this would be all we need to do. It covers the back and the front and is obviously fat so it's good enough. But since there's that tiny slice of body under there we need to match the vertices of that so hide the noblend group and we can straight away see that there's still quite bit editing left to do.

Like with the bottom we're gonna use vertex data merge and vertex normal data merge to match the top to bottom. Start from the front and do them one by one until each vertex on the bottom line is connected to the bottom.

Since the shape is bit weird you'll like to want to tweak it bit further, the noblend group too if needed, just make sure to not touch the row of vertexes where the bottom and top meet each other. Once you're happy with the shape of your fat morph hide everything and bring the pregmorph (.2) groups visible instead. Move the bottom group on the top again and remove the ~ from its file name. Then just shape your pregmorph. Like with the body mesh I like doing them very roughly and then editing it further to make it look more natural after I have the basic shape so here's a gif of what I do:

After that you can scale it bit bigger and refine the shape further as you see fit. With baggy top that would be all, but with top that has skin tight part like this one we still need to match the vertexes of the bottom and top and their normals. So like with the fat morph hide the noblend group, make the 3D view show the wireframe overlay and vertex by vertex match the top and bottom so go from this:

to this:

Once you're happy with the shape delete the bottom and its morphs, do one last check in your top comments to make sure they're as supposed, export and import back in Simpe. Don't close Milkshape just in case if you need to go back to fix something.
You know you did everything correctly if you can see this under the Model tab:

Test that everything works as supposed in bodyshop and game and you know what? You're done, now you can add morphs to all kinds of clothes :D
Extra notes: If when you're exporting the mesh you receive note saying something like "MORPHMOD "~MORPHMOD.1" has face count missmatch" it means that you've either:
1. accidentally duplicated multiple groups at once so it has parts that shouldn't be there. Or you might have accidentally deleted some part of the group.
2. the morphrefnumber you gave to your original group doesn't match with the morph. Make sure the numbers are same so if group has MorphRefNum: 0 then the morph groups should be named beginning with ~00. If it's MorphRefNum: 1 then the morph groups should start with ~01 and so on.
If it's the latter case simply fixing the numbers should work. If it's the first case then you'll sadly have to start over, it's easier than trying to manually fix things trust me on that.
And that's that. Hopefully it's clear enough to follow and if not ask and I'll explain in deeper detail.