Animation — Aspose.3D FOSS for Python API Reference

Example

Aspose.3D 애니메이션 시스템은 시간 샘플링된 데이터를 씬 속성에 바인딩하는 객체 계층 구조를 중심으로 구성됩니다.

  • Example AnimationClip 은(는) named playback range(예: “Walk”, “Run”)이며, a에 의해 보유됩니다 Scene.
  • Example AnimationNode 은(는) clip 내부에 존재하고 animated data를 scene objects의 특정 속성에 바인딩합니다.
  • A BindPoint 연결합니다 AnimationNode 명명된 PropertyA3DObject.
  • Example AnimationChannel 단일 스칼라를 보유합니다 KeyframeSequence 바인드 포인트 내에서.
  • A KeyframeSequence 은(는) 정렬된 목록이며 KeyFrame 시간-값 샘플입니다.

모든 animation 클래스는 aspose.threed.animation sub-package에 있으며, 직접 접근도 가능합니다. aspose.threed.

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

AnimationClip

하나의 playback range를 위한 명명된 컨테이너입니다. A Scene 여러 개의 clip을 보유할 수 있습니다. 로부터 상속됩니다. SceneObject.

Example

ExampleExample
AnimationClip(name=None)옵션 이름을 가진 clip을 생성합니다

Example

ExampleExampleExample
namestr클립 이름 (예:. "Walk")
descriptionstr선택적 설명
startfloat시작 시간(초)
stopfloat종료 시간(초)
animationslist[AnimationNode]이 클립의 애니메이션 노드에 대한 읽기 전용 목록
propertiesPropertyCollection사용자 정의 속성

Example

Example반환 유형Example
create_animation_node(node_name)AnimationNode새로운 것을 생성하고 등록합니다 AnimationNode 이 클립에서

AnimationNode

바인드합니다 AnimationClip 하나 이상의 BindPoint 장면 객체 속성을 대상으로 하는 객체들. 다음으로부터 상속받음 A3DObject.

Example

ExampleExample
AnimationNode(name=None)선택적 이름을 가진 애니메이션 노드를 생성합니다

Example

ExampleExampleExample
namestr노드 이름
bind_pointslist[BindPoint]바인드 포인트에 대한 읽기 전용 목록
sub_animationslist[AnimationNode]자식 애니메이션 노드에 대한 읽기 전용 목록
propertiesPropertyCollection사용자 정의 속성

Example

Example반환 유형Example
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

연결합니다 AnimationNode 하나의 PropertyA3DObject. 각 BindPoint 여러 개를 보유할 수 있습니다 AnimationChannel 객체(스칼라 구성 요소당 하나). 상속받음 A3DObject.

Example

ExampleExampleExample
propertyProperty이 바인드 포인트가 타깃으로 하는 씬-오브젝트 속성
channels_countint이 바인드 포인트의 애니메이션 채널 수

Example

Example반환 유형Example
add_channel(name, value, type=None)bool기본값이 있는 명명된 채널을 추가합니다
get_channel(channel_name)`AnimationChannelNone`
get_keyframe_sequence(channel_name)`KeyframeSequenceNone`
create_keyframe_sequence(name)KeyframeSequence새로운 것을 생성합니다 KeyframeSequence 이 바인드 포인트에 대해
bind_keyframe_sequence(channel_name, sequence)None기존의 것을 연결합니다 KeyframeSequence 채널과
reset_channels()None모든 채널을 제거합니다

AnimationChannel

단일 스칼라를 보유합니다 KeyframeSequence 하나의 애니메이션 구성 요소에 대해.

Example

ExampleExampleExample
namestr채널 이름 (예:. "X", "Y", "Z")
default_valueAny키프레임 데이터가 없을 때 사용되는 값
keyframe_sequence`KeyframeSequenceNone`

KeyframeSequence

정렬된 목록 KeyFrame 단일 스칼라 채널에 대한 샘플. 다음으로부터 상속됨 A3DObject.

Example

ExampleExample
KeyframeSequence(name=None)빈 키프레임 시퀀스를 생성합니다

Example

ExampleExampleExample
namestr시퀀스 이름
key_frameslist[KeyFrame]시간 순서대로 정렬된 키프레임 읽기 전용 목록
pre_behaviorExtrapolation첫 번째 키프레임 이전의 동작
post_behaviorExtrapolation마지막 키프레임 이후의 동작
bind_point`BindPointNone`

Example

Example반환 타입Example
add(time, value, interpolation=Interpolation.LINEAR)None키프레임을 ~에 추가 time (초)와 주어진 valueinterpolation 모드
reset()None모든 키프레임을 삭제하고 사전/사후 동작을 초기화합니다

KeyFrame

단일 시간값 샘플이 a KeyframeSequence.

Example

KeyFrame 객체는 내부적으로 ~에 의해 생성됩니다 KeyframeSequence.add(); 직접 생성하지 마세요.

Example

ExampleExampleExample
timefloat시간 위치(초)
valuefloat이 시점의 애니메이션 값
interpolationInterpolation이 키프레임과 다음 키프레임 사이에 적용되는 보간 모드
tangent_weight_modeWeightedMode탄젠트 가중치 모드 (Bezier curves)
step_modeStepMode스텝 동작 (PREVIOUS_VALUE 또는 NEXT_VALUE)
next_in_tangent`Vector2None`
out_tangent`Vector2None`
out_weightfloat출력 탄젠트 가중치
next_in_weightfloat입력 탄젠트 가중치
tensionfloat텐션 파라미터 (TCB spline)
continuityfloat연속성 파라미터 (TCB 스플라인)
biasfloat바이어스 파라미터 (TCB 스플라인)
independent_tangentboolExample True, 인 및 아웃 탄젠트가 독립적입니다
flatboolExample True, 탄젠트가 평탄하게 고정됩니다
time_independent_tangentboolExample True, 탄젠트 방향이 시간 스케일링과 무관합니다

Example

연속된 키프레임 사이에서 값이 보간되는 방식을 제어합니다.

ExampleExample
CONSTANTExample
LINEAR값 사이의 선형 보간
BEZIER인/아웃 탄젠트를 이용한 큐빅 베지어
B_SPLINE균일 B-스플라인
CARDINAL_SPLINE카디널 스플라인
TCB_SPLINE텐션–연속성–바이어스 스플라인

Example

첫 번째 및 마지막 키프레임을 벗어난 애니메이션 동작을 제어합니다.

ExampleExample
CONSTANT경계 값을 유지
GRADIENT경계 키프레임의 접선 기울기에서 외삽
CYCLE키프레임 범위 반복 (루프)
CYCLE_RELATIVE누적 오프셋으로 반복 (끝 값에 상대적)
OSCILLATE핑-퐁 (앞뒤 번갈아 반복)

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

참고

 한국어