Animation — Aspose.3D FOSS for Python API Reference

Methods

Systém animace Aspose.3D je uspořádán kolem hierarchie objektů, které svazují časově vzorkovaná data s vlastnostmi scény.

  • Methods AnimationClip je pojmenovaný přehrávací rozsah (e.g. “Walk”, “Run”) držený v Scene.
  • Methods AnimationNode žije uvnitř klipu a váže animovaná data ke konkrétním vlastnostem objektů scény.
  • A BindPoint připojuje AnimationNode k pojmenovanému Property na A3DObject.
  • Methods AnimationChannel obsahuje jeden skalár KeyframeSequence v rámci bind pointu.
  • A KeyframeSequence je uspořádaný seznam KeyFrame čas‑hodnotové vzorky.

Všechny animační třídy jsou v aspose.threed.animation sub‑balíčku, i když jsou také přístupné přímo z aspose.threed.

from aspose.threed.animation import (
    AnimationClip,
    AnimationNode,
    AnimationChannel,
    BindPoint,
    KeyFrame,
    KeyframeSequence,
    Interpolation,
    ExtrapolationType,
)

AnimationClip

Pojmenovaný kontejner pro jeden přehrávací rozsah. A Scene může obsahovat více klipů. Dědí z SceneObject.

Methods

MethodsMethods
AnimationClip(name=None)Vytvoří klip s volitelným názvem

Methods

MethodsMethodsMethods
namestrNázev klipu (např. "Walk")
descriptionstrVolitelný popis
startfloatČas zahájení v sekundách
stopfloatČas ukončení v sekundách
animationslist[AnimationNode]Seznam animačních uzlů v tomto klipu (pouze pro čtení)
propertiesPropertyCollectionVlastní vlastnosti

Methods

MethodsNávratový typMethods
create_animation_node(node_name)AnimationNodeVytvoří a zaregistruje nový AnimationNode v tomto klipu

AnimationNode

Naváže AnimationClip na jeden nebo více BindPoint objektů cílících na vlastnosti objektu scény. Dědí z A3DObject.

Methods

MethodsMethods
AnimationNode(name=None)Vytvoří animační uzel s volitelným názvem

Methods

MethodsMethodsMethods
namestrNázev uzlu
bind_pointslist[BindPoint]Seznam bindovacích bodů (pouze pro čtení)
sub_animationslist[AnimationNode]Seznam podřízených animačních uzlů (pouze pro čtení)
propertiesPropertyCollectionVlastní vlastnosti

Methods

MethodsNávratový typMethods
find_bind_point(target, name)`BindPointNone`
get_bind_point(target, prop_name, create)`BindPointNone`
create_bind_point(obj, prop_name)`BindPointNone`
get_keyframe_sequence(target, prop_name, channel_name, create)`KeyframeSequenceNone`

BindPoint

Připojuje AnimationNode k jedné Property na A3DObject. Každý BindPoint může obsahovat více AnimationChannel objektů (jeden na skalární komponentu). Dědí z A3DObject.

Methods

MethodsMethodsMethods
propertyPropertyVlastnost scény‑objektu, na kterou tento bind point cílí
channels_countintPočet animačních kanálů v tomto bind pointu

Methods

MethodsNávratový typMethods
add_channel(name, value, type=None)boolPřidá pojmenovaný kanál s výchozí hodnotou
get_channel(channel_name)`AnimationChannelNone`
get_keyframe_sequence(channel_name)`KeyframeSequenceNone`
create_keyframe_sequence(name)KeyframeSequenceVytvoří nový KeyframeSequence pro tento bind point
bind_keyframe_sequence(channel_name, sequence)NonePřiřadí existující KeyframeSequence s kanálem
reset_channels()NoneOdstraní všechny kanály

AnimationChannel

Obsahuje jeden skalár KeyframeSequence pro jeden animovaný komponent.

Methods

MethodsMethodsMethods
namestrNázev kanálu (např. "X", "Y", "Z")
default_valueAnyHodnota použitá, když nejsou k dispozici data klíčových snímků
keyframe_sequence`KeyframeSequenceNone`

KeyframeSequence

Uspořádaný seznam KeyFrame vzorky pro jeden skalární kanál. Dědí z A3DObject.

