Стражи Рубежа — дизайн-документ графики
Версия 1.0 · 22.10.2026 · статус: канон
Один документ на всю графику игры: стиль, камера, масштаб, цвет, формы, башни, физика, анимация, разрушаемость, эффекты, конвейер и приёмка. Им пользуются художники, агенты-генераторы, программисты рендера и тот, кто принимает арт.
Правило старшинства. Если промпт, старый арт, код 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)
Если на любой вопрос ответ «нет» или «не знаю», объект не готов.
1. Видение
Тёплая пограничная сказка с трещиной. Рубеж — обжитый, рукотворный, немного потрёпанный край: дерево, камень, латунь, вымпелы, дым из труб. Его ломает Пустота — холодная, геометрически чужая, с неправильным светом. Чем ближе кампания к Печати, тем больше в кадре чужого.
Пять опор, по которым судим любую картинку:
| Опора | Что значит | Как проверить |
|---|---|---|
| Читаемость прежде красоты | Игрок за 0,3 с понимает, кто враг, где дорога, что за башня | Тест в оттенках серого и тест силуэта 64 px |
| Ручная работа, а не пластик | Живая мазковая фактура, лёгкая неровность, тёплые тени. Никакого «3D-рендера» и глянца | Сравнение с эталонами библии рядом |
| Мир отвечает | Каждое действие оставляет след: дым, вмятину, воронку, щепки | В бою нет ни одного «немого» события (раздел 10) |
| Два языка мастеров | Путь техники — латунь, пар, клёпки, тёплые лампы. Путь магии — мрамор, серебро, руны, холодный свет | У каждой IV-формы явно один из языков |
| Характер в деталях | У каждого расчёта башни свои привычки, у каждой карты 2–4 живые сцены и пасхалки | Есть хотя бы одна «история» в idle |
Чего не делаем: фотореализм, кровь и расчленение (рейтинг 6+; смерть — распад в пыль цвета фракции), неоновую «мобильную» кислотность, мелкий орнамент, который превращается в шум на 40 px.
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 у мелочи; внутренние линии вдвое тоньше внешних. При даунскейле контур не должен исчезать —
проверяется на итоговом размере атласа.
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); объём даёт градиент к «лицу» юнита, а не новые цвета.
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), смысл всегда продублирован формой (иконка типа урона, рамка ранга, узор флажка фракции).
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), а не цветом.
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 с | подсветка пада, радиальное меню твином scale 0.8 → 1 (Back.easeOut), щелчок |
| Стройка | 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 Отклик и звукоподражания
Главный отклик на тяжёлые события — комиксные звукоподражания, как в Kingdom Rush: «БАХ!», «БУМ!» (взрывы),
«ХРЯСЬ!», «БАЦ!» (тяжёлый удар), «ТРЕСК!», «ВЖУХ!» (магия), «ДЗЫНЬ!» (ульта героя), «МИМО!» (промах).
Шрифт Rubik Black, обводка #2A1405 5–7 px, наклон ±10°, «поп» 0.4 → 1.2 → 1.0 за 0.2 с, жизнь 0.85 с,
не чаще одного слова одного вида за 0.45 с. Цифры урона — опция в настройках, и даже включённые показываются только для крупного и критического урона (пул BitmapText), иначе каша.
10.3 Бюджет и безопасность
- До 300 частиц и 120 обломков на экран; приоритет: босс → заклинание → башня → юнит.
- Не больше 3 вспышек в секунду на большой площади (WCAG 2.3.1).
- Отдельные переключатели: тряска, вспышки, эмбиент карты, звукоподражания или цифры.
11. Интерфейс (кратко)
Дерево, латунь и пергамент; заголовки — Philosopher, звукоподражания и цифры — Rubik Black, текст — Nunito или Golos Text (все с кириллицей). Поле боя на телефоне в альбоме — не меньше 75% экрана, цели касания от 44×44 pt с промежутком 8 pt, цифры золота, жизней и волны — самые крупные. Путь врагов и точки входа показываются до первой волны. Пады с табличками, закрытые пады с красным крестом, флажки-щиты точек сбора, радиальное меню стройки, карточка башни, превью волны. Подробности и макеты — в плане графики, фаза Ф7.
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 на телефоне.
12.6 Автопроверка
| Проверка | Порог |
|---|---|
| Светлые пиксели на полупрозрачном крае | меньше 2% |
| Отклонение от палитры биома или фракции | ΔE ≤ 18 по средним цветам |
| Площадь силуэта на 64 px | не меньше 18% кадра у юнита, 30% у башни |
| Точка опоры | нижний центр, ±2 px |
| Высота относительно таблицы раздела 3 | ±8% |
| Контур на итоговом размере | виден по всей границе (проверка градиента светлоты) |
13. Чек-лист приёмки башни
- Паспорт линии заполнен целиком (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 пройдена, атлас в бюджете.
- Принята в галерее с отметкой арт-директора.
14. Журнал решений и открытые вопросы
| Дата | Решение | Почему |
|---|---|---|
| 22.10.2026 | Камера 3/4 сверху ≈ 50°, свет сверху слева, ортографическая проекция | единая перспектива для всего арта |
| 22.10.2026 | Дорога — самое светлое место земли | замеры KR5/KR6, читаемость на насыщенных биомах |
| 22.10.2026 | Звукоподражания вместо цифр урона по умолчанию | приём KR, меньше визуального шума |
| 22.10.2026 | Башни без HP: износ косметический, разрушение только у стен, големов, турелей и окружения | канон данных towers.json и enemies.json |
| 22.10.2026 | Визуальная физика не влияет на ядро, сеется от id события | детерминизм и реплеи |
Открытые вопросы владельцу:
- Нужен ли режим, где башни можно разрушить (9.7)?
- Цифры урона по умолчанию выключены — согласовать.
- Набор из 30–40 эталонов для LoRA стиля — утвердить перед обучением.
- Переделать портреты лидеров в стиль библии (сейчас часть в «аниме»-манере).


