Bird
Raised Fist0
Unityframework~10 mins

Blend trees in Unity - Step-by-Step Execution

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Concept Flow - Blend trees
Start Animation State
Get Input Parameters
Evaluate Blend Tree
Calculate Blend Weights
Mix Animations Based on Weights
Output Final Animation Frame
Loop
Blend trees take input values, calculate weights for animations, mix them smoothly, and output the final animation frame.
Execution Sample
Unity
BlendTree blendTree = new BlendTree();
blendTree.AddMotion(walkAnimation, 0f);
blendTree.AddMotion(runAnimation, 1f);
float speed = 0.5f;
AnimationClip current = blendTree.Evaluate(speed);
This code creates a blend tree with walk and run animations and evaluates the blended animation at speed 0.5.
Execution Table
StepInput Parameter (speed)Blend Weights (walk, run)ActionOutput Animation
10.0(1.0, 0.0)Select walk animation fullywalkAnimation
20.5(0.5, 0.5)Blend walk and run equallyBlended walk/run animation
31.0(0.0, 1.0)Select run animation fullyrunAnimation
41.2(0.0, 1.0)Clamp to max run animationrunAnimation
5ExitN/AInput out of range or animation playedStop or loop animation
💡 Input parameter exceeds blend range or animation ends, stopping evaluation.
Variable Tracker
VariableStartAfter Step 1After Step 2After Step 3After Step 4Final
speedundefined0.00.51.01.21.2
blendWeightsundefined(1.0, 0.0)(0.5, 0.5)(0.0, 1.0)(0.0, 1.0)(0.0, 1.0)
outputAnimationundefinedwalkAnimationBlended walk/run animationrunAnimationrunAnimationrunAnimation
Key Moments - 2 Insights
Why does the blend weight for run animation stay at 1.0 even when speed is 1.2?
Because the blend tree clamps input values to the max defined motion (1.0), so speeds above 1.0 use full run animation as shown in execution_table step 4.
How does the blend tree decide the weights for walk and run at speed 0.5?
At speed 0.5, the blend tree calculates weights proportionally between walk (0.0) and run (1.0), resulting in equal weights (0.5, 0.5) as in step 2.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what are the blend weights at step 2 when speed is 0.5?
A(1.0, 0.0)
B(0.5, 0.5)
C(0.0, 1.0)
D(0.25, 0.75)
💡 Hint
Check the 'Blend Weights' column at step 2 in the execution_table.
At which step does the blend tree use only the run animation without blending?
AStep 3
BStep 2
CStep 1
DStep 5
💡 Hint
Look for where blend weights are (0.0, 1.0) in the execution_table.
If the input speed was 0.25, how would the blend weights change compared to step 2?
AWeights would be (0.5, 0.5)
BWeights would be (0.25, 0.75)
CWeights would be (0.75, 0.25)
DWeights would be (1.0, 0.0)
💡 Hint
Weights are proportional to input between 0.0 and 1.0 as shown in variable_tracker for speed and blendWeights.
Concept Snapshot
Blend trees mix animations smoothly based on input parameters.
Define motions with parameter values.
Input controls blend weights between motions.
Weights sum to 1 for smooth transitions.
Clamp inputs outside defined range.
Output is the final blended animation frame.
Full Transcript
Blend trees in Unity take input values like speed to decide how much to mix different animations. The process starts by reading the input parameter, then calculating blend weights for each animation based on that input. For example, if speed is 0.5 between walk (0.0) and run (1.0), the blend weights are equal, mixing both animations evenly. If the input goes beyond the max defined value, the blend tree clamps it to the max animation. This way, the output animation smoothly changes as input changes, creating natural transitions. The execution table shows step-by-step how input affects weights and output animation. Variables like speed and blendWeights update each step, guiding the final animation frame output.

Practice

(1/5)
1. What is the main purpose of a Blend Tree in Unity's animation system?
easy
A. To smoothly mix multiple animations based on parameters like speed or direction
B. To create 3D models for characters
C. To write scripts for controlling animations
D. To manage audio clips in a game

Solution

  1. Step 1: Understand what blend trees do

    Blend trees combine animations smoothly based on input parameters.
  2. Step 2: Identify the correct purpose

    They help create natural transitions by mixing animations like walking and running.
  3. Final Answer:

    To smoothly mix multiple animations based on parameters like speed or direction -> Option A
  4. Quick Check:

    Blend trees = smooth animation mixing [OK]
