Unity - Ръководство за смесени дървета

Една често срещана задача в анимацията на играта е смесването на две или повече подобни анимации. Може би най-известният пример е смесването на анимации за ходене и бягане, за да съответства на скоростта на героя. Другият е приблизително накланянето на героя наляво или надясно в случай на завъртане по време на бягане.

Важно е да се прави разлика между Transitions и Blend Trees. Докато и двете се използват за създаване на плавни анимации, те се използват за различни видове ситуации.

Преходите се използват за плавен преход от една анимация към друга за определен период от време. Преходите са посочени като част от State Machine на анимацията. Преходът от едно движение към напълно друго обикновено протича нормално, ако преходът се извършва бързо.

Blend Trees се използват за плавно смесване на множество анимации чрез комбинирането им в различна степен. Стойността, която всяко движение допринася за крайната анимация, се контролира от параметъра за смесване, който е един от числените параметри на анимацията на контролера на аниматора. За да има смисъл едно смесено движение, смесените движения трябва да са приблизително равни по дължина и характер. Blend Trees са специален вид анимация в Animation State Machine.

Анимациите за ходене и бягане са примери за такива движения. За да работи правилно смесването, клиповете трябва да се движат на едно и също място в нормализирано време. Например, анимациите за ходене и бягане могат да бъдат прихванати, така че когато кракът удари пода, да останат на място в нормализирано време (например левият крак достигне 0,0, а десният удари 0,5). защото се използва нормализирано време, тогава дължината на клиповете няма значение.

Използване на смесени дървета

За да започнете с новото Blend Tree, трябва да:

  1. Щракнете с десния бутон върху празно място в прозореца на Animator Controller.
  2. Изберете Създаване на състояние > От New Blend Tree от контекстното меню, което се появява.
  3. Щракнете два пъти върху Blend Tree, за да отворите Blend Tree Graph.

Прозорецът на аниматора вече показва графика на цялото Blend Tree, докато инспекторът показва текущо избрания възел и неговите деца.

Blend
Прозорецът на Animator Windows показва графика на цялото Blend Tree. Отляво има Blend Tree само с основния Blend Node. Вдясно - Дърво на смесване с основен възел на смесване и три анимационни клипа като дъщерни възли

За да добавите анимационни клипове към дървото на смесване, можете да изберете дървото на смесване, след което щракнете върху иконата плюс в полето за движение в инспектора.

Blend
Възелът на смесване се показва в инспектора, преди да се добави каквото и да е движение.

Като алтернатива можете да добавите анимационни клипове или дъщерни възли на смесване, като щракнете с десния бутон върху дървото на смесване и изберете от контекстното меню:

Контекстното меню при щракване с десния бутон върху възел на смесено дърво.

Това дава графично представяне на начина, по който анимациите се комбинират при промяна на стойността (докато плъзгате плъзгача, стрелките в основата на дървото се променят от цвят, за да покажат доминиращия анимационен клип).

ръководство
2D Blendtree, настроен с пет анимационни клипа, които се визуализират в инспектора

Можете да изберете всеки възел в графиката на Blend Tree, за да го разгледате в инспектора. Ако избраният възел е анимационен клип, инспекторът ще покаже информация за този анимационен клип. Настройките няма да могат да се редактират, ако анимацията е импортирана от модел. Ако възелът е смесен възел, тогаваще видите Blend Nodes Inspector.

Можете да изберете 1D или 2D смесване от менюто Blend Type; Разликата между видовете е описана на страниците, съответстващи на тези типове.

Blend Trees (смесване на дървета) и Root Motion (движение на корени)

Смесването на анимация се контролира чрез линейна интерполация (т.е. крайната „стойност“ на анимацията се изчислява чрез вземане на средната стойност на отделните анимации, повлияна от параметъра на смесване). Все пак трябва да имате предвид, че движението на корена не се интерполира по същия начин. Вижте root motion за допълнителни подробности как това може да повлияе на вашите герои.