Expression Components and Instructions: Difference between revisions
|  Created page with "== Components == The component portion of an expression is what will be affected. For example,   = 0 [Instructions] will take the value of the [Instructions] portion, and push it onto the X position of the Expression bone, while;  = 4 [Instructions] will take the value of the [Instructions] portion, and push it onto the Y rotation of the bone. {| class="wikitable" |+ !Component !Value |- |0 |X Position |- |1 |Y Position |- |2 |Z Position |- |3 |X Rotation |- |4 |Y Rotati..." | m Attributions | ||
| Line 37: | Line 37: | ||
| |Z Scale | |Z Scale | ||
| |} | |} | ||
| <nowiki>*</nowiki>Component info from Skyth | |||
| == Instructions == | == Instructions == | ||
| Line 112: | Line 113: | ||
| |Unimplemented, makes value 0. (It is meant to randomly generate between 0 and 1) | |Unimplemented, makes value 0. (It is meant to randomly generate between 0 and 1) | ||
| |} | |} | ||
| Function info from Skyth | |||
| For example: | For example: | ||
|   = 0 v 1 f av |   = 0 v 1 f av | ||
| Line 172: | Line 175: | ||
| |X to the power of Y | |X to the power of Y | ||
| |} | |} | ||
| <nowiki>*</nowiki>Function info from Skyth | |||
| For example: | For example: | ||
|   = 6 n 1 n 3 g + |   = 6 n 1 n 3 g + | ||
| would set the X scale of the bone to 4 (since it adds 3 and 1) | would set the X scale of the bone to 4 (since it adds 3 and 1) | ||
Revision as of 05:43, 17 September 2025
Components
The component portion of an expression is what will be affected. For example,
= 0 [Instructions]
will take the value of the [Instructions] portion, and push it onto the X position of the Expression bone, while;
= 4 [Instructions]
will take the value of the [Instructions] portion, and push it onto the Y rotation of the bone.
| Component | Value | 
|---|---|
| 0 | X Position | 
| 1 | Y Position | 
| 2 | Z Position | 
| 3 | X Rotation | 
| 4 | Y Rotation | 
| 5 | Z Rotation | 
| 6 | X Scale | 
| 7 | Y Scale | 
| 8 | Z Scale | 
*Component info from Skyth
Instructions
Instructions are the math portion of expressions. The following operations are allowed:
Number
n [value]
The n instruction pushes a number to the stack, for example:
= 6 n 1
sets the X Scale of the bone to 1
Variable
v [variable]
The v instruction gets a variable, then pushes it to the stack. The variable can either be:
[Component].[Bone] (eg, 4.j_kao_wj, 2.kl_mune_b_wj, 6.j_ude_l_wj)
or
the t instruction (time elapsed)
For example:
= 1 v 4.j_kao_wj
This would set the Y position of the bone to the Y rotation of j_kao_wj, or:
= 2 v t
This would set the Z position of the bone to the value of time elapsed
Function
f [function]
The f instruction gets the value on the stack, applies the function, then pushes the value. The function used can be:
| neg | Negate the value | 
| sin | Sine function (in degrees) | 
| cos | Cosine function (in degrees) | 
| tan | Tangent function (in degrees) | 
| abs | Absolute Value function | 
| sqrt | Square Root | 
| av | Multiplies value by 0.1 | 
| floor | Outputs the floor (lowest integer) of a value | 
| ceil | Outputs the ceiling (highest integer) of a value | 
| round | Roundsthe value | 
| asin | Inverse Sine function | 
| acos | Inverse Cosine function | 
| atan | Inverse Tangent function | 
| log | Logarithm function | 
| exp | Exponentation function | 
| rand_0_1 | Unimplemented, makes value 0. (It is meant to randomly generate between 0 and 1) | 
Function info from Skyth
For example:
= 0 v 1 f av
would set the X position of the bone to 0.1 (since the 1 is multiplied by 0.1)
Secondary Functions
g [function]
The g instruction gets two values from the stack, applies the function provided, then pushes the result. The function used can be:
| + | Adds the values | 
| - | Subtracts X from Y | 
| * | Multiplies the values | 
| / | Divides X by Y | 
| % | Takes a portion of X by Y | 
| == | Outputs 1 if values are equal, else 0 | 
| > | Outputs 1 if X is greater, else 0 | 
| >= | Outputs 1 if X is greater or equal, else 0 | 
| < | Outputs 1 if X is lesser, else 0 | 
| <= | Outputs 1 if X is lesser or equal, else 0 | 
| != | Outputs 1 if values are not equal, else 0 | 
| && | Outputs 1 if both values are 1, else 0 | 
| || | Outputs 1 if one value is 1, else 0 | 
| min | Outputs the lowest value | 
| max | Outputs the highest value | 
| fmod | Divides X by Y, and outputs the remainder | 
| pow | X to the power of Y | 
*Function info from Skyth
For example:
= 6 n 1 n 3 g +
would set the X scale of the bone to 4 (since it adds 3 and 1)

