squad-proto/assets/monsters/catalog.yaml
z.kirill 8d35f4c2ec Конвейер ассетов: манифесты, риги, каталоги, инструменты
Всё, из чего собираются спрайты, и ничего собранного. Источник истины —
assets/manifests и assets/*/catalog.yaml; PNG, .sfa и contact sheet остаются
за бортом, потому что воспроизводятся командой (docs/12-assets.md).

  assets/manifests   что и как рендерить: окружение, твари, агенты, предметы
  assets/agents      паперdoll-риг восьми направлений, каталог снаряжения
  assets/monsters    пять морфологий, каждая своим ригом (docs/14-monsters.md)
  assets/sources     исходные развёртки и импорты
  assets/art_masters мастер-развёртки, по которым сверяется стиль
  tools/             сборка ассетов, покрытие, генераторы, blender-скрипты
  generated/         заголовки с константами SF_ASSET_*: без них игра не
                     соберётся, поэтому они в репозитории, хотя и производные

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-13 21:06:09 +03:00

63 lines
3.6 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Каталог тварей: единственный источник геометрии monster-конвейера.
#
# Твари — НЕ бумажная кукла. У агента слои обязаны совпадать пиксель в пиксель,
# поэтому там один силуэт на всех. Здесь наоборот: пять видов обязаны читаться
# по пятну, не глядя на детали, — значит у каждого своя морфология, свой рост и
# своя походка. Общее у них ровно две вещи: камера и точка привязки.
version: 1
# Ячейка листа и общий pivot. pivot_y НЕ на нижней кромке: изометрический пол
# уходит от точки опоры ВНИЗ по экрану, и всё, что у твари позади (хвост
# бегуна, задние лапы затаившегося), проецируется ниже точки опоры. Девять
# строк под pivot — это запас на глубину подставки, а не «воздух».
# Monsters may sprawl wider than the 70x90 human paper-doll when dying. The
# camera scale stays unchanged: this is transparent safety padding, not a
# larger creature. Human agent layers remain exactly 70x90.
frame: {width: 96, height: 112, pivot_x: 48, pivot_y: 88}
# Порядок направлений тот же, что у агентов: по -45° от юга.
directions: [south, southwest, west, northwest, north, northeast, east, southeast]
# Кадры на ОДНО направление. Лист direction-major: сначала все кадры юга,
# затем юго-запада и так далее.
animations:
walk: {frames: 8, fps: 10}
attack: {frames: 6, fps: 12}
hit: {frames: 4, fps: 14}
death: {frames: 8, fps: 10}
# Камера ровно та же, что у агентов: elevation_deg = atan(TILE_H / TILE_W) =
# atan(0.5). Разъедься эти числа — тварь встала бы к полу под другим углом,
# чем боец рядом с ней.
camera:
elevation_deg: 26.565
# Common mutants read slightly larger than an operator; brute dominates.
pixels_per_unit: 32.0
distance: 12.0 # только для клиппинга: проекция ортографическая
# height_m — справочная высота силуэта в метрах, ею меряется читаемость
# размеров: громила обязан быть вдвое выше затаившегося.
# fps_scale — темп клипа относительно animations.fps: бредущий волочится,
# бегун частит. Ассету это даёт разный fps при одинаковом числе кадров.
kinds:
shambler:
style: "flayed penitent; thorax cranked open, ribs splayed outward, one arm grown past the knee"
height_m: 1.58
fps_scale: 0.8
rusher:
style: "quadruped sprinter; horizontal spine, digitigrade hind legs, scythe forelimbs, headless split-jaw bloom"
height_m: 0.78
fps_scale: 1.4
spitter:
style: "pressure vessel; dragging gland sac, implanted throat valve and nozzle, vestigial arms"
height_m: 1.22
fps_scale: 0.9
brute:
style: "the fused; a second half-absorbed body grafted to the shoulder, bolted plating, hammer of fused bone"
height_m: 1.96
fps_scale: 0.7
lurker:
style: "arachnid harvester; flat sutured carapace slung under four long arching limbs, eyeless hook wedge"
height_m: 0.74
fps_scale: 1.2