Forum: Poser - OFFICIAL


Subject: Antonia - Opinions?

odf opened this issue on Oct 27, 2008 ยท 13933 posts


lesbentley posted Fri, 14 January 2011 at 3:29 AM

@ odf,

Quote - Antonia now has morphs for moving the lids, and I'll make more JCMs for jaw movements shortly. I was planning to rig the lids to follow the eyes, as well. I had forgotten about LesBentley's version (my memory is so bad, it's pathetic). I better check out how he's done the slaving.

With the jaw slaving, you can just apply the morph that opens the mouth, at a value of one, then rotate the jaw as appropriate. When the jaw looks right, note down the dial value, and use that as the deltaAddDelta value for the slaving code in the jaw xrot channel.

Or you can get a bit more complex and provide a way to turn the slaving off. To do that you need to add a hidden channel between the morph and the rotation. Here is the code from that hidden channel in the head of my current version of Antonia:

           targetGeom Jaw-Mouth_Synch_Open
                        {
                        name Jaw-Mouth_Synch_Open
                        initValue 0
                        hidden <span style="color:#00ff00;">1
</span>                 forceLimits 1
                        min -100000
                        max 100000
                        trackingScale 0.02
                        keys
                                {
                                static  0
                                k  0  0
                                }
                        interpStyleLocked 0
                        valueOpDeltaAdd
                                Figure 1
                                head:1
                                Chin Down-Up LB
                        deltaAddDelta 2.500000
                        valueOpDeltaAdd
                                Figure 1
                                head:1
                                Mouth_Open_03a_MJ
                        deltaAddDelta 9.000000
                        valueOpDeltaAdd
                                Figure 1
                                head:1
                                Mouth_Open-01 LB-MJ
                        deltaAddDelta 14.500000
                        <span style="color:#00ff00;">valueOpTimes
</span>                         Figure 1
                                head:1
                                J-M_Synch_OFF-ON
                        blendType 0
                        }

As the channel never has a dial value of its own, it can be either a targetGeom or a valueParm. The first three blocks of slaving code relate to mouth morphs. The last block uses "valueOpTimes", and is slaved to a valueParm in the head. This valueParm is used to turn the slaving on and off. Here is that channel: valueParm J-M_Synch_OFF-ON { name Jaw-Mouth_Synch initValue 1 hidden 0 forceLimits 1 min 0 max 1 trackingScale 0.02 keys { static 1 k 0 1 } interpStyleLocked 0 staticValue 1 blendType 0 }

The xrot of the jaw is slaved to "targetGeom Jaw-Mouth_Synch_Open". You may want to do the same thing for the jaw's yrot (side-side). Even if you don't have any immediate plans to use this, it is a good idea to build this into the cr2, due the the hassles associated adding channels. In such a future use case, the channel can be empty, as it is easy enough to inject stuff into the channel once it exists. All you would need is: targetGeom Jaw-Mouth_Synch_Side-Side

{



}

If you are going to synch the eyes and lids, it is probably better to do that the other way round, with the morphs slaved to the rotations of the eyes. Here again I find it handy to have a way to turn the slaving off.