Thu, Jan 23, 3:04 PM CST

Renderosity Forums / Poser - OFFICIAL



Welcome to the Poser - OFFICIAL Forum

Forum Coordinators: RedPhantom

Poser - OFFICIAL F.A.Q (Last Updated: 2025 Jan 22 9:27 pm)



Subject: combine 2 morphs with the one dial


midnight_stories ( ) posted Wed, 23 February 2011 at 5:11 AM · edited Thu, 02 January 2025 at 7:00 PM

OK here’s a curly one for you CR2 geniuses !
What I’m trying to do is combine 2 morphs with the one dial.
It’s for a winged figure where a positive value will use a Wing-Bend-Up
And a Negative value will use a Wing-Bend-Down. I also figure you need to
Put one a zero limit on the negative value of each individual morph. Don’t worry I haven’t zeroed out the figure that’s why it’s Figure 5. Here the code below what am I doing wrong.

groupNode Vertex Morphs
{
parmNode Wings-Flap
parmNode Wing-Bend-Up
parmNode Wing-Bend-Down
parmNode Tail-Curl-Front
parmNode Tail-Curl-Back
parmNode Tail-Bend-Up
parmNode Tail-Bend-Down
parmNode Feathers-Grow
parmNode Feathers-Curl-Out
parmNode Feathers-Blend-Up
parmNode Feathers-Blend-Down
}
groupNode Trans Morphs
{
parmNode Tail-Front-Back
parmNode Tips-Front-Back
parmNode Wings-Front-Back
parmNode Small-Blades-Front-Back
}
}
valueParm Wings-Flap
{
name Wings-Flap
initValue 0
hidden 0
forceLimits 0
min -1
max 1
trackingScale .02
keys
{
static 0
k 0 0
}
interpStyleLocked 0

valueOpDeltaAdd // Identifies the following as the controller
Figure 5 // Control Figure
BODY:5 // Control Group
Wing-Bend-Up // Control Channel
deltaAddDelta 1.0 // Control Ratio
valueOpDeltaAdd // Identifies the following as the controller
Figure 5 // Control Figure
BODY:5 // Control Group
Wing-Bend-Down // Control Channel
deltaAddDelta -1.0 // Control Ratio

}

I guess I don't really expect any answers but it's worth a shot.


markschum ( ) posted Wed, 23 February 2011 at 11:03 AM

 the valueparm lines define a new control dial named wings_flap

the valueopdeltaadd belongs in the channel the master dial controls.

wing-bend-up and wing_bend-down should be the master dial name

 

what version of Poser do you have ?

 

heres a document that might help you http://www.atlantis23.com/erc_download.html


lesbentley ( ) posted Wed, 23 February 2011 at 3:10 PM

I can't qiute understand what you are trying to do here. If I were trying to make wings flap, I would slave the relivant rotation channel of each wing to a valueParm in the BODY, eg:

actor BODY:1
    {
    channels
        {
        valueParm Wings-Flap
            {
            name Wings-Flap
            initValue 0
            hidden 0
            forceLimits 0
            min -100000
            max 100000
            trackingScale 0.004
            keys
                {
                static  0
                k  0  0
                }
            interpStyleLocked 0
            }
        }
    }

actor lWing:1
    {
    channels
        {
        rotateY yrot
            {
            name Flap
            initValue 0
            hidden 0
            forceLimits 0
            min -100000
            max 100000
            trackingScale 0.004
            keys
                {
                static  0
                k  0  0
                }
            interpStyleLocked 0
            valueOpDeltaAdd
                Figure 1
                BODY:1
                Wings-Flap
            deltaAddDelta 10.000000
            }
        }
    }

actor rWing:1
    {
    channels
        {
        rotateY yrot
            {
            name Flap
            initValue 0
            hidden 0
            forceLimits 0
            min -100000
            max 100000
            trackingScale 0.004
            keys
                {
                static  0
                k  0  0
                }
            interpStyleLocked 0
            valueOpDeltaAdd
                Figure 1
                BODY:1
                Wings-Flap
            deltaAddDelta 10.000000
            }
        }
    }

