| 2026-09-10 |

Дизайн персонажей v3: детализированный манекен 14×24×8 с лицом
...
Манекен движка 9×16×4 → 14×24×8 «путник» (~2.4 тайла, 498 вокс):
торс силуэтом (юбка плаща, пояс, грудь, плечи), рукава с кистями
кожи, сапоги с мысками, шея, голова с глазами, носом и волосами.
Палитра 8 слотов: MannequinPalette {skin?, hair?, torso?, legs?,
arms?, boots?, belt?, eyes?} — глаза отдельным тёмным слотом
(не от ремня). Череп ступенькой: фасад лица до y21, шапка волос
назад до z4 — иначе с игрового ракурса (~55° сверху) шапка прячет
глаза (луч к фасаду проходит через воксель уровнем выше).
Игра: палитры героя и NPC под новую модель (Ирвину тёплая кожа —
кожа в тон седине читалась как череп), BODY_SIZE [5,24,5],
stride 12.8 (каденция 1.64 цикла/с). Аним-лист под манекен 14
шириной (PITCH 18, подставки 14×14); combat-гейт — кучка для
визуального кадра спавнится в стороне от тела героя.
Все 6 гейтов игры + 11 демок зелёные, 297 тестов. Тулза
probe-hero.mjs — проба позиции героя через мост.
Co-Authored-By: Claude Code <noreply@anthropic.com>
Eugene Sukhodolskiy
committed
1 day ago
|
Дизайн персонажей и объектов, персонажи мельче (трек 24)
...
- Манекен движка 11×21×4 → 9×16×4; новое API mannequin(palette?):
MannequinPalette {torso/legs/head/arms} красит слоты, форма не зависит
- Палитры героя и NPC (NpcDef.colors); олень мельче (~10 вокс)
- Дом: двускатная крыша коньком вдоль X, деревянная дверь на видимом
фасаде, труба; дерево: крона с профилем (низ вздут, ель ярусами)
- Гейты anim.mjs под мелкий манекен (diff фаз 40, подъём стопы 0.7);
тулза crop-zoom.mjs — зум-кроп снимка для визуальной проверки
6 гейтов игры + 11 демок зелёные, 296 тестов.
Co-Authored-By: Claude Code <noreply@anthropic.com>
Eugene Sukhodolskiy
committed
1 day ago
|

Масштаб UNIT 5→10, детализация манекена 11×21×4, частицы из мира
...
Фидбек: «частицы летают вместе с персонажем, как приклеенные»;
«персонажи низкодетализированные, не читаются; объекты всё ещё
сильно меньше — масштаб поднимать кардинально».
- Частицы (пепел, мотыльки) отвязаны от камеры: мировой якорь +
дрейф, окно камеры заворачивает (wrap) — при движении героя
частицы стоят на месте в мире.
- 1 тайл v1 = 10×10 вокселей: генераторы областей и пропы подросли
(дерево ~30–38 со стволом 2×2, дом 24×30–40×18 — вдвое выше героя,
башня 47, Машина 24×34×18), высота мира 52, стены интерьера 13.
- Манекен движка 5×11×3 → 11×21×4 (голова-куб, торс, руки/ноги 2×2 —
силуэт читается; 220 вокселей; тест связности — BFS по
6-связности). Герой 2.1 юнита/с (stride 12.8 — темп v1), камера
viewSize 80 (охват 8 тайлов), радиусы интеракта 15, олень ~13 вокс.
- Гейты переведены на новую геометрию: все 6 игры + 11 демок
зелёные, 295 тестов.
Co-Authored-By: Claude Code <noreply@anthropic.com>
Eugene Sukhodolskiy
committed
1 day ago
|
| 2026-09-09 |

v2 трек 6: рига/анимация — «анимация = данные» + walk-цикл манекена
...
- animation/mat.ts: аффинная математика без three (Affine, порядок
Эйлера X→Y→Z, rotateAround) — чистая, тестируется без рендера.
- animation/rig.ts: рига (кости: имя/родитель/pivot в связочном
пространстве), привязка вокселей — явная у генератора или bindNearest;
validateRig (родители раньше детей, согласованность привязки);
poseVoxels — жёсткая деформация по цепочкам костей.
- animation/clip.ts: клипы — ключи {t, кость: rot/pos}, линейный
семплинг с заворотом t, validateClip (монотонность, замкнутость
цикла «первый = последний»), footMinY (контакт стопы).
- animation/locomotion.ts: walkClip(params) — ноги в противофазе, руки
против одноимённой ноги, корень приседает дважды за цикл и качается.
- models/mannequin.ts: эталонный манекен 5×11×3 с ригой (5 костей,
явная привязка — Voronoi по pivot отнёс бы торс к рукам).
- render: addVoxelCloud — InstancedMesh для деформированных вокселей,
обновление позы без пересборки геометрии.
- Демка: anim.html/anim.ts — аним-лист 8 кадров цикла (4×2); мост
poseStats(i)/clipCheck()/setModels. Гейт anim.mjs: 8 проверок —
картинка (ячейки видны, фазы различаются) + числа через мост
(клип замкнут, противофазы, контакт стоп, качание корня).
- Попутно: turntable sheetInfo отдавал viewSize 30 при камере 32 —
исправлено на реальное значение (гейт проходил за счёт запаса).
- 91 юнит-тест; гейты: render 13/13, turntable 5/5, anim 8/8.
Co-Authored-By: Claude Code <noreply@anthropic.com>
Eugene Sukhodolskiy
committed
2 days ago
|