Record the Quaternius pose-sync blockers (GLB skinning + non-180° rest pose formula)
This commit is contained in:
1 parent
7baa2c4f54
commit
5508f5510f
2 files changed
+13
-6
No files matched your search
@@ -127,6 +127,11 @@ canonical implemented-features list in `docs/development-status.md`.
|
||||
out of a portrait frame (park the rest of the crowd away instead).
|
||||
- Blender: `bisect_plane` and thin bevels leave zero-area triangles (Godot "non-finite normal in
|
||||
LOD generation"); `_clean()` + a weld after bisect fixes them and the audit rejects them.
|
||||
- Quaternius arm-down bake: pose-rotate `UpperArm.L/R` −90° local X → apply Armature modifier →
|
||||
`armature_apply` → re-add modifier bakes the rest, but `export_apply=True` writes wrong inverse
|
||||
bind matrices (Godot renders A-pose even though the rest is arm-down). The runtime `_pose_bone`
|
||||
`rest * Quaternion(axis, angle)` only cancels when `rest² = identity` (old rig's 180° rest); the
|
||||
Quaternius ~76° rest does not, so the pose formula must be re-derived for a non-180° rest.
|
||||
- Image models have per-model size floors/caps (Seedream needs 1920+; `GEN_SIZE=2048`, do not
|
||||
lower; gpt-5-image-mini caps lower). `generate_image` applies model-specific sizing; concept
|
||||
generation defaults to `--request-size 1536`.
|
||||
|
||||
@@ -82,12 +82,14 @@ baseline sheet.
|
||||
ADR) indicated; do not rebuild on the warped base.**
|
||||
- [-] Skin the Quaternius mesh and verify Idle, Walk, seated and arm-down poses. The old
|
||||
MPFB/arm-retarget warps are not a reference; judge the Quaternius result directly.
|
||||
(Direction set: ADR-0018 option 2 — 62-joint runtime. `NpcAvatar` now maps the Quaternius
|
||||
names with old-rig fallback and derives proxy pivots from `get_bone_global_rest`
|
||||
(commit `0cd12af`). First end-to-end capture loads and runs, but the vision judge reads
|
||||
the arms/legs as misaligned — the `_sync_skeleton` swing axis (`Vector3.RIGHT`) is
|
||||
calibrated for the old rig, not the Quaternius bone roll. Next: determine the per-bone
|
||||
swing axis for UpperArm/LowerArm/UpperLeg/LowerLeg from the Quaternius rest basis.)
|
||||
(Direction set: ADR-0018 option 2 — 62-joint runtime. `NpcAvatar` maps the Quaternius
|
||||
names + derives proxy pivots from `get_bone_global_rest` (commits `271f10a`/`0cd12af`).
|
||||
Two blockers remain: (1) the arm-down GLB's **skinning** renders A-pose in Godot even
|
||||
though its rest is arm-down — the `armature_apply` + `export_apply=True` bake writes
|
||||
wrong inverse bind matrices, so fix the Blender export first; (2) `_pose_bone` uses
|
||||
`rest * Quaternion(axis, angle)`, which only cancels when `rest² = identity` (the old rig's
|
||||
180° rest); the Quaternius ~76° rest does not, so the pose formula must be derived from the
|
||||
actual `set_bone_pose_rotation` semantics for a non-180° rest.)
|
||||
- [ ] Retarget Idle and Walk from the 24 Quaternius clips to the contract rig; discard
|
||||
combat, gun and sword clips. Verify looping, foot contact and frame rate in Godot.
|
||||
(Direction set: no retarget needed — the clips are authored for the 62-joint rig; only
|
||||
|
||||
Reference in new issue
Block a user