reckfellENGINE

AnimationNodeBlendSpace2D

Набор AnimationRootNode, размещенных в 2D-координатах, плавно переходящих между тремя соседними. Используется AnimationTree.

На этой странице
class AnimationNodeBlendSpace2DReckfellSharpНаследует AnimationRootNode

Набор AnimationRootNode, размещенных в 2D-координатах, плавно переходящих между тремя соседними. Используется AnimationTree.

Ресурс, используемый AnimationNodeBlendTree. AnimationNodeBlendSpace2D представляет собой виртуальное 2D-пространство, на котором размещены AnimationRootNode. Выводит линейное смешивание трех смежных анимаций с использованием веса Vector2. Смежный в этом контексте означает три AnimationRootNode, составляющие треугольник, содержащий текущее значение. Вы можете добавить вершины в пространство смешивания с помощью AnimationNodeBlendSpace2D.AddBlendPoint и автоматически триангулировать его, установив AnimationNodeBlendSpace2D.AutoTriangles на true. В противном случае используйте AnimationNodeBlendSpace2D.AddTriangle и AnimationNodeBlendSpace2D.RemoveTriangle для триангуляции пространства смешивания вручную.

В факультативном порядке сигналы могут использоваться путем установки AnimationNodeObserverBlendSpace до конца AnimationTree.

C#
var observer = animationTree.Get("parameters/BlendSpace/observer").As<AnimationNodeObserverBlendSpace>();
observer.ClosestPointChanged += OnClosestPointChanged;

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

Конструкторы1

AnimationNodeBlendSpace2DКонструктор
# AnimationNodeBlendSpace2D
C#
public AnimationNodeBlendSpace2D();

Свойства10

AutoTrianglesСвойство
# AutoTriangles
C#
public bool AutoTriangles { get; set; }

Если true, пространство смешивания триангулируется автоматически. Сетка обновляется каждый раз, когда вы добавляете или удаляете точки с помощью AnimationNodeBlendSpace2D.AddBlendPoint и AnimationNodeBlendSpace2D.RemoveBlendPoint.

BlendModeСвойство
# BlendMode
C#
public AnimationNodeBlendSpace2D.BlendModeEnum BlendMode { get; set; }

Управляет интерполяцией между анимациями.

CyclicLengthСвойство
# CyclicLength
C#
public double CyclicLength { get; set; }

Длительность цикла в секундах, используемая AnimationNodeBlendSpace2D.SyncModeEnum.CyclicConstant. Все анимации масштабируются по времени таким образом, чтобы за этот период они завершили один полный цикл. Для применения циклической синхронизации значение должно быть больше 0.

MaxSpaceСвойство
# MaxSpace
C#
public Vector2 MaxSpace { get; set; }

Верхний предел осей X и Y пространства смешивания для положения точек. См. AnimationNodeBlendSpace2D.AddBlendPoint.

MinSpaceСвойство
# MinSpace
C#
public Vector2 MinSpace { get; set; }

Нижний предел осей X и Y пространства смешивания для положения точек. См. AnimationNodeBlendSpace2D.AddBlendPoint.

SnapСвойство
# Snap
C#
public Vector2 Snap { get; set; }

Приращение позиции для привязки при перемещении точки.

Переводчики:

SyncСвойство · Устарело
# Sync
C#
public bool Sync { get; set; }

Если true, режим синхронизации включен (эквивалентно AnimationNodeBlendSpace2D.SyncModeEnum.Independent). Это свойство сохранено для обратной совместимости.

SyncModeСвойство
# SyncMode
C#
public AnimationNodeBlendSpace2D.SyncModeEnum SyncMode { get; set; }

Управляет синхронизацией анимаций при смешивании. См. AnimationNodeBlendSpace2D.SyncModeEnum для получения информации о доступных параметрах.

XLabelСвойство
# XLabel
C#
public string XLabel { get; set; }

Имя оси X пространства смешивания.

YLabelСвойство
# YLabel
C#
public string YLabel { get; set; }

Имя оси Y пространства смешивания.

Методы36

AddBlendPoint2 перегрузки
# AddBlendPoint · 1/2
C#
public void AddBlendPoint(AnimationRootNode node, Vector2 pos, int atIndex);

Добавляет новую точку name, представляющую node в позиции, заданной pos. Вы можете вставить ее по определенному индексу, используя аргумент at_index. Если вы используете значение по умолчанию для at_index, точка будет вставлена в конец массива точек смешивания. Примечание: Если имя не указано, в качестве ссылки используется безопасный индекс. В будущем пустые имена будут считаться устаревшими, поэтому рекомендуется явно указывать имя.

Параметры
ИмяТипПо умолчанию
nodeAnimationRootNode—
posVector2—
atIndexint—
# AddBlendPoint · 2/2
C#
public void AddBlendPoint(AnimationRootNode node, Vector2 pos, int atIndex = -1, StringName name = null);

