1.5 KiB
1.5 KiB
PS_AI_Agent — Notes pour Claude
Posture System — Diagonal Tilt Bug (à corriger)
Problème
Le tilt diagonal (ear-to-shoulder) est PLUS VISIBLE avec la neck bone chain qu'avec le mono-bone. Le swing-twist decomposition ne suffit pas.
Cause probable
Le swing-twist est fait une seule fois sur le tip bone (head), puis le CleanOffset est extrait via Swing * Inverse(TipBoneRot). Ce CleanOffset est ensuite distribué via Slerp à chaque bone de la chaîne. Mais chaque bone a une orientation locale différente — appliquer le même offset "world-space-like" à des bones avec des axes locaux différents peut réintroduire du tilt.
Piste de fix
Faire le swing-twist PER-BONE : pour chaque bone de la chaîne, composer le FractionalRot avec le bone's own rotation, swing-twist autour du bone's own tilt axis, puis appliquer le swing seulement.
Fichiers concernés
AnimNode_ElevenLabsPosture.cpp— Evaluate_AnyThread, section multi-bone chain- Commit actuel:
8df6967sur main
Config actuelle neck chain (BP_Taro)
neck_01=0.25, neck_02=0.35, head=0.40
Architecture Posture
- ElevenLabsPostureComponent (game thread) : cascade Eyes→Head→Body, produit FQuat + eye curves
- AnimNode_ElevenLabsPosture (anim thread) : applique rotation sur bone(s) + injecte curves
- Pipeline 100% FQuat (pas de round-trip FRotator)
- Thread safety via FCriticalSection
- ARKit eye curves normalisées par range fixe (30°/20°), pas par MaxEye threshold