춤 동작 데이터를 내가 만든 3D 캐릭터에 옮겨 입혔다.
재생을 눌렀는데 뭔가 이상했다.
춤은 추는데 발이 바닥에서 스르륵 미끄러진다.
얼음판 위에서 추는 것처럼.
업계에서 풋스케이트라고 부르는 고질병이다.
감으로 때려잡기 전에 재봤다
처음엔 원인을 엉뚱한 데서 찾았다.
중력 설정이 빠졌나. 동작 데이터가 불량인가.
일단 재보기로 했다.
원본 동작에서는 발이 디딘 자리에 그대로 붙어 있었다. 제자리 춤이 맞다.
근데 내 캐릭터에서 발 위치를 프레임별로 찍어보니
좌우로 최대 0.55m를 미끄러지고 있었다.
55센티면 한 발짝이 통째로 밀리는 거리다.
중력도, 데이터 불량도 아니었다.
체형이 다른 캐릭터로 동작을 옮기는 과정에서
발-바닥 접촉이 보존되지 않는 게 원인이었다.
자작 수식의 참사
여기까지는 좋았다. 문제는 해결 시도.
발을 고정하는 계산(IK)을 수식부터 직접 구현했다.
결과는 참사.
다리가 이상한 방향으로 폭주하면서
미끄러질 때보다 더 망가졌다.
수식은 맞는 것 같은데 실제 뼈대에 얹으면 자세가 무너졌다.
몇 시간을 그 수식과 씨름했다.
정답은 내장 기능이었다
3D 도구에 이미 내장된, 수십 년 검증된 IK 기능이 있었다.
종아리에 2본짜리 IK 체인을 걸고,
발이 닿을 자리에 고정점을 만들어 붙인 다음 결과를 굽는(bake) 방식.
이걸로 미끄러짐을 다시 실측하니 0.0m.
자작 수식 몇 시간 대신, 내장 기능 설정이면 되는 일이었다.
바퀴를 재발명하고 싶은 유혹은
항상 “내 상황은 특수하니까”라는 얼굴로 온다.
십중팔구 특수하지 않다.
직접 구현은 내장 기능이 정말 없다는 걸 확인한 뒤의 최후 수단.
그리고 고쳤으면 재실측. 0.55가 0.0이 된 걸 숫자로 확인해야 끝이다.
📋 재발 방지 규칙 (동작 리타겟·시뮬레이션 계열 복붙)
- ☐ 원인은 감이 아니라 실측으로 — 프레임별 위치를 찍어 미끄럼 거리를 숫자로
- ☐ 원본에서 발이 고정(planted)인지 먼저 확인 — 원본부터 미끄러지면 다른 문제
- ☐ 자작 수식 전에 내장 IK부터 — 직접 구현은 최후 수단
- ☐ 고정은 IK 체인 + 고정점 + 베이크 조합으로
- ☐ 수정 후 같은 방법으로 재실측 — 0이 나와야 종료 (내 경우 0.55m → 0.0m)