Animation — Aspose.3D FOSS for Python API Reference

Example

Systém animácie Aspose.3D je organizovaný okolo hierarchie objektov, ktoré viažu časovo vzorkované dáta na vlastnosti scény.

  • Example AnimationClip je pomenovaný rozsah prehrávania (napr. “Walk”, “Run”) držaný Scene.
  • Example AnimationNode žije vnútri klipu a viaže animované dáta na konkrétne vlastnosti objektov scény.
  • A BindPoint spája AnimationNode k pomenovanému Property na A3DObject.
  • Example AnimationChannel obsahuje jeden skalár KeyframeSequence v rámci bodu viazania.
  • A KeyframeSequence je usporiadaný zoznam KeyFrame časovo‑hodnotové vzorky.

Všetky triedy animácie sú v aspose.threed.animation podbalíku, hoci sú tiež priamo prístupné z aspose.threed.

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

AnimationClip

Pomenovaný kontajner pre jeden rozsah prehrávania. A Scene môže obsahovať viacero klipov. dedí od SceneObject.

Example

ExampleExample
AnimationClip(name=None)Vytvorí klip s voliteľným názvom

Example

ExampleExampleExample
namestrNázov klipu (napr. "Walk")
descriptionstrVoliteľný popis
startfloatPočiatočný čas v sekundách
stopfloatKoncový čas v sekundách
animationslist[AnimationNode]Zoznam animačných uzlov v tomto klipe len na čítanie
propertiesPropertyCollectionVlastné vlastnosti

Example

ExampleNávratový typExample
create_animation_node(node_name)AnimationNodeVytvorí a zaregistruje nový AnimationNode v tomto klipe

AnimationNode

Viaže AnimationClip k jednému alebo viacerým BindPoint objektom zameraným na vlastnosti scény-objektu. Dedičí od A3DObject.

Example

ExampleExample
AnimationNode(name=None)Vytvorí animačný uzol s voliteľným názvom

Example

ExampleExampleExample
namestrNázov uzla
bind_pointslist[BindPoint]Zoznam väzbových bodov len na čítanie
sub_animationslist[AnimationNode]Zoznam podriadených animačných uzlov len na čítanie
propertiesPropertyCollectionVlastné vlastnosti

Example

ExampleNávratový typExample
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

Pripojí AnimationNode k jednému Property na A3DObject. Každý BindPoint môže obsahovať viacero AnimationChannel objektov (jeden na skalárnu komponentu). Dedičí od A3DObject.

Example

ExampleExampleExample
propertyPropertyVlastnosť scény-objektu, na ktorú tento väzobný bod smeruje
channels_countintPočet animačných kanálov v tomto väzobnom bode

Example

ExampleNávratový typExample
add_channel(name, value, type=None)boolPridá pomenovaný kanál s predvolenou hodnotou
get_channel(channel_name)`AnimationChannelNone`
get_keyframe_sequence(channel_name)`KeyframeSequenceNone`
create_keyframe_sequence(name)KeyframeSequenceVytvorí nový KeyframeSequence pre tento väzobný bod
bind_keyframe_sequence(channel_name, sequence)NonePriradí existujúci KeyframeSequence s kanálom
reset_channels()NoneOdstráni všetky kanály

AnimationChannel

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

Example

ExampleExampleExample
namestrNázov kanála (napr. "X", "Y", "Z")
default_valueAnyHodnota použitá, keď nie sú k dispozícii dáta kľúčových snímok
keyframe_sequence`KeyframeSequenceNone`

KeyframeSequence

Usporiadaný zoznam KeyFrame vzorky pre jeden skalárny kanál. Dedičí z A3DObject.

Example

ExampleExample
KeyframeSequence(name=None)Vytvorí prázdnu sekvenciu kľúčových snímok

Example

ExampleExampleExample
namestrNázov sekvencie
key_frameslist[KeyFrame]Zoznam kľúčových snímok len na čítanie v chronologickom poradí
pre_behaviorExtrapolationSprávanie pred prvou kľúčovou snímkou
post_behaviorExtrapolationSprávanie po poslednej kľúčovej snímke
bind_point`BindPointNone`

Example

ExampleNávratový typExample
add(time, value, interpolation=Interpolation.LINEAR)NonePripojí kľúčovú snímku na time (sekúnd) s daným value a interpolation režim
reset()NoneVymaže všetky kľúčové snímky a resetuje pred/po správanie

KeyFrame

Jedna vzorka časovej hodnoty v KeyframeSequence.

Example

KeyFrame objekty sú vytvárané interne KeyframeSequence.add(); nevytvárajte ich priamo.

Example

ExampleExampleExample
timefloatČasová pozícia v sekundách
valuefloatAnimovaná hodnota v tomto čase
interpolationInterpolationRežim interpolácie aplikovaný medzi týmto kľúčovým snímkom a nasledujúcim
tangent_weight_modeWeightedModeRežim váhy tangentu (Bezier curves)
step_modeStepModeSprávanie kroku (PREVIOUS_VALUE alebo NEXT_VALUE)
next_in_tangent`Vector2None`
out_tangent`Vector2None`
out_weightfloatVáha výstupného tangentu
next_in_weightfloatVáha vstupného tangentu
tensionfloatParameter napätia (TCB spline)
continuityfloatParameter spojitosti (TCB spline)
biasfloatParameter sklonu (TCB spline)
independent_tangentboolExample True, vstupné a výstupné tangenty sú nezávislé
flatboolExample True, tangenty sú stlačené ploché
time_independent_tangentboolExample True, smer tangentu je nezávislý od časového škálovania

Example

Riadi, ako sa hodnoty interpolujú medzi po sebe nasledujúcimi kľúčovými snímkami.

ExampleExample
CONSTANTExample
LINEARLineárna interpolácia medzi hodnotami
BEZIERKubický Bézier s vstupnými/výstupnými tečnými
B_SPLINEJednotný B-spline
CARDINAL_SPLINEKardinálny splajn
TCB_SPLINETension–Continuity–Bias splajn

Example

Riadi správanie animácie mimo prvého a posledného kľúčového snímku.

ExampleExample
CONSTANTUdržať hranicovú hodnotu
GRADIENTExtrapolovať pri tangenciálnom gradientu hranicového kľúčového snímku
CYCLEOpakovať rozsah kľúčových snímok (smyčky)
CYCLE_RELATIVEOpakovať s kumulatívnym posunom (relatívne k koncovej hodnote)
OSCILLATEPing-pong (striedavé opakovanie dopredu a dozadu)

Example

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")

Pozri tiež

 Slovenčina