AnyMatter opened this issue on Jul 21, 2015 · 7 posts
pikesPit posted Tue, 21 July 2015 at 2:55 PM
I don't think that there will be answers to your question, because from all that I know it isn't possible right within Poser for now.
Poser is quite good in creating and editing "valueOpKey"dependencies, and (with limitations) it can add additional dials to the "valueOpDeltaAdd" dependencies.
However, from all I know it can not add any of the other dependency types.
Your best chance to add these is indeed the good'ole text editor - or even better: "Poser File Editor" by Dimension3D (http://d3d.sesseler.de/index.php?software=posertool&product=poser_ed")
I write the code once in a text editor, e.g.:
valueOpTimes // just to pick an easy example
Figure 1 //or respective figure number;
BODY:1 // the location of the master dial;
myNewMorph22 // the internal name of the master dial;
This code remains the same for whereever you paste it to, and I use Poser File Editor for pasting this because the relevant "target dials" are much easier to find in it's hierarchical list. Then a simple "CTRL-V" at the right place, and that's it.
Only when it comes to "valueOpDeltaAdd", I prefer to use "valueOpKey" instead because I can set that up much faster in Poser than hacking it into the .cr2 manually, and to compute the value of "deltaAddDelta xxx" would have to be done for each dependency. The more complex it gets, the more errors may occur... So I'm quite comfortable to buy convenience for the price of some bytes of extra code (the "valueKey xxx xxx" lines)
One last idea:
The "valueOpKey" will only work within the dial range specified:
e.g. if you've set a "valueKey" to "-0,5 -35", the master dial will only work within that range and then stop.
So if you want to extend the range (whether that makes sense isn't the question here), just use a plain text editor, search for term "valueKey", and on each find, multiply both key values by 100, or 1000, or 2525 :)
So, "valueKey -0.5 -35" becomes "valueKey -500 -35000"
Sorry, from your question I guess that you'll probably know all this already, and more.
I only replied more detailed in case others might wish to look into that too, and maybe learn some tricks.
I think especially the "valueOpTimes", when applied cleverly, can do some amazing tricks.
-Peter-
P.S.:
Be cautious with the "valueOpDivideBy" because of the dreaded "division by zero" problem which still, after sooo many years, can still grind a computer to a halt.
So if you want to use this, then use "constants" in the form of specific, hidden, and locked dials:
actor BODY:1
...
...
valueParm zeroPointFive
name NeverChangeThis
initValue 0.5
hidden 1
forceLimits 1
min 0.5
max 0.5
...
keys
k 0 0.5
...
In the dependent parameter:
valueOpDivideBy
Figure 1 //or respective figure number;
BODY:1 // the location of the master dial constant;
zeroPointFive
et voilá, you have reduced the dial value by factor 0.5
P.P.S.: I just remembered that with these "math" valueOps, the order of the dependencies is important in computing the dial's actual value:
Everything that, in the source plain text, comes before the valueOp will be affected by it. Everything that comes after it, won't!
So you can actually add dial "a", subtract dial "b", divide it by >constant< 0.5, then add dial "c", and finally multiply the result with dial "d".
This is an extreme example, but ir has much potential!
P.P.P.S.:
I know that the forum will FU my formatting; sorry for this :