6#include "core/system.h"
7#include "debug/fault_latch.h"
8#include "ecs/component/animation/animator.h"
10#include "system/animation/pose_buffer.h"
11#include "system/animation/ragdoll_pose.h"
12#include "system/animation/pose_evaluator.h"
14namespace Vkm::Engine {
34class SkeletalAnimationSystem :
public System {
36 SkeletalAnimationSystem() =
default;
37 ~SkeletalAnimationSystem()
override =
default;
39 SkeletalAnimationSystem(
const SkeletalAnimationSystem& other) =
delete;
40 SkeletalAnimationSystem& operator=(
const SkeletalAnimationSystem& other) =
delete;
42 SkeletalAnimationSystem(SkeletalAnimationSystem && other) =
delete;
43 SkeletalAnimationSystem& operator=(SkeletalAnimationSystem && other) =
delete;
57 uint32_t animatorIndex = 0;
58 uint32_t entityIndex = 0;
66 const Ragdoll* ragdoll =
nullptr;
67 uint32_t firstBody = 0;
68 glm::mat4 rigWorld = glm::mat4(1.0f);
88 void run(
FrameContext& ctx,
float step,
bool announceMarkers);
121 const AnimationClipHandle& handle,
137 void stampDescendants(
165 void checkSkinnedMesh(
175 std::vector<RigWork> m_work;
178 std::vector<RagdollBodyPose> m_ragdollBodies;
180 uint64_t m_epoch = 0;
Names a recurring fault once per gap rather than once a frame.
Definition fault_latch.h:11
Every rig's pose for one frame, published on FrameContext::poses.
Definition pose_buffer.h:47
Open type-erased resource registry with typed handles and generational lifetimes.
Definition resource_manager.h:46
Central registry managing entities and an open set of component types.
Definition scene.h:29
void fixedUpdate(FrameContext &ctx) override
Execute this system at the fixed simulation rate.
void update(FrameContext &ctx) override
Execute this system for the current frame.
A baked animation: every bone's keys, in six flat arrays.
Definition animation_clip_asset.h:50
Names one entity of one Scene, for as long as that slot holds it.
Definition entity.h:23
Per-frame state bundle passed to every system.
Definition system.h:55
The sweep a playback head made this frame.
Definition pose_evaluator.h:43
Turns a rig over to physics, and back.
Definition ragdoll.h:49
A rig: a flat, parent-before-child bone array plus its bind pose.
Definition skeleton_asset.h:33