====Binding Expressions====
You can use //expressions// to change how values from an ARDI asset are translated into effects.
These are most often used when you need to convert a measurement from raw units (ie. meters) to a value more suitable for an effect.
The basic format is...
[ ]
However, there are three expression types that can help change the value.
===Converting to Boolean===
[ |value1|value2|value3 ]
This expression results in a boolean (yes/no) value. When the property (for example, 'Mode') matches any one of the given values, the boolean is 'true'. Otherwise, it's 'false'.
===Using Measurement Scales===
[ :%::]
This uses the minimum and maximum scale of the measurement to rescale the value. It's most often used to convert properties from a raw value (for instance, tank level measured in meters) to a height (tank level measured in %).
Let's take a look at the following example...
**Tank Level** - Analogue value, 0.5 - 2.5m
If you used this expression... [ Tank Level:%:0:100 ]
Then you would get the following values....
^Input^Output^
|0.5|0 (0%)|
|1|25 (25%)|
|1.5|50 (50%)|
|2|75 (75%)|
|2.5|100 (100%)|
===Mathematical Transform===
[ :*::]
This option allows you to add an offset and multiplier to your values.
Lets take a look at the last example, where we again want to convert a tank level in meters to a percentage.
**Tank Level** - Analogue value, 0.5 - 2.5m
To convert a 0.5-2.5 value to a 0-1 value, we need to first subtract 0.5, then multiply by 0.5. This gives us the following expression [ Tank Level:*:-0.5:0.5 ]
//NOTE - Where possible, please use the measurement-scale version of this function. This allows users to adjust your visual scales globally from the web interface, without needing to edit individual effect files.//
===Examples===
^Example^Description^
|[ Level ]|A simple copy of the property into the effect.|
|[ Level|1 ]|Is '1' when the property equals one, otherwise it's 0.|
|[ Level|3|5|12 ]|Is '1' when the property equals three, five or twelve, otherwise it's 0|
|[ Level:%:0:100]|Use the percentage of the property range. If the property has a range between 0 and 500, 500 results in an effect value of 100, 250 results in an effect of 50, 0 results in an effect of 0.|
|[ Level:*:20:2 ]|The first option is an //offset// (an amount added to the base) and the second option is a multiplier. In this example, 20 is added to the amount before it is multiplied by 2, so that 0=40, 50 = 140 etc.|