Procedural Animation Editor: Nodes – Arma Reforger

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "</syntaxhighlight>" to "</enforce>")
 
(6 intermediate revisions by 2 users not shown)
Line 100: Line 100:
|-
|-
| Update collider
| Update collider
|
| Defines if collider should be updated (rotated) when this animation is performed.
|
| By default this option is set to off to save some performance.
|-
|-
| colspan="3" | '''Node Inputs'''
| colspan="3" | '''Node Inputs'''
Line 137: Line 137:
|-
|-
| Update collider
| Update collider
| If checked, update the model's collider.
| Defines if collider should be updated (rotated) when this animation is performed.  
|
| By default this option is set to off to save some performance.
|-
|-
| X axis
| X axis
Line 480: Line 480:
| Sets signal's value in real time.
| Sets signal's value in real time.
| If no node is selected, this value is shown. Has an effect only in the editor for testing and debugging.
| If no node is selected, this value is shown. Has an effect only in the editor for testing and debugging.
If the chain contains a Smoother node, this value has no effect.
In 0.9.5.x version of the Workbench, if the chain contains a Smoother node, this value has no effect.
|}
|}


Line 525: Line 525:


'''Random''' generates a value in the defined range.
'''Random''' generates a value in the defined range.
{| class="²"
{| class="wikitable"
! Name
! Name
! Description
! Description
Line 539: Line 539:
|-
|-
| Min
| Min
|
| Defines the beginning of the range in which the random number is generated
Defines the beginning of the range in which the random number is generated
|
|
|-
|-
Line 549: Line 548:
| Update rate
| Update rate
| Defines how often the value is generated.
| Defines how often the value is generated.
* Every Get - every time when the branch with the signal is processed (i.e. when the engine is on/off)
* Every Get - every time when the branch with the signal is processed (i.e. when the engine is on/off)
* Every Frame - every frame of the game.
* Every Frame - every frame of the game.
Line 1,022: Line 1,020:
| colspan="2" | x Min
| colspan="2" | x Min
|
|
<syntaxhighlight lang="C#">
<enforce>
if (A == B && C = D)
if (A == B && C = D)
{
{
Line 1,030: Line 1,028:
output = 0;
output = 0;
}
}
</syntaxhighlight>
</enforce>
|-
|-
| B
| B

Latest revision as of 19:18, 30 July 2022

pap Nodes and Buttons

Signal

This button is a shortcut to create a Signal (.siga) resource and node.

Name Description Note
Name Name of the input. It is the same as name of the output in *.siga file.
Comment Custom user comment.
Path .siga file path

In order to use an existing .siga node file, drag and drop it from the Resource Browser into the Main Window.

Constants

Set constant key-value pairs.

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.
Metadata
Constant values
Node Outputs
Set Key(s) Respective Key Value(s)

Bone

Add a new bone to the project.

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.
Bone name Name of the bone in the preview model. List is only populated if preview model was previously selected. This option is only used for preview of animation - it doesn't affect animation on asset to which it is attached.
Node Output
Out Bone name.

RotationSet

Set rotation of the bone. Only functionality of this node is to execute the animation.

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.
Update collider Defines if collider should be updated (rotated) when this animation is performed. By default this option is set to off to save some performance.
Node Inputs
In Bone name.
Rotation Rotation value.
Node Output
Out Value, how much the bone rotates.

RotationMake

Set the axis in which the bone gets rotated.

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.
Update collider Defines if collider should be updated (rotated) when this animation is performed. By default this option is set to off to save some performance.
X axis Value, how much the bone rotates around the X axis.
Y axis Value, how much the bone rotates around the Y axis.
Z axis Value, how much the bone rotates around the Z axis.
Node Inputs
X axis Value, how much the bone rotates around the X axis.
Y axis Value, how much the bone rotates around the Y axis.
Z axis Value, how much the bone rotates around the Z axis.

RotationBreak

Break rotation vector into separate elements (x, y, z)

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.
Node Inputs
In Rotation input
Node Output
X axis Value, how much the bone rotates around the X axis.
Y axis Value, how much the bone rotates around the Y axis.
Z axis Value, how much the bone rotates around the Z axis.

TranslateSet

Bone's translation. The only functionality of this node is to execute the animation.

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.
Node Inputs
In Bone to be translated.
Translation Translation vectors.
Node Output
Out

TranslateMake

Set the axis in which the bone is translated.

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.
X axis Value, how much the bone is translated in the X axis.
Y axis Value, how much the bone is translated in the Y axis.
Z axis Value, how much the bone is translated in the Z axis.
Node Inputs
X axis Value, how much the bone is translated in the X axis.
Y axis Value, how much the bone is translated in the Y axis.
Z axis Value, how much the bone is translated in the Z axis.
Node Output
Out

TranslateBreak

Break translation vector into separate elements (x, y, z)

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.
Node Inputs
In Vector (x, y, z)
Node Output
X axis Value, how much the bone is translated in the X axis.
Y axis Value, how much the bone is translated in the Y axis.
Z axis Value, how much the bone is translated in the Z axis.

ScaleSet

Set bone's scale. Only functionality of this node is to execute the animation.

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.
Update collider If checked, update the model's collider.
Node Inputs
In Bone to be scaled
Scale Vectors of scale
Node Output
Out

ScaleMake

Sets the axis in which the bone is scaled.

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.
X axis Value, how much the bone is scaled in the X axis.
Y axis Value, how much the bone is scaled in the Y axis.
Z axis Value, how much the bone is scaled in the Z axis.
Node Inputs
X axis Value, how much the bone is scaled in the X axis.
Y axis Value, how much the bone is scaled in the Y axis.
Z axis Value, how much the bone is scaled in the Z axis.
Node Output
Out

ScaleBreak

Break scale vector to separate elements (x, y, z)

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.
Node Inputs
In Vector (x, y, z)
Node Output
X axis Value, how much the bone is scaled in the X axis.
Y axis Value, how much the bone is scaled in the Y axis.
Z axis Value, how much the bone is scaled in the Z axis.


siga Nodes

Input

Input is a value (number) provided by the engine.

Name Description Note
Name Must reflect how input is named in the engine.
Comment Custom user comment.
Value Set signal's value. This has an effect only in the editor for testing and debugging.
Min Sets signal's minimum value. This has an effect only in the editor for testing and debugging.
Max Sets signal's maximal value. This has effect only in editor for testing and debugging.
ValRT Sets signal's value in real time. If no node is selected, this value is shown. Has an effect only in the editor for testing and debugging.

In 0.9.5.x version of the Workbench, if the chain contains a Smoother node, this value has no effect.

Output

Output is a value (number) sent from *.siga to *.pap file when it's processed.

Name Description Note
Name Signal's name, used in *.pap file.
Comment Custom user comment.

Value

Value, as its name suggests, represents a number defined by the user.

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.
Value Any number which this node will represent.

Random

Random generates a value in the defined range.

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.
Min Defines the beginning of the range in which the random number is generated
Max Defines the end of the range in which the random number is generated
Update rate Defines how often the value is generated.
  • Every Get - every time when the branch with the signal is processed (i.e. when the engine is on/off)
  • Every Frame - every frame of the game.

Generator

Generator sets a value in the predefined interval.

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.
Value to generate
Value to generate by the generator.
Interval Interval in milliseconds in which the number is generated.

Sum

Sum all input values together.

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.

Sub

Subtract a value from another.

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.
Subtracter Value which will be used as subtracter, if it's not set on node input.
Node Inputs
In
The value from which it will be subtracted.
Subtracter (Optional) Value which will be used as subtracter.

Mul

Multiply inputs with each other.

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.

Min

Minimum value of all inputs.

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.

Max

Maximum value of all inputs.

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.

Exp

Returns the base-exponential function x, which is e raised to the power x: ex.

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.

Ln

Natural logarithm.

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.

Log2

Logarithm with base 2.

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.

Log10

Logarithm with base 10.

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.

Abs

Return absolute value.

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.

Div

Divide the dividend with the divisor.

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.
Divisor Value which will be used as divisor, if it's not set on node input.
Node Inputs
In The value which will be divided.
Divisor Value used as divisor

Pow

Return the input raised to the power of Exponent.

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.
Node Inputs
In Input value.
Exponent Value used as Exponent.

Remainder

Return the remainder of dividing input with divisor.

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.
Node Inputs
In Input value.
Divisor Value used as the divisor.

Average

Average the input values over time.

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.
Capacity (rounded to the closest power of two)

Convertor

Convert the input into a value defined by the interval it falls into.

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.
Input as default If checked, input value is used as a default value.
Default Default value.
Ranges Set the range of value which will be converted to output value. i.e.:

If the signal value has a range from 0 to 1 and Min is set to 0.1, Max to 0.2 with Out set to 100, the output value will be set to 100 if the Min / Max condition is met. Multiple of ranges can be set in one Convertor.

Min Minimal value.
Max Maximal value
Out Output value

Db2Gain

Convert decibels to gain.

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.

Gain2Db

Convert gain to decibels.

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.

St2Gain

Convert semitone to gain.

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.

Gain2St

Convert gain to semitone.

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.

Freq2Oc

Convert frequency to octave.

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.

Env

Envelope.

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.
A x Min

if (A == B && C = D) { if (input >= A && input < C) output = 1; else output = 0; }

B x Max
C x Min
D x Max
Fade-in Interpolation curve type. Between A and B
Fade-out type Interpolation curve type. Between C and D
Linear
S-Curve
Power of 1.41 f(x) = x^1.41
Power of 2 f(x) = x^2
Power of 3 f(x) = x^3
Power of 1/1.41 f(x) = x^1/1.41
Power of 1/2 f(x) = x^1/2
Power of 1/3 f(x) = x^1/3

Interpolate

Interpolate between two values.

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.
X min Minimal value of X.
X max Maximal value of X.
Y min Minimal value of Y.
Y max Maximal value of Y.
Fade-in / Fade-out type
Linear
S-Curve
Power of 1.41 f(x) = x^1.41
Power of 2 f(x) = x^2
Power of 3 f(x) = x^3
Power of 1/1.41 f(x) = x^1/1.41
Power of 1/2 f(x) = x^1/2
Power of 1/3 f(x) = x^1/3

Smoother

Smooth the input value over time.

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.
Fade-in time Time in which value transform from lower value to higher value in milliseconds. i.e.: 0 to 1
Fade-in type Defines the function used to interpolate the value.
Fade-out time Time in which value transform from higher value to a lower value in milliseconds. i.e.: 1 to 0
Fade-out type Defines the function used to interpolate the value.
Input resets timer If checked, the new input will reset the time of previous interpolation.
Always interpolate
Check to make sure that the interpolation of the current value is completed even if a new value arrives.

Floor

Round downward, returning the largest integral value that is not greater than input.

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.

Ceil

Round upward, returning the smallest integral value that is greater than input.

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.

Round

Round the value.

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.

Clamp

Make sure that the input will be inside min-max interval.

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.
Min Minimal value.
Max Maximal value.
Node Inputs
In Input value to clamp.
Min Minimal value.
Max Maximal value.

ClampMin

Make sure that the input will never be smaller than min.

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.
Min Minimal value.
Node Inputs
In Input value to clamp.
Min Minimal value.

ClampMax

Make sure that the input will never be greater than max.

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.
Max Maximal value.
Node Inputs
In Input value to clamp.
Max Maximal value.

Sin

Sine of an input angle in radians.

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.

Cos

Cosine of an input angle in radians.

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.

Tan

Tangent of an input angle in radians.

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.

ASin

Arcus sine of an input angle in radians.

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.

ACos

Arcus cosine of an input angle in radians.

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.

ATan

Arcus tangent of an input angle in radians.

Name Description Note
Name Name of the node. Used for better orientation in the project.
Comment Custom user comment.