Methods

MethodsMethods
KeyframeSequence(name=None)Vytvoří prázdnou sekvenci klíčových snímků

Methods

MethodsMethodsMethods
namestrNázev sekvence
key_frameslist[KeyFrame]Seznam klíčových snímků jen pro čtení v chronologickém pořadí
pre_behaviorExtrapolationChování před prvním klíčovým snímkem
post_behaviorExtrapolationChování po posledním klíčovém snímku
bind_point`BindPointNone`

Methods

MethodsNávratový typMethods
add(time, value, interpolation=Interpolation.LINEAR)NonePřidá klíčový snímek na time (sekundy) s daným value a interpolation režim
reset()NoneVymaže všechny klíčové snímky a resetuje chování před/po

KeyFrame

Jedna vzorka časové hodnoty v KeyframeSequence.

Methods

KeyFrame objekty jsou vytvářeny interně pomocí KeyframeSequence.add(); nevytvářejte je přímo.

Methods

MethodsMethodsMethods
timefloatČasová pozice v sekundách
valuefloatAnimovaná hodnota v tomto čase
interpolationInterpolationRežim interpolace použitý mezi tímto klíčovým snímkem a následujícím
tangent_weight_modeWeightedModeRežim váhy tečny (Bezierovy křivky)
step_modeStepModeChování kroku (PREVIOUS_VALUE nebo NEXT_VALUE)
next_in_tangent`Vector2None`
out_tangent`Vector2None`
out_weightfloatVáha výstupní tečny
next_in_weightfloatVáha vstupní tečny
tensionfloatParametr napětí (TCB spline)
continuityfloatParametr kontinuity (TCB spline)
biasfloatParametr bias (TCB spline)
independent_tangentboolMethods True, vstupní a výstupní tečny jsou nezávislé
flatboolMethods True, tečny jsou přichyceny ploché
time_independent_tangentboolMethods True, směr tečny je nezávislý na časovém škálování

Methods

Řídí, jak jsou hodnoty interpolovány mezi po sobě jdoucími keyframes.

MethodsMethods
CONSTANTMethods
LINEARLineární interpolace mezi hodnotami
BEZIERKubický Bézier s vstupními/výstupními tečnami
B_SPLINEUniformní B-spline
CARDINAL_SPLINECardinal spline
TCB_SPLINETension–Continuity–Bias spline

Methods

Řídí chování animace mimo první a poslední keyframe.

MethodsMethods
CONSTANTZachovat hodnotu hranice
GRADIENTExtrapolovat podle tečného gradientu hranice klíčového snímku
CYCLEOpakovat rozsah klíčových snímků (smyčky)
CYCLE_RELATIVEOpakovat s kumulativním posunem (relativně k koncové hodnotě)
OSCILLATEPing-pong (střídavé opakování vpřed a vzad)

Methods

from aspose.threed import Scene
from aspose.threed.animation import AnimationClip, Interpolation
from aspose.threed.utilities import Vector3

scene = Scene()
node = scene.root_node.create_child_node("animated_box")
node.transform.translation = Vector3(0.0, 0.0, 0.0)

# Create an animation clip
clip = AnimationClip("Move")
clip.start = 0.0
clip.stop  = 2.0

# Create an animation node inside the clip
anim_node = clip.create_animation_node("box_anim")

# Get keyframe sequences for the X and Y translation channels
seq_x = anim_node.get_keyframe_sequence(node.transform, "Translation", "X", True)
seq_y = anim_node.get_keyframe_sequence(node.transform, "Translation", "Y", True)

if seq_x:
    seq_x.add(0.0,  0.0,  Interpolation.LINEAR)
    seq_x.add(1.0, 10.0,  Interpolation.LINEAR)
    seq_x.add(2.0,  0.0,  Interpolation.LINEAR)

if seq_y:
    seq_y.add(0.0,  0.0, Interpolation.BEZIER)
    seq_y.add(1.0,  5.0, Interpolation.BEZIER)
    seq_y.add(2.0,  0.0, Interpolation.BEZIER)

# Export to FBX to preserve animation data
scene.save("animated.fbx")

Viz také

 Čeština