Version: 2019.2
Одномерное смешивание
Direct Blending

Двумерное смешивание

Первая опция в инспекторе (Inspector) узла смешивания (Blend Node) - это тип смешивания (Blend Type). Это выпадающее меню используется для выбора одного из различных типов смешивания, который может смешивать в соответствии с одним или двумя параметрами. Двумерные типы смешивания смешивают дочерние движения в соответствии с двумя параметрами.

Различные двумерные типы смешивания подходят для различных целей. Их разница заключается в том, как рассчитывается влияние каждого движения.

2D Simple Directional: Лучше всего подходит, когда ваши движения представляют разные направления, такие как “ходьба вперёд”, “ходьба назад”, “ходьба влево” и “ходьба вправо” или “целиться вверх”, “целиться вниз”, “целиться влево” и “целиться вправо”. Опционально, может быть включено одно движение в позиции (0,0), такое как “стойка” или “целиться прямо”. В типе Simple Directional не должно быть нескольких движений в одном и том же направлении, вроде как “идти вперёд” вместе с “бежать вперёд”.

2D Freeform Directional: Этот тип смешивания также используется при разносторонних движениях, однако у вас может быть несколько движений в одном направлении, например одновременно и “идти вперёд” и “бежать вперёд”. В типе Freeform Directional набор движений всегда должен включать одно движение в позиции (0,0), такое как “стойка”.

2D Freeform Cartesian: Лучше всего использовать, когда ваши движения не различаются по направлению. При типе Freeform Cartesian, ваши параметры X и Y могут представлять из себя разные концепты, такие как угловая скорость и линейная скорость. Примером могут быть такие движения как “идти вперёд без поворота”, “бежать вперёд без поворота”, “идти вперёд поворот направо”, “бежать вперёд поворот направо” и т.п.

Direct: This type of blend tree lets user control the weight of each node directly. Useful for facial shapes or random idle blending.

После установки типа смешивания, первое, что вам нужно, это выбрать 2 параметра анимации, которые будут управлять этим Blend Tree (древом смешивания). Например, параметры velocityX (движение вбок) и velocityZ (скорость движения вперёд).

Затем вы сможете добавить индивидуальные анимации нажав на + -> Add Motion Field, чтобы добавить клип анимации (Animation Clip) в древо смешивания. Когда вы завершите, всё будет выглядеть примерно так:

A 2D Blend Node with five Animation Clips.
A 2D Blend Node with five Animation Clips.

Позиции в двумерном смешивании похожи на пороги в одномерном смешивании, кроме того, что здесь участвуют 2 величины, вместо одной, в соответствии с каждым из двух параметров. Их позиции вдоль горизонтальной оcи X соответствуют первому параметру, а их позиции вдоль вертикальной оси Y соответствуют второму параметру. Анимация ходьбы вперёд может иметь velocityX равной 0 и velocityZ равной 1.5, таким образом значения должны быть введены в числовые поля движения Pos X и Pos Y.

Диаграмма двумерного смешивания

Диаграмма сверху инспектора отображает позиции дочерних движений в двумерном пространстве смешивания. Движения отображаются в виде синих точек. Движения без указанного клипа анимации или древа смешивания не имеют влияния на смешивание и отображены в виде серых точек. Вы можете выбрать движение нажав на соответствующую точку на диаграмме. Как только вы его выберите, влияние этого движения на каждую точку в пространстве смешивания будет показано в виде синего поля. Сила поля выше всего прямо рядом с позицией движения, где движение имеет полное влияние, означающее, что влияние анимации равно 1, а все остальные анимации имеют влияние равное 0. Чем дальше, тем меньше становится влияние, в то время как влияние других движений нарастает.

The diagram at the top of the Blend Node Inspector visualizes the weights of the child motions over the extends of the parameter values.
The diagram at the top of the Blend Node Inspector visualizes the weights of the child motions over the extends of the parameter values.

Красная точка указывает на значения двух параметров Parameters. Если вы нажмёте Play в разделе Preview внизу инспектора (Inspector) и будете перетаскивать красную точку по диаграмме, то вы сможете увидеть, как значения параметров управляют смешиванием разных движений. В диаграмме вы также можете увидеть, что влияние каждого движения представлено в виде кругов вокруг каждого движения. Вы увидите, что если вы передвинете красную точку поверх одной из синих точек, представляющих из себя движения, круг этого движения достигнет своего максимального радиуса и круги других движений уменьшатся так, что их не будет видно. В позициях, расположенных между несколькими движениями, несколько ближайших движений будут иметь смешанное влияние. Если вы выберете одно из движений, чтобы увидеть синее поле влияния этого движения, вы сможете увидеть, что по мере движения красной точки, размер круга движения соответствует именно тому, насколько сильно поле влияния в различных позициях.

Когда ни одно движение не выбрано, то диаграмма будет показывать сразу все поля влияния, с больше степенью синевы там, где одно движение преобладает и с меньше степенью синевы там, где несколько движений составляют смесь.

Позиции

Вы можете изменить позиции движения нажав на соответствующую ему синюю точку в диаграмме и перетянув её на другое место. Вы также можете изменить координаты позиции движения в списке движений, путём ввода значений в числовые поля в колонках Pos X и Pos Y.

Выпадающее меню Compute Positions установит позиции из выбранных вами данных, полученных из корневого движения (Root Motion) в клипах анимации. Данные, из которых можно выбирать, это коэффициент скорости, скорость движения по x,y, или z, и угловая скорость в градусах или радианах. Если один или оба из ваших parameters (параметров) соответствует одному из свойств, вы можете рассчитать Pos X и/или Pos Y используя выпадающее меню Compute Positions (рассчитать позиции).

Свойство: Функция:
Velocity XZ Устанавливает Pos X каждого движения в соответствии со значением velocity.x и Pos Y в соответствии с его значением velocity.z
Speed And Angular Speed Устанавливает Pos X каждого движения в соответствии со значением угловой скорости (радианы в секунду) и Pos в соответствии со значением speed.

Кроме того, вы можете смешивать и совмещать выбрав Compute Position -> X Position From и/или Compute Position -> Y Position From только для того, чтобы автоматически рассчитать один из них, оставив второй не изменённым.

Свойство: Функция:
Speed Устанавливает Pos X или Pos Y для каждого движения в соответствии со значением speed (величина скорости).
Velocity X Устанавливает Pos X или Pos Y для каждого движения в соответствии со значением velocity.x.
Velocity Y Устанавливает Pos X или Pos Y для каждого движения в соответствии со значением velocity.y.
Velocity Z Устанавливает Pos X или Pos Y для каждого движения в соответствии со значением velocity.z.
Angular Speed (Rad) Устанавливает Pos X или Pos Y для каждого движения в соответствии со значением угловой скорости исчисляемой в радианах в секунду.
Angular Speed (Deg) Устанавливает Pos X или Pos Y для каждого движения в соответствии со значением угловой скорости исчисляемой в градусах в секунду.

Допустим, например, что ваши параметры соответствуют боковой скорости и скорости направленной вперёд, и что у вас есть анимация стойки со средней скоростью (0, 0, 0), анимация ходьбы со скоростью (0, 0, 1.5), 2 анимации ходьбы вбок со скоростями (–1.5, 0, 0) и (1.5, 0, 0) соответственно. Выбрав опцию Velocity XZ из выпадающего меню, вы установите позиции движений в соответствии с X и Z координатами этих скоростей.

Одномерное смешивание
Direct Blending