Crossfade animations between ticks
CI / build (push) Successful in 1m30s

ModelInstance::step ramps the weights of animations fading in and out in tenths
over 10 ticks; between ticks, the posing hook sets them partway to the next
tick's weight, and puts them back with the times. Only if ModelInstance::step
counts the fades where expected (checked when installing); otherwise
crossfades stay at the client's rate.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
dhkatzandClaude Opus 5.5 committed 2026-10-28 22:41:23 -07:00
1 parent 9d0faecf4d
commit db344b7b95
3 files changed
+66 -17

No files matched your search

+2 -1
View File
@@ -99,7 +99,8 @@ share 0.4 of the way to its target per step) has brought it, `1 - 0.6^fraction`
getCameraTransform, in its exported vtable). Nothing is predicted: both are what the next step would give, at the
fraction; and particles moved on by their velocity times the time since the step (ModelInstance::render's call to
ParticleSystem::render, redirected), then back by the same (the client sorts them by distance as it draws them, which
reorders them). Still at 30 per second: crossfades between animations, gaze.
reorders them); and crossfades between animations (weights ramped in tenths over 10 steps by ModelInstance::step),
partway to the next step's weights. Still at 30 per second: gaze (heads turning to whoever's talking).
Next: sharing pipelines between views (each view's scene compiles its own).