Forum: Poser - OFFICIAL


Subject: 1 dial to control 2 objects

thewebflea opened this issue on Jun 11, 2011 · 10 posts


lesbentley posted Sat, 11 June 2011 at 2:04 PM

In the previous example, I used channels that already had a function, a rotation channel, or a targetGeom (morph) channel to act as master for one or more other channels. Sometimes it may be desirable to use a channel that has no direct function of its own to drive other channels. 'valueParm' channels fulfil this role, they do nothing in their own right, and their only function is to act as master channels to drive other channels.

The 'Example-02.pp2' attached above, has a valueParm channel named 'Spin' in cube_1. The yRotate channels of both cubes have been slaved to the 'Spin' channel.

Morph-01 and Morph-02 in both cubes have also been slaved to 'Spin'. Limits have been forced on both morph channels (forceLimits 1), and set so that the morphs can't go negative (min 0). The Morph-02 channel in each prop uses a negative 'deltaAddDelta' value. The result of this set up is that when the Spin dial has a positive value, only Morph-01 is expressed, and when it has a negative value, only Morph-02 is expressed.

The valueParm channel looks like this:

        valueParm Spin
            {
            name Spin
            initValue 0
            hidden 0
            forceLimits 0
            min -100000
            max 100000
            trackingScale 0.100
            keys
                {
                static  0
                k  0  0
                }
            interpStyleLocked 0
            }

There is nothing special about it, and the only none default parts of it are its name and the 'trackingScale' (dial sensitivity), which I have changed from the default of 0.004 to 0.100.

The slaving code in the yRotate channels looks like this:

            valueOpDeltaAdd
                NO_FIG
                cube_1
                Spin
            deltaAddDelta 10.000000

The value of 10.0 in the deltaAddDelta line results in 10 degrees of rotation for every increment of '1.0' in the Spin dial. The slaving code in the targetGeom channels looks like:

            valueOpDeltaAdd
                NO_FIG
                cube_1
                Spin
            deltaAddDelta 0.100000

or

            valueOpDeltaAdd
                NO_FIG
                cube_1
                Spin
            deltaAddDelta -0.100000

Using  'deltaAddDelta 0.100000', a value of 10.0 on the 'Spin' dial will result in the morph being fully expressed.