Create a Voxel Animation Variant
Overview
Section titled “Overview”Add a variant to an existing rigged voxel asset-generation version
(asset_kind = "voxel-animation", a sculpted, rigged model whose required
animations are authored as F-curves).
Creating a Voxel Animation
Variant is the full
procedure.
A variant varies the brief the model sculpts toward: a tighter palette, a
stricter operation budget, a required technique, or an observable animation
constraint. It may also declare its own [voxel] table, which replaces the
case’s volume for runs of that variant. The asset_kind and the [model]
animation contract are version-level, so every variant produces the same
required animations under the same names. An asset-generation case declares no
references, so resolution rejects a reference on the case or on any variant.
- Choose a consistent slug (
armored) and display name (Up-Armored) naming the constraint the variant imposes. Favour one a reviewer can observe in a part preview or the posed viewer. - Write
specs/<slug>.mdas an additive brief, stated as a delta against the common brief (“same subject and required animations, except …”) with precise, testable constraints. Say whether each applies to every part, to a named feature, or to the behaviour of a named animation. It may reference the common specs. It may not reference another variant’s spec. - Create
variants/<slug>.toml, a standalone TOML file whose top-level keys are the variant’s fields, and add its path to thevariantslist intest-case.toml. The first entry in that list is the default variant.
slug = "armored"name = "Up-Armored"description = "Same subject and animations, with heavier chassis and turret plating."spec = [{ source = "specs/armored.md" }]A spec entry’s dest defaults to its source with any trailing .hbs removed.
Spec entries are additive on the common specs, and within one variant two seeded
entries may not share a dest. An asset-generation case is judged on one
overall rating, so a variant declares no [[review_item]].
Varying the volume
Section titled “Varying the volume”A variant that declares a [voxel] table runs at that volume in place of the
case’s. Declare width, height, depth and background exactly as the case
does. A brief that has to state its dimensions reads them from the
spec-template context as
{{voxel.width}}, {{voxel.height}}, {{voxel.depth}} and the inclusive
maximum index on each axis, so one .hbs brief serves every size.
Validate
Section titled “Validate”tcab seed --test-case <slug> --version <version> --variant <new-variant>tcab prompt --test-case <slug> --version <version> --variant <new-variant>Seed and render the new variant, then repeat for the existing variants to
confirm nothing else changed, the brief resolves self-contained, and the seeded
rig.json still carries the version’s required animations.