Legacy Documentation: Version 4.5.0

Script language:

  • JS
  • C#
  • Boo
Script language

Select your preferred scripting language. All code snippets will be displayed in this language.

var weight: float;
float weight;
weight as float

Description

The weight of animation.

This calculates the blend weights for one curve.

Weights are distributed so that the top layer gets everything. If it doesn't use the full weight then the next layer gets to distribute the remaining weights and so on. Once all weights are used by the top layers, no weights will be available for lower layers anymore Unity uses fair weighting, which means if a lower layer wants 80% and 50% have already been used up, the layer will NOT use up all weights. instead it will take up 80% of the 50%.

Example: a upper body which is affected by wave, walk and idle a lower body which is affected by only walk and idle.

	weight  name   layer   lower   upper
	 20%    wave     2        0%      20% 
	 50%    walk      1        50%    40% 
	 100%   idle       0        50%    40%

- Blend weights can change per animated value because of mixing. Even without mixing, sometimes a curve is just not defined. Still you want the blend weights to add up to 1. Most of the time weights are similar between curves.

	// Set the blend weight of the walk animation to 0.5
	animation["Walk"].weight = 0.5;
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour {
    void Example() {
        animation["Walk"].weight = 0.5F;
    }
}
import UnityEngine
import System.Collections

public class ExampleClass(MonoBehaviour):

	def Example() as void:
		animation['Walk'].weight = 0.5F