![]() |
vkmEngine 1.0.0
A C++ game engine · vkmengine.com
|
Poses every rig in the scene and publishes the result on FrameContext::poses. More...
#include <skeletal_animation_system.h>
Public Member Functions | |
| void | update (FrameContext &ctx) override |
| Execute this system for the current frame. | |
| void | fixedUpdate (FrameContext &ctx) override |
| Execute this system at the fixed simulation rate. | |
| Public Member Functions inherited from Vkm::Engine::System | |
| virtual bool | isReplayed () const |
| Whether this system may be re-run over a tick that already happened. | |
| virtual void | init (FrameContext &ctx) |
| Called once after all systems are registered, before the first update. | |
| virtual void | shutdown () |
| Called once on engine shutdown. | |
Poses every rig in the scene and publishes the result on FrameContext::poses.
Runs in SystemStage::Simulation, since it advances clip time, ahead of whatever reads FrameContext::poses, and writes no Transform. Only the evaluation is parallel; marker announcement is serial, because the EventBus is main-thread only.
Time advances on the tick. The pose is also composed every paused frame, so a scrubbed Animator shows its pose, and on the first frame after the world is replaced, because the buffer maps entity slots the new world reuses. Composition is idempotent.
|
overridevirtual |
Execute this system for the current frame.
| ctx | This frame's services and the products published so far. |
Reimplemented from Vkm::Engine::System.
|
overridevirtual |
Execute this system at the fixed simulation rate.
Called 0+ times per frame; the step is ctx.clock.getFixedStep().
Runs before any producer stage, so ctx.visibility and ctx.ui are null here. ctx.poses is set by SkeletalAnimationSystem's own fixedUpdate, so a later Simulation system reads this tick's pose.
| ctx | This frame's services; see above for which products are set. |
Reimplemented from Vkm::Engine::System.