AnimationNodeBlendSpace2D
Набор AnimationRootNode, размещенных в 2D-координатах, плавно переходящих между тремя соседними. Используется AnimationTree.
Набор AnimationRootNode, размещенных в 2D-координатах, плавно переходящих между тремя соседними. Используется AnimationTree.
Ресурс, используемый AnimationNodeBlendTree.
AnimationNodeBlendSpace2D представляет собой виртуальное 2D-пространство, на котором размещены AnimationRootNode. Выводит линейное смешивание трех смежных анимаций с использованием веса Vector2. Смежный в этом контексте означает три AnimationRootNode, составляющие треугольник, содержащий текущее значение.
Вы можете добавить вершины в пространство смешивания с помощью AnimationNodeBlendSpace2D.AddBlendPoint и автоматически триангулировать его, установив AnimationNodeBlendSpace2D.AutoTriangles на true. В противном случае используйте AnimationNodeBlendSpace2D.AddTriangle и AnimationNodeBlendSpace2D.RemoveTriangle для триангуляции пространства смешивания вручную.
В факультативном порядке сигналы могут использоваться путем установки AnimationNodeObserverBlendSpace до конца AnimationTree.
var observer = animationTree.Get("parameters/BlendSpace/observer").As<AnimationNodeObserverBlendSpace>();
observer.ClosestPointChanged += OnClosestPointChanged;Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
AnimationNodeBlendSpace2DКонструктор
public AnimationNodeBlendSpace2D();Свойства10
AutoTrianglesСвойство
public bool AutoTriangles { get; set; }Если true, пространство смешивания триангулируется автоматически. Сетка обновляется каждый раз, когда вы добавляете или удаляете точки с помощью AnimationNodeBlendSpace2D.AddBlendPoint и AnimationNodeBlendSpace2D.RemoveBlendPoint.
BlendModeСвойство
public AnimationNodeBlendSpace2D.BlendModeEnum BlendMode { get; set; }Управляет интерполяцией между анимациями.
CyclicLengthСвойство
public double CyclicLength { get; set; }Длительность цикла в секундах, используемая AnimationNodeBlendSpace2D.SyncModeEnum.CyclicConstant. Все анимации масштабируются по времени таким образом, чтобы за этот период они завершили один полный цикл. Для применения циклической синхронизации значение должно быть больше 0.
MaxSpaceСвойство
public Vector2 MaxSpace { get; set; }Верхний предел осей X и Y пространства смешивания для положения точек. См. AnimationNodeBlendSpace2D.AddBlendPoint.
MinSpaceСвойство
public Vector2 MinSpace { get; set; }Нижний предел осей X и Y пространства смешивания для положения точек. См. AnimationNodeBlendSpace2D.AddBlendPoint.
SnapСвойство
public Vector2 Snap { get; set; }Приращение позиции для привязки при перемещении точки.
Переводчики:
SyncСвойство · Устарело
public bool Sync { get; set; }Если true, режим синхронизации включен (эквивалентно AnimationNodeBlendSpace2D.SyncModeEnum.Independent). Это свойство сохранено для обратной совместимости.
SyncModeСвойство
public AnimationNodeBlendSpace2D.SyncModeEnum SyncMode { get; set; }Управляет синхронизацией анимаций при смешивании. См. AnimationNodeBlendSpace2D.SyncModeEnum для получения информации о доступных параметрах.
XLabelСвойство
public string XLabel { get; set; }Имя оси X пространства смешивания.
YLabelСвойство
public string YLabel { get; set; }Имя оси Y пространства смешивания.
Методы36
AddBlendPoint2 перегрузки
public void AddBlendPoint(AnimationRootNode node, Vector2 pos, int atIndex);Добавляет новую точку name, представляющую node в позиции, заданной pos. Вы можете вставить ее по определенному индексу, используя аргумент at_index. Если вы используете значение по умолчанию для at_index, точка будет вставлена в конец массива точек смешивания.
Примечание: Если имя не указано, в качестве ссылки используется безопасный индекс. В будущем пустые имена будут считаться устаревшими, поэтому рекомендуется явно указывать имя.
| Имя | Тип | По умолчанию |
|---|---|---|
node | AnimationRootNode | — |
pos | Vector2 | — |
atIndex | int | — |
public void AddBlendPoint(AnimationRootNode node, Vector2 pos, int atIndex = -1, StringName name = null);Добавляет новую точку name, представляющую node в позиции, заданной pos. Вы можете вставить ее по определенному индексу, используя аргумент at_index. Если вы используете значение по умолчанию для at_index, точка будет вставлена в конец массива точек смешивания.
Примечание: Если имя не указано, в качестве ссылки используется безопасный индекс. В будущем пустые имена будут считаться устаревшими, поэтому рекомендуется явно указывать имя.
| Имя | Тип | По умолчанию |
|---|---|---|
node | AnimationRootNode | — |
pos | Vector2 | — |
atIndex | int | -1 |
name | StringName | null |
AddTrianglevoid
public void AddTriangle(int x, int y, int z, int atIndex = -1);Создает новый треугольник, используя три точки x, y и z. Треугольники могут перекрываться. Вы можете вставить треугольник в определенный индекс, используя аргумент at_index. Если вы используете значение по умолчанию для at_index, точка вставляется в конец массива точек смешивания.
| Имя | Тип | По умолчанию |
|---|---|---|
x | int | — |
y | int | — |
z | int | — |
atIndex | int | -1 |
FindBlendPointByNameint
public int FindBlendPointByName(StringName name);Возвращает индекс точки смешения с заданным name. Возвращает -1, если точка смешения с таким именем не найдена.
| Имя | Тип | По умолчанию |
|---|---|---|
name | StringName | — |
intGetAutoTrianglesbool
public bool GetAutoTriangles();boolGetBlendModeAnimationNodeBlendSpace2D.BlendModeEnum
public AnimationNodeBlendSpace2D.BlendModeEnum GetBlendMode();AnimationNodeBlendSpace2D.BlendModeEnumGetBlendPointCountint
public int GetBlendPointCount();Возвращает количество точек в пространстве смешивания.
intGetBlendPointNameStringName
public StringName GetBlendPointName(int point);Возвращает имя точки смешения по индексу point.
| Имя | Тип | По умолчанию |
|---|---|---|
point | int | — |
StringNameGetBlendPointNodeAnimationRootNode
public AnimationRootNode GetBlendPointNode(int point);Возвращает AnimationRootNode, на который ссылается точка с индексом point.
| Имя | Тип | По умолчанию |
|---|---|---|
point | int | — |
AnimationRootNodeGetBlendPointPositionVector2
public Vector2 GetBlendPointPosition(int point);Возвращает положение точки с индексом point.
| Имя | Тип | По умолчанию |
|---|---|---|
point | int | — |
Vector2GetCyclicLengthdouble
public double GetCyclicLength();doubleGetMaxSpaceVector2
public Vector2 GetMaxSpace();Vector2GetMinSpaceVector2
public Vector2 GetMinSpace();Vector2GetSnapVector2
public Vector2 GetSnap();Vector2GetSyncModeAnimationNodeBlendSpace2D.SyncModeEnum
public AnimationNodeBlendSpace2D.SyncModeEnum GetSyncMode();AnimationNodeBlendSpace2D.SyncModeEnumGetTriangleCountint
public int GetTriangleCount();Возвращает количество треугольников в пространстве смешивания.
intGetTrianglePointint
public int GetTrianglePoint(int triangle, int point);Возвращает положение точки с индексом point в треугольнике с индексом triangle.
| Имя | Тип | По умолчанию |
|---|---|---|
triangle | int | — |
point | int | — |
intGetXLabelstring
public string GetXLabel();stringGetYLabelstring
public string GetYLabel();stringIsUsingSyncbool
public bool IsUsingSync();boolRemoveBlendPointvoid
public void RemoveBlendPoint(int point);Удаляет точку с индексом point из пространства смешивания.
| Имя | Тип | По умолчанию |
|---|---|---|
point | int | — |
RemoveTrianglevoid
public void RemoveTriangle(int triangle);Удаляет треугольник с индексом triangle из пространства смешивания.
| Имя | Тип | По умолчанию |
|---|---|---|
triangle | int | — |
ReorderBlendPointvoid
public void ReorderBlendPoint(int fromIndex, int toIndex);Меняет местами точки смешивания в индексах from_index и to_index, заменив их позиции и свойства.
| Имя | Тип | По умолчанию |
|---|---|---|
fromIndex | int | — |
toIndex | int | — |
SetAutoTrianglesvoid
public void SetAutoTriangles(bool enable);| Имя | Тип | По умолчанию |
|---|---|---|
enable | bool | — |
SetBlendModevoid
public void SetBlendMode(AnimationNodeBlendSpace2D.BlendModeEnum mode);| Имя | Тип | По умолчанию |
|---|---|---|
mode | AnimationNodeBlendSpace2D.BlendModeEnum | — |
SetBlendPointNamevoid
public void SetBlendPointName(int point, StringName name);Задает имя точки смешивания по индексу point. Если имя конфликтует с существующей точкой, будет автоматически сгенерировано уникальное имя.
| Имя | Тип | По умолчанию |
|---|---|---|
point | int | — |
name | StringName | — |
SetBlendPointNodevoid
public void SetBlendPointNode(int point, AnimationRootNode node);Изменяет AnimationNode, на который ссылается точка с индексом point.
| Имя | Тип | По умолчанию |
|---|---|---|
point | int | — |
node | AnimationRootNode | — |
SetBlendPointPositionvoid
public void SetBlendPointPosition(int point, Vector2 pos);Обновляет положение точки с индексом point в пространстве смешивания.
| Имя | Тип | По умолчанию |
|---|---|---|
point | int | — |
pos | Vector2 | — |
SetCyclicLengthvoid
public void SetCyclicLength(double length);| Имя | Тип | По умолчанию |
|---|---|---|
length | double | — |
SetMaxSpacevoid
public void SetMaxSpace(Vector2 maxSpace);| Имя | Тип | По умолчанию |
|---|---|---|
maxSpace | Vector2 | — |
SetMinSpacevoid
public void SetMinSpace(Vector2 minSpace);| Имя | Тип | По умолчанию |
|---|---|---|
minSpace | Vector2 | — |
SetSnapvoid
public void SetSnap(Vector2 snap);| Имя | Тип | По умолчанию |
|---|---|---|
snap | Vector2 | — |
SetSyncModevoid
public void SetSyncMode(AnimationNodeBlendSpace2D.SyncModeEnum syncMode);| Имя | Тип | По умолчанию |
|---|---|---|
syncMode | AnimationNodeBlendSpace2D.SyncModeEnum | — |
SetUseSyncvoid
public void SetUseSync(bool enable);| Имя | Тип | По умолчанию |
|---|---|---|
enable | bool | — |
SetXLabelvoid
public void SetXLabel(string text);| Имя | Тип | По умолчанию |
|---|---|---|
text | string | — |
SetYLabelvoid
public void SetYLabel(string text);| Имя | Тип | По умолчанию |
|---|---|---|
text | string | — |
Сигналы и события1
TrianglesUpdatedСобытие
public event Action TrianglesUpdated;Вызывается каждый раз, когда создаются, удаляются треугольники пространства смешивания или когда одна из их вершин меняет положение.
AnimationNodeBlendSpace2D.BlendModeEnum
| Значение | Описание |
|---|---|
Discrete = 1 | Пространство смешивания воспроизводит анимацию узла анимации, к которому ближе всего позиция смешивания. Полезно для покадровой 2D-анимации. |
DiscreteCarry = 2 | Аналогично |
Interpolated = 0 | Интерполяция между анимациями линейная. |
AnimationNodeBlendSpace2D.SyncModeEnum
| Значение | Описание |
|---|---|
CyclicConstant = 3 | Все анимации масштабируются по времени таким образом, что каждый цикл завершается за |
CyclicMutable = 2 | Все анимации масштабируются по времени, чтобы оставаться синхронизированными, при этом длительность цикла динамически вычисляется на основе активных весов смешивания. Это самонормализация: отдельная анимация воспроизводится с нормальной скоростью.
Примечание: Если вы примените |
Independent = 1 | Неактивные анимации продвигаются с весом |
None = 0 | Неактивные анимации замораживаются и не переходят к следующему этапу. |