57 lines
1.7 KiB
Markdown
57 lines
1.7 KiB
Markdown
# Manifest schema v1
|
|
|
|
Manifests are UTF-8 YAML and may use the compact flat form:
|
|
|
|
```yaml
|
|
version: 1
|
|
defaults: {dirs: 8, fps: 12, pivot: bottom_center}
|
|
|
|
demo_actor:
|
|
backend: blender
|
|
rig: rigs/demo.blend
|
|
anims: [idle, walk]
|
|
|
|
demo_floor:
|
|
backend: procedural
|
|
generator: floor_tile
|
|
params: {color: '#706860', variants: 4}
|
|
dirs: 1
|
|
```
|
|
|
|
An explicit `assets:` mapping is also supported, but it cannot be mixed with
|
|
flat asset declarations. Asset IDs and backend names match
|
|
`[a-z][a-z0-9_]*`. Unknown fields are errors, while generator-specific options
|
|
belong under `params`.
|
|
|
|
Common fields are `backend`, `dirs`, `fps`, `pivot`, `size`, `palette`,
|
|
`palettes`, `tags`, `seed`, and `postprocess_scale`. A pivot is a standard name
|
|
(`bottom_center`, `center`, `bottom_left`, `top_left`) or signed `x,y`.
|
|
Sizes use `WIDTHxHEIGHT`.
|
|
|
|
`postprocess_scale` applies a fixed nearest-neighbour scale before tight alpha
|
|
cropping and target-size fitting. Set it to `0.25` for a 4x supersampled
|
|
Blender render. Unlike adaptive bbox fitting, this preserves the relative world
|
|
scale of short and tall assets.
|
|
|
|
Backend contracts:
|
|
|
|
| Backend | Required field |
|
|
|---|---|
|
|
| `procedural` | `generator` |
|
|
| `blender` | `rig` |
|
|
| `import` | `source` |
|
|
| `composite` | non-empty `layers` |
|
|
|
|
Additional backends register a contract through
|
|
`register_backend_contract()` and put backend-specific configuration in
|
|
`params`; neither the loader nor the manifest core needs modification.
|
|
|
|
Validate without producing assets:
|
|
|
|
```text
|
|
sf validate assets/environment.yaml assets/actors.yaml
|
|
sf build assets/environment.yaml --tag environment --jobs 4 --dry-run
|
|
```
|
|
|
|
Diagnostics use `absolute-file:line:column` followed by the YAML property path.
|