캘리브레이션
안정적인 중립 자세에서 몸의 기준을 만듭니다.
목적과 적용 경로
PoseCalibration은 어깨·골반 중심, 어깨 너비, 몸통 길이, 팔 길이와 다리 기준을 모읍니다. 샘플의 중앙값으로 CalibrationProfile을 만듭니다. 아래 값은 MotionIntentConfiguration의 기존 기본 설정이며, 사용자에게 보장하는 준비 시간은 아닙니다.
상태와 입력
카운트다운 후 안정적인 자세를 기다리고, 조건을 충족하면 샘플을 수집합니다. 누락된 관절이나 과도한 이동, 시간 간격 문제는 다시 대기하게 만듭니다. 어깨, 골반, 팔꿈치, 손목, 무릎, 발목을 읽어 신체 기준을 구성합니다.
| 변수 | 기본값 | 의미 |
|---|---|---|
CalibrationCountdownSeconds | 3 s | 수집 전 카운트다운 |
CalibrationStablePoseSeconds | 0.3 s | 안정 자세 대기 |
CalibrationDurationSeconds | 1.6 s | 수집에 필요한 시간 범위 |
CalibrationMinimumSamples | 20 | 최소 샘플 수 |
CalibrationTotalTimeoutSeconds | 14 s | 전체 시도 제한 |
MinimumJointConfidence | 0.45 | 기존 경로의 관절 신뢰도 기준 |
이동의 정규화
수집 중 몸 중심의 이동은 현재 몸통 길이로 나눕니다.
c_t는 bodyCenter, c_0는 firstBodyCenter, T_t는 torsoLength입니다. 값은 무차원입니다. normalizedMotion > CalibrationMaximumCenterMotion이면 안정 자세 대기로 돌아갑니다. 기본 상한은 0.07입니다. 작은 몸통 또는 잘못된 관절은 수집 전에 사용 가능성 검사로 걸러집니다.
var normalizedMotion =
MotionMath.Distance(bodyCenter, firstBodyCenter) / torsoLength;
if (normalizedMotion > configuration.CalibrationMaximumCenterMotion)
{
ReturnToWaiting("Stand still");
return false;
}
완료와 실패
샘플 수와 수집 시간 조건을 모두 만족해야 합니다. 최종 프로필이 유효하지 않으면 복구 가능한 실패가 됩니다. 수집 용량을 넘는 경우도 명시적으로 실패합니다. 기준 자세를 게임 동작으로 취급하지 않습니다.
이후 경로의 구분
V3는 완료된 보정 관측을 별도 참조의 근거로 보존합니다. 로컬 지지점 증거와 시간 미분의 준비 상태까지 자동으로 완성된 것으로 간주하지 않습니다. Demo Assist도 성공한 캘리브레이션 프레임을 바탕으로 초기화됩니다.