Forum: Poser - OFFICIAL


Subject: PML vs Poser Unimesh

colorcurvature opened this issue on May 19, 2013 · 21 posts


colorcurvature posted Mon, 20 May 2013 at 9:49 AM

>>> print 'Skinning set to classical' Skinning set to classical >>> ww = poser.Scene().CurrentActor().Geometry().WorldVertex(5) >>> ww2 = poser.Scene().CurrentFigure().Actor("bone_2").Geometry().WorldVertex(5) >>> print ww.X(), ww.Y(), ww.Z() 0.0 0.468679130077 0.0 >>> print ww2.X(), ww2.Y(), ww2.Z() 0.0 0.468679130077 0.0 >>> print 'Skinning set to unimesh' Skinning set to unimesh >>> ww = poser.Scene().CurrentActor().Geometry().WorldVertex(5) Traceback (most recent call last):   File "", line 1, in AttributeError: 'NoneType' object has no attribute 'WorldVertex' >>> ww = poser.Scene().CurrentActor().Geometry().WorldVertex(5) >>> ww2 = poser.Scene().CurrentFigure().Actor("bone_2").Geometry().WorldVertex(5) >>> print ww.X(), ww.Y(), ww.Z() 0.0 0.468679130077 -0.253733992577 >>> print ww2.X(), ww2.Y(), ww2.Z() 0.0 0.468679130077 0.0 >>>

This seems to strengthen my thesis. WorldVertex(5) of the slave actor in my figure returns different coordinates, depending on classic vs unimesh skinning.

 

wg = poser.Scene().CurrentActor().WeldGoals()
print wg
[[-1, -1, -1, 3, 4, 5, -1, -1, -1, -1, -1, 11, 12, -1, -1, -1, -1, -1, -1, -1, 20, 21, -1, -1, -1, -1, -1, 27, 28, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1]]

Vertex 5 is chosen because it has a weldgoal.

Based on this output and the unwelded preview frame in the picture I suspect WorldVertex() is not returning the truth when unimesh skinning is active (assuming, the welded position should be the world vertex coordinate).

So I indeed guess, PML should be used with classic skinning.

P.S. Subdivision is still fine.