Добавляет новую точку name, представляющую node в позиции, заданной pos. Вы можете вставить ее по определенному индексу, используя аргумент at_index. Если вы используете значение по умолчанию для at_index, точка будет вставлена в конец массива точек смешивания. Примечание: Если имя не указано, в качестве ссылки используется безопасный индекс. В будущем пустые имена будут считаться устаревшими, поэтому рекомендуется явно указывать имя.

Параметры
ИмяТипПо умолчанию
nodeAnimationRootNode—
posVector2—
atIndexint-1
nameStringNamenull
AddTrianglevoid
# AddTriangle
C#
public void AddTriangle(int x, int y, int z, int atIndex = -1);

Создает новый треугольник, используя три точки x, y и z. Треугольники могут перекрываться. Вы можете вставить треугольник в определенный индекс, используя аргумент at_index. Если вы используете значение по умолчанию для at_index, точка вставляется в конец массива точек смешивания.

Параметры
ИмяТипПо умолчанию
xint—
yint—
zint—
atIndexint-1
FindBlendPointByNameint
# FindBlendPointByName
C#
public int FindBlendPointByName(StringName name);

Возвращает индекс точки смешения с заданным name. Возвращает -1, если точка смешения с таким именем не найдена.

Параметры
ИмяТипПо умолчанию
nameStringName—
Возвращает int
GetAutoTrianglesbool
# GetAutoTriangles
C#
public bool GetAutoTriangles();
Возвращает bool
GetBlendModeAnimationNodeBlendSpace2D.BlendModeEnum
# GetBlendMode
C#
public AnimationNodeBlendSpace2D.BlendModeEnum GetBlendMode();
Возвращает AnimationNodeBlendSpace2D.BlendModeEnum
GetBlendPointCountint
# GetBlendPointCount
C#
public int GetBlendPointCount();

Возвращает количество точек в пространстве смешивания.

Возвращает int
GetBlendPointNameStringName
# GetBlendPointName
C#
public StringName GetBlendPointName(int point);

Возвращает имя точки смешения по индексу point.

Параметры
ИмяТипПо умолчанию
pointint—
Возвращает StringName
GetBlendPointNodeAnimationRootNode
# GetBlendPointNode
C#
public AnimationRootNode GetBlendPointNode(int point);

Возвращает AnimationRootNode, на который ссылается точка с индексом point.

Параметры
ИмяТипПо умолчанию
pointint—
Возвращает AnimationRootNode
GetBlendPointPositionVector2
# GetBlendPointPosition
C#
public Vector2 GetBlendPointPosition(int point);

Возвращает положение точки с индексом point.

Параметры
ИмяТипПо умолчанию
pointint—
Возвращает Vector2
GetCyclicLengthdouble
# GetCyclicLength
C#
public double GetCyclicLength();
Возвращает double
GetMaxSpaceVector2
# GetMaxSpace
C#
public Vector2 GetMaxSpace();
Возвращает Vector2
GetMinSpaceVector2
# GetMinSpace
C#
public Vector2 GetMinSpace();
Возвращает Vector2
GetSnapVector2
# GetSnap
C#
public Vector2 GetSnap();
Возвращает Vector2
GetSyncModeAnimationNodeBlendSpace2D.SyncModeEnum
# GetSyncMode
C#
public AnimationNodeBlendSpace2D.SyncModeEnum GetSyncMode();
Возвращает AnimationNodeBlendSpace2D.SyncModeEnum
GetTriangleCountint
# GetTriangleCount
C#
public int GetTriangleCount();

Возвращает количество треугольников в пространстве смешивания.

Возвращает int
GetTrianglePointint
# GetTrianglePoint
C#
public int GetTrianglePoint(int triangle, int point);

Возвращает положение точки с индексом point в треугольнике с индексом triangle.

Параметры
ИмяТипПо умолчанию
triangleint—
pointint—
Возвращает int
GetXLabelstring
# GetXLabel
C#
public string GetXLabel();
Возвращает string
GetYLabelstring
# GetYLabel
C#
public string GetYLabel();
Возвращает string
IsUsingSyncbool
# IsUsingSync
C#
public bool IsUsingSync();
Возвращает bool
RemoveBlendPointvoid
# RemoveBlendPoint
C#
public void RemoveBlendPoint(int point);

Удаляет точку с индексом point из пространства смешивания.

Параметры
ИмяТипПо умолчанию
pointint—
RemoveTrianglevoid
# RemoveTriangle
C#
public void RemoveTriangle(int triangle);

Удаляет треугольник с индексом triangle из пространства смешивания.

Параметры
ИмяТипПо умолчанию
triangleint—
ReorderBlendPointvoid
# ReorderBlendPoint
C#
public void ReorderBlendPoint(int fromIndex, int toIndex);

