design: #13 orientation convention + one-shot animation envelope
@@ -423,3 +423,7 @@ Alpha is always kept (scaled to the bit depth). Distance = near + t·(far − ne
423
423
- A skinned glTF body loads every mesh node and every skin; joints of all skins are merged into one skeleton (shared joints once, max 128).
424
424
- A mesh node without a skin moves rigidly with its nearest joint ancestor (else the first joint); its rest-pose scene placement is baked once so it is exact at rest.
425
425
- KHR_texture_transform on the base-color texture is baked into the UVs at load. Sampler wrap modes stay unread (nearest + REPEAT everywhere); metallic/roughness, normal/occlusion/emissive textures and morph targets stay unused, body specular stays zero. These limits are documented in the README rather than approximated.
426
427
## Decision 2026-11-07 (#13 orientation + envelope, implementation choice)
428
- Orientation convention fixed and test-guarded with labelled markers: +Y up, character faces −Z, its right is +X; yaw 0 = front (character's right on image left), 90 = left side, 180 = back, 270 = right side; positive pitch looks from above.
429
- "Omhullende animaties" is a one-shot, user-triggered button: height and center Y are set so every clip, every frame at project fps and all 60 views fit, +5% margin per side; the pivot is unchanged. Framing stays fixed afterwards: no per-frame, per-clip or per-layer autozoom. Equipment allowance stays manual. Root motion stays retained, so a travelling clip widens the envelope.
@@ -423,3 +423,7 @@ Alpha is always kept (scaled to the bit depth). Distance = near + t·(far − ne423
- A skinned glTF body loads every mesh node and every skin; joints of all skins are merged into one skeleton (shared joints once, max 128).423
- A skinned glTF body loads every mesh node and every skin; joints of all skins are merged into one skeleton (shared joints once, max 128).424
- A mesh node without a skin moves rigidly with its nearest joint ancestor (else the first joint); its rest-pose scene placement is baked once so it is exact at rest.424
- A mesh node without a skin moves rigidly with its nearest joint ancestor (else the first joint); its rest-pose scene placement is baked once so it is exact at rest.425
- KHR_texture_transform on the base-color texture is baked into the UVs at load. Sampler wrap modes stay unread (nearest + REPEAT everywhere); metallic/roughness, normal/occlusion/emissive textures and morph targets stay unused, body specular stays zero. These limits are documented in the README rather than approximated.425
- KHR_texture_transform on the base-color texture is baked into the UVs at load. Sampler wrap modes stay unread (nearest + REPEAT everywhere); metallic/roughness, normal/occlusion/emissive textures and morph targets stay unused, body specular stays zero. These limits are documented in the README rather than approximated.426
427
## Decision 2026-11-07 (#13 orientation + envelope, implementation choice)428
- Orientation convention fixed and test-guarded with labelled markers: +Y up, character faces −Z, its right is +X; yaw 0 = front (character's right on image left), 90 = left side, 180 = back, 270 = right side; positive pitch looks from above.429
- "Omhullende animaties" is a one-shot, user-triggered button: height and center Y are set so every clip, every frame at project fps and all 60 views fit, +5% margin per side; the pivot is unchanged. Framing stays fixed afterwards: no per-frame, per-clip or per-layer autozoom. Equipment allowance stays manual. Root motion stays retained, so a travelling clip widens the envelope.