Анимация 4/4: шоукейс в игре — все акторы на SpriteAnimator, статика оживает
Унификация акторов на движковые аниматоры (три ручных таймера кадров больше не дублируются):
- PlayerController: SpriteAnimator с клипами walk_*/idle_* — ушёл «застыл на произвольном кадре ходьбы»;
- CombatViews: SpriteAnimator (спящим pause), hit/death-бёрсты — oneShot через engine.fx
  (закрыт баг «частицы стоят на месте»), новые опции drag/spin/scaleOverLife/colors;
- FaunaSystem: SpriteAnimator (на ходу walk, в покое стоп-кадр).

Оживление статики в LocationScene (всё тикается engine.fx, без ручного update):
- вода — setTileAnimation (2 кадра, один таймлайн на все клетки);
- мигание героя — SpriteMotion blink с живым duty (вместо ручного alpha);
- NPC idle — кадры npcs_sheet (randomPhase по тайлу), атлас добавлен в BootScene,
  отдельные PNG NPC из списка ассетов убраны;
- искры pickup-объектов — SpriteMotion pulse;
- тёплые мотыльки — эмиттер blend:'add' + wobble + fadeIn;
- кадры героя/фауны — через assets.animation() (анимации атласов из батча 3).
Ограничение: sway для цветов/башни не вводился — это тайлы карты (спрайты
внутри IsometricTileMap), SpriteMotion на них неприменим.

Движок, попутные фиксы:
- Updatables: разрушенные записи не тикаются (Pixi обнуляет transform —
  тик разрушенного SpriteMotion ронял весь тик и молча убивал игру после
  перехода между локациями) + тесты;
- Engine.stepTicks: setManual(false)/resetTiming в finally — исключение в шаге
  больше не оставляет цикл в ручном режиме навсегда;
- EmitterOptions.velocity опционален (в oneShot с radialSpeed не нужен);
- SpriteAnimator/SpriteMotion: геттер destroyed — самозачистка из engine.fx.

Доки: core.md (fx), anim.md (самозачистка), render.md (velocity), agent.md +
practices.md (грабля «мост глотает throw шага» и приём диагностики).

Co-Authored-By: Claude Code <noreply@anthropic.com>
1 parent 02ddeb3 commit d7b3e69b847df93e8ddc012dc4d18aef1008a44d
@root root authored 14 hours ago
Showing 18 changed files
View
apps/game/src/Game.ts
View
apps/game/src/scenes/BootScene.ts
View
apps/game/src/scenes/LocationScene.ts
View
apps/game/src/systems/PlayerController.ts
View
apps/game/src/systems/combat/CombatViews.ts
View
apps/game/src/systems/fauna/FaunaSystem.ts
View
docs/engine/agent.md
View
docs/engine/anim.md
View
docs/engine/core.md
View
docs/engine/practices.md
View
docs/engine/render.md
View
packages/engine/src/anim/SpriteAnimator.ts
View
packages/engine/src/anim/SpriteMotion.ts
View
packages/engine/src/core/Engine.ts
View
packages/engine/src/core/Updatables.ts
View
packages/engine/src/core/__tests__/Updatables.test.ts
View
packages/engine/src/render/Particles.ts
View
packages/engine/src/render/particleSim.ts