Example
Система анимации Aspose.3D организована вокруг иерархии объектов, которые связывают данные, отснятые во времени, со свойствами сцены.
- Example
AnimationClip является именованным диапазоном воспроизведения (например, “Walk”, “Run”) удерживаемым Scene. - Example
AnimationNode находится внутри клипа и привязывает анимированные данные к конкретным свойствам объектов сцены. - A
BindPoint соединяет AnimationNode к именованному Property на A3DObject. - Example
AnimationChannel содержит один скаляр KeyframeSequence внутри точки привязки. - A
KeyframeSequence является упорядоченным списком KeyFrame выборки времени‑значения.
Все классы анимации находятся в aspose.threed.animation подпакете, хотя они также доступны напрямую из aspose.threed.
AnimationClip
Именованный контейнер для одного диапазона воспроизведения. A Scene может содержать несколько клипов. Наследуется от SceneObject.
Example
| Example | Example |
|---|
AnimationClip(name=None) | Создаёт клип с необязательным именем |
Example
| Example | Example | Example |
|---|
name | str | Имя клипа (например,. "Walk") |
description | str | Необязательное описание |
start | float | Время начала в секундах |
stop | float | Время окончания в секундах |
animations | list[AnimationNode] | Только для чтения список узлов анимации в этом клипе |
properties | PropertyCollection | Пользовательские свойства |
Example
| Example | Тип возвращаемого значения | Example |
|---|
create_animation_node(node_name) | AnimationNode | Создаёт и регистрирует новый AnimationNode в этом клипе |
AnimationNode
Привязывает AnimationClip к одному или нескольким BindPoint объекты, нацеленные на свойства объектов сцены. Наследуется от A3DObject.
Example
| Example | Example |
|---|
AnimationNode(name=None) | Создаёт узел анимации с необязательным именем |
Example
| Example | Example | Example |
|---|
name | str | Имя узла |
bind_points | list[BindPoint] | Только для чтения список точек привязки |
sub_animations | list[AnimationNode] | Только для чтения список дочерних узлов анимации |
properties | PropertyCollection | Пользовательские свойства |
Example
| Example | Тип возвращаемого значения | Example |
|---|
find_bind_point(target, name) | `BindPoint | None` |
get_bind_point(target, prop_name, create) | `BindPoint | None` |
create_bind_point(obj, prop_name) | `BindPoint | None` |
get_keyframe_sequence(target, prop_name, channel_name, create) | `KeyframeSequence | None` |
BindPoint
Подключает AnimationNode к одному Property на A3DObject. Каждый BindPoint может содержать несколько AnimationChannel объектов (по одному на скалярный компонент). Наследуется от A3DObject.
Example
| Example | Example | Example |
|---|
property | Property | Свойство сцены-объекта, к которому направлена эта точка привязки |
channels_count | int | Количество каналов анимации в этой точке привязки |
Example
| Example | Тип возвращаемого значения | Example |
|---|
add_channel(name, value, type=None) | bool | Добавляет именованный канал с значением по умолчанию |
get_channel(channel_name) | `AnimationChannel | None` |
get_keyframe_sequence(channel_name) | `KeyframeSequence | None` |
create_keyframe_sequence(name) | KeyframeSequence | Создаёт новый KeyframeSequence для этой точки привязки |
bind_keyframe_sequence(channel_name, sequence) | None | Связывает существующий KeyframeSequence с каналом |
reset_channels() | None | Удаляет все каналы |
AnimationChannel
Содержит один скаляр KeyframeSequence для одного анимированного компонента.
Example
| Example | Example | Example |
|---|
name | str | Имя канала (например,. "X", "Y", "Z") |
default_value | Any | Значение, используемое когда данные ключевых кадров отсутствуют |
keyframe_sequence | `KeyframeSequence | None` |
KeyframeSequence
Упорядоченный список KeyFrame образцы для одного скалярного канала. Наследуется от A3DObject.
Example
| Example | Example |
|---|
KeyframeSequence(name=None) | Создаёт пустую последовательность ключевых кадров |
Example
| Example | Example | Example |
|---|
name | str | Имя последовательности |
key_frames | list[KeyFrame] | Только для чтения список ключевых кадров в хронологическом порядке |
pre_behavior | Extrapolation | Поведение до первого ключевого кадра |
post_behavior | Extrapolation | Поведение после последнего ключевого кадра |
bind_point | `BindPoint | None` |
Example
| Example | Тип возвращаемого значения | Example |
|---|
add(time, value, interpolation=Interpolation.LINEAR) | None | Добавляет ключевой кадр в time (секунды) с заданным value и interpolation режим |
reset() | None | Очищает все ключевые кадры и сбрасывает поведение до/после |
KeyFrame
Один образец значения времени в KeyframeSequence.
Example
KeyFrame объекты создаются внутренне с помощью KeyframeSequence.add(); не создавайте их напрямую.
Example
| Example | Example | Example |
|---|
time | float | Позиция времени в секундах |
value | float | Анимированное значение в данный момент |
interpolation | Interpolation | Режим интерполяции, применяемый между этим ключевым кадром и следующим |
tangent_weight_mode | WeightedMode | Режим веса касательной (кривые Безье) |
step_mode | StepMode | Поведение шага (PREVIOUS_VALUE или NEXT_VALUE) |
next_in_tangent | `Vector2 | None` |
out_tangent | `Vector2 | None` |
out_weight | float | Вес исходящей касательной |
next_in_weight | float | Входящий вес касательной |
tension | float | Параметр натяжения (TCB‑сплайн) |
continuity | float | Параметр непрерывности (TCB‑сплайн) |
bias | float | Параметр смещения (TCB‑сплайн) |
independent_tangent | bool | Example True, входные и выходные касательные независимы |
flat | bool | Example True, касательные зажаты плоско |
time_independent_tangent | bool | Example True, направление касательной независимо от масштабирования времени |
Example
Управляет тем, как значения интерполируются между последовательными ключевыми кадрами.
| Example | Example |
|---|
CONSTANT | Example |
LINEAR | Линейная интерполяция между значениями |
BEZIER | Кубический Безье с входными/выходными касательными |
B_SPLINE | Равномерный B-сплайн |
CARDINAL_SPLINE | Кардинальный сплайн |
TCB_SPLINE | Сплайн натяжения–непрерывности–смещения |
Example
Управляет поведением анимации за пределами первого и последнего ключевого кадра.
| Example | Example |
|---|
CONSTANT | Удерживать граничное значение |
GRADIENT | Экстраполировать по касательному градиенту граничного ключевого кадра |
CYCLE | Повторить диапазон ключевых кадров (циклы) |
CYCLE_RELATIVE | Повторить с кумулятивным смещением (относительно конечного значения) |
OSCILLATE | Ping-pong (чередующееся прямое и обратное повторение) |
Example
См. также