Fast Ref
/
FAQ
[FAQ] 컨스트레인트 복원이 제대로 안되요.
1. 상황 (Scenario)
- 현상: 애니메이션 작업 중 Fast-Ref로 설정한 Link Constraint가 리로드(Reload) 후에 사라지거나, 데이터가 제대로 복원되지 않는 현상 발생.
- 사용자 경험: 복원이 안 되어 수동으로 Point Constraint 등을 활용해 다시 작업해야 하는 불편함 초래.
2. Fast-Ref의 컨스트레인트 복원 알고리즘 안내 (Logic)
Fast-Ref는 리로드 시 데이터 무결성을 위해 아래와 같은 **'비교 알고리즘'**에 따라 복원 여부를 결정합니다.

| 구분 | [Skip] 리깅 기본 상태 | [Restore] Fast-Ref 커스텀 작업 |
| 판단 기준 | 리깅(Rig) 및 애니(Ani) 파일에 이미 동일하게 Link가 있는 경우 | 리깅(Rig)에는 없으나, 애니(Ani) 파일에서 컨스트레인트가 존재하는 경우 |
| 알고리즘 동작 | “원본과 동일함”, “원본 리깅 우선”으로 판단하여 무시 | "사용자 데이터"로 판단하여 별도 기록 및 복원 |
| 설계 의도 | 불필요한 컨스트레인트 처리를 생략함으로서 최적화 | 애니 및 컨스트레인트 추가 사항이 애니에 자동 반영되도록 함 |
- [Skip] 리깅 원본과 동일한 경우:
- 리깅(Rig) 파일 : 자체에 이미 컨스트레인트(포인트, 오리엔트,링크 등)이 걸려 있고,
- 애니(Ani) 파일 : 에서도 컨스트레인트(포인트, 오리엔트,링크 등)이 걸려 있다면
⇒ 이는 "리깅의 기본 상태"로 판단하여 복원 리스트에서 제외합니다. (리깅 수정 사항이 자연스럽게 반영되도록 하기 위함)
- [Restore] Fast-Ref로 생성된 새로운 변화:
- 리깅 파일에는 없지만, 작업자가 Fast-Ref 기능을 통해 추가한 컨스트레인트 는 "사용자의 작업한 애니메이션 데이터"로 인식하여 별도 레이어에 기록하고 교체 및 리로드 시 참고하고 복원합니다.
3. 문제 원인 (Root Cause)
윗 애니메이터님이 겪으신 이슈는 알고리즘의 **'판단 로직'**에서 발생한 예외 상황 때문입니다.
- 데이터 오인식: 리깅 파일에도 / 애니 파일에도 이미 컨스트레인트가 걸려 있는 상태에서 작업을 하니, 툴이 "이건 사용자가 새로 만든 게 아니라 원래 리깅에 있던 거야"라고 착각하여 **복원 대상에서 누락(Skip)**시킨 것입니다.
4. 해결 방법 (Solution)
사용자의 의도를 100% 반영하기 위해 알고리즘을 다음과 같이 업데이트합니다.
A안: 리깅 파일의 클린업 (최적화)
알고리즘이 원본과 작업본을 비교할 때 혼동을 주지 않도록 리깅 파일을 깨끗하게 유지하는 방법입니다.
- 설명: 리깅 원본 파일에는 무기(Prop) 같은 요소에 미리 Link Constraint를 걸어두지 마세요.
- 이유: 원본에 이미 링크가 있으면, Fast-Ref는 애니메이션 파일에서 사용자가 새로 설정한 링크를 **"원래부터 있던 것"**으로 착각하여 복원 대상에서 제외(Skip)할 수 있기 때문입니다.
- 권장: 무기는 그냥 바닥에 놓인 채로(Clean) 두고, 링크 작업은 애니메이터가 애니메이션 씬에서 Fast-Ref를 통해 실행하게 하면 복원이 100% 확실해집니다.
B안: 커스텀 Attr(속성) 또는 드라이브 연결
컨스트레인트 복원 로직 자체를 타지 않도록 시스템 구조를 바꾸는 더 전문적인 리깅 방식입니다.
- 설명: 컨스트레인트를 복원하는 대신, 컨트롤러의 **커스텀 Attr(예: Switch 0/1)**이나 특정 **드라이브(이동값 X 등)**를 통해 연결을 제어하세요.
- 이유: 이 방식은 애니메이션 씬에서 컨스트레인트를 새로 생성하는 것이 아니므로, 복원해야 할 요소 자체가 생기지 않아 데이터 유실 위험이 원천 차단됩니다.
- 참고: Maya 등 메이저 스튜디오의 기본 리깅에서도 권장되는 방식이나, 이를 구현하기 위해서는 팀 내에 전담 **리거(Rigging TD)**의 협업이 필요합니다.