- OptitrackStreamingClient.FillBoneSnapshot: L/R 쌍 본은 위치 유지 + 회전 YZ반사 후 스왑, 중심 본(Hip/척추 등)은 위치 X반전 + 회전 YZ반사
- OptitrackStreamingClient.GetLatestRigidBodyState: 리짓바디 위치·회전 YZ반사 (기존)
- GetOrBuildMirrorBoneIdMap: SkeletonName_BoneName 접두사 형식 지원
- 마커/TMarkerset 마커/TMarkerset BonePoses 미러 적용
- OptitrackSkeletonAnimator_Mingle: MirrorMode 토글 시 1€ 필터 상태 자동 리셋
- 월드 공간 미러 코드(ApplyWorldSpaceMirror 등) 제거, 데이터 수신 레벨에서 처리
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- FillBoneSnapshot의 스켈레톤 미러 로직 제거
(로컬 좌표 + 좌우 본 교체 방식은 부모 본 좌표계 차이로 꼬임 발생)
- OptitrackSkeletonAnimator_Mingle에 ApplyWorldSpaceMirror() 추가
- 본 데이터 적용 후 월드 공간에서 전체 포즈 캐시 → 미러 적용
- L/R 본은 상대방 월드 포즈로 교체 + YZ 평면 반사
- 대칭 본은 자기 포즈에 YZ 평면 반사 적용
- 로컬 축 컨벤션 독립적 → 어떤 스켈레톤에서도 정확히 동작
- RigidBody 미러는 기존 GetLatestRigidBodyState() 방식 유지
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>