Стражи Рубежа — дизайн-документ графики
Версия 2.0 · 24.10.2026 · статус: канон
Один документ на всю графику игры: стиль, камера, масштаб, цвет, формы, башни, враги и герои, физика, анимация, разрушаемость, эффекты, интерфейс, карта континента, комиксы и портреты, рекламный арт, доступность, конвейер и приёмка. Им пользуются художники, агенты-генераторы, программисты рендера и тот, кто принимает арт.
Что нового в 2.0. Документ дополнен по исследованию 17 игр жанра и соседних стратегий (раздел 22, полные отчёты —
visual-ironhide.md, visual-genre.md, visual-meta-ui.md): референсы и анти-референсы (1.1),
зум и телефон (3.1), лимит тонов (4.2), порядок прочтения юнита и признаки ролей (5.3–5.5), считаемая эволюция башен (6.2),
развёрнутый интерфейс (11), новые разделы 15–21 (враги и боссы, боевые карты и регионы, карта континента, комиксы
и портреты, рекламный арт, доступность, защита от клона) и чек-листы приёмки для всех видов арта (13).
Нумерация разделов 0–14 сохранена: старые ссылки вида «раздел 12.6» остаются верными.
Правило старшинства. Если промпт, старый арт, код viewer или устная договорённость расходятся с этим документом, прав документ. Менять его можно только записью в «Журнале решений» (раздел 14) с датой и причиной.
Иллюстрированная версия с живой песочницей башни: https://demo.24oros.ru/rimwardens-gfx/design.html План работ по фазам: https://demo.24oros.ru/rimwardens-gfx/
0. Как пользоваться
Перед тем как генерировать, рисовать или писать код отрисовки, пройди пять вопросов:
- Камера. Объект в той же камере 3/4 сверху (около 50°), с тем же светом сверху слева? (раздел 2)
- Масштаб. Высота в мировых пикселях взята из таблицы раздела 3, точка опоры — нижний центр?
- Силуэт. Залитый чёрным и уменьшенный до 64 px, он узнаётся и не путается с соседями по роли? (раздел 5)
- Цвет. Дорога остаётся самым светлым местом кадра, а объект темнее её и отделён контуром? (раздел 4)
- Ответ миру. Понятно, как объект двигается, бьёт, получает удар, ломается и исчезает? (разделы 7–9)
- Прочтение. Сторона, угроза, роль, свойство и ранг читаются каждый своим каналом и ни один — только оттенком? (раздел 5.3)
- Худший случай. Объект работает на зуме 0.5, на телефоне, ночью и в толпе из 300 юнитов? (разделы 3.1, 13)
- Свой голос. Объект не собирает чужие сигнатуры жанра в набор, который выдаёт клон? (раздел 21)
Если на любой вопрос ответ «нет» или «не знаю», объект не готов.
Карта документа. Основы: 1–5. Башни: 6. Движение и отклик: 7–10. Интерфейс: 11. Конвейер: 12. Приёмка: 13. Журнал: 14. Враги, элита, герои, боссы: 15. Боевые карты и регионы: 16. Карта континента, Цитадель, совет: 17. Комиксы и портреты: 18. Рекламный арт: 19. Доступность: 20. Защита от клона: 21. Источники: 22.
1. Видение
Тёплая пограничная сказка с трещиной. Рубеж — обжитый, рукотворный, немного потрёпанный край: дерево, камень, латунь, вымпелы, дым из труб. Его ломает Пустота — холодная, геометрически чужая, с неправильным светом. Чем ближе кампания к Печати, тем больше в кадре чужого.
Пять опор, по которым судим любую картинку:
| Опора | Что значит | Как проверить |
|---|---|---|
| Читаемость прежде красоты | Игрок за 0,3 с понимает, кто враг, где дорога, что за башня | Тест в оттенках серого и тест силуэта 64 px |
| Ручная работа, а не пластик | Живая мазковая фактура, лёгкая неровность, тёплые тени. Никакого «3D-рендера» и глянца | Сравнение с эталонами библии рядом |
| Мир отвечает | Каждое действие оставляет след: дым, вмятину, воронку, щепки | В бою нет ни одного «немого» события (раздел 10) |
| Два языка мастеров | Путь техники — латунь, пар, клёпки, тёплые лампы. Путь магии — мрамор, серебро, руны, холодный свет | У каждой IV-формы явно один из языков |
| Характер в деталях | У каждого расчёта башни свои привычки, у каждой карты 2–4 живые сцены и пасхалки | Есть хотя бы одна «история» в idle |
Чего не делаем: фотореализм, кровь и расчленение (рейтинг 6+; смерть — распад в пыль цвета фракции), неоновую «мобильную» кислотность, мелкий орнамент, который превращается в шум на 40 px.
1.1 Референсы и анти-референсы
Берём принципы, а не образы, имена и композиции. Подробности и источники — раздел 22.
| Игра | Что берём как принцип | Чего не берём |
|---|---|---|
| Kingdom Rush (вся серия) | мало тонов на материал, фактура формой; один центральный образ на уровень; апгрейд виден как прибавка; живая фоновая жизнь карты | набор их интерфейсных сигнатур (раздел 21), пропорции «большая голова — короткие ноги», плоский флэш-вектор |
| Clash Royale, Clash of Clans | простое альбедо в 2–3 пятна, роль читается на малом размере, ранг сменой материала | глянец «мобильной рекламы», кислотные цвета |
| Bloons TD 6 | свойства врага оверлеем поверх базового спрайта; полоса босса в HUD с фазами; стадии повреждений босса | мультяшную стерильность без фактуры |
| Arknights | состояния карточек (нет денег / перезарядка / готово), замедление при выборе цели, размытие под меню | аниме-портреты и «технологичный» плоский UI |
| Thronefall, Bad North | палитра на уровень при едином языке форм; минимум шума | минимализм, который «мутнеет» ночью |
| Riot (руководство по эффектам) | визуальный вес = игровой вес; у области главное — точная граница | — |
| Crusader Kings 3, Total War | уровни зума карты континента; владение цветом и гербом; сезон карты = сезон боя | серый туман войны (упрёк Olden Era) |
| Darkest Dungeon, Battle Brothers | комикс-подача панелями, одна иллюстрация на тип события | мрачная гамма и жестокость |
| Warcraft III Reforged — анти-референс | — | глянцевые реалистичные материалы, которые сливают роли и искажают цвет стороны |
| They Are Billions — анти-референс | — | «мутность» вблизи: на зуме 1.5 обязана быть вторая ступень детали |
2. Камера, проекция, единицы
- Проекция — ортографическая, вид 3/4 сверху: камера смотрит под ≈ 50° к земле. Перспективных сужений нет: вертикали остаются вертикалями.
- Свет — один ключевой источник сверху слева (азимут 315°, высота 45°). Тень падает вниз и вправо. Заполняющий свет холодный и слабый, отражённый от земли — тёплый.
- Мировые единицы. 1 мировой px = 1 px карты в масштабе 4K. Гранд-карта — 7680×4320, кампания — 3840×2160. Ядро считает в милли-пикселях (×1000), рендер делит на 1000.
- Псевдо-3D. Всё, что летает или падает, живёт в координатах (x, y, z), где z — высота над землёй.
Экранная позиция:
screen = (x, y − z · 0.77)(0.77 ≈ sin 50°). Тень всегда рисуется в (x, y) на земле. - Точка опоры (pivot) каждого спрайта — нижний центр, точка касания земли. Глубина сортировки = y опоры. Летающие сортируются по y своей тени и рисуются над наземными с тем же y.
- Контактная тень — эллипс под объектом: ширина 0.6–1.1 от ширины основания, высота 0.33 от ширины,
смещение (+6, +4) мировых px на каждые 100 px высоты объекта, цвет
rgba(20,16,10,.32), режим multiply. У летающих тень меньше и бледнее с высотой:scale = 1 − z/600,alpha = 0.32 · (1 − z/400).
3. Масштаб
Ориентир — замеры KR5/KR6 в 1080p: башня к рядовому врагу примерно 3:1 по высоте. Мировые px — для общего плана кампании (камера 1×). Экранные px — то, что видит игрок в 1080p при обычном зуме 0.5.
| Роль | Высота, мировые px | На экране 1080p, px | Пример |
|---|---|---|---|
| Пад (площадка) | диаметр 135, эллипс 135×75 | 68×38 | общий для всех башен |
| Башня I | 150–170 | 75–85 | вышка на камне |
| Башня II | 180–200 | 90–100 | |
| Башня III | 210–235 | 105–118 | |
| Башня IV | 250–300 | 125–150 | IVa и IVb могут расходиться по высоте до 20% |
| Мелочь (разведчик, бесёнок, огонёк) | 60–75 | 30–38 | гоблин-драчун |
| Пехота | 80–95 | 40–48 | орк-налётчик, скелет |
| Свой солдат | 80–88 | 40–44 | ополченец заставы |
| Тяжёлый, всадник | 110–130 | 55–65 | волчий всадник, тролль |
| Громила | 140–180 | 70–90 | огр, ледяной великан |
| Герой | 120–135 | 60–68 | Бранд Железнобок |
| Мини-босс | 200–260 | 100–130 | |
| Босс | 300–480 | 150–240 | занимает 1/6–1/4 высоты экрана |
| Летун | как наземный той же роли + тень на z = 120–180 |
Контур: цвет #2A1A0E (тёмно-коричневый, не чёрный). На 128 px высоты спрайта — 3 px у башен и громил,
2 px у пехоты, 1.5 px у мелочи; внутренние линии вдвое тоньше внешних. При даунскейле контур не должен исчезать —
проверяется на итоговом размере атласа.
Ступени угрозы. Соседние ступени таблицы (мелочь → пехота → тяжёлый → громила → мини-босс → босс) различаются по высоте не меньше чем в 1.25 раза. Особый враг выделяется из толпы рядовых размером не меньше ×1.4 к пехоте и меткой (раздел 15), а не только цветом.
3.1 Зум и телефон
- Проектируем под худший зум 0.5. На нём силуэт, контур и главное цветовое пятно обязаны работать; деталь — бонус для 1.0–1.5. На 1.5 обязана быть вторая ступень детали (фактура, idle-сцены), иначе графика «мутная» вблизи.
- Контур постоянной толщины на экране. При зуме 0.5 контур атласа истончается вдвое, поэтому для 0.5 нужен мип с утолщённым контуром или контур шейдером. Цель: 1.5–2 экранных px у пехоты при любом зуме.
- Экранное пространство. Полосы здоровья, значки статусов, круги радиусов, метки элиты и флажки сбора не масштабируются вместе с миром (или масштабируются как √зума). Значок статуса — не меньше 16 px на ПК и 12 pt на телефоне.
- Телефон. Минимальный зум на телефоне — 0.75 от ПК (мир показывает меньше площади), чтобы пехота занимала не меньше 28 pt по высоте, мелочь — не меньше 20 pt. Зона касания юнита и пада — не меньше 44 pt (48 dp) независимо от размера спрайта.
- Деталь не мельче 3–4 экранных px на зуме 0.5: всё, что мельче, сливается в шум и утомляет глаз.
4. Цвет и свет
4.1 Структура светлоты (главное правило)
- Дорога — самое светлое место земли (L* 70–82). Трава и декор темнее дороги на 15–25 L*.
- Враги и свои юниты — средне-тёмные (L* 35–60), с тёмным контуром и контактной тенью. На дороге они читаются силуэтом.
- Башни — средне-светлые корпуса (L* 50–70) с насыщенными акцентами (крыша, флаг, кристалл).
- Эффекты — самые яркие и насыщенные (L* 80–100), аддитивное смешение, но не больше 15% площади кадра.
- UI — на тёмных подложках, текст с контрастом не ниже 4.5:1.
Проверка: скриншот в оттенках серого. Если враг сливается с дорогой — переделывается враг, а не дорога.
4.2 Насыщенность
Фон 55–65% от максимальной, башни 70–85%, юниты 85–100%, эффекты 100% со свечением. Основной цвет юнита — 2–3 пятна (альбедо простое, как у Supercell); объём даёт градиент к «лицу» юнита, а не новые цвета.
Лимит тонов. На один материал — не больше 3 тонов одного цвета с чёткой границей плюс 1 блик. Плавные градиенты — только в свете, свечении и эффектах. Фактура передаётся формой (зубцы травы, зарубки на металле, сколы камня) и крупным низкочастотным мазком внутри пятна тона, никогда поверх силуэта.
Фон уводим в серый, а не в темноту. Приглушение фона — снижением насыщенности, светлота дороги и травы остаётся по 4.1; тогда юниты с насыщенностью 85–100% выходят вперёд сами.
Без глянца. Никаких зеркальных бликов и отражений окружения, меняющих цвет материала: они сливают роли и искажают цвет стороны (анти-референс Warcraft III Reforged). Металл — светлый тон + один короткий блик сверху слева.
4.3 Палитры
- Биомы — 19 палитр из
td-plan/data/biomes.json(по 6 цветов). Генерации и цветокоррекция карт проверяются по ним: средний цвет кадра не дальше ΔE 18 от ближайшего цвета палитры. - Фракции (знак, флажок, обвод под ногами в превью волны; не заливка спрайта):
| Фракция | Основной | Акцент | Материалы и мотив |
|---|---|---|---|
| Рубеж (игрок) | #2F6FD1 синий |
#F0C35A золото |
дерево, камень, синие плащи, щит |
| Клыкастые кланы | #B5441E ржавчина |
#9BD14A ядовито-зелёный |
кость, кожа, рваное железо, клыки |
| Отступники | #5A6270 оружейный металл |
#C9A227 тусклое золото |
латы, лохмотья, чёрные знамёна |
| Северные великаны | #7FC1E0 лёд |
#173F5F глубокий синий |
лёд, мех, руны холода |
| Культ Скарабея | #E0A458 песок |
#2F8F7A бирюза |
лён, лазурит, солнечные диски |
| Гнилотопь | #4F6B4A мох |
#B8C77A болотное свечение |
кость, гниль, грибы, фонари |
| Пустотники | #3D2A7B индиго |
#B388FF фиолет |
кристаллы, звёзды, «отрицательный» свет |
- Типы урона (цвет вспышек, цифр, звукоподражаний):
физический
#FFF2C6, магический#D9A6FF, взрывной#FFB04A, чистый#FFFFFFс золотой каймой, яд#8FE39A, холод#8FE3FF, пустота — тёмное ядро#140A2Aс краем#B388FF. - Режим для дальтоников: палитра Okabe–Ito (
#E69F00 #56B4E9 #009E73 #F0E442 #0072B2 #D55E00 #CC79A7), смысл всегда продублирован формой (иконка типа урона, рамка ранга, узор флажка фракции). Полные правила — раздел 20. - Сторона. Свои — синий Рубежа на плаще, флажке и полосе здоровья, обвод под ногами — круг. Враги — цвет фракции на знаке и флажке, полоса здоровья красная, обвод — ромб. Красный зарезервирован за врагом и опасностью (полоса здоровья врага, зона удара босса, «нет денег»): ни один тип урона и ни один элемент своих не бывает чисто красным.
- Один цвет урона везде. Цвет типа урона одинаков во вспышке, цифрах, звукоподражании, значке в интерфейсе и в знаке сопротивления на враге (щиток или руна этого цвета на поясе или знамени врага, дублируется в превью волны).
- Неоновые акценты палитр (
crystal_blight:#F15BB5,#00F5D4;void_rim:#3D5AFE) — только для кристаллов, свечения и эффектов, не больше 10% площади кадра. Земля и декор этих биомов берут тёмные и средние тона палитры.
4.4 Время суток и погода
Свет меняется слоями поверх неизменного арта (раздел 7.7 о ветре):
| Состояние | Цветокоррекция кадра | Источники света |
|---|---|---|
| Рассвет | multiply #F3C9A8, тени длиннее и синее |
— |
| День | без изменений, тени облаков 12–16% | — |
| Закат | multiply #F0A877, контраст +5% |
лампы башен техники |
| Ночь «лунная» | multiply #6676AD, дорога остаётся светлее травы |
все лампы, кристаллы, огни, снаряды светятся (additive) |
| Дождь | −8% светлоты, косые штрихи, лужи-блики на дороге | — |
| Снег | +6% светлоты, шум хлопьев, снег на крышах (оверлей) | — |
| Туман | полосы тумана 25–35%, дальние объекты бледнее | лампы видны сквозь туман |
5. Язык форм
5.1 Фракции
| Фракция | Базовая фигура | Пропорции и поза | Узнаётся по |
|---|---|---|---|
| Рубеж | прямоугольник + щит | устойчивые, прямые спины | синие плащи, щиты-звёзды, вымпелы |
| Клыкастые кланы | треугольник, зубец | сутулые, выдвинутая челюсть, асимметрия | клыки, рога, тотемы, волки |
| Отступники | рваный прямоугольник | человеческие, плащи-лохмотья | чёрные знамёна, маски, арбалеты |
| Северные великаны | массивный квадрат, ледяные грани | огромные кисти, маленькие головы | лёд на плечах, мех, синие руны |
| Культ Скарабея | полукруг, симметрия | прямые, ритуальные позы | солнечные диски, жуки, бинты |
| Гнилотопь | оплывшая капля | провисшие, тяжёлые снизу | мох, грибы, зелёные фонари |
| Пустотники | острый кристалл, парение | без опоры, «неправильные» суставы | звёзды внутри тел, инверсный свет |
5.2 Архетипы башен
| Архетип | Силуэт | Отношение высоты к ширине | Глагол силуэта |
|---|---|---|---|
| Стрелки (marksman) | вертикаль, площадка наверху | 1.8–2.4 | смотреть вдаль |
| Бараки (barracks) | широкий двор, ворота | 0.8–1.0 | держать землю |
| Маги (mage) | шпиль с парящим элементом | 1.6–2.2 + элемент над вершиной | излучать |
| Артиллерия (artillery) | приземистый, круглый, ствол-ось | 0.9–1.2 | бить навесом |
| Поддержка (support) | радиальная симметрия, излучатель | 1.0–1.6 | распространять вокруг |
| Механизмы (engineering) | асимметричная машина, движущиеся части | 0.9–1.4 | работать |
Тест: шесть архетипов в виде чёрных силуэтов на 64 px узнаются без подсказки. Внутри архетипа пять линий различаются сигнатурой (раздел 6.3), а не цветом.
5.3 Порядок прочтения юнита
Любой юнит читается в одном порядке, и у каждой ступени свой канал. Ни одна ступень не держится только на оттенке.
| Ступень | Вопрос игрока | Канал | Пример |
|---|---|---|---|
| 1. Сторона | свой или враг? | цвет плаща и флажка, цвет полосы здоровья, обвод круг/ромб, направление движения | синий плащ ополченца против ржавого знака кланов |
| 2. Угроза | насколько опасен? | размер и плотность силуэта (ступени ×1.25, раздел 3) | гоблин 60 px, огр 160 px |
| 3. Роль | что он делает? | форма силуэта и оружие (таблица 5.4) | щит, посох, крылья |
| 4. Свойство | что с ним сейчас? | оверлей поверх базового спрайта (5.5) | ледяная корка, зелёные пузыри регенерации |
| 5. Ранг | рядовой или элита? | счёт (зубцы, лычки) или материал, не оттенок | элита: корона-зубцы и кольцо под ногами |
5.4 Один главный признак на роль
У каждой роли один главный признак силуэта, который виден на 64 px залитым чёрным. Остальные детали не должны с ним спорить. Признак общий для всех шести фракций, отделка — в языке фракции (5.1).
Роль (enemies.json → role, теги) |
Главный признак | Чем подчёркнут |
|---|---|---|
| Рой, мелочь | маленький, низкий, группами | одинаковый силуэт, быстрая семенящая походка |
| Бронированный | щит или массивные наплечники шире головы | светлый металлический тон, тяжёлый шаг |
| Маг-сопротивление | посох или парящий предмет над рукой | ореол цвета магии (не красный), развевающаяся одежда |
| Летающий | крылья или парение, тень на земле отдельно | тень меньше и бледнее (раздел 2), «качка» по высоте |
| Быстрый | наклон вперёд 20–30°, вытянутый силуэт | шлейф пыли, бег 15 кадров/с |
| Лекарь, поддержка | поднятая вверх рука или тотем, симметрия | мягкое пульсирующее кольцо вокруг (зелёное для лечения) |
| Громила | треугольник «широкие плечи — маленькая голова» | замах с удержанием (8.1), трещины земли под шагом |
| Саботажник, вор | горб-мешок или инструмент на плече | прижатый к земле силуэт, оглядывание |
| Роющий | ковш-лапы или бур, полуприсед | бугор земли при движении под землёй |
| Невидимый | обычный силуэт | в невидимости — рябь-контур 30% и тень, видимая только при обнаружении |
| Делящийся | округлый, «набухший» | трещины-швы по телу, при делении распадается по ним |
| Призыватель | посох + знак фракции над головой | мерцающий круг призыва перед вызовом (≥ 0.6 с) |
Враг входит событием, когда может. Прорубает подлесок, вылезает из хижины, спускается по скале, всплывает из болота: появление само показывает роль лучше любой иконки (тайминг появления — 8.3).
5.5 Оверлеи свойств
Свойства и временные состояния — слои поверх базового спрайта, а не новые спрайты врага. Каждый оверлей имеет форму и цвет, которые читаются и в режиме для дальтоников.
| Свойство | Оверлей | Цвет и форма |
|---|---|---|
| Броня (бафф) | металлические пластины-накладки по силуэту | светлая сталь, прямые грани |
| Магический щит | полупрозрачный пузырь с рунами | цвет магии #D9A6FF, шестиугольные руны |
| Регенерация | всплывающие крестики-листья | зелёный, ромбы |
| Невидимость | рябь-контур, тело 30% | без цвета, волна |
| Горение | язычки огня у ног, искры | оранжевый, треугольники |
| Яд | пузыри над головой | #8FE39A, круги |
| Заморозка, замедление | ледяная корка снизу вверх | #8FE3FF, осколки |
| Оглушение | звёздочки по кругу | золото, пятиконечные |
| Проклятие, метка башни | знак над головой | цвет источника, ромб «◇» |
| Порча Пустоты | «негативные» трещины по телу | индиго с краем #B388FF, ломаные линии |
Одновременно над юнитом не больше 2 значков; остальные свойства показываются только оверлеем тела.
6. Башни
6.1 Анатомия
Каждая башня собирается из частей. Части — отдельные слои атласа, это нужно для анимации, повреждений и разрушения.
| Слой | Что | Движение |
|---|---|---|
pad |
общий пад карты (не часть башни) | — |
base |
фундамент, свой у архетипа: камень, частокол, плита, лафет | статичен, принимает трещины |
body |
корпус уровня | приседает при выстреле (squash), принимает повреждения |
head |
оружие или расчёт: арбалет, ствол, кристалл, гарпун | поворачивается к цели (8 направлений или поворот) |
crew |
маленькие фигурки расчёта, 1–4 | свои циклы: заряжают, целятся, празднуют |
signature |
уникальный элемент линии: рожок, цепь, песочные часы, колокол | свой idle, растёт с уровнем |
flag |
вымпел, знамя | ткань под ветром (раздел 7.7) |
fx |
точки эффектов: дуло, кристалл, начало луча, дым из трубы | только якоря |
Якоря и параметры лежат рядом со спрайтом в JSON (раздел 12.3).
6.2 Эволюция I → IV
| Уровень | Смысл | Материалы (техника / магия) | Расчёт | Высота |
|---|---|---|---|---|
| I «Кустарно» | собрано на месте из того, что было | дерево, верёвка / дерево, речной камень | 1 | 150–170 |
| II «Укреплено» | появился каменный ярус | камень, железные скобы / белый камень | 2 | 180–200 |
| III «Крепость» | зубцы, навес, знамя Рубежа | камень, кованое железо / камень, серебро | 3 | 210–235 |
| IVa / IVb «Легенда» | смена силуэта по ветке | латунь, пар, лампы / мрамор, руны, кристаллы | 2–4 | 250–300 |
Правила эволюции:
- Сигнатура есть с уровня I и растёт. Сигнальный рожок дозора на I — рожок на столбе, на III — рог на башне, на IVa — латунная подзорная труба орлиного поста. Игрок узнаёт линию на любом уровне.
- IVa и IVb различаются силуэтом, а не цветом. У каждой ветки свой глагол: «Орлиный пост» тянется вверх, «Залповая галерея» раздаётся вширь. Если две ветки на 64 px одинаковые, одна переделывается.
- Каждый уровень добавляет одну крупную форму, а не десять мелких деталей. Эта форма считаемая: ещё один стрелок, ещё один ярус, ещё одно орудие, ещё одна площадка. Игрок должен уметь «пересчитать» уровень на глаз, не глядя на пипсы. Материал меняется вместе с формой (дерево → камень → кованое железо / серебро).
- Уровень показывается пипсами-ромбами под основанием (◆◆◇◇) и формой рамки иконки, не римскими цифрами на корпусе.
- Скины пути (раздел 1, «два языка») меняют материал, но не силуэт: один силуэт — две отделки.
6.3 Паспорт линии: против шаблона
Каждая линия получает паспорт из шести полей. Пустое поле — башня не готова.
- Силуэт-глагол — что делает форма (вверх, вширь, излучает, крутится).
- Сигнатура — одна вещь, по которой линию узнают с первого взгляда.
- Хореография атаки — замах, выпуск, отдача, возврат; у каждой линии своя.
- Снаряд и попадание — своя физика полёта и свой отклик цели.
- Жизнь расчёта — idle-история раз в 6–12 с.
- Состояние «выведена из строя» — как выглядит башня, когда её оглушили, заминировали или вморозили.
Паспорта всех 30 линий (данные — td-plan/data/towers.json, поля visual_evolution и sfx_vfx):
| Линия | Глагол | Сигнатура | Атака → снаряд → попадание | Жизнь расчёта | IVa / IVb силуэтом |
|---|---|---|---|---|---|
| Дозор арбалетчиков | смотреть | сигнальный рожок, синий вымпел | вскинул арбалет → болт по прямой → стук, синяя метка над целью | дует в рожок на старте волны; точит болт | вверх: шпиль-гнездо / вширь: двухъярусная галерея |
| Небесный гарпун | тянуть | цепь с гарпуном, дварф у ворота | дварф крутит ворот → гарпун с цепью (верёвка) → летун падает в пыль | смазывает цепь; поглаживает бороду | четыре коротких ствола / один гигантский гарпун, череп виверны |
| Рикошетники | хулиганить | бочки и мешки с песком, шляпа с пером | вскидка мушкета → трассер, 2–3 отскока с ростом искр | крутит монету; салютует шляпой | балкон с картами / белёный бастион с солнцами |
| Охотницы Пелены | исчезать | серебристые ветви, лунный свет | бесшумный выстрел → серебряная стрела → вспышка; казнь — колокольчик | охотница растворяется и появляется | огромный полумесяц над кроной / дерево в дымке |
| Багряные лучники | питаться | алая ткань, капюшоны | тяжёлый натяг → стрела с зазубринами → красная искра летит к союзнику | лучник вытирает тетиву | алтарь с чашей и нитями / шипастая башня |
| Пограничная застава | держать | частокол, знамя-щит | ворота распахиваются → отряд выходит → искры щитов | смена караула, перекличка «За Рубеж!» | белый замок рыцарей / фехтовальный двор |
| Логово зверолова | охотиться | шкуры, волчата | вой → звери бегут к точке сбора | волчата грызут кость | каменный круг стаи / бревенчатый загон медведей |
| Курганные стражи | восставать | холм с камнем, зелёный огонёк | огонёк вспыхивает → скелеты поднимаются из земли | огонёк блуждает по кургану | склеп с короной / курган в алых корнях |
| Лагерь наёмников | торговаться | костёр, палатки | крик капитана → оборванцы бегут; монета при убийстве | играют в кости; спор у костра | доска розыска и клетка / полосатые шатры и пики |
| Гнездо грифонов | пикировать | гнездо на столбе | грифон взлетает → пике на летуна → перья | птенец кормится; чистит перья | насест с флагами / гнездо на шпиле |
| Лицей арканы | изучать | кафедра, раскрытая книга | студент взмахивает → синий шар со звёздами → руна расщепления | листает книгу, роняет её | купол-обсерватория / кривая башня с котлами |
| Грозовой шпиль | искрить | медный штырь, туча | заряд копится по виткам → ветвистая молния → оглушение на 3-й заряд | искры бегают по виткам | шпиль в туче / два обелиска с дугой |
| Призменный проводник | фокусировать | кристалл в бронзовой оправе | луч нарастает (гул вверх) → плавящееся пятно, цвет по типу урона | кристалл медленно вращается, бликует | гигантская линза / три цветных луча |
| Хроносвятилище | останавливать | песочные часы | часы переворачиваются → рябь → цель двоится | песок течёт вверх | застывшие часы / шестерни вспять |
| Обитель погодника | менять | флюгер-петух, лужица | петух поворачивается → капли или снежинки вокруг | смотритель подставляет ладонь | чёрная туча с ливнем / снежный вихрь |
| Осадная мортира | бить навесом | мортира, бомбардир | присед, «бу-ум» с колокольным отзвуком → бомба по дуге → столб земли, отброс | бомбардир чистит ствол банником | гигантская мортира-колокол / кассетная батарея |
| Ядовитый куб | отравлять | котёл, болотник в маске | бульк → колба по дуге, крутится → стекло, зелёное облако | помешивает, принюхивается и кашляет | чёрная реторта с черепом / жёлтые чаны |
| Гравитационный требушет | притягивать | фиолетовый камень | рычаг с отскоком → камень по высокой дуге → воронка, затем хлопок | камень парит над ковшом | кристальная праща с чёрной звездой / требушет-вертушка |
| Горнильная пушка | ковать | горн, лафет | откат лафета, пар → ядро, картечь или пекло → свой отклик на режим | мастер бьёт молотом, режим меняется | барабан трёх стволов / длинный бронебой |
| Ракетная батарея | салютовать | ящик фейерверков | шипящий старт → ракета с наведением и дымным следом → цветной взрыв | гном поджигает фитиль и прячется | гребёнка из 12 труб / латунные самонаводящиеся |
| Гильдейская казна | копить | весы и сундучок | (нет атаки) монеты каскадом в начале волны | счетовод пересчитывает | мраморный банк с куполом / шахтный копёр |
| Звонница-оберег | звучать | колокол | удар колокола → золотые кольца → искры лечения | звонарь раскачивает верёвку | высокая колокольня / лазарет с монахами |
| Маяк Разлома | переносить | кристалл в подставке | вихрь → враг исчезает и появляется позади | кольца медленно вращаются | вихрь-портал с тремя кольцами / арка-портал |
| Зеркальный обелиск | отражать | зеркало на камне | повторяет атаку соседа с серебристым эхом | в зеркале мелькают отражения | четыре грани / дрожащий резонатор |
| Менгир созвучия | связывать | камень с руной | аккорд → лей-линии к соседям | руна мерцает в такт | огромный менгир / менгир с барабанами |
| Мастерская ловчих | ставить | верстак, капкан | мастер выходит → ставит капкан → «клац!» | взводит пружину, проверяет зубья | двор капканов-гигантов / склад пороха |
| Каменный бастион | перекрывать | каменщик с молотом | (стена) шипы, удар о стену → крошка | каменщик подправляет кладку | вал с бойницами / колючая баррикада |
| Литейная големов | лить | форма для литья, печь | голем шагает → удар кулаком → трещины в земле | печь пыхтит, голем переминается | печь и колосс выше башни / конвейер глиняных |
| Ангар дронов | роиться | заводной жук | дроны вылетают → жалят → мелкие искры | механик заводит ключом | латунный улей / мачта с прожектором |
| Паровая турель | раскручиваться | котелок со стволом | раскрутка стволов → очередь → веер искр; перегрев — свисток и пар | стравливает пар, стучит по манометру | гатлинг / огнемёт-дракон |
Поле 6, «выведена из строя». Для всех линий действует общая картинка из 9.2: расчёт пригибается или лежит, оружие опущено, светящиеся части гаснут до серого, над башней значок причины и кольцо времени. Своё поведение есть у линий, где «устройство» живёт отдельно от расчёта:
| Линия | Особое поведение, когда выведена из строя |
|---|---|
| Бараки (все пять) | ворота захлопываются, солдаты на поле продолжают драться, но новые не выходят; флажок сбора никнет |
| Грозовой шпиль, Призменный проводник | накопленный заряд с треском уходит в землю, кристалл или витки остывают от голубого к меди |
| Хроносвятилище | песок в часах замирает, стрелки дёргаются на месте |
| Маяк Разлома, Зеркальный обелиск | кольца портала останавливаются и тускнеют; зеркало трескается «паутинкой» (пропадает по окончании) |
| Паровая турель | стволы по инерции докручиваются, клапан стравливает пар со свистом |
| Литейная големов | печь гаснет, голем на поле замирает с опущенными руками |
| Ангар дронов | дроны садятся на крышу ангара и складывают крылья |
| Мастерская ловчих | поставленные капканы остаются, мастер не выходит |
| Гильдейская казна, Звонница, Менгир | аура гаснет кольцом внутрь, звук обрывается |
Пробы на GX10: эволюции I–IV по паспортам линий






Эскизы направления без ручной правки. Хорошее: одна камера и один пад на весь лист, сигнатура растёт, силуэт IV меняется. Плохое, и ровно это ловят правила: в листах «латунь и пар» уровень III ниже уровня II (нарушение таблицы высот раздела 3 и автопроверки 12.6), ракурс местами уходит во фронтальный — это закрывает путь «3D → спрайт» (12.1).
6.4 Эталоны: четыре линии среза
Эти четыре паспорта — образец детализации для остальных 26 линий.
Дозор арбалетчиков (стрелки, физический)
- Части:
base— каменный цоколь;body— вышка (I дерево, II камень, III зубцы с навесом);head— арбалетчики наверху, 8 направлений;signature— сигнальный рожок;flag— синий вымпел. - Атака (кулдаун 0.8 → 0.7 с на I–III, 1.4 / 0.45 на IVa / IVb): поворот к цели не быстрее 360°/с с замедлением в конце → вскидка 0.10 с → выпуск (1 кадр, отдача арбалета назад на 3 px, пружина k=600, c=30) → болт по прямой 1800 px/с с лёгким падением → попадание: стук, 3 щепки, синяя метка «◇» над целью на каждый 4–5-й болт.
- Idle: раз в 8–12 с один стрелок точит болт; на старте волны трубит в рожок (кольцо звука + вымпел дёргается).
- Повреждения: стрелы врагов втыкаются в навес (до 6 штук), копоть, трещины по камню.
- Выведена из строя: арбалетчики пригибаются за зубцы, над башней — вращающиеся звёзды оглушения.
Пограничная застава (бараки, физический)
- Части:
base— частокол или каменная стена;body— двор с воротами;crew— караульный у ворот;signature— знамя-щит; точка сбора — флажок-щит на дороге. - Выход отряда: ворота открываются за 0.2 с (створки поворачиваются по пружине) → солдаты выбегают по одному с интервалом 0.15 с → встают в линию у флажка, разворот к врагу.
- Бой солдата: замах 0.12 с → удар (искры щита, хит-стоп цели 50 мс) → возврат 0.2 с. Стена щитов (3+ врага в контакте) — щиты сдвигаются плечом к плечу, синяя кайма брони.
- Смерть солдата: падает, распадается в пыль с синими искрами; через время респауна новый выходит из ворот.
- Повреждения: частокол теряет колья, на стенах копоть.
Лицей арканы (маги, магический)
- Части:
base— плита с рунами;body— беседка, затем башня, купол;head— студент у кафедры;signature— раскрытая книга (страницы листает ветер). - Атака (кулдаун 1.4–1.5 с на I–III, 1.6 / 1.2 на IVa / IVb): книга вспыхивает → кристалл заряжается 0.25 с (свечение растёт по кривой ease-in) → синий шар со звёздами летит с самонаведением (поворот 300°/с) → руна расщепления на цели, синие звёздочки.
- Idle: студент роняет книгу и ловит её; на IVa телескоп поворачивается к небу.
- Ночь: кристалл и шары светятся (additive), освещают башню снизу.
- Выведена из строя: кристалл гаснет до серого, страницы книги замирают.
Осадная мортира (артиллерия, взрывной)
- Части:
base— каменный круг;body— лафет, затем платформа, затем бастион;head— ствол, угол наклона по дальности;crew— бомбардир(ы);signature— ящики с бомбами, на IVa — колокол-мортира. - Атака (кулдаун 3.0 → 2.8 с на I–III, 3.2 / 2.4 на IVa / IVb): ствол поднимается под угол цели 0.2 с → фитиль, искра 0.15 с → выстрел: присед корпуса до 0.90 по вертикали, откат ствола 10 px (пружина k=220, c=14), клуб дыма из дула и из-под лафета → бомба по дуге (раздел 7.2), тень на земле → взрыв: столб земли, кольцо пыли, 8–12 комьев земли и камешков, воронка-декаль на 6–8 с, отброс лёгких врагов на 10–15 px, тряска +0.35 trauma.
- Idle: бомбардир прочищает ствол банником; на IVa расчёт из четырёх передаёт бомбы по цепочке.
- Выведена из строя: ствол опущен, бомбардир кашляет в дыму.
6.5 Союзные башни и IVc
Союзные башни (allied_and_path_towers) подчиняются тем же правилам, но несут язык союзной фракции:
эльфийские — живое дерево и серебро, дварфийские — тёмный камень и бронза, кочевников Шарр — ткань, ветряки, бирюза.
Их IVc — третья ветка, у неё обязателен свой силуэт-глагол, отличный от IVa и IVb.
7. Физика (визуальная)
Главное правило. Ядро (packages/sim) детерминировано и решает, кто попал, сколько урона и кто умер.
Визуальная физика клиента — только картинка: она никогда не влияет на ядро, а её случайность сеется от id события,
поэтому реплей выглядит одинаково. Время полёта снаряда в картинке равно времени полёта в ядре:
снаряд касается цели ровно в тик попадания.
Песочница башни: физика, анимация, износ и обрушение по этому документу
Отдача — пружина из 7.3, бомба — баллистика 7.2 с тенью на земле, комья и обломки — тела из 7.5 с упругостью и трением материала, отброс и наклон целей — 7.4, обрушение — хореография 9.5 с мозаикой Вороного 12.4, стройка — тайминги 8.2. Клик по льду — разбить (3 клика).
7.1 Константы
| Параметр | Значение | Почему |
|---|---|---|
Гравитация g |
1800 мировых px/с² | «мультяшная», быстрее реальной: дуги упругие, без зависания |
| Проекция высоты | screen_y = y − z · 0.77 |
камера 50° |
| Шаг физики | 1/60 с, отдельно от тика ядра (30 Гц) | рендер интерполирует между тиками |
| Ветер карты | вектор (wx, wy), 0–60 px/с, из погоды |
дым, ткань, листья, дождь |
7.2 Баллистика снарядов
| Снаряд | Траектория | Параметры | Ориентация | Промах или смерть цели |
|---|---|---|---|---|
| Стрела | пологая парабола | скорость 1500 px/с, вершина h = 0.08 · d |
по касательной к траектории с учётом z | летит в последнюю точку, втыкается в землю на 1.5 с |
| Болт | почти прямая | 1800 px/с, падение 4% | по скорости | втыкается, 1 с |
| Гарпун | прямая + цепь | 1400 px/с, цепь — верёвка из 8 звеньев (Verlet, 3 итерации) | по скорости | цепь провисает и втягивается за 0.4 с |
| Пуля мушкета | мгновенный трассер | след 120 мс, отскоки — ломаная с искрами на каждом | — | рикошет в землю, пыль |
| Бомба мортиры | парабола | время полёта T = 0.6 + d/1400 с, вершина h = clamp(0.35·d, 120, 420), вращение 360°/с |
вращается | всегда долетает до точки упреждения |
| Камень требушета | высокая парабола | h = clamp(0.6·d, 200, 600), медленнее бомбы в 1.3 раза |
кувыркается | — |
| Колба яда | парабола | как бомба, h = 0.25·d |
крутится, жидкость плещется (2 кадра) | бьётся о землю, стекло и облако |
| Ракета | самонаведение | старт 300 px/с, ускорение 1600 px/с², поворот 240°/с, рыскание ±6° с частотой 9 Гц, дым каждые 30 мс | по скорости | уходит вверх и взрывается салютом |
| Магический шар | мягкое наведение | 950 px/с, поворот 300°/с, след 8 точек | — | гаснет со вспышкой |
| Молния | ломаная | 6 сегментов, разброс ±40 px, перестраивается каждые 33 мс, живёт 220 мс | — | — |
| Луч призмы | непрерывный | ширина пульсирует ±15% с частотой 6 Гц, пятно плавления на цели | — | луч гаснет за 120 мс |
Тень каждого летящего снаряда рисуется на земле в (x, y): масштаб и прозрачность падают с высотой (раздел 2).
7.3 Отдача и пружины
Отдача, качание ворот, прыжки корпуса — затухающая пружина: a = −k·x − c·v, интегрирование полунеявным Эйлером.
| Оружие | Что движется | Импульс | k | c | Дополнительно |
|---|---|---|---|---|---|
| Арбалет, лук | оружие назад | 3 px | 600 | 30 | — |
| Мушкет | стрелок назад | 4 px | 500 | 26 | дымок из ствола |
| Баллиста, гарпун | помост вниз | 5 px | 400 | 22 | дрожь цепи |
| Пушка | ствол назад | 10 px | 220 | 14 | присед корпуса 0.94, пар |
| Мортира | ствол вниз | 8 px | 200 | 12 | присед 0.90, дым из-под лафета |
| Требушет | рычаг поворот | 70° за 0.25 с | 120 | 8 | перелёт 8° и качание |
| Турель | стволы вращение | раскрутка до 12 об/с за 4 с | — | — | перегрев: красный градиент, дрожь 1 px |
| Маг | кристалл вверх | 4 px | 300 | 10 | вспышка свечения |
Корпус башни после выстрела возвращается из приседа за 0.18 с с перелётом до 1.03 (ease-out-back).
7.4 Отклик целей
- Хит-стоп только у цели: 40 мс обычный тяжёлый удар, 60–80 мс критический или взрыв, 60–100 мс удар по боссу; общий стоп-кадр — только смерть босса (150 мс).
- Вспышка попадания: белая заливка спрайта цели (в Phaser — tint FILL) на 60 мс.
- Наклон: цель отклоняется от удара на 6° и возвращается пружиной (k=300, c=18). Громилы и боссы — на 2°.
- Отброс (ударная волна мортиры, гравиколодец): смещение 10–15 px с подскоком z = 12 px за 0.25 с, ease-out. Масса цели делит смещение: лёгкие ×1, тяжёлые ×0.4, боссы ×0.
- Смерть: тело получает импульс от последнего удара (z до 40 px при большом перебое урона), падает, через 0.3 с распадается на 10–16 частиц пыли цвета фракции, остаётся пятно-декаль на 4 с (Гнилотопь — зелёная слизь, Пустотники — тающая звёздная пыль).
7.5 Обломки
Обломок — маленькое твёрдое тело в псевдо-3D: x, y, z, vx, vy, vz, угол, скорость поворота.
- Падение:
vz −= g · dt; удар о землю при z ≤ 0:vz = −vz · e,vx, vy *= (1 − μ), поворот гасится вдвое. - Засыпание: если
|v| < 20 px/сдва касания подряд — обломок лежит, через 4–8 с тает или запекается в декаль земли. - Бюджет: 120 живых обломков на экран, пул без создания объектов в бою.
- Разлёт от взрыва: скорость 200–600 px/с, вверх
vz300–700 px/с, конус по направлению удара.
| Материал | Форма обломков | e (упругость) | μ | Цвет и отклик |
|---|---|---|---|---|
| Дерево | щепки, доски | 0.35 | 0.5 | #8A5A30, горит, оставляет угли |
| Камень | кубики, плиты | 0.20 | 0.7 | серый, облако серой пыли |
| Металл и латунь | болты, шестерни, пластины | 0.50 | 0.3 | искры при каждом касании, звон |
| Кристалл и руны | осколки | 0.40 | 0.4 | свечение гаснет за 0.6 с |
| Лёд | прозрачные осколки | 0.45 | 0.1 | скользят дальше, тают за 3 с |
| Кость | обломки | 0.30 | 0.6 | бледная пыль |
| Земля | комья | 0.10 | 0.9 | рассыпаются в пыль при касании |
7.6 Окружение
- Декали (воронки, гарь, слизь, лёд) запекаются в текстуру земли: render target тайлами 1024², живых декалей не больше 64, старые гаснут за 6–8 с или навсегда остаются слабым следом (20%) до конца боя.
- Разрушаемые предметы карты: телеги, заборы, бочки, стога, колодцы, мелкие деревья. Три состояния: целое, повреждённое, разрушенное. Ломаются от взрывного урона и боссов (косметика, на ядро не влияет). Стог и деревянное загораются от огня, горят 6 с, оставляют пепел. Огонь не распространяется дальше одного предмета.
- Порча: на картах Пустоты фиолетовые трещины расползаются от входов на 5–10% площади за волну.
7.7 Ткань, дым, листва
- Флаги и вымпелы — полоса Verlet из 6 точек, первая закреплена, ветер + шум с частотой 0.5–1.5 Гц.
- Дым — частицы растут ×2.5, поднимаются 40 px/с, сносятся ветром, гаснут за 1–2.5 с.
- Кроны — вершинный сдвиг по маске высоты, амплитуда 2–4 px, фаза от позиции (без синхронного качания).
7.8 Камера
Тряска по модели trauma: сила = trauma², смещение до 14×10 экранных px, поворот до 0.6°, плавный шум, затухание 0.9/с. Источники: взрыв мортиры +0.35, заклинание +0.4, утечка врага — короткая тряска 150 мс и красная вспышка края экрана, смерть босса +1.0. Обычные выстрелы не трясут. Отключается в настройке «уменьшить эффекты». На скорости ×4 и выше мелкие эффекты (искры, щепки, слова обычных ударов, тряска от башен) отключаются: важна читаемость.
8. Анимация
8.1 Принципы
- Замах → действие → доводка. У любой атаки есть подготовка (не короче 0.10 с или 25% кулдауна), короткое действие (1–2 кадра) и возврат с перелётом.
- Никаких линейных интерполяций. Появления — ease-out-back, удары — ease-in, затухания — ease-out-cubic.
- Фазовый разнобой. Одинаковые объекты не двигаются синхронно: фаза idle случайна от id, длительность ±15%.
- Покадровая анимация персонажей — 12 кадров/с (рисованное ощущение, «на двойках»); твины движка — 60 кадров/с.
- Вторичное движение: плащи, вымпелы, хвосты, цепи отстают и доводят движение.
- Удержание позы: перед ударом громилы — пауза 2 кадра в верхней точке замаха.
8.2 Тайминги башен
Кулдауны, дальности и скорости берутся только из towers.json (levels[].cooldown_s, specializations[].stats). Анимация подстраивается под них: замах + выпуск + возврат укладываются в 60% кулдауна, остальное — ожидание. Если кулдаун короче 0.5 с (Залповая галерея, 0.45 с), замах сокращается до 2 кадров, а возврат сливается со следующим замахом.
| Событие | Длительность | Хореография |
|---|---|---|
| Касание пада | 0.12 с | подсветка пада, веер карточек стройки (11.2) раскрывается твином scale 0.8 → 1 (Back.easeOut) с задержкой 0.03 с на карточку, щелчок |
| Стройка | 0.60 с | 0–0.15 леса вырастают; 0.15–0.45 корпус поднимается снизу с перелётом 1.06; 0.45–0.60 пыль оседает, флаг разворачивается |
| Улучшение | 0.50 с | золотые искры спиралью, корпус приседает 0.95, затем растёт с перелётом в новую форму, кольцо |
| Специализация IV | 1.10 с | вспышка цвета языка (латунь или серебро), старое растворяется снизу вверх, новое проявляется сверху вниз |
| Продажа | 0.45 с | расчёт уходит, корпус опускается под землю с пылью, монеты летят в счётчик |
| Поворот к цели | до 360°/с | ускорение и торможение, без мгновенных рывков |
| Idle-цикл | 2–4 с | дыхание корпуса ±1%, флаг, расчёт; «история» раз в 6–12 с |
| Оглушение | время эффекта | расчёт пригибается, звёзды кругом, оружие опущено |
8.3 Тайминги юнитов
| Состояние | Кадры | Частота | Примечание |
|---|---|---|---|
| Ходьба | 8 | 12 кадров/с | длина шага согласована со скоростью: ноги не скользят |
| Бег (быстрые) | 6 | 15 кадров/с | |
| Атака | 3 замах + 1 удар + 3 возврат | 12 кадров/с | громилы: +2 кадра удержания |
| Получение удара | 2 | — | плюс наклон-пружина из 7.4 |
| Смерть | 6–8 | 12 кадров/с | затем распад в пыль |
| Появление | 4–6 | 12 кадров/с | выход из тумана, прыжок из портала, вылезание из земли |
| Ожидание (блок солдатом) | 4 | 8 кадров/с |
8.4 Направления
Рисуются 5 направлений (S, SE, E, NE, N), остальные 3 — отражение по X. Исключения рисуются во всех 8: юниты со щитом или оружием в одной руке, если это заметно на 64 px (рыцари Ордена Щита, боссы, герои).
8.5 Уровни детализации анимации
| План камеры | Масштаб | Что анимируется |
|---|---|---|
| Общий | до 0.25× | жетоны фракции, без кадров; «змейка» отряда со счётчиком |
| Средний | 0.25–0.6× | 2 кадра покачивания вместо ходьбы, атаки только у башен |
| Ближний | от 0.6× | всё |
8.6 Герои и боссы
Spine 2D (рантайм spine-phaser-v4): 30–60 костей, меши для плащей и щупалец, скины для сезонов.
Атаки героев длиннее и выразительнее (замах 0.2–0.35 с). Ульта — пауза 0.15 с, затемнение фона на 30%, поза, удар.
Боссы меняют облик по фазам: отваливаются пластины брони (обломки по 7.5), меняется цвет свечения.
9. Разрушаемость и повреждения
9.1 Что говорит канон
У башен в данных нет очков прочности: враги не разрушают башни, а выводят их из строя. HP есть только у стены «Каменного бастиона», у големов и турелей (их чинит Звонница-оберег), у солдат и героев. Поэтому разрушаемость строится на трёх слоях: состояния «выведена из строя», косметический износ и настоящее разрушение у того, у чего есть HP. Полное разрушение башен — отдельное решение (раздел 9.7).
9.2 Состояния «выведена из строя»
Каждый эффект врага имеет свой внешний вид. Игрок должен понять причину за 0.5 с и знать, как её снять.
| Источник (данные) | Эффект | Картинка | Как заканчивается |
|---|---|---|---|
| Гоблин-подрывник, «Бочонок под башню» | оглушение 5 с | взрыв у фундамента, копоть на base, расчёт в пыли, звёзды над головой | расчёт отряхивается |
| Сапёр Чёрной Роты, «Минирование» | 4 с минирования, затем 10 с из строя | у основания три бочонка с горящим фитилём, красное мигание; после — подпалины, расчёт без сознания | если сапёра убили — фитиль гаснет с дымком |
| Аэростат-бомбардир, «Бочка на крышу» | молчание 3 с | бочка разбивается о крышу, смола стекает, оружие залеплено | расчёт счищает смолу |
| Расчёт бомбарды, «Осадный выстрел» | оглушение 2 с | ядро бьёт в корпус, сколы и пыль, у бараков падает солдат | — |
| Буревестница, «Порыв ветра» | промахи 2 с | вихрь вокруг головы башни, флаг рвёт ветром, снаряды уходят в сторону | вихрь рассеивается |
| Тролль-ледознатец, «Оледенение башни» | лёд 6 с, 3 клика | башня в глыбе голубого льда с сосульками, трещины после каждого клика | лёд раскалывается на осколки (7.5, материал «лёд») |
| Ярл, «Аура стужи» | −20% скорости атаки | иней на крышах в радиусе 200, пар изо рта расчёта | иней тает |
| Боссы, смола и тараны | −30% скорости, оглушение | горшок смолы, вмятина от тарана, наклон корпуса |
Над башней в любом таком состоянии — значок причины (бочонок, смола, снежинка, вихрь) и кольцо оставшегося времени.
Состояния «выведена из строя»: пробы Qwen-Image-Edit поверх существующих спрайтов
9.3 Косметический износ башни
Башня в бою «стареет»: это видно, но не влияет на ядро.
| Ступень | Когда | Что видно |
|---|---|---|
| 0 Чистая | начало боя | — |
| 1 Следы боя | первые попадания вражеских стрелков или магов, любое выведение из строя | 1–6 стрел в крыше и стенах, копоть у бойниц |
| 2 Побитая | 3+ выведения из строя или осадные выстрелы | трещины по камню, сорванная черепица, тонкая струйка дыма |
| 3 Израненная | 6+ выведений или удары боссов | крыша надломлена, язычки огня на 1–2 якорях, тёмный дым, крен корпуса до 2° |
Звонница-оберег и улучшение башни сбрасывают износ: строители с молотками, искры ремонта, дым гаснет. Между боями износ всегда сбрасывается.
Реализация: износ — это слои поверх body: маска трещин (3 ступени), маска копоти, спрайты стрел в якорях stick,
огонь и дым в якорях fire и smoke. Так одна система обслуживает все 60 форм башен. Для ключевых башен
(витрина, трейлер) можно сделать отдельные нарисованные состояния через Qwen-Image-Edit с сохранением силуэта.
Ступени износа и руины: та же башня, тот же силуэт



Силуэт и стиль сохраняются, но модель правки уменьшила и сдвинула руины — поэтому при сборке состояния выравниваются по точке опоры и ширине фундамента (12.3). Нарисованные состояния — для витрины и ключевых башен; для всех 60 форм износ делается слоями (маски трещин и копоти, якоря стрел, огня и дыма), как в песочнице выше.
9.4 Настоящее разрушение
| Объект | Ступени HP | Что видно | Разрушение |
|---|---|---|---|
| Стена «Каменного бастиона» | 100–67 / 66–34 / 33–1 / 0 | трещины → выпавшие блоки → пролом | обрушение по хореографии 9.5, руины остаются на дороге декалем, каменщик отстраивает с лесами |
| Голем | 100–50 / 49–20 / 19–1 / 0 | трещины светятся изнутри → откалываются куски → хромает | рассыпается на куски материала (глина или железо), печь отливает нового |
| Паровая турель | перегрев | красный градиент, дрожь, свисток, клапан стравливает пар | — |
| Дрон | 0 | сбит: спираль вниз с дымом | хлопок и обломки-шестерёнки |
| Капкан, мина | сработал | «клац!», хлопок и дым | пружина вылетает обломком |
| Солдат, герой | 0 | падает | пыль цвета Рубежа, у героя — золотые искры, таймер воскрешения |
| Щиты и броня врагов | пороги в данных | пластины отлетают обломками | у боссов — смена облика по фазам |
9.5 Хореография обрушения
Для стены, голема и (если будет принято решение 9.7) башни. Время — от момента, когда HP стало 0.
| Время | Что происходит |
|---|---|
| 0.00 с | вспышка, хит-стоп 80 мс, trauma +0.5 |
| 0.08 с | трещины пробегают по маске за 120 мс (снизу от точки удара) |
| 0.20 с | верхняя часть наклоняется вокруг линии излома (break_line в JSON) на 8–15°, ускоряясь |
| 0.35 с | спрайт раскалывается на 6–10 кусков (предрасчитанная мозаика Вороного, раздел 12.4), куски получают импульс и физику обломков |
| 0.40 с | кольцо пыли по земле, облако пыли цвета материала, 20–40 мелких обломков |
| 0.90 с | куски засыпают на земле |
| 1.20 с | на месте остаётся спрайт руин (фундамент и обломки), тлеющие угли 3 с |
| 1.20–4.00 с | столб дыма сносит ветром, куски тают в декаль |
9.6 Продажа и разбор
Это не разрушение: расчёт выходит с мешками, корпус опускается в землю за 0.45 с, доски укладываются в телегу, монеты летят в счётчик. Пад возвращается к виду «свободно» с табличкой.
9.7 Решение владельца: башни с прочностью
Если когда-нибудь у башен появится HP (например, в режиме «Осада» или у боссов-разрушителей), визуальная часть готова: износ 9.3 становится шкалой HP, а 9.5 — смертью башни. Но это меняет баланс, ядро и экономику, поэтому это не делается без решения владельца и записи в разделе 14.
10. Эффекты
10.1 Язык эффектов
| Тип | Форма | Цвет | Смешение |
|---|---|---|---|
| Физический | острые штрихи, щепки, пыль | #FFF2C6, коричневая пыль |
normal + вспышка additive |
| Магический | мягкое свечение, звёздочки, руны | #D9A6FF, #9CC8FF |
additive |
| Взрывной | круглые клубы, кольца, комья земли | #FFB04A → #3A2E26 дым |
additive огонь, normal дым |
| Чистый | тонкое кольцо, золотой край | #FFFFFF, #F0C35A |
additive |
| Яд | пузыри, стелющееся облако | #8FE39A |
normal |
| Холод | осколки, иней, пар | #8FE3FF |
additive иней |
| Пустота | тёмное ядро с ярким краем, «негатив» | #140A2A + #B388FF |
multiply ядро, additive край |
10.2 Отклик и звукоподражания
Главный отклик на тяжёлые события — комиксные звукоподражания (наше решение: тон «сказки с юмором», меньше визуального
шума, чем от цифр; источник — комикс-традиция, а не конкретная игра): «БАХ!», «БУМ!» (взрывы),
«ХРЯСЬ!», «БАЦ!» (тяжёлый удар), «ТРЕСК!», «ВЖУХ!» (магия), «ДЗЫНЬ!» (ульта героя), «МИМО!» (промах).
Шрифт Rubik Black, обводка #2A1405 5–7 px, наклон ±10°, «поп» 0.4 → 1.2 → 1.0 за 0.2 с, жизнь 0.85 с,
не чаще одного слова одного вида за 0.45 с. Цифры урона — опция в настройках, и даже включённые показываются только для крупного и критического урона (пул BitmapText), иначе каша.
10.3 Бюджет и безопасность
- До 300 частиц и 120 обломков на экран; приоритет: босс → заклинание → башня → юнит.
- Автоснижение. Если FPS ниже 50 дольше 2 с, бюджет частиц и обломков режется вдвое, затем погода и эмбиент переходят на упрощённые версии; при восстановлении — плавный возврат через 10 с.
- Визуальный вес = игровой вес. Самые громкие события — ульта героя и удар босса; выстрел рядовой башни — самый тихий. Снаряды рядовых башен мелкие и однотонные; крупные и с хвостами — только у взрывных, ульт и боссов.
- У эффекта области главное — точная граница, заливка вторична (кольцо 3 px цвета типа урона, заливка ≤ 25%).
- Смерть рядового короткая — распад в пыль не дольше 0.4 с, без трупов на дороге; обломки и декали — только у тяжёлых.
- Вспышки: не больше 3 в секунду на всю сцену суммарно, если их общая площадь ≥ 20% экрана; насыщенно-красные вспышки запрещены вовсе. Подробности и переключатели — раздел 20.
11. Интерфейс
11.1 Материалы и иерархия рамок
Камень, латунь и пергамент Рубежа; свет на рамках сверху слева, как в мире. Три уровня — три материала:
| Уровень | Где | Материал | Рамка на 1080p |
|---|---|---|---|
| L1 | модальные окна, Цитадель, итоги боя | серый камень заставы + латунные уголки, заклёпки | 12–16 px, уголки 48–64 px |
| L2 | карточки башен, советников, провинций | пергамент с латунной кантовкой | 4–6 px |
| L3 | подсказки, тосты, всплывашки в бою | тёмная подложка #1E140C 85–90% |
без рамки, скругление 6 px |
Вражеские карточки (превью волны, босс) — тот же уровень, но в материале фракции: Пустота — обсидиан с краем #B388FF,
кланы — кость и кожа, Скарабей — песчаник с бирюзой. Пути мастеров меняют уголки: латунь и заклёпки (Шестерня) или
серебро и руны (Звезда). Все рамки — 9-slice, исходник с углами 64 px, центр тайлится, текста в картинке рамки нет.
Меню поверх поля боя — с размытием и затемнением фона на 30%, чтобы был виден бой под ним.
11.2 Элементы боя (свои решения, раздел 21)
- Пад — каменное основание-щит с гербом Рубежа и табличкой номера; закрытый пад — щит с цепью и замком.
- Меню стройки — веер из щитов-карточек над падом (3–6 карточек по числу доступных линий), цена на латунной табличке под иконкой; карточка, на которую не хватает золота, полупрозрачна 45% и с красной ценой.
- Вызов волны — сигнальный горн у точки входа; пока волна не вызвана, над входом дымит сигнальный костёр цвета фракции, превью волны раскрывается касанием костра.
- Точка сбора — флажок-щит на древке; путь врагов и входы показываются до первой волны пунктиром следов.
- Герой и заклинания — портрет героя у края, где у игрока большой палец (по умолчанию справа внизу на телефоне, слева на ПК, настраивается), заклинания — над ним вертикальной колонкой.
- Состояния карточек и кнопок (заклинания, карты поддержки, стройка) одновременно: прозрачность — нет ресурса, цвет + круговой таймер — перезарядка, мягкая пульсирующая подсветка — готово.
- Полосы здоровья: рядовые — только после первого урона; элита и тяжёлые — всегда; босс — в HUD сверху с именем и делениями фаз, над головой у босса полосы нет.
- Выбор цели на телефоне (заклинание, точка сбора): игра замедляется до ×0.3, радиус показывается кругом с границей.
- Покупка на телефоне — подтверждение вторым касанием той же карточки, выбранная карточка подсвечена и увеличена ×1.1.
11.3 Иконки
Исходник 256×256, рабочие размеры 32/48/64/96 px; живое поле 88%. Контур #2A1A0E 4 px на 64 px, внутренние линии
вдвое тоньше, заливка 2–3 тонами + блик сверху слева; силуэт узнаётся на 24 px залитым чёрным.
Категория = цвет + форма подложки:
| Категория | Подложка | Цвет |
|---|---|---|
| ресурсы | круг | золото #F0C35A |
| действия, кнопки | квадрат со срезанными углами | синий Рубежа #2F6FD1 |
| пассивы, баффы | ромб | зелёный #5FA35A |
| угрозы, враги | щит с зубцами | ржавый #B5441E |
| магия, заклинания | шестиугольник | #D9A6FF |
| типы урона | круг-медальон | цвет типа урона (4.3) |
11.4 Шрифты (все OFL, с кириллицей)
| Роль | Основной | Запасной |
|---|---|---|
| Заголовки, названия провинций | Philosopher | Alegreya SC |
| Основной текст, карточки | Golos Text | Nunito |
| Цифры, звукоподражания | Rubik Black | Russo One |
| Реплики в комиксе | Neucha | Pangolin |
| Летопись, письма | PT Serif | Alegreya |
| Надписи Пустоты, руны (только декор) | Ruslan Display | — |
Нельзя: Cinzel, MedievalSharp, Pirata One, IM Fell, Uncial Antiqua, Bangers — нет кириллицы. В настройках — «простой шрифт» (Golos Text везде).
11.5 Размеры и платформы
- Касание: минимум 48×48 dp, промежуток ≥ 8 dp; часто нажимаемые в бою (меню стройки, заклинания, герой) — 56–64 dp.
- Текст: телефон — основной ≥ 17 pt, второстепенный ≥ 13 pt, абсолютный минимум 11 pt; ПК при 1080p — ≥ 18 px, цифры золота, жизней и волны — ≥ 28 px и самые контрастные на экране.
- Иерархия экрана: ресурсы и угроза → кнопки действий → справка; не больше 3 размеров шрифта и одного акцентного цвета на экран.
- Безопасные зоны: всё интерактивное — внутри системной безопасной зоны + 16 px. Базовый макет 1920×1080. 21:9 — HUD по умолчанию в центральном 16:9, опция «HUD к краям»; 4:3 — HUD перекомпонуется, а не сжимается. Поле боя на телефоне в альбоме — не меньше 75% экрана.
- ПК — не порт с телефона: масштаб интерфейса 75–200%, текст до 200% без горизонтальной прокрутки, крупный курсор в стиле игры (латунный наконечник) в двух размерах, чёткость на 4K и при системном масштабе (UI в векторе или атласах @2x), подсказки при наведении на всё, горячие клавиши на карточках, кнопки одной группы не разносятся по разным краям.
- Геймпад: фокус — латунная рамка 3 px с мягким свечением, видна на любом фоне.
12. Конвейер и форматы
12.1 Генерация
Хромакей вместо белого фона → маска BiRefNet или BEN2 → восстановление цвета края (pymatting.estimate_foreground_ml) →
сужение альфы на 1 px → премультиплированная альфа. Башни и боссы — путь «3D → спрайт» (TRELLIS.2 → Blender,
ортокамера из раздела 2 → стилизация Z-Image + LoRA стиля, denoise 0.35–0.55). Юниты — Qwen-Image-Edit 2511 +
Multiple-Angles LoRA для 5 направлений. Только модели с коммерческой лицензией (Apache, MIT).
12.2 Имена файлов
<вид>_<id>_<уровень>_<часть>_<состояние>_<направление>_<кадр>.png, например
tower_siege_mortar_3_head_idle_se_04.png, enemy_fang_orc_raider_walk_e_07.png, tower_arbalest_watch_4a_body_wear2.png.
12.3 Якоря и параметры спрайта
{
"id": "tower_siege_mortar_3",
"pivot": [212, 498],
"footprint": 160,
"height": 228,
"material": "stone",
"parts": {
"base": "tower_siege_mortar_3_base",
"body": "tower_siege_mortar_3_body",
"head": { "sprite": "tower_siege_mortar_3_head", "pivot": [210, 300], "dirs": 8 },
"crew": [{ "sprite": "crew_bombardier", "at": [160, 330] }],
"flag": { "at": [262, 140], "len": 46 }
},
"fx": { "muzzle": [236, 250], "smoke": [[180, 470], [250, 470]], "fire": [[190, 210], [240, 260]], "stick": [[170, 180], [255, 200]] },
"recoil": { "part": "head", "impulse": [-10, 2], "k": 220, "c": 14, "squash": 0.9 },
"wear": { "cracks": "tower_siege_mortar_3_cracks", "soot": "tower_siege_mortar_3_soot" },
"break": { "line": 330, "fragments": 8, "ruins": "ruins_stone_m" }
}
12.4 Мозаика разрушения
На этапе сборки атласа спрайт body режется на 6–10 кусков по мозаике Вороного (семена гуще у линии излома),
у каждого куска — свой многоугольник, центр масс и масса по площади. В бою куски берутся из атласа и получают физику 7.5.
12.5 Атласы и бюджет
Страницы 2048 (телефон) и 4096 (ПК), отступ и выдавливание края 2 px. Отдельные атласы: башни, юниты, эффекты, UI. Бюджет на бой: до 6 страниц 2048 на телефоне.
Карта континента 16384×9216 никогда не грузится целиком (в RGBA8 это 604 МБ): тайлы 1024×1024, пирамида ×1, ×½, ×¼, для общего плана — отдельная картинка 4096×2304. В памяти телефона — до 24 тайлов (видимые + кольцо подгрузки). Боевые фоны Гранд-карт 7680×4320 — тоже тайлами 1024 с подгрузкой по видимой области.
12.6 Автопроверка
Все числовые пороги документа продублированы в docs/art_rules.json. Скрипты автопроверки (artlib, сборка атласов,
плейтест) читают пороги только оттуда; число меняется одновременно в документе и в JSON с записью в разделе 14.
| Проверка | Порог |
|---|---|
| Светлые пиксели на полупрозрачном крае | меньше 2% |
| Отклонение от палитры биома или фракции | ΔE ≤ 18 по средним цветам |
| Площадь силуэта на 64 px | не меньше 18% кадра у юнита, 30% у башни |
| Точка опоры | нижний центр, ±2 px |
| Высота относительно таблицы раздела 3 | ±8% |
| Контур на итоговом размере | виден по всей границе (проверка градиента светлоты) |
13. Чек-листы приёмки
13.0 Башня
- Паспорт линии заполнен целиком (6 полей, раздел 6.3).
- Уровни I–III и обе ветки IV: силуэты различаются на 64 px, сигнатура видна на каждом уровне.
- Высоты по таблице раздела 3, пипсы уровня, точка опоры, якоря в JSON.
- Части разделены: base, body, head (8 направлений или поворот), crew, signature, flag.
- Атака: замах, выпуск, отдача-пружина с параметрами, возврат; снаряд по таблице 7.2; попадание по языку 10.1.
- Idle-цикл и «история» раз в 6–12 с, фаза случайна.
- Стройка, улучшение, специализация, продажа — по таймингам 8.2.
- Все состояния «выведена из строя» из таблицы 9.2 и три ступени износа 9.3.
- Ночь: что светится и куда падает свет.
- Автопроверка 12.6 пройдена, атлас в бюджете.
- Принята в галерее с отметкой арт-директора.
13.1 Общие проверки для любого арта
- Восемь вопросов раздела 0 — ответ «да».
- Ночной скриншот: объект читается при ночной цветокоррекции 4.4.
- Телефон на минимальном зуме: скриншот 6.1″ при зуме 0.75 — объект узнаётся, касание попадает.
- Толпа 300: объект среди 300 рядовых на дороге находится взглядом за 1 с (для особых врагов, героев, элиты).
- Дальтонизм: скриншот через симулятор протанопии, дейтеранопии и тританопии — смысл не потерян (раздел 20).
- Не клон: проверен по списку раздела 21.
- Серия, а не одиночка: объект поставлен в галерее рядом с 5+ принятыми объектами своего вида и не выбивается.
13.2 Враг, элита, герой, босс
- Высота по таблице 3, ступень угрозы отличается от соседних ≥ ×1.25.
- Главный признак роли (5.4) виден залитым чёрным на 64 px; язык фракции (5.1) — в отделке.
- Все состояния анимации 8.3; появление событием, где это возможно.
- Оверлеи свойств (5.5) садятся на силуэт без правок спрайта.
- Элита: размер ×1.15–1.3 к базе, своя деталь силуэта, метка; босс: фазы, телеграфы ≥ 0.6 с, стадии повреждений (раздел 15).
- Герой: 8 направлений, портрет по сетке 18.2 совпадает со спрайтом по костюму и цветам.
13.3 Боевая карта
- Паспорт карты заполнен (16.1): центральный образ, 2–4 живые сцены по краям, 1–3 пасхалки.
- Дорога — самое светлое место; средний цвет кадра в ΔE ≤ 18 от палитры биома.
- Декор не перекрывает дорогу и пады; ничего выше 40 px не стоит в 60 px от дороги со стороны камеры.
- Ночь, сезоны и погода — оверлеями, без перерисовки.
13.4 Экран интерфейса, портрет, рекламный арт
- Контраст текста ≥ 4.5:1 (крупного ≥ 3:1) по худшему участку подложки; касание ≥ 48 dp.
- Портрет: выражение узнаётся на 128 px и в сером; линия глаз по сетке 18.2.
- Иконка: силуэт на 24 px залитым чёрным, категория по форме подложки 11.3.
- Капсула и логотип: читаются на 120×45 и в сером; персонажи и башни те же, что в игре (раздел 19).
14. Журнал решений и открытые вопросы
| Дата | Решение | Почему |
|---|---|---|
| 22.10.2026 | Камера 3/4 сверху ≈ 50°, свет сверху слева, ортографическая проекция | единая перспектива для всего арта |
| 22.10.2026 | Дорога — самое светлое место земли | замеры KR5/KR6, читаемость на насыщенных биомах |
| 22.10.2026 | Звукоподражания вместо цифр урона по умолчанию | меньше визуального шума, тон сказки (24.10: ссылка «приём KR» снята — не подтверждена исследованием) |
| 22.10.2026 | Башни без HP: износ косметический, разрушение только у стен, големов, турелей и окружения | канон данных towers.json и enemies.json |
| 22.10.2026 | Визуальная физика не влияет на ядро, сеется от id события | детерминизм и реплеи |
| 24.10.2026 | Версия 2.0 по исследованию 17 игр (раздел 22) | владелец: «стилистика должна соблюдаться», документ развить после исследования |
| 24.10.2026 | Не больше 3 тонов на материал + 1 блик; без глянца | читаемость на 40 px; анти-референс Warcraft III Reforged |
| 24.10.2026 | Порядок прочтения юнита и один главный признак на роль (5.3–5.4), свойства — оверлеями (5.5) | 300+ юнитов на экране; опыт Bloons TD 6, Supercell |
| 24.10.2026 | Проектируем под зум 0.5; на телефоне минимальный зум 0.75, пехота ≥ 28 pt | расчёт размеров на 6.1″ |
| 24.10.2026 | Красный — только враг и опасность; цвет урона один во всех каналах | однозначность; GemCraft, Clash Royale |
| 24.10.2026 | Рамки интерфейса L1 — камень и латунь вместо дерева с золотом; пад-щит, меню-веер, горн и сигнальный костёр | защита от сходства с набором сигнатур KR (раздел 21) |
| 24.10.2026 | Вспышки ≤ 3/с при площади ≥ 20% экрана, красные вспышки запрещены | Xbox Accessibility Guidelines, WCAG 2.3.1, Ofcom |
| 24.10.2026 | Касание ≥ 48 dp, текст на телефоне ≥ 17 pt | Material, Apple HIG, XAG 101 |
| 24.10.2026 | Сезон карты континента = сезон боя | урок Total War: Attila |
| 24.10.2026 | Портреты по единой сетке и наборам выражений (18.2); все портреты лидеров перерисовываются серией | закрывает открытый вопрос 4 версии 1.0 |
| 24.10.2026 | Набор эталонов LoRA собирается по разделам 4–5, 15–16 версии 2.0 | LoRA закрепляет стиль на весь проект — только по актуальному канону |
Открытые вопросы владельцу:
- Нужен ли режим, где башни можно разрушить (9.7)?
- Цифры урона по умолчанию выключены — согласовать.
- Набор из 30–40 эталонов для LoRA стиля — утвердить перед обучением (собирается по версии 2.0).
- ~~Переделать портреты лидеров в стиль библии~~ — решено в 18.2.
- Карта континента на телефоне: три уровня зума или два (общий план и «край»)? По умолчанию — три.
- Сезоны — только визуал или ещё и механика боя? По умолчанию — визуал + погода из
weather.json. - Комиксы: озвучка рассказчика или только текст? По умолчанию — текст, озвучка — по решению после беты.
15. Враги, элита, герои, боссы
15.1 Рядовые враги
- Один силуэт на рядовой вид внутри роли; варианты одного вида различаются пятном цвета и одной деталью, а не новым силуэтом.
- Язык фракции (5.1) + главный признак роли (5.4). Пропорции врагов — асимметричные, «неправильные» относительно устойчивых прямых фигур Рубежа: так сторона читается ещё и формой.
- Голова — 1/4–1/5 роста у человеческих врагов, у громил меньше (1/6–1/7), у мелочи больше (1/3). Пропорции «огромная голова на коротком теле» не используем как стиль всей игры.
- Смерть — распад в пыль цвета фракции ≤ 0.4 с (раздел 10.3), у тяжёлых — падение, затем распад.
15.2 Элита и чемпионы
- Элита — отдельный рисунок, не перекрашенный рядовой: размер ×1.15–1.3 к базе, своя деталь силуэта (корона из зубцов, знамя за спиной, рогатый шлем), полоса здоровья видна всегда.
- Метка — кольцо под ногами цвета фракции с зубцами по числу аффиксов (1–3), над головой — значок аффикса.
- Аффиксы чемпионов (
enemies.json → champion_affixes) — оверлеи 5.5 по семействам: защитные — грани и пластины, атакующие — языки пламени или шипы, поддерживающие — пульсирующие кольца, хаотичные — трещины Пустоты. Форма семейства обязательна, цвет — по типу эффекта.
15.3 Мини-боссы и боссы
- Размер по таблице 3; на поле босс занимает 1/6–1/4 высоты экрана при зуме 1.
- Полоса здоровья — только в HUD сверху: имя, портрет-медальон, деления фаз. Смена фазы — пауза 0.3 с, вспышка (по правилам 20.4), смена силуэта: отваливается броня, меняется цвет свечения, растёт деталь Пустоты.
- Стадии повреждений — 3 визуальные ступени на фазу: трещины → сколы и дым → отломанные части (обломки по 7.5).
- Телеграф ударов — зона на земле с красной границей 3 px поверх любой палитры, заливка ≤ 20%, предупреждение не короче 0.6 с, граница появляется сразу целиком, заливка растёт к моменту удара.
- Окно уязвимости — золотое свечение слабого места + значок «◇» над ним; длительность окна видна кольцом-таймером.
- Взаимодействие с картой (ломает мост, перекрывает путь, ныряет в болото) — всегда с телеграфом и следом на карте.
- Боссы и мини-боссы — Spine (8.6), 8 направлений не обязательны, если босс стоит на месте или движется по одной оси.
15.4 Герои
- 18 героев (
heroes.json), пропорции героические: голова 1/5–1/6 роста, устойчивая поза, читаемый силуэт оружия. - У каждого героя один фирменный цветовой акцент (плащ, перо, свечение оружия), не красный и не совпадающий с акцентом другого героя на соседней ступени роли; синий Рубежа есть у всех как знак стороны.
- Тест 18: все герои залитым чёрным на 64 px рядом — ни одна пара не путается.
- Под героем — золотое кольцо-обвод (свой), выбранный герой — кольцо ярче и с засечками направления.
- 8 направлений, Spine, атаки длиннее и выразительнее рядовых (8.6); ульта — пауза 0.15 с и затемнение фона на 30%.
- Ветки развития и пути мастеров меняют отделку (латунь или серебро, облик светлой или тёмной ветки личного квеста), но не силуэт героя.
- Портрет героя (18.2) и спрайт — одна вещь: тот же костюм, те же цвета, тот же акцент.
16. Боевые карты и регионы
16.1 Паспорт карты
Каждая карта из maps_catalog.json получает паспорт. Пустое поле — карта не готова.
- Центральный образ — одна крупная сцена, вокруг которой построена карта (мельница у брода, ледяной трон, затонувшая часовня). Виден на общем плане, не мешает дороге.
- Живые сцены — 2–4 по краям, вне дороги: жители, птицы, рабочие, звери; у каждой свой цикл 6–20 с.
- Пасхалки — 1–3 кликабельных объекта, хотя бы одна связана с достижением. Только оригинальные или отсылки к общественному достоянию.
- Входы — откуда приходят враги событием (из леса, из пещеры, из воды) и как это показано до волны.
- Палитра — id биома из
biomes.json; сезон и погода — оверлеями (4.4). - Порча Пустоты — ступень по акту (16.3).
16.2 Регионы
У каждого региона свой силуэт декора и свой свет, а не только цвет земли (упрёк «планеты различаются цветом почвы»).
| Регион | Биомы | Свет и настроение | Силуэт декора | Типовой центральный образ |
|---|---|---|---|---|
Зеленодол (greenvale) |
summer_forest, autumn_forest, rainy_hills, farmlands | тёплый день, мягкие тени облаков | округлые кроны, плетни, стога, мельницы | мельница, ярмарка, застава |
Хладные Пики (frostpeaks) |
winter_taiga, glacier, mountain_pass, cloud_highlands, volcano, deep_mines | холодный ясный свет, длинные синие тени; в шахтах — тёплые лампы | треугольные ели, острые грани льда, дварфские ворота | ледяной трон, подземная кузня, канатная дорога |
Солнечный Шрам (sunscar) |
scorched_lands, desert_dunes, oasis_canyon | жёсткий полуденный свет, короткие тени, марево | плавные дюны, ступенчатые руины, обелиски | гробница, оазис-крепость, поющие дюны |
Гнилотопь (rotmire) |
misty_swamp, storm_coast, sunken_necropolis | приглушённый рассеянный, туман слоями, зелёные огоньки | кривые деревья, мостки на сваях, склепы | маяк, затонувший некрополь, три трясины |
Расколотая Звезда (shatterstar) |
ruined_capital, crystal_blight, void_rim | «неправильный» свет: тени не туда, свечение снизу | разбитый город, кристаллы-иглы, парящие обломки | падение столицы, обсерватория, сердце Разлома |
16.3 Наступление Пустоты по актам
Чем ближе к Печати, тем больше чужого в кадре (раздел 1). Доля площади кадра с деталями Пустоты: пролог и акт 1 — до 5% (редкие трещины), акт 2 — до 10%, акт 3 — до 15%, акт 4 — до 25%, акт 5 — 40–60%. Пустота всегда геометрическая (грани, иглы, «негативный» свет) и никогда не путается с порчей Гнилотопи (органика, мох, грибы).
17. Карта континента, Цитадель, совет
17.1 Уровни зума
| Уровень | Масштаб (экран 1920 px) | Что видно | Что скрыто |
|---|---|---|---|
| «Атлас» | 0.10–0.12× | пергамент, границы и заливка владельцев 35–45%, названия регионов, крупные угрозы | поселения-рисунки, мелкие армии |
| «Держава» | 0.25× | рельеф, заливка 20–30%, города-значки, армии-фишки, порча | названия мелких мест |
| «Край» | 0.5× | только кант границ; поселения-рисунки, дороги, реки, названия провинций, сезонный декор | — |
Переход — кроссфейд заливки 0.25–0.4 с, без скачков. На телефоне — три уровня (открытый вопрос 5).
17.2 Единство с боем
Тот же свет сверху слева, контур #2A1A0E, палитры биомов (ΔE ≤ 18), проекция 3/4 у поселений и Цитадели.
Насыщенность земли карты 45–55% (ниже боевого фона), значки и армии — 85–100%. Сезон карты = сезон боя: бой из провинции
берёт её сезон и биом. Сезоны — оверлеями: лето multiply #FFF3D6, осень multiply #F0C49A + листва, зима — снег
на крышах и рельефе, лёд на реках, +6% светлоты. Сезон продублирован значком в верхней панели.
17.3 Провинции, туман, порча
- Граница — двойной кант: внешний
#2A1A0E2 px + внутренний цвет владельца 3–4 px. Владение — цвет и герб в центре провинции; враждебные — ещё и редкая диагональная штриховка 10–15%. Выбранная — светлый кант и подъём на 2–4 px. - Туман войны — не серый. Неизведанное — пергамент с наброском сепией; разведанное, но не видимое — рисунок обесцвечен на 50–60%, данные с меткой «устарело»; видимое — полный цвет.
- Порча Пустоты — 5 ступеней, каждая меняет и цвет, и форму: прожилки → трещины → кристаллы → «негативный» свет и мёртвая земля → разлом. Подписи и гербы поверх порчи остаются читаемыми.
- Поселения — 5 рангов (хутор, деревня, город, крепость, Цитадель) различаются силуэтом и высотой рисунка (на «крае» 40 / 56 / 72 / 96 / 128 px при 1080p); захват меняет знамя и 2–3 детали, а не весь рисунок. Касание поселения ≥ 48 dp.
- Узлы миссий — знамя-веха на древке: не пройдено — знамя покачивается (не мигает), пройдено — 0–3 звезды на древке, испытания — гербы разной формы рядом, сложность — цвет и число насечек.
17.4 Цитадель и совет
Цитадель — одна большая картина в проекции 3/4 с постройками-зонами; у каждой постройки 3 видимые ступени улучшения. Облик Цитадели зависит от пути: Шестерня — латунь, трубы, пар; Звезда — мрамор, шпили, руны; Синтез — рунная инженерия. Совет — зал с портретами советников по сетке 18.2, у пустого кресла — силуэт и табличка.
18. Комиксы и портреты
18.1 Катсцены-комиксы (150–200 панелей)
- Подача по панели: на экране 1–3 панели, смена касанием или автоматически, 3–6 с на панель, не меньше 0.3 с на слово + 1 с. Глава — 8–14 панелей, 40–75 с. Всегда «пропустить» и «назад».
- Холст: сцена 3840×2160 (16:9) — гарантированная зона; фон дорисовывается до 5040×2160 (21:9) и 3840×2880 (4:3). Действие и пузыри — только в 16:9.
- Раскадровка: сцена открывается общим планом; переходы в основном «действие → действие»; правило 180° (Рубеж слева смотрит вправо, враг справа); на панели не больше 2 говорящих и 25 слов; шутка — в последней панели после «немой» паузы.
- Текст не вшивается в картинку: пузыри — живой текст поверх (шрифт 11.4, ≥ 17 pt на телефоне, обводка пузыря
#2A1A0E3 px). Рисованные звукоподражания — декор, смысл от них не зависит. - Движение: параллакс 2–3 слоя (сдвиг ≤ 3% ширины), наезд ≤ 5% за панель, удар — тряска ≤ 8 px и ≤ 0.2 с. При «Уменьшить движение» — статичные панели и кроссфейд 200 мс.
- Стиль = игра: тот же контур, свет, палитры фракций и биомов; персонажи совпадают с портретами и спрайтами. Дешёвые события — одна иллюстрация на тип события + текст.
- Конвейер: раскадровка серыми формами → утверждение → цвет; панели 2048 px (ПК) и 1024 px (телефон) по длинной стороне; слои фон / персонажи / эффекты — отдельными PNG.
18.2 Портреты
- Сетка: холст 1024×1280, бюст до середины груди, линия глаз на 36–40% высоты от верха, голова — 30–34% высоты, поворот 3/4 к центру экрана, свет сверху слева, контур 4 px на 1024, фон прозрачный (подложка — рамка UI).
- Наборы выражений: герои и советники — 8 (нейтрально, радость, смех, гнев, печаль, испуг, ирония, решимость); боссы и лидеры фракций — 5 (нейтрально, угроза, ярость, насмешка, поражение); второстепенные — 3 (нейтрально, радость, гнев). Меняются лицо, кисти и наклон головы; костюм, силуэт и герб постоянны. «Ранен», «зима» — оверлеи.
- Читаемость: выражение узнаётся на 128 px и в сером; на телефоне портрет — 30–40% высоты экрана, лицо ≥ 120 px. Рядом с текстом всегда имя говорящего.
- Стиль: та же рисованная манера с крупным мазком, что и в игре; никакого «аниме» и фотореализма. Все портреты одной группы принимаются серией рядом, а не по одному.
19. Рекламный арт
- Один ключевой арт — многослойный мастер 7680×4320 (фон / средний план / герои / враги / эффекты / логотип отдельно), из которого режутся все форматы:
| Формат | Размер | Что в кадре | Текст |
|---|---|---|---|
| Steam Header | 920×430 | герой + башня + логотип ~40% ширины | только название |
| Steam Small | 462×174 | логотип почти на всю капсулу | только название |
| Steam Main | 1232×706 | полная сцена | только название |
| Steam Vertical | 748×896 | герой в рост, логотип сверху | только название |
| Steam Library Capsule | 600×900 | как Vertical | логотип |
| Steam Library Hero | 3840×1240 | панорама, главное в центре 860×380 | без текста |
| Steam Library Logo | до 1280×720, PNG с альфой | логотип | — |
| Google Play Feature | 1024×500 | фокус в центре, фон не белый и не чёрный | логотип допустим |
| Иконки | 1024×1024 (Apple), 512×512 (Google) | одна фигура | без текста |
- Стиль = игра: свет, контур, палитры, материалы двух путей; персонажи и башни — те же, что в игре (спрайт рядом с артом — арт-директор узнаёт ту же вещь). Юмор — одна читаемая деталь, а не россыпь.
- На базовых капсулах Steam нельзя оценки, награды, скидки и призывы.
- Логотип — широкая и компактная версии, русская и английская с общей графикой; читается на 120×45 и 184×69 и в сером.
- Иконка приложения — одна фигура (щит Рубежа с башней или лицо героя) на сплошном фоне, читается на 29 и 40 pt.
- Скриншоты — только реальная игра с реальным интерфейсом, 1920×1080 и выше; первые три: бой, карта континента, Цитадель или комикс. Подписи на мобильных — ≤ 20% площади, на Steam — без подписей.
20. Доступность
20.1 Каждый цвет дублируется формой
| Смысл | Цвет | Форма-дублёр |
|---|---|---|
| тип урона | 4.3 | значок в медальоне, форма вспышки 10.1 |
| фракция | 4.3 | узор флажка, силуэт 5.1 |
| свой / враг | синий / цвет фракции | обвод под ногами: круг / ромб |
| владелец провинции | цвет владельца | герб + штриховка у враждебных |
| свойство врага | 5.5 | форма оверлея |
| ранг башни и элиты | — | пипсы, зубцы |
| состояние миссии | — | число звёзд, гербы испытаний разной формы |
20.2 Режим для дальтоников
Не фильтр на весь кадр, а замена цветов кодов: пресеты протанопия, дейтеранопия, тританопия (база Okabe–Ito, 4.3) и ручной выбор цвета для своих, врагов, пути врагов, радиуса башни и флажков провинций. Проверка — скриншоты каждого экрана через симулятор: пары «свой/враг», «путь/трава» и типы урона различаются с ΔE2000 ≥ 15.
20.3 Контраст
Текст ≥ 4.5:1, крупный и неактивный ≥ 3:1; режим высокого контраста — 7:1 (плотные подложки, обвод юнитов).
Текст поверх арта — на подложке #1E140C 60–85%, контраст меряется по худшему участку.
20.4 Вспышки и движение
- Не больше 3 вспышек в секунду на всю сцену, если их общая площадь ≥ 20% экрана; насыщенно-красные вспышки (R/(R+G+B) ≥ 0.8) запрещены; полосатые узоры с контрастом > 10% — не больше 20% экрана и не мерцают.
- Автопроверка в плейтесте: запись кадров тяжёлого боя, доля экрана со сменой яркости ≥ 10% за кадр. Перед релизом — трейлер и тяжёлый бой через Harding FPA или аналог (прохождение теста — необходимое, но не достаточное условие).
20.5 Переключатели
Тряска 0–100% (по умолчанию 70%), вспышки (полные / мягкие / выкл), фоновая анимация карты и меню, параллакс комиксов, звукоподражания или цифры, размер интерфейса 75–200%, размер текста до 200%, простой шрифт, высокий контраст, дальтонизм, подложка субтитров 0–100%. Системное «Уменьшить движение» включает: тряска 0, параллакс выкл, переходы — растворение 200 мс.
21. Защита от клона
Любой отдельный элемент ниже — норма жанра. Все вместе дают ощущение клона Kingdom Rush (так обвиняли других подражателей). Поэтому у нас на каждый — своё решение, и чек-лист проходит каждый экран и каждая карта.
| Сигнатура жанра-первоисточника | Наше решение |
|---|---|
| кольцо из 4 иконок с ценами на монетках | веер щитов-карточек, цена на латунной табличке (11.2) |
| круглый земляной пад | каменное основание-щит с гербом Рубежа |
| мигающий череп у входа для вызова волны | сигнальный костёр цвета фракции и горн |
| портрет героя и заклинания в левом нижнем углу | у «большого пальца», настраивается (11.2) |
| деревянные рамки с золотом, рукописный жирный шрифт | камень и латунь, Philosopher и Golos Text (11.1, 11.4) |
| интро-комикс в той же раскадровке | «летопись заставы»: комикс-панели с рамкой-пергаментом и голосом летописца (18.1) |
| пергаментная карта мира с флажками | карта континента с провинциями, сезонами и порчей; узлы — знамёна-вехи (17) |
| пропорции «большая голова — короткие ноги» | героические пропорции 1/5–1/6 у героев, асимметрия у врагов (15) |
| плоский флэш-вектор | рисованная фактура крупным мазком, свет суток, физика, разрушаемость |
| имена, образы и пасхалки KR | только своё IP; пасхалки — оригинальные или общественное достояние |
Проверка: на любой скриншот — «если закрыть логотип, примут ли это за игру Ironhide?» Если да — что-то из таблицы вернулось и переделывается.
22. Источники
Исследование 24.10.2026, полные отчёты с URL источников, фактами [Ф] и наблюдениями [Н]:
visual-ironhide.md— Kingdom Rush 1, Frontiers, Origins, Vengeance, Alliance, Genesis; Iron Marines и Invasion; Legends of Kingdom Rush: стиль, эволюция, оценки, защита от клона.visual-genre.md— Bloons TD 6, Arknights, Rush Royale, Clash Royale и Clash of Clans, Legend of Keepers, Dungeon Warfare 2, GemCraft, Thronefall, Bad North, Kingdom Two Crowns, They Are Billions, Warcraft III и Reforged, Northgard: читаемость и масштабируемость.visual-meta-ui.md— Heroes III и Olden Era, Total War, Crusader Kings 3, Darkest Dungeon, Battle Brothers, Hades, Slay the Spire; интерфейс (Apple HIG, Material, Xbox Accessibility Guidelines), доступность (WCAG, Ofcom, Harding), требования магазинов Steam, App Store и Google Play.
Пункты, помеченные в отчётах [Н] «сверить», перед изменением чисел в этом документе проверяются на живой игре.


