Files
Binding-Fignyaac/docs/ASSET_BRIEF.md
mayatnikovandClaude Opus 4.8 7dabfd4fff docs: синхронизировать описание ассетов с реальностью (PNG из src/assets + фолбэк)
Ревью отметило устаревшие тексты после перехода на загрузку PNG:
- assets.ts: заголовок описывал «процедурно, без внешних файлов» — теперь PNG из
  src/assets/<ключ>.png с процедурным фолбэком.
- HOWTO §8: убран совет «заменить тело drawX() на TextureLoader» (уже сделано);
  актуальный путь — положить PNG с нужным именем в src/assets/.
- README/ARCHITECTURE/ASSET_BRIEF: статус «подключено», корректный механизм (рантайм-
  загрузка по пути, не импорт-бандлинг).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 16:15:36 +03:00

8.9 KiB
Raw Permalink Blame History

Бриф на ассеты — «Биндим Фигняшку»

Документ для генерации/догенерации графики (через Claude/дизайн-ИИ или художника). Ниже — готовый промпт (можно копировать целиком) и таблица ассетов.

Статус: набор уже подключён. 21 PNG лежат в src/assets/ и автоматически грузятся src/render/assets.ts по имени файла (assets/<ключ>.png); если какого-то файла нет — рисуется процедурный фолбэк. Этот бриф нужен, чтобы догенерировать или заменить ассеты: достаточно положить PNG с тем же именем в src/assets/.


Готовый промпт (копировать целиком)

Ты — художник 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/ с именами-ключами (floor.png, player-ranged.png, …).
  2. src/render/assets.ts грузит их в рантайме через THREE.TextureLoader по пути assets/<ключ>.png (НЕ импорт-бандлингом). Нет файла → процедурный фолбэк drawX().
  3. Dev-сервер отдаёт /assets/* из src/assets/; прод-сборка копирует их в dist/assets/.
  4. HUD-ассеты (heart-*, icon-*) грузит HudOverlay, меню (logo, menu-bg) — index.html.

Заменить/добавить: просто положи PNG с тем же именем в src/assets/ — подхватится само.