fix(animation): preserve head tracking in Full animations — head never enabled as free bone

This commit is contained in:
NotEvil
2026-04-17 02:52:29 +02:00
parent 229fc66340
commit 3d57d83a5b

View File

@@ -605,11 +605,15 @@ public final class GltfPoseConverter {
} else if ( } else if (
isFullBodyAnimation && isFullBodyAnimation &&
enabledParts.contains(partName) && enabledParts.contains(partName) &&
partsWithKeyframes.contains(partName) partsWithKeyframes.contains(partName) &&
!"head".equals(partName)
) { ) {
// Full-body animation: free part WITH keyframes — enable. // Full-body animation: free part WITH keyframes — enable.
// The "Full" prefix is the artist's explicit opt-in to animate // The "Full" prefix is the artist's explicit opt-in to animate
// bones outside their declared regions. // bones outside their declared regions.
// EXCEPTION: head is never enabled as a free bone — vanilla head
// tracking (mouse look) is always preserved unless the item
// explicitly owns a head region (HEAD, EYES, EARS, MOUTH).
part.fullyEnablePart(false); part.fullyEnablePart(false);
} else { } else {
// Non-Full animation, other item's part, or free part without keyframes. // Non-Full animation, other item's part, or free part without keyframes.