odf opened this issue on Dec 11, 2021 ยท 21 posts
odf posted Sat, 11 December 2021 at 2:20 AM
If you're anything like me, you've messed up the vertex order countless times while trying to make morphs for Poser (or other programs we don't mention here) with external software. I feel like I have to treat the mesh like a raw egg, which is no fun. So I wrote a program to fix that years ago, but never shared it because I was in my Scala phase then.
Now I've made a Python version, which you are all welcome to use (also for that other program if you want): https://www.renderosity.com/filelocker/55818/download?key=8760
Just download the ZIP file as is, do NOT extract the contents (I mean, you can, but you don't need to), then run python on it. You need to Python 2.7 or 3.x plus numpy installed. The "-h" option tells you how to use, so I won't repeat that here.
As a little demo I took a figure with a famously prominent nose and gave her a cute little button nose in Blender, but I also "accidentally" flipped the mesh along the x-axis. Poser did not take that well (and it's built-in vertex-order correction did not help, either). On the left you see what happens if I load the resulting obj as a morph target and dial it to 0.5. On the right you see the fixed morph after running it through my script, also at 0.5.
Fine print: currently meshes must be manifolds (no more than two faces per edge) with consistent face orientations. I think that's true for most actors in most of the common figures, but for example it is not true for Apollo's teeth, and it's probably not true for may clothe meshes. I'm working on an extended version that can handle such meshes, as well.
If you'd like to use the script from within Poser, please annoy a Poser Python specialist of your choosing. :smile:
-- I'm not mad at you, just Westphalian.