Animation — Aspose.3D FOSS for Python API Reference

Example

Det Aspose.3D animationssystem er organiseret omkring en hierarki af objekter, der binder tidsprøve-data til scenegenskaber.

  • Example AnimationClip er et navngivet afspilningsområde (f.eks. “Walk”, “Run”) holdt af en Scene.
  • Example AnimationNode lever inde i et klip og binder animerede data til specifikke egenskaber på scenens objekter.
  • En BindPoint forbinder en AnimationNode til en navngivet Property på en A3DObject.
  • Example AnimationChannel holder en enkelt skalar KeyframeSequence i et bindepunkt.
  • En KeyframeSequence er en ordnet liste over KeyFrame tid‑værdi‑prøver.

Alle animationsklasser er i aspose.threed.animation underpakke, selvom de også er tilgængelige direkte fra aspose.threed.

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

AnimationClip

En navngivet beholder for et afspilningsinterval. En Scene kan indeholde flere klip. Arver fra SceneObject.

Example

ExampleExample
AnimationClip(name=None)Opretter et klip med et valgfrit navn

Example

ExampleExampleExample
namestrKlipnavn (f.eks. "Walk")
descriptionstrValgfri beskrivelse
startfloatStarttid i sekunder
stopfloatSluttid i sekunder
animationslist[AnimationNode]Skrivebeskyttet liste over animationsnoder i dette klip
propertiesPropertyCollectionBrugerdefinerede egenskaber

Example

ExampleReturtypeExample
create_animation_node(node_name)AnimationNodeOpretter og registrerer en ny AnimationNode i dette klip

AnimationNode

Binder en AnimationClip til en eller flere BindPoint objekter, der målretter scene-objekt egenskaber. Arver fra A3DObject.

Example

ExampleExample
AnimationNode(name=None)Opretter en animationsnode med valgfrit navn

Example

ExampleExampleExample
namestrNode-navn
bind_pointslist[BindPoint]Skrivebeskyttet liste over bind-punkter
sub_animationslist[AnimationNode]Skrivebeskyttet liste over børneanimationsnoder
propertiesPropertyCollectionBrugerdefinerede egenskaber

Example

ExampleReturtypeExample
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

Forbinder en AnimationNode til en enkelt Property på en A3DObject. Hver BindPoint kan indeholde flere AnimationChannel objekter (én per skalar komponent). Arver fra A3DObject.

Example

ExampleExampleExample
propertyPropertyScene-objektets egenskab, som dette bind-punkt målretter
channels_countintAntal animationskanaler i dette bind-punkt

Example

ExampleReturtypeExample
add_channel(name, value, type=None)boolTilføjer en navngivet kanal med en standardværdi
get_channel(channel_name)`AnimationChannelNone`
get_keyframe_sequence(channel_name)`KeyframeSequenceNone`
create_keyframe_sequence(name)KeyframeSequenceOpretter en ny KeyframeSequence for dette bindepunkt
bind_keyframe_sequence(channel_name, sequence)NoneTilknytter en eksisterende KeyframeSequence med en kanal
reset_channels()NoneFjerner alle kanaler

AnimationChannel

Holder en enkelt skalar KeyframeSequence for en animeret komponent.

Example

ExampleExampleExample
namestrKanalnavn (f.eks. "X", "Y", "Z")
default_valueAnyVærdi, der bruges, når der ikke er nogen keyframe-data til stede
keyframe_sequence`KeyframeSequenceNone`

KeyframeSequence

En ordnet liste over KeyFrame prøver for en enkelt skalar kanal. Arver fra A3DObject.

Example

ExampleExample
KeyframeSequence(name=None)Opretter en tom keyframe-sekvens

Example

ExampleExampleExample
namestrSekvensnavn
key_frameslist[KeyFrame]Skrivebeskyttet liste over keyframes i kronologisk rækkefølge
pre_behaviorExtrapolationAdfærd før den første keyframe
post_behaviorExtrapolationAdfærd efter den sidste keyframe
bind_point`BindPointNone`

Example

ExampleReturtypeExample
add(time, value, interpolation=Interpolation.LINEAR)NoneTilføjer en keyframe ved time (sekunder) med den angivne value og interpolation tilstand
reset()NoneRydder alle keyframes og nulstiller for-/efter‑adfærd

KeyFrame

Et enkelt tids‑værdi‑sample i en KeyframeSequence.

Example

KeyFrame objekter oprettes internt af KeyframeSequence.add(); opret dem ikke direkte.

Example

ExampleExampleExample
timefloatTidsposition i sekunder
valuefloatAnimeret værdi på dette tidspunkt
interpolationInterpolationInterpolationsmetode anvendt mellem denne nøgleframe og den næste
tangent_weight_modeWeightedModeTangentvægt-tilstand (Bezier-kurver)
step_modeStepModeTrinadfærd (PREVIOUS_VALUE eller NEXT_VALUE)
next_in_tangent`Vector2None`
out_tangent`Vector2None`
out_weightfloatUdgående tangentvægt
next_in_weightfloatIndgående tangentvægt
tensionfloatSpændingsparameter (TCB-spline)
continuityfloatKontinuitetsparameter (TCB spline)
biasfloatBias-parameter (TCB spline)
independent_tangentboolExample True, ind- og ud-tangenter er uafhængige
flatboolExample True, tangenter er fastlåst flade
time_independent_tangentboolExample True, tangentens retning er uafhængig af tids-skalering

Example

Styrer, hvordan værdier interpoleres mellem på hinanden følgende keyframes.

ExampleExample
CONSTANTExample
LINEARLineær interpolation mellem værdier
BEZIERKubisk Bezier med ind/ud-tangenter
B_SPLINEUniform B-spline
CARDINAL_SPLINECardinal spline
TCB_SPLINETension–Continuity–Bias spline

Example

Styrer animationsadfærd ud over den første og sidste keyframe.

ExampleExample
CONSTANTHold grænseværdien
GRADIENTEkstrapoler ved tangentgradienten for grænse‑nøglebilledet
CYCLEGentag nøglebilledintervallet (løkker)
CYCLE_RELATIVEGentag med kumulativ forskydning (relativt til slutværdien)
OSCILLATEPing-pong (alternativ fremad- og bagudgentagelse)

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

Se også

 Dansk