|
Трек 32: крепления предметов к костям риги — рюкзак и факел на герое
- Движок: attach.ts — Attachment {bone, model, pos?, rot?}: предмет
(обычная VoxelModel со своей палитрой) размещается в связочном
пространстве базы и едет с костью (boneWorlds); attachVoxels мержит
воксели предметов в позу, attachTiles — общий реестр тайлей со сдвигом
id за базу. Неизвестная кость — throw. Тесты: предмет едет ровно как
воксель кисти (равенство сдвигов 1e-9), тайли, детерминизм.
- Генераторы: backpackModel (84 вокс, пряжка — перекраска, не добавление),
torchModel (6 вокс), палитра GearPalette.
- Character: CharacterOptions.attachments + setAttachments; visual()
мержит attachVoxels до yaw-маппинга — предмет поворачивается с моделью.
- Игра: герой с рюкзаком (root, за спиной) и факелом (armR, машет с
рукой); мост heroGear(ids|null) + heroInfo.gear/gearVoxels. Гейт
gear.mjs (6 проверок): счёт 90/84/0, снятие меняет кадр, ходьба цела.
- Багфиксы, найденные пробой: пост-проход затемнял день ~втрое (RT
хранит linear, квад рисовал без linearToOutputTexel — конверсия сразу
после сэмпла, до эффектов; тест на порядок) и дев-панель была видна
с самого старта страницы (#dev[hidden]{display:none}).
326 тестов, гейты gear/atmosphere/panels/render зелёные.
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
|---|
|
|
| v2/CLAUDE.md |
|---|
| v2/apps/game/index.html |
|---|
| v2/apps/game/src/main.ts |
|---|
| v2/apps/game/tools/checks/gear.mjs 0 → 100644 |
|---|
| v2/packages/engine/src/animation/__tests__/attach.test.ts 0 → 100644 |
|---|
| v2/packages/engine/src/animation/attach.ts 0 → 100644 |
|---|
| v2/packages/engine/src/index.ts |
|---|
| v2/packages/engine/src/models/__tests__/generators.test.ts |
|---|
| v2/packages/engine/src/models/generators.ts |
|---|
| v2/packages/engine/src/physics/character.ts |
|---|
| v2/packages/engine/src/render/__tests__/postShader.test.ts |
|---|
| v2/packages/engine/src/render/postShader.ts |
|---|