Forum: Poser Python Scripting


Subject: Moving morphs between different figures

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


Cage posted Sat, 23 December 2006 at 5:01 PM

Well, the equation I posted above doesn't work. Bummer.

Let me try to clarify the problem, then.

original_shape = source_vertex + source_delta

final_shape = target vertex + final_delta

I can't just transfer morph deltas directly, because this will be inadequate except when the source and target geometries are almost identical (as in the case of the reduce Miki, above). The goal, here, is not to transfer the delta literally, but to transfer the final shape represented by the source morph target, as a new delta appropriate for the target mesh.

So I’m struggling to find the proper formula for the final_delta, above, which requires that the difference between the source_vertex and the target_vertex be part of the equation. When I simply transfer the original delta from one figure to the next, the shape isn’t quite correct. The V1 head explodes when V3 delta positions are passed without modification.

I have found, however, that the following works well for all testing figures. This requires that a subtraction morph be created in the target actor.

final_delta = original_delta + (source_vertex – target_vertex)

difference = source_vertex – target_vertex

final_shape = final_delta - difference

This, then, produces a correct final_shape when morph final_delta is set to 1 and morph difference is set to –1.

I want to get the same effect with a single morph. I need to integrate this subtraction morph, difference, into the final_delta calculation. I initially tried:

final_delta = (original_delta + (source_vertex – target_vertex)) - (target_vertex – source_vertex)

final_delta = (original_delta + (source_vertex – target_vertex)) - (source_vertex – target_vertex)

final_delta = (original_delta + (source_vertex – target_vertex)) - (target_vertex – source_vertex)

* *

But how can this be expressed in a single equation and created as one morph rather than a morph minus a subtraction morph? This is where Cage gets confused. I’ve tried all the combinations of variables I can think to try, but each result either explodes, translates the target actor, or requires a subtraction morph to be correct. I’m beggining to suspect that Poser is doing something more than I know when it applies morph targets.

Does anyone have any ideas? Am I making sense? I hope.... L

* And thank you in advance for any help or advice....*

seems to work nicely when moving morphs from V1 to V3. When moving from V3 to V1, it makes the head explode. So something obviously isn’t quite right yet., which is the same as just passing the original delta, as nruddock points out.)What I need to figure out is: what formula can be used to calculate a final_delta which represents the final_shape achieved by using the subtraction morph. It should be possible to do this all at once. But what is really happening when Poser applies the subtraction morph? The final shape is target_vertex + final_delta – difference. seems to work nicely when moving morphs from V1 to V3. When moving from V3 to V1, it makes the head explode, something I failed to realize before posting the script. So something obviously isn’t quite right yet., which is the same as just passing the original delta, as nruddock points out.). (That’s what I had believed I had posted in the initial script, but apparently I changed it to . (That’s what I had believed I had posted in the initial script, but apparently I changed it to

===========================sigline======================================================

Cage can be an opinionated jerk who posts without thinking.  He apologizes for this.  He's honestly not trying to be a turkeyhead.

Cage had some freebies, compatible with Poser 11 and below.  His Python scripts were saved at archive.org, along with the rest of the Morphography site, where they were hosted.