Schemas / Animation / modulators
rig.anim.skin
v1.0.0 · stable maturity: draft 5 fields 5 required
Fields
| Field | Type | Meaning | |
|---|---|---|---|
skeleton |
entity | required | rig.anim.skeleton |
joints |
array<entity>min 1 items | required | Bone entities, index order for the arrays below |
inverseBind |
array<number> | required | Column-major 4×4 per joint, 16 floats each, mesh space to joint space. Length = joints.length * 16 |
jointIndices |
array<uint32> | required | Four joint indices per mesh vertex, into joints |
jointWeights |
array<number> | required | Four weights per mesh vertex, parallel to jointIndices. Each vertex sums to 1 |
Skin binding on a mesh entity. Format when present. The drawable is rig.geometry.mesh on the same entity.
Vertex count is positions.length / 3 on the mesh. Unused influences are index 0 and weight 0.
The posed result is a host cache. Do not serialize a baked posed mesh beside the bind pose.
JSON Schema
Resolves at https://rig.works/schemas/rig.anim.skin.schema.json —
raw file.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://rig.works/schemas/rig.anim.skin.schema.json",
"title": "rig.anim.skin",
"type": "object",
"additionalProperties": false,
"properties": {
"skeleton": {
"$ref": "./_defs.schema.json#/$defs/entity"
},
"joints": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "./_defs.schema.json#/$defs/entity"
}
},
"inverseBind": {
"type": "array",
"items": {
"type": "number"
}
},
"jointIndices": {
"type": "array",
"items": {
"$ref": "./_defs.schema.json#/$defs/uint32"
}
},
"jointWeights": {
"type": "array",
"items": {
"type": "number"
}
}
},
"required": [
"skeleton",
"joints",
"inverseBind",
"jointIndices",
"jointWeights"
],
"x-rig-maturity": "draft"
}