Skip to content

Commit

Permalink
Renamed some files
Browse files Browse the repository at this point in the history
  • Loading branch information
jankrassnigg committed Nov 5, 2023
1 parent 1de2407 commit b824c71
Show file tree
Hide file tree
Showing 10 changed files with 68 additions and 34 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Mix Clips 1D Node
# Sample Blendspace 1D Node

<!-- PAGE IS TODO -->
<!-- TODO THIS PAGE IS OUTDATED -->
Expand All @@ -21,23 +21,23 @@ In the video above you can see such a transition in action. The *lerp* input val

## Node Properties

See [common properties](anim-nodes-playclip.md#common-properties).
See common properties.

* `Clips`: A list of animation clips between which this animation node will interpolate. The node will only ever sample the two clips whose `Position` values are closest the the value provided through the `Lerp` input pin.

## Input Pins

See [common input pins](anim-nodes-playclip.md#common-input-pins).
See common input pins.

* `Lerp`: This value determines which animation clips get mixed together. If the *lerp* value is in between two `Position` values of two clips, the output pose will be the linear interpolation of those two clips. If the *lerp* value is lower than the lowest `Position` value or higher than the highest, the output will be exactly that animation clip (there will be no extrapolation).

## Output Pins

See [common output pins](anim-nodes-playclip.md#common-output-pins).
See common output pins.

## See Also

* [Animation Graph (TODO)](animation-graph-overview.md)
* [Skeletal Animations](../skeletal-animation-overview.md)
* [Mix Clips 2D Node (TODO)](anim-nodes-mix2d.md)
* [Play Single Clip Nodes (TODO)](anim-nodes-playclip.md)
* [Sample Clip Node (TODO)](anim-nodes-sample-clip.md)
* [Sample Blendspace 2D Node (TODO)](anim-nodes-blendspace2d.md)
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Mix Clips 2D Node
# Sample Blendspace 2D Node

<!-- PAGE IS TODO -->
<!-- TODO THIS PAGE IS OUTDATED -->
Expand All @@ -15,7 +15,7 @@ Be aware that the poses will be combined linearly, though. If the poses from two

## How To Use

You add multiple animation clips and give each clip a position (`X` and `Y`). As with the [mix clips 1D node (TODO)](anim-nodes-mix1d.md), the playback of all clips is synchronized, meaning that the length of each clip may differ, but they will be played back such that they start and end in unison. That means your clips must be authored accordingly, so for example for locomotion all clips should start with the left foot forwards, then move the right foot forwards, then the left again. From that point on the clips will be looped.
You add multiple animation clips and give each clip a position (`X` and `Y`). As with the mix clips 1D node, the playback of all clips is synchronized, meaning that the length of each clip may differ, but they will be played back such that they start and end in unison. That means your clips must be authored accordingly, so for example for locomotion all clips should start with the left foot forwards, then move the right foot forwards, then the left again. From that point on the clips will be looped.

What the coordinates represent is up to you. For locomotion you could say that `X` represents left/right movement and `Y` forwards/backwards. You would then position a *walk left* clip at `(-1, 0)` a *walk right* clip at `(+1, 0)` a *walk forward* clip at `(0, +1)` and a *run forward* clip at `(0, +2)`.

Expand All @@ -25,7 +25,7 @@ The node will then take that input coordinate to decide which clips should be us

## Node Properties

See [common properties](anim-nodes-playclip.md#common-properties).
See common properties.

* `InputResponse`: A time duration over which changes to the `X` and `Y` input values are applied. This prevents sudden extreme changes. For example when `X` and `Y` are connected to physical buttons, which are just turned *on* or *off*, the final animation would jerk between those extremes. In a finished game you may want to smooth out the input yourself, but for starters this node can do a basic smoothing of the input values for you. Thus, if an input value switches from `1` to `0`, an `InputResponse` of 50ms means that the used value will transition smoothly towards `0` over that amount of time and thus the output pose will also transition smoothly.

Expand All @@ -35,17 +35,17 @@ See [common properties](anim-nodes-playclip.md#common-properties).

## Input Pins

See [common input pins](anim-nodes-playclip.md#common-input-pins).
See common input pins.

* `X`, `Y`: The input coordinate to select how to blend the `Clips`. It directly relates to the clips` positions.

## Output Pins

See [common output pins](anim-nodes-playclip.md#common-output-pins).
See common output pins.

## See Also

* [Animation Graph (TODO)](animation-graph-overview.md)
* [Skeletal Animations](../skeletal-animation-overview.md)
* [Mix Clips 1D Node (TODO)](anim-nodes-mix1d.md)
* [Play Single Clip Nodes (TODO)](anim-nodes-playclip.md)
* [Sample Clip Node (TODO)](anim-nodes-sample-clip.md)
* [Sample Blendspace 1D Node (TODO)](anim-nodes-blendspace1d.md)
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ An animation graph typically samples more than one animation. Sometimes these an

## Lerp Poses Node

The *lerp poses node* linearly interpolates between two poses. It is typically used to fade over from one pose to another and potentially to a third. Note that the node only controls the mix of the two animation poses, it is not used for synchronizing playback across clips. See the [Mix Clips 1D Node (TODO)](anim-nodes-mix1d.md) for that.
The *lerp poses node* linearly interpolates between two poses. It is typically used to fade over from one pose to another and potentially to a third. Note that the node only controls the mix of the two animation poses, it is not used for synchronizing playback across clips. See the [Sample Blendspace 1D Node (TODO)](anim-nodes-blendspace1d.md) for that.

### Node Properties

Expand Down Expand Up @@ -44,5 +44,5 @@ The *Pose Switch Node* is used to quickly but smoothly transition from one pose

## See Also

* [Animation Graph (TODO)](animation-graph-overview.md)
* [Animation Graphs (TODO)](animation-graph-overview.md)
* [Skeletal Animations](../skeletal-animation-overview.md)
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Pose Generation Nodes

<!-- PAGE IS TODO -->

## Rest Pose Node

<!-- TODO -->

## Sample Blendspace 1D Node

See [Sample Blendspace 1D Node (TODO)](anim-nodes-blendspace1d.md).

## Sample Blendspace 2D Node

See [Sample Blendspace 2D Node (TODO)](anim-nodes-blendspace2d.md).

## Sample Clip Node

See [Sample Clip Node (TODO)](anim-nodes-sample-clip.md).

## Sample Clip Sequence Node

See [Sample Sequence Node (TODO)](anim-nodes-sample-sequence.md).

## Sample Frame Node

<!-- TODO -->

## See Also

* [Animation Graphs (TODO)](animation-graph-overview.md)
* [Skeletal Animations](../skeletal-animation-overview.md)
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Play Single Clip Nodes
# Sample Clip Node

<!-- PAGE IS TODO -->
<!-- TODO THIS PAGE IS OUTDATED -->
Expand All @@ -11,7 +11,7 @@ Animation controller graphs provide multiple node types that are used for sampli

All animation controller nodes that sample animation clips share these properties:

* `Loop`: If enabled the node will loop playback while its `Active` pin is triggered. Which clip exactly gets looped depends on the node. The *play single clip node* for example just loops playback in general, but randomly picks a different clip in every iteration. The [play clip sequence node (TODO)](anim-nodes-sequence.md) on the other hand will loop its middle clip instead.
* `Loop`: If enabled the node will loop playback while its `Active` pin is triggered. Which clip exactly gets looped depends on the node. The *play single clip node* for example just loops playback in general, but randomly picks a different clip in every iteration. The play clip sequence node on the other hand will loop its middle clip instead.

* `ApplyRootMotion`: If enabled, the node will compute the [root motion](../root-motion.md) from the sampled clips and forward this to the [animation controller component](animation-controller-component.md), which may apply this to the game object's position.

Expand Down Expand Up @@ -56,5 +56,5 @@ Many animation controller nodes have some or all of these output pins:
* [Animation Graph (TODO)](animation-graph-overview.md)
* [Skeletal Animations](../skeletal-animation-overview.md)
* [Bone Weight Nodes](anim-nodes-bone-weights.md)
* [Play Clip Sequence Node (TODO)](anim-nodes-sequence.md)
* [Mix Clips 2D Node (TODO)](anim-nodes-mix2d.md)
* [Sample Sequence Node (TODO)](anim-nodes-sample-sequence.md)
* [Sample Blendspace 2D Node (TODO)](anim-nodes-blendspace2d.md)
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# Play Clip Sequence Node
# Sample Sequence Node

<!-- PAGE IS TODO -->
<!-- TODO THIS PAGE IS OUTDATED -->

The *play clip sequence node* is similar to the [play single clip node (TODO)](anim-nodes-playclip.md), however, instead of playing just a single clip (looped), the sequence node plays at least three clips in a row. One to enter an animation state, one (looped) animation while it stays active, and one to exit the animation state.
The *play clip sequence node* is similar to the play single clip node, however, instead of playing just a single clip (looped), the sequence node plays at least three clips in a row. One to enter an animation state, one (looped) animation while it stays active, and one to exit the animation state.

Such sequences are common for actions such as jumping or climbing a ladder. The start clip transitions the character from a start state, such as idle or walking into the new state, such as *jumping*. The middle clip is then played as long as the jumping state needs to continue, and once the character hits the ground again, the end clip is played to transition back.

Expand All @@ -13,7 +13,7 @@ The video above shows such a sequence. Here the node uses a *point gun* animatio

## Node Properties

See [common properties](anim-nodes-playclip.md#common-properties).
See common properties.

* `StartClip`: The [animation clip](../animation-clip-asset.md) to start with. This clip should end on a keyframe from where the `MiddleClips` can continue seemlessly.

Expand All @@ -23,13 +23,13 @@ See [common properties](anim-nodes-playclip.md#common-properties).

## Input Pins

See [common input pins](anim-nodes-playclip.md#common-input-pins).
See common input pins.

* `MiddleClipIndex`: This pin can be used to select which of the `MiddleClips` to play next. In the video above this is used to select whether the gun should get fired or not.

## Output Pins

See [common output pins](anim-nodes-playclip.md#common-output-pins).
See common output pins.

* `OnNextClip`: This pin will get triggered every time a clip finishes and the next middle or end clip starts. This can be used to know for example when the start phase has finished.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ The goal of an animation graph is to sample a number of [animation clips](../ani

<!-- TODO: TEXT IS OUTDATED -->

Right click into the main area to open a context menu. Here you select which nodes to add to the graph. Every graph requires at least an [output node (TODO)](anim-nodes-output.md), a model space conversion node and a node to sample a clip, for example a [play single clip node (TODO)](anim-nodes-playclip.md). Once the graph samples two different clips you also need a combine poses node.
Right click into the main area to open a context menu. Here you select which nodes to add to the graph. Every graph requires at least an [output node (TODO)](anim-nodes-output.md), a model space conversion node and a node to sample a clip, for example a play single clip node. Once the graph samples two different clips you also need a combine poses node.

### Connecting Nodes

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ The flow of information is from left to right.

On the far left side the two green nodes are used to [read state from the blackboard](anim-nodes-blackboard.md). Here we read the blackboard values *PlayIdle* and *PlayWave* to see which animation clips should get played. The pink output pins are *trigger pins*, meaning they can be *active* (*triggered*) or *inactive*. When the read value is `1` (in this case) the pins are set to *triggered* which then activates the connected nodes to the right.

The two light blue nodes are used to [sample animation clips (TODO)](anim-nodes-playclip.md). There are different ways how animation clips can be played, but here we only use very basic (looped) playback. When the *PlayIdle* blackboard value is set, the *Idle* clip will be sampled. When the *PlayWave* blackboard value is set, the *Wave* clip will get sampled. Any combination is possible, so both clips can be played at the same time.
The two light blue nodes are used to sample animation clips. There are different ways how animation clips can be played, but here we only use very basic (looped) playback. When the *PlayIdle* blackboard value is set, the *Idle* clip will be sampled. When the *PlayWave* blackboard value is set, the *Wave* clip will get sampled. Any combination is possible, so both clips can be played at the same time.

The sampling nodes have a *LocalPose* output pin. This pin represents the animation pose that was determined. The pin also carries information about *weighting* the pose. That means when the clip playback was just started, the pose may still be fading and shouldn't immediately have full influence. Similarly, if a pose shall only be applied to a certain body part these [bone weights](anim-nodes-bone-weights.md) are also included here and will be forwarded to any following node.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,15 @@ animation-graph-overview.md
animation-graph-asset.md
animation-controller-component.md
anim-nodes-blackboard.md
anim-nodes-blendspace1d.md
anim-nodes-blendspace2d.md
anim-nodes-bone-weights.md
anim-nodes-debug.md
anim-nodes-events.md
anim-nodes-input.md
anim-nodes-logic-math.md
anim-nodes-mix1d.md
anim-nodes-mix2d.md
anim-nodes-output.md
anim-nodes-playclip.md
anim-nodes-pose-blending.md
anim-nodes-sequence.md
anim-nodes-pose-generation.md
anim-nodes-sample-clip.md
anim-nodes-sample-sequence.md
9 changes: 5 additions & 4 deletions pages/docs/toc.md
Original file line number Diff line number Diff line change
Expand Up @@ -180,17 +180,18 @@
#### [Animation Graph Asset (TODO)](animation/skeletal-animation/animation-controller/animation-graph-asset.md)
#### [Animation Controller Component](animation/skeletal-animation/animation-controller/animation-controller-component.md)
#### [Blackboard Nodes](animation/skeletal-animation/animation-controller/anim-nodes-blackboard.md)
#### [Sample Blendspace 1D Node (TODO)](animation/skeletal-animation/animation-controller/anim-nodes-blendspace1d.md)
#### [Sample Blendspace 2D Node (TODO)](animation/skeletal-animation/animation-controller/anim-nodes-blendspace2d.md)
#### [Bone Weight Nodes](animation/skeletal-animation/animation-controller/anim-nodes-bone-weights.md)
#### [Debug Nodes](animation/skeletal-animation/animation-controller/anim-nodes-debug.md)
#### [Event Nodes](animation/skeletal-animation/animation-controller/anim-nodes-events.md)
#### [Input Nodes](animation/skeletal-animation/animation-controller/anim-nodes-input.md)
#### [Logic and Math Nodes](animation/skeletal-animation/animation-controller/anim-nodes-logic-math.md)
#### [Mix Clips 1D Node (TODO)](animation/skeletal-animation/animation-controller/anim-nodes-mix1d.md)
#### [Mix Clips 2D Node (TODO)](animation/skeletal-animation/animation-controller/anim-nodes-mix2d.md)
#### [Output Nodes (TODO)](animation/skeletal-animation/animation-controller/anim-nodes-output.md)
#### [Play Single Clip Nodes (TODO)](animation/skeletal-animation/animation-controller/anim-nodes-playclip.md)
#### [Pose Blending Nodes](animation/skeletal-animation/animation-controller/anim-nodes-pose-blending.md)
#### [Play Clip Sequence Node (TODO)](animation/skeletal-animation/animation-controller/anim-nodes-sequence.md)
#### [Pose Generation Nodes (TODO)](animation/skeletal-animation/animation-controller/anim-nodes-pose-generation.md)
#### [Sample Clip Node (TODO)](animation/skeletal-animation/animation-controller/anim-nodes-sample-clip.md)
#### [Sample Sequence Node (TODO)](animation/skeletal-animation/animation-controller/anim-nodes-sample-sequence.md)
### [Animation Events](animation/skeletal-animation/animation-events.md)
### [Root Motion](animation/skeletal-animation/root-motion.md)
### [Joint Attachment Component](animation/skeletal-animation/joint-attachment-component.md)
Expand Down

0 comments on commit b824c71

Please sign in to comment.