120 [[nodiscard]]
int numJoints() const noexcept;
137 [[nodiscard]] const
std::vector<glm::mat4>&
skinMatrices() const noexcept;
PR-27 — per-entity animation state snapshot, decoupled from CharacterAnimator.
Catalog of ozz animation clips shared across all animated entities.
ClipId
Enumerated clip IDs.
Definition AnimationLibrary.hpp:21
@ Idle
Definition AnimationLibrary.hpp:22
static constexpr size_t kNumSamplerSlots
Number of sampler slots available for the per-frame blend.
Definition CharacterAnimator.hpp:39
Shared skinned-character rig: skeleton, bind-pose mesh, skin weights.
Pluggable skinning interface — phase-1 CPU LBS; GPU backend slots in later.
Collection of animation clips loaded on top of a shared skeleton.
Definition AnimationLibrary.hpp:55
std::unique_ptr< Impl > impl_
Definition CharacterAnimator.hpp:150
void setSkinningBackend(const ISkinningBackend *backend)
Set the skinning backend (non-owning).
Definition CharacterAnimator.cpp:193
void setDebugPlaybackSpeed(float mul) noexcept
Playback-speed multiplier applied in debug-override mode.
Definition CharacterAnimator.cpp:216
void renderFromServer(const AnimSnapshot &serverState, const AnimationInputs &inputs)
PR-29: render the entity at server-authoritative animation state.
Definition CharacterAnimator.cpp:567
ClipId debugOverride() const noexcept
Current debug override clip (_Count = no override).
Definition CharacterAnimator.cpp:206
const std::array< ClipSampler, kNumSamplerSlots > & samplers() const noexcept
Snapshot of the current sampler slots (for UI inspection).
Definition CharacterAnimator.cpp:211
CharacterAnimator(CharacterAnimator &&) noexcept=delete
void runSamplingAndSkinning(const AnimationInputs &inputs)
PR-29: shared back end for update() and renderFromServer().
Definition CharacterAnimator.cpp:600
CharacterAnimator(const CharacterRig &rig, const AnimationLibrary &library)
Definition CharacterAnimator.cpp:136
int numJoints() const noexcept
Number of joints in the underlying rig.
Definition CharacterAnimator.cpp:221
CharacterAnimator(const CharacterAnimator &)=delete
const std::vector< glm::mat4 > & skinMatrices() const noexcept
Per-joint LBS skin matrices: procedural * modelMat * inverseBind.
Definition CharacterAnimator.cpp:231
void computeSkinnedVertices(std::vector< std::vector< ModelVertex > > &out) const
Apply CPU skinning to every rig mesh, producing animated vertices.
Definition CharacterAnimator.cpp:715
void update(const AnimationInputs &inputs, float dt)
Advance the state machine, sample + blend, and compute skin matrices.
Definition CharacterAnimator.cpp:359
void setDebugOverride(ClipId id, bool loop=true)
Force a single clip to play, bypassing the graph.
Definition CharacterAnimator.cpp:198
const std::vector< glm::mat4 > & jointModelMatrices() const noexcept
Model-space joint matrices with all procedural transforms applied (head pitch, wallrun mirror) but WI...
Definition CharacterAnimator.cpp:226
CharacterAnimator & operator=(const CharacterAnimator &)=delete
Shared skinned rig — skeleton + bind-pose meshes + joint map.
Definition CharacterRig.hpp:41
Abstract skinning backend.
Definition SkinningBackend.hpp:20
Definition AudioRuntime.hpp:365
Snapshot of an entity's full animation state at one instant.
Definition AnimSnapshot.hpp:73
Definition CharacterAnimator.cpp:90
One active sampler slot contributing to the per-frame blend.
Definition CharacterAnimator.hpp:43
bool active
False = slot unused this frame.
Definition CharacterAnimator.hpp:48
float playbackSpeed
Multiplier applied to clip duration when advancing.
Definition CharacterAnimator.hpp:46
float weight
Blend weight; slots with weight 0 are skipped.
Definition CharacterAnimator.hpp:47
float timeRatio
Normalised playback time ∈ [0, 1].
Definition CharacterAnimator.hpp:45
One vertex in a skinned bind-pose mesh.
Definition SkinVertex.hpp:17