Hint: Blend trees mix animations smoothly using parameters [OK]
Common Mistakes:
  • Confusing blend trees with 3D modeling tools
  • Thinking blend trees are for scripting
  • Mixing up audio management with animation blending
2. Which of the following is the correct way to create a 1D blend tree in Unity's Animator window?
easy
A. Right-click in Animator > Create Layer > Add Blend Tree > Set parameter to bool
B. Right-click in Animator > Create State > From New Animation Clip > Set parameter to int
C. Right-click in Animator > Create State > From New Script > Set parameter to string
D. Right-click in Animator > Create State > From New Blend Tree > Set parameter to float

Solution

  1. Step 1: Recall how to create blend trees

    In Animator, you create a new state from a blend tree and assign a float parameter for blending.
  2. Step 2: Match the correct steps

    Right-click in Animator > Create State > From New Blend Tree > Set parameter to float correctly describes creating a blend tree state and setting a float parameter.
  3. Final Answer:

    Right-click in Animator > Create State > From New Blend Tree > Set parameter to float -> Option D
  4. Quick Check:

    Create blend tree with float parameter = Right-click in Animator > Create State > From New Blend Tree > Set parameter to float [OK]
Hint: Blend trees need float parameters, not int or bool [OK]
Common Mistakes:
  • Using int or bool parameters instead of float
  • Creating animation clips instead of blend trees
  • Trying to create blend trees in layers instead of states
3. Given a 2D blend tree with parameters Speed and Direction, what happens when Speed is 0 and Direction is 1?
medium
A. The character plays the idle animation because speed is zero
B. The character runs forward because direction is 1
C. The character blends between walk and run animations
D. The character plays a backward animation regardless of speed

Solution

  1. Step 1: Understand parameter roles in blend tree

    Speed controls movement intensity; 0 means no movement (idle).
  2. Step 2: Analyze given values

    Speed=0 means no movement, so direction does not cause running.
  3. Final Answer:

    The character plays the idle animation because speed is zero -> Option A
  4. Quick Check:

    Speed 0 means idle animation [OK]
Hint: Speed 0 means idle, direction alone doesn't move character [OK]
Common Mistakes:
  • Assuming direction alone triggers movement
  • Thinking blend tree blends walk and run at zero speed
  • Ignoring that speed controls animation intensity
4. You created a blend tree but the character animation does not change when you adjust the parameter. What is the most likely cause?
medium
A. The blend tree has too many animations
B. The parameter used in the blend tree is not linked to the Animator Controller
C. The Animator window is closed
D. The character model is missing textures

Solution

  1. Step 1: Check parameter linkage

    If the parameter controlling the blend tree is not connected, animations won't change.
  2. Step 2: Evaluate other options

    Too many animations or closed Animator window don't stop blending; missing textures affect visuals, not animation.
  3. Final Answer:

    The parameter used in the blend tree is not linked to the Animator Controller -> Option B
  4. Quick Check:

    Unlinked parameter stops animation change [OK]
Hint: Ensure blend tree parameters are linked in Animator [OK]
Common Mistakes:
  • Blaming number of animations for no change
  • Not linking parameters properly
  • Confusing visual issues with animation blending
5. You want to create a blend tree that smoothly blends between idle, walk, and run animations based on speed, but also changes direction smoothly. Which setup is best?
hard
A. Use multiple 1D blend trees, one for speed and one for direction, without combining them
B. Use a single 1D blend tree with only 'Speed' parameter and ignore direction
C. Use a 2D blend tree with 'Speed' and 'Direction' float parameters, assigning animations at correct positions
D. Use animation layers instead of blend trees to handle speed and direction

Solution

  1. Step 1: Understand blending needs

    To blend speed and direction smoothly, a 2D blend tree with both parameters is ideal.
  2. Step 2: Evaluate options

    Multiple 1D trees won't combine parameters smoothly; ignoring direction loses natural movement; layers handle different animations but not smooth blending.
  3. Final Answer:

    Use a 2D blend tree with 'Speed' and 'Direction' float parameters, assigning animations at correct positions -> Option C
  4. Quick Check:

    2D blend tree with speed and direction = best setup [OK]
Hint: Use 2D blend tree for smooth speed and direction blending [OK]
Common Mistakes:
  • Using separate 1D blend trees without combining
  • Ignoring direction parameter
  • Relying on layers instead of blend trees for smooth blending