Всё, из чего собираются спрайты, и ничего собранного. Источник истины —
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>
44 lines
2.5 KiB
YAML
44 lines
2.5 KiB
YAML
version: 1
|
||
frame: {width: 70, height: 90, pivot_x: 35, pivot_y: 87}
|
||
directions: [south, southwest, west, northwest, north, northeast, east, southeast]
|
||
animations:
|
||
idle: {frames: 4, fps: 8}
|
||
walk: {frames: 8, fps: 12}
|
||
attack: {frames: 6, fps: 12}
|
||
|
||
# Одна камера на все компоненты и оба конвейера (Blender и растровый).
|
||
# elevation_deg = atan(TILE_H / TILE_W) = atan(0.5): ровно тот же 2:1, по
|
||
# которому в игре лежит пол (src/tuning.h). Разъедься эти два числа — фигура
|
||
# встала бы к полу под другим углом, чем ромб под ней.
|
||
camera:
|
||
elevation_deg: 26.565
|
||
# Alien-Shooter-like gameplay scale: an upright 1.8 m operator occupies
|
||
# roughly 28-30 internal pixels, not half the screen.
|
||
pixels_per_unit: 28.0
|
||
distance: 10.0 # только для клиппинга: проекция ортографическая
|
||
body_height: 1.80 # метры, худой взрослый; не бронированный громила
|
||
source_model: "assets/vendor/quaternius-universal-animation-library/files/Animation Library[Standard]/Godot/AnimationLibrary_Godot_Standard.glb"
|
||
source_rotation_deg: 0.0
|
||
source_scale: 0.96
|
||
source_ground_z: 0.0
|
||
# Low-resolution silhouette compensation applied after skin deformation.
|
||
# It preserves the authored skeleton/actions but prevents arms and legs from
|
||
# collapsing to one-pixel wires in a 70x90 sprite cell.
|
||
source_silhouette_thickness: 0.022
|
||
|
||
# Every component is rendered against the same skeleton/camera. Missing source
|
||
# files are allowed while authoring; `agent_assets.py validate --complete`
|
||
# turns them into errors for a release build.
|
||
components:
|
||
body_sleek: {slot: body, style: sleek infiltration body}
|
||
armor_jacket: {slot: armor, style: fitted field jacket and thin tactical harness}
|
||
armor_vest: {slot: armor, style: light low-profile ballistic vest}
|
||
armor_plate: {slot: armor, style: segmented medium ceramic chest plates}
|
||
armor_shroud: {slot: armor, style: close-fitting stealth shroud, no cape}
|
||
weapon_sword: {slot: weapon, style: narrow tactical longsword}
|
||
weapon_dagger: {slot: weapon, style: compact combat dagger}
|
||
weapon_rifle: {slot: weapon, style: compact suppressed assault rifle}
|
||
weapon_shotgun: {slot: weapon, style: short industrial combat shotgun}
|
||
weapon_pistol: {slot: weapon, style: suppressed service pistol}
|
||
weapon_bow: {slot: weapon, style: compact near-future compound bow}
|