오른손 펀치
기존 엔진의 팔 확장과 시간적 충격 증거를 문서화합니다.
목적과 현재 상태
기존 MotionIntentEngine.EvaluatePunches에 구현되어 있습니다. 해당 팔의 빠른 수평 확장을 트리거 이벤트로 내보냅니다. 현재 Runner에는 펀치 명령 매핑이 없습니다.
입력과 필요한 관절
코어 몸통 관절, 해당 쪽 어깨·팔꿈치·손목, 유효한 캘리브레이션과 단조 캡처 시각이 필요합니다. 좌우 팔의 가용성을 독립적으로 처리합니다. 팔의 증거가 사라지면 해당 펀치의 준비 플래그와 확장 충격 창을 해제합니다.
특징과 정규화
RightWristDistanceFromShoulder는 손목과 어깨 사이 거리를 보정한 상완 길이로 나눈 비율입니다. 손목 거리 변화 속도와 팔꿈치 확장 각속도, 수평 우세 조건을 함께 사용합니다. 각도는 도, 각속도는 도/초, 거리 변화 속도는 상완 길이/초입니다.
기본 임계값
| 변수 | 값 |
|---|---|
PunchWristDistanceRatio | 1.45 |
PunchElbowAngle | 150° |
PunchWristVelocity | 1.25 |
PunchExtensionVelocity | 75°/s |
PunchExtensionEvidenceWindowSeconds | 0.18 s |
PunchRetractionDistanceRatio | 1.05 |
PunchRetractionElbowAngle | 142° |
이 숫자는 기존 설정값이며 펀치 정확도나 처리 지연 측정값이 아닙니다.
시간 규칙과 재준비
팔꿈치 확장 속도가 임계값 이상이면 시간 제한이 있는 충격 증거를 유지합니다. 준비 상태, 거리, 각도, 손목 속도, 충격 유효기간과 수평 우세 조건을 모두 만족하면 Triggered를 한 번 내보냅니다. 이후 팔을 충분히 당기거나 팔꿈치를 굽혀야 다시 준비합니다. 단순한 고정 쿨다운으로 대체하지 않습니다.
신뢰도와 오탐 위험
측면으로 팔을 뻗기, 화면 평면 밖 동작, 손목 추적 끊김, 블록 자세와의 충돌을 고려해야 합니다. 이 인식기는 펀치의 힘 또는 실제 충돌을 측정하지 않습니다.
검증과 알려진 한계
MotionIntentEngineTests와 기존 엔진 조건을 확인했습니다. 현재 Runner 게임 기능 또는 사람의 검증 완료로 표시하지 않습니다. 상체 관측 연구가 존재해도 이 펀치 구현의 검증 결과로 바꿔 쓰지 않습니다.