If you do have your heart set on using morphs to flap the wings (which I don't recomend), just put the slaving code in the relivant targetGeom channels, instead of the rotate channels, and drop the deltaAddDelta value to "deltaAddDelta 1.000000"


lesbentley ( ) posted Wed, 23 February 2011 at 3:38 PM · edited Wed, 23 February 2011 at 3:39 PM

You have seperate up and down morphs. Sorry, I missed that. So if you want to use morphs to flap the winge, it's a teeny bit more complex. you have to force limits on the morph channels, and use a negative deltaAddDelta on one of the morphs:

actor BODY:1
    {
    channels
        {
        valueParm Wings-Flap
            {
            name Wings-Flap
            initValue 0
            hidden 0
            forceLimits 0
            min -100000
            max 100000
            trackingScale 0.004
            keys
                {
                static  0
                k  0  0
                }
            interpStyleLocked 0
            }
        }
    }
actor lWing:1
    {
    channels
        {
        targetGeom Wing-Bend-Up
            {
            name -
            initValue 0
            hidden 1
            forceLimits 1
            min 0.000
            max 1.000
            trackingScale 0.02
            keys
                {
                static 0
                k 0 0
                }
            interpStyleLocked 0
            valueOpDeltaAdd
                Figure 1
                BODY:1
                Wings-Flap
            deltaAddDelta 1.000000
            indexes 0
            numbDeltas 0
            deltas
                {
                }
            blendType 0
            }
        targetGeom Wing-Bend-Down
            {
            name Wing-Bend-Down
            initValue 0
            hidden 1
            forceLimits 1
            min 0.000
            max 1.000
            trackingScale 0.02
            keys
                {
                static 0
                k 0 0
                }
            interpStyleLocked 0
            valueOpDeltaAdd
                Figure 1
                BODY:1
                Wings-Flap
            deltaAddDelta -1.000000
            indexes 0
            numbDeltas 0
            deltas
                {
                }
            blendType 0
            }
        }
    }
actor rWing:1
    {
    channels
        {
        # same as for the lWing above.
        }
    }


midnight_stories ( ) posted Wed, 23 February 2011 at 3:53 PM

Guys this is fantastic advice I'm going to go through the entire ERC tutorial and learn this stuff, even if Daz QA are on my back to finish this, I got to get my head around this. The code is great to I see you attached it to the "yrot" that would have worked well but it's a mechanical bird fighter and the wings only move front-back not up-down that's why I need a targetGeom morph channel. Links to shot of it below.

So thank this is a huge help !!!

 

http://www.renderosity.com/mod/gallery/media/folder_217/file_2169766.jpg
http://www.renderosity.com/mod/gallery/media/folder_217/file_2161963.jpg


lesbentley ( ) posted Wed, 23 February 2011 at 4:37 PM

Ah, I was thinking faerie, or angel wings, not aircraft type w1ngs. Still, I don't see why is couldn't use rotations to fold the wings back or forwards, if it was rigged appropriately, with the joint centers in the middle of those circular bits. Of course if you wanted the individual "feathers" to fold, it would mean adding a lot more actors, so you might want to fudge that with a morph.

The big problem with using morphs to emulate a rotation is, that a morph can only move a vertex in a straight line. So a morph that looks good at 45° rotation will look wrong at 90° rotation, and vice versa. For small rotations, you can often get away with morphs, but for large ones you need to use rotation channels.


Andrew_DEC ( ) posted Wed, 23 February 2011 at 8:14 PM · edited Wed, 23 February 2011 at 8:17 PM

I'm probably way over-simplifying this, and likely aren't comprehending your original question, but it sounds like you have two existing morphs on the same object and wish to create a master dial that controls both.  If this is correct, then why not just "Create new Master Parameter" on the figure?  I taught myself how to use it in about 5 minutes without touching the manual so that's gotta tell ya how easy it is.  I've managed to tie dozens of morphs to the same dial.

If that's not what you were trying to do, then just ignore this.   :)


midnight_stories ( ) posted Thu, 24 February 2011 at 12:46 AM

file_465986.jpg

Got it working my friend !!!

I didn't need the actor rWing:1 part

but got some problem with the trackingScale

I might have to keep it the same for all morphs

Here's a shot of it working in positive

 

Quote - You have seperate up and down morphs. Sorry, I missed that. So if you want to use morphs to flap the winge, it's a teeny bit more complex. you have to force limits on the morph channels, and use a negative deltaAddDelta on one of the morphs:

actor BODY:1
    {
    channels
        {
        valueParm Wings-Flap
            {
            name Wings-Flap
            initValue 0
            hidden 0
            forceLimits 0
            min -100000
            max 100000
            trackingScale 0.004
            keys
                {
                static  0
                k  0  0
                }
            interpStyleLocked 0
            }
        }
    }
actor lWing:1
    {
    channels
        {
        targetGeom Wing-Bend-Up
            {
            name -
            initValue 0
            hidden 1
            forceLimits 1
            min 0.000
            max 1.000
            trackingScale 0.02
            keys
                {
                static 0
                k 0 0
                }
            interpStyleLocked 0
            valueOpDeltaAdd
                Figure 1
                BODY:1
                Wings-Flap
            deltaAddDelta 1.000000
            indexes 0
            numbDeltas 0
            deltas
                {
                }
            blendType 0
            }
        targetGeom Wing-Bend-Down
            {
            name Wing-Bend-Down
            initValue 0
            hidden 1
            forceLimits 1
            min 0.000
            max 1.000
            trackingScale 0.02
            keys
                {
                static 0
                k 0 0
                }
            interpStyleLocked 0
            valueOpDeltaAdd
                Figure 1
                BODY:1
                Wings-Flap
            deltaAddDelta -1.000000
            indexes 0
            numbDeltas 0
            deltas
                {
                }
            blendType 0
            }
        }
    }
actor rWing:1
    {
    channels
        {
        # same as for the lWing above.
        }
    }


midnight_stories ( ) posted Thu, 24 February 2011 at 12:51 AM

file_465987.jpg

And a shot in the negative. You just scored a free gift !!!

I'll delete the other two dials now

and the trackingScale is working good

and had to put in forceLimits 4

to stop number going up passed the limits.

So Thanks !!!!


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.