Cage opened this issue on Feb 24, 2010 · 592 posts
Spanki posted Fri, 26 March 2010 at 5:35 AM
Quote - This is fantastic . It seems to me it is already very useable, and you guys are pushing it toward perfection :-). They do say that last few percent of a project takes a lot of the effort, and you guys are sure putting a lot of effort into it. I will definitely study the tutorials.
I have tried looking at the program but it is difficult for me to get my head around it, especially since I am not up to speed on Python. Is there a flowchart in existence for the program?
I think a flowchart would help me to understand the program flow and therefore assist with understanding the code. I know you guys are super busy though, so please consider it a low priorty wish. I'm sure I will be able to get great results from this program whether I understand how it ticks or not ;-).Cheers and kudos to you guys.
Ian
Hi Ian,
Cage described the actual code/flow pretty well. Much of it is just utility routines to figure out file naming and build various lists and such, so there's only a few core routines that do the grunt work (mesh correlation, weight generation, etc).
The general/overview process is to try to determine a correlation between 2 similarly shaped meshes, that have different polygonal topologies. More specifically (and ultimately), which vertices of the source mesh (the one with morphs in it) should affect each vertex in the target mesh (the one we're trying to transfer morphs to) - and, by how much...
Since the vertices don't have a 1:1 relationship between the 2 meshes (they have different topologies and potentially different densities), the vertices in the source mesh are assigned "weight values". So... each target mesh vertex is correlated to 1 or more (up to the number of Influences setting on the match script) vertices of the source mesh and each of those influence the target mesh vertex by the weight value (specific to the relationship between those two vertices).
These correlations/relationships and weight values can then be used to effectively transfer morphs between the 2 meshes, or alternatively, transfer the current shape of one mesh to the other, as a morph.
If you're just interested in operating the scripts (instead of understanding the code itself), then the tutorials on Cage's homepage are a great way to learn. It sounds like you're interested in the code itself, but I just wanted to point that out for anyone else reading this - a lot of this thread deals with geeky technobabble that most people don't need to follow if they just want to use the tools.
Cinema4D Plugins (Home of Riptide, Riptide Pro, Undertow, Morph Mill, KyamaSlide and I/Ogre plugins) Poser products Freelance Modelling, Poser Rigging, UV-mapping work for hire.