Example
Sistemul de animație Aspose.3D este organizat în jurul unei ierarhii de obiecte care leagă datele eșantionate în timp de proprietățile scenei.
- Example
AnimationClip este un interval de redare numit (de ex. “Walk”, “Run”) deținut de un Scene. - Example
AnimationNode trăiește în interiorul unui clip și leagă datele animate de proprietăți specifice ale obiectelor din scenă. - Un
BindPoint conectează un AnimationNode la un numit Property pe un A3DObject. - Example
AnimationChannel conține un scalar unic KeyframeSequence într-un punct de legare. - Un
KeyframeSequence este o listă ordonată de KeyFrame mostre de timp‑valoare.
Toate clasele de animație se află în aspose.threed.animation sub-pachet, deși sunt accesibile direct din aspose.threed.
AnimationClip
Un container denumit pentru un interval de redare. Un Scene poate conține mai multe clipuri. Moștenește de la SceneObject.
Example
| Example | Example |
|---|
AnimationClip(name=None) | Creează un clip cu un nume opțional |
Example
| Example | Example | Example |
|---|
name | str | Nume clip (de ex. "Walk") |
description | str | Descriere opțională |
start | float | Timp de început în secunde |
stop | float | Timp de sfârșit în secunde |
animations | list[AnimationNode] | Listă doar în citire a nodurilor de animație din acest clip |
properties | PropertyCollection | Proprietăți personalizate |
Example
| Example | Tip de returnare | Example |
|---|
create_animation_node(node_name) | AnimationNode | Creează și înregistrează un nou AnimationNode în acest clip |
AnimationNode
Leagă un AnimationClip la unul sau mai multe BindPoint obiecte care vizează proprietățile obiectului de scenă. Moștenește de la A3DObject.
Example
| Example | Example |
|---|
AnimationNode(name=None) | Creează un nod de animație cu nume opțional |
Example
| Example | Example | Example |
|---|
name | str | Nume nod |
bind_points | list[BindPoint] | Listă doar pentru citire a punctelor de legare |
sub_animations | list[AnimationNode] | Listă doar pentru citire a nodurilor de animație copil |
properties | PropertyCollection | Proprietăți personalizate |
Example
| Example | Tip de returnare | 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
Conectează un AnimationNode la un singur Property pe un A3DObject. Fiecare BindPoint poate conține multiple AnimationChannel obiecte (câte unul pe componentă scalară). Moștenește de la A3DObject.
Example
| Example | Example | Example |
|---|
property | Property | Proprietatea scene-object pe care acest punct de legare îl vizează |
channels_count | int | Numărul de canale de animație în acest punct de legare |
Example
| Example | Tip de returnare | Example |
|---|
add_channel(name, value, type=None) | bool | Adaugă un canal denumit cu o valoare implicită |
get_channel(channel_name) | `AnimationChannel | None` |
get_keyframe_sequence(channel_name) | `KeyframeSequence | None` |
create_keyframe_sequence(name) | KeyframeSequence | Creează un nou KeyframeSequence pentru acest punct de legare |
bind_keyframe_sequence(channel_name, sequence) | None | Asociază un existent KeyframeSequence cu un canal |
reset_channels() | None | Elimină toate canalele |
AnimationChannel
Conține un singur scalar KeyframeSequence pentru un component animat.
Example
| Example | Example | Example |
|---|
name | str | Nume canal (de ex. "X", "Y", "Z") |
default_value | Any | Valoare utilizată când nu există date de cadre cheie |
keyframe_sequence | `KeyframeSequence | None` |
KeyframeSequence
O listă ordonată de KeyFrame eșantioane pentru un singur canal scalar. Moștenește de la A3DObject.
Example
| Example | Example |
|---|
KeyframeSequence(name=None) | Creează o secvență de cadre cheie goală |
Example
| Example | Example | Example |
|---|
name | str | Nume secvență |
key_frames | list[KeyFrame] | Listă numai în citire a cadrelor cheie în ordine cronologică |
pre_behavior | Extrapolation | Comportament înainte de primul cadru cheie |
post_behavior | Extrapolation | Comportament după ultimul cadru cheie |
bind_point | `BindPoint | None` |
Example
| Example | Tip de returnare | Example |
|---|
add(time, value, interpolation=Interpolation.LINEAR) | None | Adaugă un keyframe la time (secunde) cu cele date value și interpolation mod |
reset() | None | Șterge toate keyframes și resetează comportamentul pre/post |
KeyFrame
Un singur eșantion de timp–valoare într-un KeyframeSequence.
Example
KeyFrame obiectele sunt create intern de KeyframeSequence.add(); nu le construiți direct.
Example
| Example | Example | Example |
|---|
time | float | Poziția în timp în secunde |
value | float | Valoare animată la acest moment |
interpolation | Interpolation | Modul de interpolare aplicat între acest cadru cheie și următorul |
tangent_weight_mode | WeightedMode | Modul de greutate a tangentelor (curbe Bezier) |
step_mode | StepMode | Comportament pas (PREVIOUS_VALUE sau NEXT_VALUE) |
next_in_tangent | `Vector2 | None` |
out_tangent | `Vector2 | None` |
out_weight | float | Greutatea tangentă de ieșire |
next_in_weight | float | Greutatea tangentă de intrare |
tension | float | Parametru de tensiune (spline TCB) |
continuity | float | Parametru de continuitate (spline TCB) |
bias | float | Parametru bias (spline TCB) |
independent_tangent | bool | Example True, tangentele de intrare și ieșire sunt independente |
flat | bool | Example True, tangentele sunt fixate plat |
time_independent_tangent | bool | Example True, direcția tangentei este independentă de scalarea timpului |
Example
Controlează modul în care valorile sunt interpolate între cadrele cheie consecutive.
| Example | Example |
|---|
CONSTANT | Example |
LINEAR | Interpolare liniară între valori |
BEZIER | Bezier cubic utilizând tangentele de intrare/ieșire |
B_SPLINE | B-spline uniform |
CARDINAL_SPLINE | Spline cardinal |
TCB_SPLINE | Spline Tension–Continuity–Bias |
Example
Controlează comportamentul animației dincolo de primul și ultimul cadru cheie.
| Example | Example |
|---|
CONSTANT | Menține valoarea de la limită |
GRADIENT | Extrapolează la gradientul tangent al cadrului cheie de la limită |
CYCLE | Repetă intervalul de cadre cheie (buclă) |
CYCLE_RELATIVE | Repetă cu decalaj cumulativ (relativ la valoarea finală) |
OSCILLATE | Ping-pong (repetare alternativă înainte și înapoi) |
Example
Vezi și