# Бриф на ассеты — «Биндим Фигняшку» Документ для генерации полного набора графики (через Claude/дизайн-ИИ или художника). Ниже — **готовый промпт** (можно копировать целиком) и **таблица ассетов**, привязанная к нашему пайплайну: каждый ассет ложится в `src/render/assets.ts` вместо текущего процедурного рисунка (заменяем `drawX()` на загрузку PNG через `THREE.TextureLoader`). Следующим заходом мы подключим присланные PNG; пока в игре — простые процедурные плейсхолдеры. --- ## Готовый промпт (копировать целиком) > Ты — художник 2D-игр. Сделай ПОЛНЫЙ набор ассетов для рогалика «Биндим Фигняшку» > в духе The Binding of Isaac. > > **Игра и ракурс.** Вид сверху под наклоном (псевдо-3D): пол лежит плашмя и виден под > углом ≈50° (камера приподнята и смотрит вниз-вперёд), а персонажи и враги — это > ВЕРТИКАЛЬНЫЕ спрайты-биллборды, стоящие на полу и обращённые к камере (фронтальный > вид, чуть сверху). Стены — невысокий бортик по периметру комнаты. Комната — прямоугольник > 15×11 тайлов. > > **Стиль.** Мрачное подземелье, мультяшно-гротескный, читаемые силуэты, плотные тёмные > контуры, без мелкой суеты — всё должно читаться на маленьком размере. Допустимы пиксель-арт > ИЛИ чистый векторно-мультяшный стиль — но ЕДИНЫЙ для всего набора. > > **Палитра.** Пол — светлый серо-песочный камень (≈#6b6657), стены — холодный сине-серый > кирпич (≈#47475a). Поэтому персонажи/враги должны быть НАСЫЩЕННЫМИ и контрастными, чтобы > выделяться на светлом полу. Игрок дальнего боя — синий, ближнего — красный. Враги: «обычный» — > тёплый терракот, «быстрый» — ярко-красный, «босс» — тёмно-багровый с рогами. > > **Технические требования (обязательно):** > - PNG с прозрачным фоном (alpha), без подложки и без «приваренной» тени/пола. > - Спрайты персонажей/врагов/дверей — ВЕРТИКАЛЬНЫЕ, соотношение 3:4 (ширина:высота), > персонаж по центру, СТУПНИ у самого нижнего края кадра (мы «ставим» спрайт на пол по низу). > - Текстуры пола и стен — БЕСШОВНЫЕ (tileable), повторяются по сетке. > - Эффекты (вспышка/искра/дымок) — на прозрачном фоне, со светлым (почти белым) центром, > чтобы их можно было тонировать цветом в движке; рассчитаны на аддитивное смешивание. > - Никаких теней под персонажем внутри спрайта — тень рисуется отдельным ассетом. > - Единая «толщина пикселя»/уровень детализации во всём наборе. > > **Что нарисовать** — см. список ниже (каждый пункт = отдельный файл с указанным именем > и размером). Пришли файлы по этим именам (или один атлас + JSON-карта координат). (Дальше вставь таблицу ассетов из этого файла.) --- ## Таблица ассетов Имена файлов соответствуют ключам в `src/render/assets.ts` — присылай ровно с такими именами. ### Персонажи и враги (вертикальные спрайты 3:4, прозрачный фон, ступни у нижнего края) | Файл | Что | Рекоменд. размер | Заметки | |---|---|---|---| | `player-ranged.png` | Игрок, режим «дальний» (с пистолетом) | 192×256 | синий; большая голова в духе Isaac | | `player-melee.png` | Игрок, режим «ближний» (с ножом) | 192×256 | красный; та же база, другое оружие/цвет | | `enemy-normal.png` | Обычный враг | 192×256 | терракот, медлительный, «толстенький» | | `enemy-fast.png` | Быстрый враг | 160×213 | ярко-красный, мельче, «дёрганый» | | `enemy-boss.png` | Босс | 288×384 | тёмно-багровый, рога, крупный и злой | > Опционально (на будущее, не обязательно сейчас): по 4 ракурса на персонажа > (вверх/вниз/влево/вправо) — тогда добавь суффиксы `-up/-down/-left/-right`. ### Окружение | Файл | Что | Рекоменд. размер | Заметки | |---|---|---|---| | `floor.png` | Текстура пола | 256×256 | **бесшовная**, светлый серо-песочный камень, без сильных направленных деталей (виден под углом) | | `wall.png` | Текстура стены | 256×256 | **бесшовная**, сине-серый кирпич | | `door-closed.png` | Закрытая дверь (засов) | 192×256, 3:4 | стоит в проёме стены; видна во время боя | | `door-open.png` | Открытая дверь (тёмный проём/арка) | 192×256, 3:4 | после зачистки комнаты | ### Снаряды и эффекты (прозрачный фон, светлый центр, под аддитивное смешивание) | Файл | Что | Рекоменд. размер | Заметки | |---|---|---|---| | `tear.png` | Снаряд-«слеза» игрока | 64×64 | голубая светящаяся капля | | `muzzle.png` | Вспышка из дула при выстреле | 128×128 | радиальная жёлто-белая | | `spark.png` | Искра попадания по врагу | 128×128 | бело-жёлтая, короткая | | `puff.png` | Облачко при гибели врага | 128×128 | серо-белое, рассеивается | | `shadow.png` | Мягкая тень-«пятно» под сущностью | 128×64 | чёрный радиальный градиент, эллипс | ### Интерфейс и меню (опционально, но желательно) | Файл | Что | Рекоменд. размер | Заметки | |---|---|---|---| | `logo.png` | Логотип «Биндим Фигняшку» | 900×220 | прозрачный фон, для стартового меню | | `menu-bg.png` | Фон стартового меню | 880×660 | тёмное подземелье, не пёстрый (поверх — текст) | | `heart-full.png` / `heart-half.png` / `heart-empty.png` | Сердечки HP | 48×48 | замена полоске HP на сердечки (как в Isaac) | | `icon-ranged.png` / `icon-melee.png` | Иконки режимов (пистолет/нож) | 48×48 | для индикатора оружия в HUD | --- ## Как мы это применим (следующий заход) 1. Кладём PNG в `src/assets/` (новая папка) и импортируем как URL (Bun умеет в `import img from './x.png'`). 2. В `src/render/assets.ts` заменяем процедурные `drawX()` на `new THREE.TextureLoader().load(url)` с теми же ключами — больше нигде ничего менять не нужно (рендер берёт текстуры по ключам, см. `docs/ARCHITECTURE.md` → «Тема / ассеты»). 3. При желании заводим тему `Theme` со ссылками на наборы ассетов, чтобы переключать стиль. Если пришлёте ОДИН атлас вместо отдельных файлов — приложите JSON с прямоугольниками (`{ "player-ranged": [x,y,w,h], ... }`), мы нарежем через `texture.repeat`/`offset`.