Forum: Poser 12


Subject: What happened to the Combining Figures and find Unseen Polygons Features

Uncanny_Film opened this issue on Feb 19, 2023 ยท 14 posts


adp001 posted Sat, 04 March 2023 at 12:55 PM

JoePublic posted at 6:12 PM Fri, 3 March 2023 - #4457545
I do a lot of custom figure morphs using scaling, so I almost always need to add custom fit morphs to hair props later.

In PP-2014 I can morph the hair using Magnets or the Morphbrush, spawn a new morph, and everything is fine.

In Poser 11 the spawned morph causes the hair prop to re-scale and re-move away from the custom figure's head.

It gets old having to switch between Poser apps just to make a simple fit morph for a rescaled figure.


Maybe the little Script below may help.

Scale , rotate and translate your (hair) prop as you need, use the morphbrush or magnets to deform, then run that script with the modified actor selected. The script will modify the original vertices to reflect the actual form, scale and position. All these dials are set to neutral position. If you used morphs, dial them back to 0 or delete them. All deformation is now part of the props base mesh.

Don't forget to save the prop after running the script!

Here we go:


import numpy as NP
SCENE = poser.Scene()
actor = SCENE.CurrentActor()

P_ROTS = poser.kParmCodeXROT, poser.kParmCodeYROT, poser.kParmCodeZROT
P_TRANS = poser.kParmCodeXTRAN, poser.kParmCodeYTRAN, poser.kParmCodeZTRAN
P_SCALES = poser.kParmCodeXSCALE, poser.kParmCodeYSCALE, poser.kParmCodeZSCALE, poser.kParmCodeASCALE

if hasattr(actor, "Geometry") and actor.Geometry().NumVertices() > 0:
geom = actor.Geometry()
worldverts = NP.array([[v.X(), v.Y(), v.Z()] for v in geom.WorldVertices()])
for vert, (x, y, z) in zip(geom.Vertices(), worldverts):
vert.SetX(x)
vert.SetY(y)
vert.SetZ(z)
actor.MarkGeomChanged()
for code in P_ROTS + P_TRANS:
actor.ParameterByCode(code).SetValue(0)
for code in P_SCALES:
actor.ParameterByCode(code).SetValue(1)
SCENE.DrawAll()
print("Done")
else:
print("No Vertices found")