Forum: Poser Python Scripting


Subject: Moving morphs between different figures

Cage opened this issue on Dec 20, 2006 · 1232 posts


Spanki posted Sun, 07 January 2007 at 4:14 PM

Ahh, ok.  That clarifies things a bit.  So what I've been thinking/talking about all along does/would not produce the same results you were doing/planning.

With what I'm proposing, if a morph on Mesh A only moved 1 vertex, then the morph produced on Mesh B would only involve ideally one vertex, but maybe 3 or 4 vertices in total.  This is what I mean by morph-matching, as opposed to shape-matching.

Whenever I'm saying 'morph delta', I mean quite literally that - the 'morph deltas' that you find in the .cr2 file that make up some particular morph (or find attached to the figure from python), not a computed delta for every vertex of the mesh.

Let's say you have a small cube and a large cube, identical in shape, but not size.  Now the large cube has a morph that consists of moving one vertex (out of the 8 total), by +4 on the x-axis.  My idea is that the resulting morph in the smaller cube would involve of exactly one vertex, moving +4 on the x-axis.  So you've transfered the morph, but the size/position of the other 7 vertices on the small cube do not move at all.

It sounds like, using your old/current method, you'd end up with 2 identical cubes - yes?  All 8 vertices would be morphed (by some computed delta amount). This is what I mean by 'shape-matching'.

The method I've been talking about could not, for example, make a morph that converted V4's face into a V3 default face shape (actually, it could, but you'd have to make a morph on V3 that started with the shape of V4 and ran backwards :) ).

Now, having said that, you could also use the vertex correlation data to do shape-matching (and that would be a valid user-option).  In which case, you'd assume that the morph was already 'applied' to the source mesh (the script wouldn't need to know about the 'morph deltas' at all in this case) and you'd just compute deltas for every vertex of the destination/target mesh to try to make them match.

Sorry if I'm repeating myself, I just want to make the difference between the two approaches clear.

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.