E x p r e s s i o n s    L i s t

Apply Before, After IK, or After Motion: Allows you to specify when the expression will be applied.

Apply to the motion before IK is calculated.

Apply to the motion after IK is calculated.

Apply after motion  (Calculate the motion, then apply the expression.)

Expression Active/Bypassed (or Inactive): This allows you to turn an expression on or off.  And like almost everything in messiah, this is realtime, so you can toggle it on and off while your animation is playing so you can see how it affects it.

Channel Modifier (also called Blend Operator):  There are five modifier types to choose from.  To select them, just click on the icon until you get to the one you want (right-click to go backwards).  In most cases, you'll want the default, =(equal).  The following images show what happens when the green box's X position is fed into the ball's Y position.

Typing In The List:  You can modify expressions right in the Expressions List by double-click, then typing.

 Off (Using Bypass Expression) - This image shows the ball at its keyframed position: Y 1.5 =  Equal - When this is selected, the expression data will replace the item's own channel. In this example, the ball's Y position is set to equal the box's X position, so there's no additional calculation, they just match. +  Add - When this is selected, the expression data will add to the item's own channel. In this example, the box's X position is added to the ball's Y position. --  Subtract - When this is selected, the expression data will subtract from the item's own channel. In this example, the box's X position is subtracted from the ball's Y position. x  Multiply - When this is selected, the expression data will multiply by the item's own channel. In this example, the box's X position is multiplied by the ball's Y position. /  Divide - When this is selected, the expression data will divide by the item's own channel. In this example, the box's X position is divided by the ball's Y position. (Because the effect of this setting varies, it doesn't lend itself to a cute picture.) > Greater Than - When this is selected, the expression data will be applied only when it is greater than the item's own channel. (Because the effect of this setting varies, it doesn't lend itself to a cute picture.) < Less Than - When this is selected, the expression data will be used only when it is less than the item's own channel.

Expression Errors:
The expression name in the Expressions List will show if there's a recognizable problem with an expression.  There are four colors that an expression name can show as in the Expressions List:  Black, Orange, Purple, and Red.

Black means that there are no syntax errors.  It doesn't guarantee that the expression will do exactly what you want it to, only that there isn't anything technically wrong with it.  But naturally if you are trying to control an object's xpos channel yet you accidentally type ypos, it won't know that something is wrong, so it will think it is correct.

Orange means that a warning has occurred within the expression.  This expression will still compute, but something within the expression may need modification in order to remove the warning color.

Purple means an error has occurred that doesn't necessarily require you to modify the expression.  For example, you may have an expression (var_2) which references another expression (var_1).  If var_1 is invalid then naturally, var_2 will know that var_1 is invalid and a computation error will now arise in var_2.  You don't need to directly edit var_2 to fix the error.   If you edit var_1, in order to make it valid, var_2 will automatically be updated.  In other words, the var_2 error will be fixed indirectly by fixing the var_1 error.

Red means there is an error that you need to fix manually, for example, an object is referenced that doesn't exist.

Debug:
Besides color coding the expression errors, messiah also provides a debug mode to help you find any problems.  If you look at the image at the top of this page, you will see the Dbg (Debug) button at the bottom left of the Expressions List.  When you turn it on, it will look at the list, investigate the errors and report back.  In the image below, the item Box is used in the expression, but the scene doesn't have an item called Box.  The Debug system has accurately identified and explained that problem.  Note:  When you are not using Debug it is a good idea to turn it off, because it uses processor power and could slow down your scene.

Even when Debug is off you can still check individual expressions.  When an expression is selected in the list it will give a readout on the Variables block.  If there is a problem with the expression, it will list it there.

Above are two examples of a debug warning.  The one on the left is the same error as in the image immediately above it, the Box error.  The other image shows the error that shows up when a purple error is reported.  There is nothing wrong with this expression, but it references an expression (var_2) that has an error.  This type of information is extremely valuable in getting your expressions to be productive and problem-free.  But use it only for good, never for evil.