diff --git a/docs/plan.md b/docs/plan.md index 768d521..fae0f1c 100644 --- a/docs/plan.md +++ b/docs/plan.md @@ -537,3 +537,40 @@ ошибкоёмко. В v2: декларативные слои с авторазмещением по ключу. 6. **Мёртвый код переживает проверки** — нужен принцип: не оставлять подключённый, но неиспользуемый путь; удалять или связывать сразу. + +### Направление v2: воксельный движок (решено в беседе, 2026-09-09) + +**Фокус прежний: движок + инструментарий ИИ-агента; игра — демо-полигон. +Демка остаётся изометрией** (фиксированная камера), движок v2 — жанронезависимый. + +- **Стиль**: воксель как продолжение пиксель-арта — рендер сцены в низкое + разрешение (nearest-апскейл, тот же приём, что виртуальные 480×270 в v1), + палитра вокселей квантуется в арт-библию (B*/F* — «жизнь»). Настоящие + свет/тени: shadow map + воксельный AO (по занятым соседям) вместо фейков v1. +- **Рендер-бэкенд**: three.js на низком уровне (роль Pixi в v1 — «только + рендер-бэкенд»), ядро движка своё и о бэкенде не знает (урок №4: рендер за + узким интерфейсом). Свободная камера — позже, не в старте. +- **Формат моделей**: гибрид — внутренний формат свой (валидация агентом), + импорт/экспорт `.vox` (MagicaVoxel) как мост к готовым инструментам + (аналогия: Tiled-импорт в v1). +- **Генерация моделей — 3 взаимодополняющих маршрута**: + 1. Процедурные генераторы кодом (аналог `tools/pixelart/gen.mjs`) — + основной путь: детерминизм, ревью диффом, юнит-тесты; + 2. Image/text-to-3D локально (RTX 3090: TripoSR/Shap-E-класс) → + вокселизация → квантование в палитру → review-лист → апрув-гейт + (аналог пайплайна A0/B4); + 3. Ручной MagicaVoxel для ключевых героев; агент — вариации и производные. + Общий визуальный гейт — turntable-листы (6–8 ракурсов в один PNG) + апрув. +- **Анимация = данные, не кадры**: рига + кривые ключевых кадров в JSON + (кости деформируют близкие воксели линейным блендингом), процедурная + локомоция (шаг от скорости, secondary motion), вторичная анимация кодом. + Валидация числовая: непрерывность цикла, контакт стопы (y кости ≈ 0 в + фазе опоры), дистанции костей — юнит-тесты + снапшот поз в агентный мост + + превью-листы кадров. Агент авторит кривые/параметры текстом. +- **Перенос из v1**: аудио-трак целиком (wav/spectro/манифесты/шины — + рендер-агностичен); `tools/pixelart` остаётся для UI/иконок/частиц; + **агентный мост + CLI-чеки — ядро v2, а не «порт»** (согласовано). + +Открытые вопросы v2 (копить здесь): каркас ядра (ECS v1 или новый), физика/ +коллизии в воксельном мире, тайлинг мира (чанки), производственный порядок +треков (каркас+бэкенд+мост → генераторы моделей → рига/анимация → демо).