View Full Version : REALLY Always Evaluate ?
10 October 2003, 02:01 PM
I have a little script that centers something between two points, and i have applied this script as an expression, but the thing is that i cant get it to evalute ALL the time ( the evaluate always just does the trick when i move the slider back and forth ).
So my question to all you MEL-scripters is: Can you make a script evaluate when i move one of the point or is there a way to make the script run in the background ( wich i think would be kinda slow ) ?
Very thankful for answers // Cyze
10 October 2003, 02:18 PM
I think two point constraints with weights of .5 would work for what you are doing, not to mention be easier.
But, as for making the expression evaluate ALL the time, I think you'll need a Dependency Graph connection directly. That way maya will be able to figure out exactly how everything relates to each part of the scene.
10 October 2003, 10:48 PM
Yeah -- if you're using getAttr and setAttr, the expression won't actually be connected in the DG and thus won't run except when the time slider is advanced.
so, instead of
float $x1 = `getAttr locator1.tx`;
float $x2 = `getAttr locator2.tx`;
setAttr locator3.tx (($x1 + $x2) / 2);
make sure you're using
locator3.tx = (locator1.tx + locator2.tx)/2;
Referring to attributes explicitly like this (which you can't do in a standalone MEL script but which is OK in an expression) tells Maya to connect the appropriate inputs and outputs to the expression node, which should solve problems like yours.
11 November 2003, 06:05 PM
wow Mark, you seem to explain that one pretty often between here and your forums....
you helped me with it just a few months ago :)
11 November 2003, 07:34 PM
well, it's possible it's not the problem, but it's a likely candidate.
For some reason, most people take a while to really internalize how expressions work, and that's kind of THE critical aspect to their behavior, so I find myself repeating it. :D
01 January 2006, 02:00 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.