Quick Reply
Search this Thread
Field Researcher
Original Poster
#1 Old 21st May 2023 at 1:04 AM
Default How to keep normals upon exporting mesh from Milkshape?
It's me again with a meshing problem

recently I noticed that a mesh of mine does not have sharp edges in game as intended, so I'm trying to fix it and release an updated version. And it's actually a lot harder than I thought...

The issue is with the Baumann barstool that I uploaded here: https://modthesims.info/d/649494/
Now that I look at it again, the difference is actually visible in my previews, the barstool legs look rounded instead of angular like the chair

When I created it, I meshed it entirely in WIngs3D, and then used the Mesh Tool to import the mesh into SimPE while retaining working animations.
Turns out, Meshtool did not save the normals with the mesh while exporting the new gmdc. I tried redoing it but still with the same outcome.

So I tried using Milkshape instead, since I learned how to use it since last year. When I import my obj file to Milkshape, it looks perfectly fine with the proper intended smoothing and hard edges on the legs:



I assigned it to the joint and slightly moved to it center it, but did not touch the smoothing groups at all.
However when I export the file with the Unimesh plugin, normals get messed up again. The sharp edges have disappered if I re-open the gmdc in Milkshape, and the mesh has a weird shading instead:



I always have the auto-smooth option ticked off, and never had such problems when working on clothing meshes. I have tried researching if someone had a similar problem, but could only find tutorials to remove seams on clothing meshes. But I don't want to remove them, I want them to stay!
How can I make sure the normals are properly exported with my mesh? Is there a parameter to adjust somewhere?
Screenshots
Advertisement
Mad Poster
#2 Old 21st May 2023 at 2:00 AM
It's likely an issue between Wings and Milkshape, in how they handle smoothing. Wings can (if I don't remember wrong) handle smoothing groups and sharp/smooth edges (settings internally in the program), while these don't transfer to Milkshape.

The only settings that for sure transfer from other programs to Milkshape are regular connected edges (gives a rounded finish), and split edges (gives sharp edges). Connected edges is when the edges share vertices. Split edges is when the edges have separate vertices. You can pretty much look away from settings in other programs, as Milkshape will ignore those.

Likewise, other programs will usually ignore smoothing settings from Milkshape (like if you smooth over an area with split edges in Milkshape with Align Normals or Cat's normal smoother, you'll usually get a nice, smooth area, but if you import that same smoothed mesh into for instance Blender, you'll still get split edges in that area).
Field Researcher
Original Poster
#3 Old 21st May 2023 at 12:24 PM Last edited by Monsieur_Oshima : 21st May 2023 at 1:59 PM.
Thanks for the explanation! I suspected that the problem is the compatibility with Wings3D, even though the mesh looks OK when it is first imported to Milkshape...

So I guess my only option is to manually re-assign smoothing groups in Milkshape? I wanted to avoid this because it sounds like it will take hours to redo something that takes 5 minutes in Wings. But if it's the only solution, there goes my sunday afternoon I guess

[update] I actually found a reasonably efficient way to assign smoothing groups and it was a lot less painstaking that I imagined. Now the mesh looks correctly shaded in Milkshape.



BUT, once again I end up with an odd-looking, evenly smoothed mesh in SimPE and in game. Looks like something really is going wrong when I export through the Unimesh plugin and I can't figure out what to do... I swear auto smooth is unticked, I checked 100 times
Screenshots
Mad Poster
#4 Old 21st May 2023 at 4:25 PM Last edited by simmer22 : 21st May 2023 at 5:12 PM.
Smoothing groups likely won't import properly from Milkshape (same issue), especially if you import as an OBJ mesh.

If you've already managed to separate out each side of each part in smoothing groups, you can select each part individually and do "regroup". This will give the sides of the item their own vertices/edges. When you're done, regroup everything back into one mesh.

(if it gets cluttered, do it section by section)


(If you have Blender installed, you can export the OBJ there to check the smoothing, if you want. Blender "sees" all the split edges wherever they are, but keeps the unsplit edges intact. I sometimes do that if Milkshape VS ingame isn't making sense - Blender has no mercy on split/connected edges from other programs, and it also shows its own edges marked "hard" and "soft" in colors so it's a bit easier to know what is going on, since those won't show up in other programs)
Field Researcher
Original Poster
#5 Old 21st May 2023 at 7:32 PM
I tried that and it finally worked! thank you so much

I had no idea "regroup" can be used to separate meshes into several parts! sounds a bit counter-intuitive. I have a lot to learn with this software...
Mad Poster
#6 Old 21st May 2023 at 8:58 PM
After about 14 years of wrangling with that thing, I've learned that Milkshape is nothing but counter-intuitive
Back to top