Опись: чем умеем, где живёт, что не выбрано
Границы дока. Здесь — арсенал и карта зон: какими средствами джус физически рисуется, в каких зонах эффекты живут и что из этого сегодня не задействовано. Опись, а не дизайн: как выглядит событие — VFX Language, как реагируют время и камера — Time & Camera, чем красим — VFX Color, какая текстура играет роль — Asset Palette.
Смысл дока — отвечать на вопрос «а чем это вообще можно сделать» до того, как начнётся спор о вкусе. Половина плохих решений в джусе рождается из выбора инструмента, который не умеет того, что от него хотят.
Плотность арены — константа
В гильдии всегда четыре «Сосуда» (Coop - Index). Кооператив меняет только распределение управления между игроками (от одного до четырёх), а не число бойцов. Значит бюджет джуса считается по постоянной плотности, и «а что если юнитов станет втрое больше» — не наш вопрос.
Восемь инструментов
У каждого есть то, чего он не умеет в принципе. Это не настройка и не вопрос старания.
| Инструмент | Умеет | Не умеет | Статус |
|---|---|---|---|
| Particle System (URP Particles Unlit) | рой, разлёт, шлейф, искры, дым — «много мелкого», разброс по палитре | держать форму: частица не рисует дугу и не имеет силуэта | 6 префабов в бою |
| Шейдер по спрайту (Shader Graph / HLSL) | менять САМ юнит: вспышка, растворение, голограмма, контур, дисторсия, десатурация | быть отдельным объектом в мире | SH_Sprite_HitFlash, SH_Sprite_Shatter, SH_Sprite_Desaturate |
| Спрайтовая анимация | нарисованную форму — дугу, взрыв, всё характерное, что нарисовал художник | быть параметрической: цвет и размер только грубо | не используется |
| Shapes (векторная геометрия, компонентный и immediate режим) | идеальные дуги, кольца, линии заданной толщины — параметрически, любым цветом, без текстуры | текстурную детализацию, «грязь» | вспышка арены, дев-кольца статусов, карта акта |
| LitMotion (твины) | движение, масштаб, «глаголы» — выпад, отскок, сплющивание, наливающийся заряд | сам по себе ничего не рисует | UnitView, точечно |
| TrailRenderer / LineRenderer | непрерывный след за движущимся объектом | форму, не привязанную к движению | след снаряда |
Меш из спрайта (ShatterMesh) | резать конкретный спрайт юнита на осколки — то, что префабом не подменить | быть переиспользуемым префабом | DeathShatter |
| Fullscreen шейдер | экранные эффекты: дисторсия, вигнетка, цветокор, переход | что-либо локальное | цифровая подмена арены, переход карты |
Установлено и не используется: VFX Graph (ни одного .vfx), Light2D (ноль экземпляров в
сценах — при 152 масках света Kenney на диске).
Пять видов реакции на момент
Одно событие может отозваться пятью способами. Первые два локальны, следующие два глобальны, пятый живёт в чужом контуре.
| Вид | Чем делается | Где решается |
|---|---|---|
| Визуал — что видно в точке и на теле | партиклы, шейдер, Shapes, спрайт | vfx-language |
| Трансформ — что делает тело: выпад, отброс, сплющивание, оседание | LitMotion по трансформу вида | vfx-language, тумблеры в feel-конфиге |
| Время — hitstop, замедление, пауза, freeze frame | TimeScaleService (владелец — combat-sim), джус потребляет | time-and-camera |
| Камера — тряска, фокус, зум, кадр, экранный эффект | CameraModeController / IScreenShake | time-and-camera |
| Звук | IAudioService / FMOD | контур audio, подписан на событие независимо |
Девять зон: где эффект живёт
Зона определяет и инструмент, и сортировку, и владельца. Порядок — от тела наружу.
A · Тело юнита — через шов IUnitBodyVisual, шейдер по спрайту.
Вспышка удара по школе · вспышка блока фларом · подсветка лечения · тинт-приглушение · контур каста ·
наливающийся заряд · голограмма смерти · осколки · силуэт за препятствием · пульс на низком HP.
Есть почти всё. Нет: свечения оружия отдельно от тела — шов адресует тело целиком.
B · Событие в точке — партиклы + Shapes + спрайт, слой OverheadFX.
Ядро · форма · осколки · остаток (четыре роли).
Есть ядро и осколки, одной текстурой на три разных события. Роли «форма» нет ни у одного.
C · Оружие и движение — Shapes / Trail / спрайт.
Слеш-дуга · трейл клинка · свечение клинка на замахе · след снаряда · шлейф рывка · тень под прыжком.
Есть только след снаряда. Линия дуги считается офлайн — RigSweep отдаёт путь с разбивкой
windup / strike / recovery.
D · Земля — партиклы + спрайт, слой GroundFX.
Пыль шага · пыль удара · кляксы-отметины · выжженный след · тень юнита · телеграф зоны AoE.
Есть две пыли. 36 клякс лежат неразобранными.
E · Статусы — постоянные, не событийные — шейдер + партиклы.
Яд · горение · заморозка · стан · щит · усиление · метка · невидимость.
Нет ничего, кроме CombatStatusOverlay — а это dev-инструмент, кольца Shapes по консольной
команде. В настоящем бою статусы невидимы. У постоянного эффекта другая экономика внимания: он
висит секундами, значит обязан быть тихим и однозначным одновременно.
F · Арена — Shapes + fullscreen шейдер. Вспышка фона · цифровая подмена арены · затемнение на паузе · зона деплоя. Есть вспышка фона, подмена и деплой.
G · Экран — fullscreen шейдер. Дисторсия от тяжёлого удара · вигнетка на добивании · хроматическая аберрация · freeze frame. Нет ничего.
H · Время — TimeScaleService.
Hitstop пары · замедление с предчувствием · таймлайн финишера · пауза · скорость боя.
Есть всё, кроме freeze frame (весь кадр на пару кадров — не то же, что локальный hitstop).
I · Камера — CameraModeController.
Тряска · цель слежения · четыре режима · наезд и всплытие на карте.
Нет: наезда на боевое событие, сдвига фокуса на конкретный юнит, наклона кадра, любого экранного
эффекта по событию.
J · Свет — Light2D.
Свет от вспышки · свет огня · огоньки павших · свет каста · мигание на стане.
Не задействован вообще. Самый большой невыбранный рычаг: свет превращает эффект из наклейки поверх
спрайта в событие, происходящее в мире.
Реестр невыбранного
Собран отдельно, потому что «не сделано» и «сознательно отвергнуто» — разные вещи, и путать их дорого. Здесь первое: средства и зоны, до которых просто не дошли.
| Что | Зона | Чем ценно |
|---|---|---|
Light2D | J | отложен сознательно (31.07.2026): планируем без света, прикрутим позже. Потолок качества высокий, 152 маски уже на диске |
| Спрайтовая анимация эффектов | B, C | не наш путь (31.07.2026): форма делается гладкой — Shapes и шейдер. Спрайт остаётся на характер, который светом не передать |
| Роль «форма» (дуга, конус, кольцо) | B | несёт смысл события; сейчас его не несёт ничто |
| Боевой показ статусов | E | это информация, а не украшение |
| Свечение оружия | A, C | ключевой приём эталона (см. Style - SAO) |
| Freeze frame | G, H | дёшево до неприличия, читается как удар грома |
| Экранная дисторсия, вигнетка | G | вес тяжёлого момента |
| Наезд / сужение внимания | I | акцент без потери обзора — открытый вопрос |
| Кляксы и отметины на земле | D | арена рассказывает, что тут было |
| VFX Graph | — | установлен; нужен только при объёме, которого у нас нет |
Связано: Gamefeel - Index, Reference - Asset Inventory (что вообще есть в проекте).