Визуальное направление и дорожная карта
Что игрок видит и чувствует — и как мы к этому идём. Двухслойный документ: сверху дизайн-намерение (какой опыт), под каждым треком — идеи и тех-эскиз для совместной продумки. Затвердевшие тех-решения (шейдеры, стек, порядок реализации) отражаются в тех-вике (Тех: Roadmap реализации), чтобы док не разошёлся с кодом — это ловит контур
tech-scribe. Здесь — где визуал рождается.
Визуальный столп (наполняем)
Одна-две фразы: что игрок должен почувствовать от картинки. Фильтр для всех визуальных решений — «служит этому ощущению? нет → режем». Пишет Макс, я оформляю.
(черновик — заполнить)
Стилевое решение: пиксель-арт отменён, у каждого слоя свой язык
Прежнее решение — «стилизованный пиксель-арт» (принято 2026-07-18) — снято целиком.
Отмена шла слоями, четырьмя отдельными решениями, и ни один слой пикселя не сохранил. Разбирая старые тексты, держи в голове: снят термин, а не технические правила под ним — см. «Что остаётся в силе» ниже.
Единого имени у визуального стиля нет намеренно: слои решают разные задачи и говорят разными языками. Термин каждого слоя — ниже; полное обоснование — в Decision Journal по указанным решениям.
| Слой | Язык | Решение |
|---|---|---|
| Персонажи | плоский «сторибук» бумажной куклой | 2026-08-01/14 |
| Боевые VFX | гладкий параметрический «SAO-стиль» | 2026-07-31/53 |
| Интерфейс | латунно-пергаментные «табак и патина», стекло | 2026-08-03/6, 2026-08-04/1 |
| Окружение, арена, карта | тот же сторибук своим языком | 2026-08-02/43–/45 |
Персонажи — плоский сторибук. Solid-цвета без нарисованных теней (объём и свет отдаёт
движок), толстый лайнарт, полу-пропорции 5-6 голов. Референс-триада Wildermyth / Wildfrost /
Cult of the Lamb, планка упрощения Reigns и South Park. Модель модульной головы — 2026-08-01/15,
/16. Причина отказа дословно: пиксель-арт «не к селу не в городу» рядом с гладкими светящимися
эффектами — форму подтянули к той же гладкости, что и свет.
VFX — гладкие и параметрические, шейдерами, без спрайтовых текстур. Дословно: «Как и весь VFX, порезы НЕ в писксель арте, а в нашем SAO стиле». Подробно — VFX Language.
Интерфейс ушёл от пикселя раньше всех (июль 2026) и с тех пор нарастил свой язык: палитра, стекло, минимализм. Пикселя в экранах не осталось.
Окружение — 2026-08-02/44, дословно: «зачем нам вообще пиксель арт? Мы же от него уходим.
В эом и суть, у нас процедурка есть!!!» Практическое следствие важнее эстетического: в пикселе
фактуру делает ручная работа, и процедура там соревнуется с художником, а в сторибуке стиль
состоит из формы, контура и света — и все три считаются. Язык арены: тёмный цветной контур
(не чёрный — чёрный душит цветной свет боя), приглушённая природная гамма, скупая плотность с
пустым центром, живописная плоскость с зерном и направленным светом.
Что остаётся в силе
Эти правила к пикселю не были привязаны и переживают отмену термина без изменений:
- Не идём в pixel-perfect рендер (низкое разрешение + целочисленный апскейл,
PixelPerfectCamera). Рендерим в экранном разрешении. - Спрайты масштабируются нецелочисленно — целочисленный скейл нам и недоступен: боевая камера ведёт зум непрерывно, в ровное кратное на экране не попасть.
- Экранный bloom/vignette/grading допустимы. Оговорка живёт только в threshold bloom — светит магия/emissive, а не весь кадр.
Почему так изначально: стиль и настроение важнее пуризма; приоритет — картинка, а не техническая чистота. Этот принцип отмену пережил — он и привёл к ней.
«Визуальный столп» выше ждёт наполнения Максом под новый язык.
Треки
Каждый трек: намерение (опыт) → идеи → статус. Порядок реализации — в «Дорожной карте» ниже.
1. Пост-обработка
Намерение: контраст, фокус на арене, лёгкое настроение через грейдинг — без «мыла».
- Статус: база собрана (2026-07-18) — профиль
Assets/Settings/PostFX/BattlePostFX_Base.asset(Tonemapping Neutral + Color Adjustments + Vignette + консервативный Bloom),Global Post FX Volumeв BattleScene, Post Processing включён на боевой камере. Ждёт визуал-приёмки в play. - Идеи дальше: per-biome грейдинг (свап
VolumeProfileпо зоне акта — склеп синий, пустыня тёплая; data-drivenBiomeData→ профиль); точечная аберрация/дисторшн на удар/финишер; film grain для атмосферы.
2. Атмосфера и погода
Намерение: арена живая, у зоны есть характер; погода как тихий телеграф зоны.
- Статус: не начато.
- Идеи: parallax-фон (2–3 слоя); ambient-партиклы под биом (пыль/пепел/споры/светлячки —
расширить существующий
impact-dust-пресет); погода дождь/снег/туман спрайтами в партиклах; god-rays. Погода = визуальный телеграф зоны акта (стык с зонами/биомами).
3. 2D-свет
Намерение: свет как главный множитель настроения; факелы/ауры/вспышки как акценты.
- Статус: планируется, кода нет. Тех-план — Тех: 2D-свет
(URP 2D Renderer +
Light2D, normal через Laigter). - Связь: погода без света — декорация; погода + свет = атмосфера. Стыкуется с боевым фидбэком (вспышки/VFX/death как источники света).
4. Переходы между аренами
Намерение: переход между боями — не чёрный фейд, а момент; «загрузка мира» как впечатление.
- Статус: идея (обсуждение 2026-07-18). Началось с фейда тест-сцена → бой.
- Идеи: кастомный fullscreen-шейдер перехода в духе SAO — dissolve по гекс-сетке /
растворение в частицы (fullscreen
ScriptableRendererFeatureBlit или overlay-quad с dissolve-маской). Развязан от нарратива — чистый джус, можно прототипировать отдельно. - Тонкий бонус: «виртуальная» эстетика перехода — естественный тихий носитель мета-настроения «мир — конструкт» (см. связь с нарративом ниже), без единого явного слова.
5. Gamefeel-докрутки
Намерение: читаемость и драма боя (жанр — real-time-with-pause: игрок наблюдает).
- Статус: ядро уже богатое (hitstop, kill-slowmo + финишер, screen shake с roll,
squash/flash, боевые цифры, pixel-burst, death-shatter) — контур
gamefeel-vfx, конфигCombatFeelConfig. Это докрутка, не стройка. - Идеи — значимость: крит/оверкилл как отдельный tier значимости (сейчас «момент» = только килл); телеграф замаха тяжёлой способности (важно для паузного боя); camera punch на добивании; motion trails на снарядах/рывках.
- Идеи — импакт (per-hit, не записаны): anticipation-замах на автоатаке (микро-оттяг спрайта назад перед ударом — сейчас только post-hit squash); attacker lunge (визуальный микро-рывок атакующего к цели в момент импакта, LitMotion-возврат — даёт вес); impact-frame (на 1–2 кадра подмена момента удара белым силуэтом цели, аниме-приём); directional hit-nudge (цель на хитстопе чуть уезжает от удара и возвращается, sim не трогается); HP-бар juice («призрачный» убывающий след урона à la Slay the Spire + heal-наплыв зелёной волной снизу; бар дёргается на хит).
- Открытый вопрос — язык периодического урона (решение 2026-07-26). Направленный фидбэк (искры, отброс, выпад) принадлежит только прямому попаданию: у тика яда и у ответки шипов нет ни автора в моменте, ни стороны, и удар, которого не было, не должен читаться как удар. Сейчас дотам оставлены цифра и вспышка. Чем их показывать по-настоящему — не решено: кандидаты — постоянная аура/дымок на отравленном вместо события на тик, пульсация силуэта в такт урону, капли-споры у ног. Решать, когда дойдём до статусов как визуального слоя.
- Идеи — темп времени (не записаны): hitstop, растущий с уроном (tiered по значимости); first-blood breath (первый килл боя замедляется заметнее обычного kill-slowmo); last-enemy time-ramp (плавный slowmo к добиванию последнего врага арены + мягкий возврат).
- Идеи — микро-жизнь юнита (idle не мёртвый, не записаны): idle-дыхание (пульс масштаба/
качание, LitMotion loop — для спрайтов без своей idle-анимации); weight-shift на ожидании;
facing-flip squash (разворот через сплющивание по X, не мгновенный
flipX); target-acquire tell (микро-вздрог при смене цели); death-anticipation (за ~0.1с до смерти белеет/дрожит перед shatter — телеграф + усиление импакта); contact-dust под ногами (FeetPoint) на старте/ остановке движения (переиспользоватьimpact-dust-пресет). - Идеи — UI-микроанимации (app-shell уже живой, не записаны): damage-number по дуге с гравитацией (крит — крупнее, тряска, цвет); combo/streak-каунтер серии убийств; icon-pop на срабатывании мементо/статуса; screen-flash на ключевом событии (первая ульта, смерть Сосуда — стык с авто-паузой C3).
- Идея — trauma-based screen shake (ПРОВЕРИТЬ текущий
ScreenShake): тряска какtrauma²с нелинейным затуханием и Perlin-смещением (модель Squirrel Eiserloh) вместо линейной. ЕслиScreenShakeещё не такой — дешёвый апгрейд «драмы без болтанки». Сначала сверить реализацию. - Идея — boss-intro title card (не записано): при старте боя с боссом — полноэкранная
карточка представления в духе The King is Watching: диагональная цветная лента через кадр,
крупное имя босса декоративным шрифтом + эпитет («Sir Mortifax — The Scholarly Slaughterer»),
портрет справа; геймплей за ней притушен, короткая анимация въезда ленты + проявления имени.
Джус + читаемость «это важный бой». Стык с треком 4 (переходы) и авто-паузой (C3). Требует
контента: портрет + эпитет босса (data-authoring: поле у
EnemyDataбосса).
6. Death-джус и спрайт-шейдеры («язык SAO»)
Намерение: смерть и статусы читаются и «звучат» на языке распадающихся данных; спрайт реагирует шейдером (свечение, растворение, иней), а не только твином. Это узнаваемая сигнатура игры и тихий носитель мета-настроения «мир — конструкт» (стык с треком 4 и мета-нарративом).
- Цвет эффектов — по правилу, а не на глаз: Vision - VFX Color (яркость щедро, насыщенность как валюта; два поля на юните — главный цвет и палитра разброса).
- Статус: идея (запрос Макса 2026-07-18). Площадка уже есть —
DeathShatter+ шейдерGuildmaster/Sprite/Shatter; правки шейдера/конфига, не стройка с нуля. Bloom-база (трек 1) уже стоит и подхватит emissive. - SAO-смерть (главное):
- Псевдо-3D кувыркание. Сейчас
_Spinкрутит осколки в плоскости — дать каждому чанку вращение вокруг собственной случайной оси в вершинном шейдере (синусоида по «толщине» имитирует переворот). Дёшево — без реальной геометрии. - Три цветовые фазы (сейчас осколки белые весь полёт). impact-вспышка в белый (есть) → короткий возврат исходного цвета юнита на старте разлёта → выцветание в emissive-бирюзу и гашение, которое подхватывает bloom.
- Сигнатура движения. Микро-hold (осколки замирают ~0.05с «кристаллизуясь») → вспышка → брызг преимущественно вверх-и-наружу (не радиально-симметрично) → растворение в emissive-точки. Опц. 1-кадровый glitch-джиттер — посев мета-нарратива.
- Связки задаром: emissive-осколки = будущие источники 2D-света (трек 3);
death-стингер звука — шов в аудио-каталоге уже есть.
- Псевдо-3D кувыркание. Сейчас
- Идеи-соседи (не записаны): dissolve-смерть (альтернатива shatter для «магических» врагов —
нойз-растворение с горящим emissive-краем, тот же SAO-язык); rim-light/outline на юните
(читаемость на фоне + подсветка фокуса/наведения — дёшево, сильно); hit-flash по школе урона
(тинт вспышки: огонь оранжевый, лёд голубой — вместо единого белого); frozen-иней / burn-угли
overlay на статусах (
CombatStatusOverlayуже есть placeholder — есть куда лечь). - Afterimage / echo (не записано, приоритет Макса): на рывках/blink/телепортах — цепочка полупрозрачных копий спрайта, гаснущих следом. Отличается от motion-trails снаряда (трек 5) — это эхо самого юнита. Сильный «вес скорости» для ассасина/рывковых способностей.
- Vertex wobble / jelly (не записано): желейное дрожание меша спрайта в вершинном шейдере — микро-характер для слизь/желе-врагов. Дёшево, узнаваемо.
7. Анимация персонажей (скелетная)
Намерение: узнаваемый язык движения по цене соло-разработчика — скелетка вместо покадровки, а уникальность не из инструмента, а из отдельного слоя движения над ригом.
- Статус: архитектура принята 2026-07-26, реализация отложена. Полный документ — Vision - Character Animation.
- Суть: два слоя (скучный переиспользуемый риг + «глаголы движения» кодом на корневом
трансформе); три оси переиспользования (скелет / архетип оружия / спрайты); инструмент —
текущая связка
Transform+SpriteRenderer+Animatorза $0, пересмотр после третьего юнита. - Стык с треком 5: «глаголы движения» (карточный поворот в 3D, дуга выпада, отскок) — это тот же gamefeel-слой на LitMotion, просто применённый к корню юнита. Идеи трека 5 про микро-жизнь юнита и anticipation-замах ложатся сюда же.
Связь с мета-нарративом
Визуал несёт нарративные посевы мета-идеи «игра, которая знает, что она игра» (Meta - Open Questions § Мета-нарратив): переходы-«загрузки», малые детали и аномалии в картинке — это семена slow-burn раскрытия. Посев проектируется заранее (foreshadowing нельзя доклеить потом), поэтому визуальные «странности» стоит держать в поле зрения этого дока по мере их появления. Слой не принят — но швы под него дешевле заложить рано.
Дорожная карта (черновая)
Порядок — предмет совместной продумки; статусы двигаем по ходу.
| # | Трек | Статус | Ближайший шаг |
|---|---|---|---|
| 1 | Пост-обработка | база собрана | визуал-приёмка в play → крутить значения |
| 2 | Переходы (SAO-dissolve) | идея | прототип fullscreen-шейдера (развязан) |
| 3 | Атмосфера / погода | не начато | parallax + ambient-партиклы под биом |
| 4 | 2D-свет | планируется | проба Light2D на одном юните end-to-end |
| 5 | Gamefeel-докрутки | ядро есть | крит-tier, телеграф замаха, impact-frame/lunge |
| 6 | Death-джус / спрайт-шейдеры (SAO-death, rim, dissolve) | идея | SAO-смерть: правки shatter-шейдера (3D-спин + цвет-фазы) |
| 7 | Анимация персонажей (скелетка) | архитектура принята, отложено | аватар + маски + слой Block на первом юните |
Ограничение: визуальный опыт защищён от урезания (см. tech-роадмап «НЕ режем: ощущение кор-петли»). Для фестиваля-среза (окт. 2026) — приоритет читаемости и «первого впечатления».
Детальные каталоги приёмов (ресёрч 2026-07-18)
Этот док — зонтик (намерение + дорожная карта). Полные каталоги конкретных приёмов с
инструментом, стоимостью и источниками (собраны deep-research 2026-07-18, статус proposed):
- VFX Graph — боевые эффекты в мире (shockwave-дисторсия, GPU-импакты, щиты, dissolve).
- UI-juice — HUD, damage numbers, HP-бары, экраны, boss-intro card.
- Gamefeel — тактильно-временной слой (hitstop/shake/slowmo/ramps) + принципы.
- Свет + пост + атмосфера + переходы — URP 2D свет, экранный пост, погода, SAO-переходы.
- SFX — impact-слои, FMOD voices, sidechain, адаптивная музыка, звуковой телеграф.
Связь: concept (дух вечеринки, запоминаемость), difficulty-skill (честность/читаемость), Vision - Character Animation (скелетка, слои движения, инструмент), Meta - Open Forks (мета-нарратив, посевы).