Меняет местами точки смешивания в индексах from_index и to_index, заменив их позиции и свойства.

Параметры
ИмяТипПо умолчанию
fromIndexint—
toIndexint—
SetAutoTrianglesvoid
# SetAutoTriangles
C#
public void SetAutoTriangles(bool enable);
Параметры
ИмяТипПо умолчанию
enablebool—
SetBlendModevoid
# SetBlendMode
C#
public void SetBlendMode(AnimationNodeBlendSpace2D.BlendModeEnum mode);
Параметры
ИмяТипПо умолчанию
modeAnimationNodeBlendSpace2D.BlendModeEnum—
SetBlendPointNamevoid
# SetBlendPointName
C#
public void SetBlendPointName(int point, StringName name);

Задает имя точки смешивания по индексу point. Если имя конфликтует с существующей точкой, будет автоматически сгенерировано уникальное имя.

Параметры
ИмяТипПо умолчанию
pointint—
nameStringName—
SetBlendPointNodevoid
# SetBlendPointNode
C#
public void SetBlendPointNode(int point, AnimationRootNode node);

Изменяет AnimationNode, на который ссылается точка с индексом point.

Параметры
ИмяТипПо умолчанию
pointint—
nodeAnimationRootNode—
SetBlendPointPositionvoid
# SetBlendPointPosition
C#
public void SetBlendPointPosition(int point, Vector2 pos);

Обновляет положение точки с индексом point в пространстве смешивания.

Параметры
ИмяТипПо умолчанию
pointint—
posVector2—
SetCyclicLengthvoid
# SetCyclicLength
C#
public void SetCyclicLength(double length);
Параметры
ИмяТипПо умолчанию
lengthdouble—
SetMaxSpacevoid
# SetMaxSpace
C#
public void SetMaxSpace(Vector2 maxSpace);
Параметры
ИмяТипПо умолчанию
maxSpaceVector2—
SetMinSpacevoid
# SetMinSpace
C#
public void SetMinSpace(Vector2 minSpace);
Параметры
ИмяТипПо умолчанию
minSpaceVector2—
SetSnapvoid
# SetSnap
C#
public void SetSnap(Vector2 snap);
Параметры
ИмяТипПо умолчанию
snapVector2—
SetSyncModevoid
# SetSyncMode
C#
public void SetSyncMode(AnimationNodeBlendSpace2D.SyncModeEnum syncMode);
Параметры
ИмяТипПо умолчанию
syncModeAnimationNodeBlendSpace2D.SyncModeEnum—
SetUseSyncvoid
# SetUseSync
C#
public void SetUseSync(bool enable);
Параметры
ИмяТипПо умолчанию
enablebool—
SetXLabelvoid
# SetXLabel
C#
public void SetXLabel(string text);
Параметры
ИмяТипПо умолчанию
textstring—
SetYLabelvoid
# SetYLabel
C#
public void SetYLabel(string text);
Параметры
ИмяТипПо умолчанию
textstring—

Сигналы и события1

TrianglesUpdatedСобытие
# TrianglesUpdated
C#
public event Action TrianglesUpdated;

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

AnimationNodeBlendSpace2D.BlendModeEnum

ЗначениеОписание
Discrete = 1

Пространство смешивания воспроизводит анимацию узла анимации, к которому ближе всего позиция смешивания. Полезно для покадровой 2D-анимации.

DiscreteCarry = 2

Аналогично AnimationNodeBlendSpace2D.BlendModeEnum.Discrete, но запускает новую анимацию с позиции воспроизведения последней анимации.

Interpolated = 0

Интерполяция между анимациями линейная.

AnimationNodeBlendSpace2D.SyncModeEnum

ЗначениеОписание
CyclicConstant = 3

Все анимации масштабируются по времени таким образом, что каждый цикл завершается за AnimationNodeBlendSpace2D.CyclicLength секунд, что обеспечивает их синхронизацию независимо от их индивидуальной длины. Примечание: Если вы примените AnimationNodeTimeSeek к результату при обработке анимаций разной длины, синхронизация будет нарушена. В таких случаях рекомендуется использовать AnimationNodeAnimation.UseCustomTimeline для выравнивания длительности анимаций.

CyclicMutable = 2

Все анимации масштабируются по времени, чтобы оставаться синхронизированными, при этом длительность цикла динамически вычисляется на основе активных весов смешивания. Это самонормализация: отдельная анимация воспроизводится с нормальной скоростью. Примечание: Если вы примените AnimationNodeTimeSeek к результату при обработке анимаций разной длины, синхронизация будет нарушена. В таких случаях рекомендуется использовать AnimationNodeAnimation.UseCustomTimeline для выравнивания длительности анимаций.

Independent = 1

Неактивные анимации продвигаются с весом 0. Это эквивалентно предыдущему поведению sync = true.

None = 0

Неактивные анимации замораживаются и не переходят к следующему этапу.

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.