Source code for scfile.structures.models.animation

from dataclasses import dataclass, field

import numpy as np

from .enums import AnimationRotation, AnimationTranslation
from .types import AnimationRotations, AnimationTimes, AnimationTranslations


[docs] @dataclass class AnimationClip: """Keyframed bone animation clip.""" name: str = "clip" frames: int = 0 rate: float = 0.33 translations: AnimationTranslations = field(default_factory=lambda: np.zeros(0, dtype=np.float32)) rotations: AnimationRotations = field(default_factory=lambda: np.zeros(0, dtype=np.float32)) @property def times(self) -> AnimationTimes: return np.arange(self.frames, dtype=np.float32) * self.rate
[docs] @dataclass class ModelAnimation: """Animation clips container.""" clips: list[AnimationClip] = field(default_factory=list) translation: AnimationTranslation = AnimationTranslation.DELTA rotation: AnimationRotation = AnimationRotation.QUATERNION