Thu, Feb 6, 12:23 PM CST

Renderosity Forums / Poser 11 / Poser Pro 11 OFFICIAL Technical



Welcome to the Poser 11 / Poser Pro 11 OFFICIAL Technical Forum

Forum Moderators: nerd

Poser 11 / Poser Pro 11 OFFICIAL Technical F.A.Q (Last Updated: 2025 Jan 26 5:56 am)

banner

Welcome to the Poser Forums! Need help with these versions, advice on upgrading? Etc...you've arrived at the right place!


Looking for Poser Tutorials? Find those HERE



Subject: How to create a single morph


starlingblue ( ) posted Tue, 15 September 2020 at 8:46 PM · edited Thu, 06 February 2025 at 12:19 PM

whats the best way to do the following:

create single morph parameter or a morph injection that switches a series of individual morphs on with all other parameters set to default 0?

I am always running into weird issues, for instance I used la Femme Pro to create a new face but now the face expressions dont work anymore, and the new face is in a frozen state

tried all kinds of things to copy the morphed shape from one instance of laF to a new one, none worked for instance, there are 4 possible ways to export as .obj and "as morph target", with center of gravity, without, with names of parts, without but none works either it says different number of vertices or it doesnt copy any of the morphed values copy from one instance to another: doesnt work either

I somehow managed to do this with Roxie, but the figure has a lot of problems, with the eyes for instance so I started from scratch with la Femme, but didnt succeed

what I would like to do is to use laFemme Pro to design a few morphs and then copy this as a single morph to the femme basic figure so not to have all these million parameters, not sure if this is possible when it doesnt even work with the pro figure

so, how are you supposed to do this properly?


adp001 ( ) posted Tue, 15 September 2020 at 10:48 PM

Morphs in the head are actually simple.

Turn all the knobs until you have a passable face. Then set your figure to zero (rotation, scaling, and position).

Select the head as current actor.

In the main menu, under "Object", you will find "Spawn Morph Target". This will ask you for a name for the new morph you want to create.

The new morph is a copy of everything you set, in one piece. If you now set all dials in the head to zero and the newly created morph to 1, you should get the desired result.




adp001 ( ) posted Tue, 15 September 2020 at 10:53 PM

Have a look at the Poser manual. There you can find more information (page 780).




starlingblue ( ) posted Tue, 15 September 2020 at 11:05 PM

Well I did exactly this. Just that a) the expression dials ect stopped working and b) I cant copy the morphed shaped to another figure. no matter what method I use.

I switched to Pauline to test there it worked just fine,


adp001 ( ) posted Wed, 16 September 2020 at 11:04 AM

Problem is: La Femmes expressions (and some other parts) are actually controlprops, not real morphs. They work with weightmaps and are closer to magnets (deformers) and bones than morphs.

I don't do LaFemme. I bought her as she became available, but rejected her after a closer look. Mainly because of the bad mesh.

So I'm no help here.




adp001 ( ) posted Wed, 16 September 2020 at 11:52 AM

I had a bit time and wrote the following little script. It asks for a morphname as the original "Spawn Target" does and creates a morph from what the screen shows.

Don't forget to set all rotations/translations/scales to zero to avoid some funny effects.

from __future__ import print_function, division, absolute_import

import numpy as np
import wx

try:
    import poser
except ImportError:
    from PoserLibs import POSER_FAKE as poser

SCENE = poser.Scene()


def createmorph(actor, morphname):
    assert isinstance(actor, poser.ActorType)
    assert isinstance(morphname, basestring)

    geom = None
    if hasattr(actor, "Geometry"):
        geom = actor.Geometry()
        numv = geom.NumVertices()
        if numv == 0:
            raise TypeError("Actor has no Geometry.")

    deltas = np.array([[v.X(), v.Y(), v.Z()] for v in geom.WorldVertices()]) - 
             np.array([[v.X(), v.Y(), v.Z()] for v in geom.Vertices()])

    morphparm = actor.Parameter(morphname)
    if morphparm is None:
        actor.SpawnTarget(morphname)
        morphparm = actor.Parameter(morphname)
    morphparm.SetValue(0)
    for idx, v in enumerate(deltas):
        morphparm.SetMorphTargetDelta(idx, *v)

    SCENE.DrawAll()


with wx.TextEntryDialog(None, "Enter Morphname", caption="Spawn Morphtarget") as dlg:
    if dlg.ShowModal() == wx.ID_OK:
        m_name = dlg.GetValue()
        if m_name:
            createmorph(SCENE.CurrentActor(), m_name)





starlingblue ( ) posted Wed, 16 September 2020 at 5:16 PM

Hi adp thanks for the explanation and script, maybe its helfpful for someone I actually quit Poser and uninstalled it it turns out to be too much a waste of time, energy and money, and doesnt get me anywhere I want


Privacy Notice

This site uses cookies to deliver the best experience. Our own cookies make user accounts and other features possible. Third-party cookies are used to display relevant ads and to analyze how Renderosity is used. By using our site, you acknowledge that you have read and understood our Terms of Service, including our Cookie Policy and our Privacy Policy.