# Ep.3 — Replace (핵심 기능)와 Namespace 다중 캐릭터 관리

https://youtu.be/wkxaUCW9DQY?si=7g6yB1Nn9do

> **한 줄 요약**: 애니메이션이 잡힌 리그를 새로운 리그로 바꿀 때, 기존 작업한 **Biped, Bone 애니메이션, Constraint 관계를 완벽히 유지**하며 교체(Replace)합니다. 또한 동일 캐릭터가 여러 명 등장할 때 충돌하지 않도록 **Namespace 접두사**를 부여하고 제어합니다.

---

## 1. Fast-Ref의 핵심 무기: Replace 워크플로

대부분의 Max 애니메이터들이 가장 좌절하는 순간은 "리깅 데이터가 수정되었으니 새로 작업해야 한다"는 피드백을 받을 때입니다. 뼈대 이름만 바뀌어도 기존에 잡았던 키가 다 깨져나가 처음부터 다시 작업해야 하는 경우가 허다하기 때문입니다.

Fast-Ref의 **Replace** 기능은 이 문제를 완벽하게 우회합니다. 리그 소스 파일 경로를 새로운 버전의 파일로 변경해 주기만 하면, 아래의 핵심 애니메이션 시스템을 자동으로 백업했다가 새 리그에 정밀하게 이식합니다.

### 🛡️ 보존을 보장하는 3대 애니메이션 핵심 자산
1. **Biped 애니메이션**: 골반 위치, IK 정보, 다리/팔의 모션을 유실 없이 완벽히 살립니다.
2. **Bone 애니메이션**: 바이페드가 아닌 일반 Max Bone으로 세팅된 소품이나 망토, 머리카락 애니메이션 역시 백업(.xaf 이식)하여 그대로 가져옵니다.
3. **Constraint (제한자) 관계**: 머리 위에 붙인 장신구나 손에 쥔 무기 등 캐릭터에 설정된 내/외부의 무수한 Constraint 연결 구조를 수동으로 다시 타겟팅할 필요 없이 정확한 씬 전역 맵으로 보존합니다.

이를 통해 수동 복사에 걸리던 작업 시간을 최소 1/10 수준으로 단축하며, 단순 코스튬 교체나 유사 골격을 지닌 다른 캐릭터로의 애니메이션 트랜스퍼 작업까지도 유연하게 처리할 수 있습니다.

---

## 2. Namespace 관리 법칙 (다중 캐릭터 씬의 안전장치)

한 씬 안에 Mable 캐릭터를 2~3개 복사해서 동시에 배치하면 어떻게 될까요?
3ds Max는 기본적으로 동일한 이름의 오브젝트들이 씬에 들어올 경우 이름 뒤에 숫자를 자동으로 붙여 고유하게 바꾸어 버립니다 (`Mable_Bone_01`, `Mable_Bone_02` 등). 이로 인해 리깅 구조와 컨트롤러 링크가 얽혀 씬이 완전히 박살나기 십상입니다.

Fast-Ref는 이를 마야의 표준 방식인 **접두사(Namespace) 분리 방식**으로 명쾌하게 예방합니다.

- Mable_A 캐릭터는 `Mable_A:root`로, Mable_B 캐릭터는 `Mable_B:root`처럼 노드 앞에 고유한 네임스페이스가 깔끔하게 붙습니다.
- **Namespace 변경**: 테이블 뷰에서 슬롯의 네임스페이스를 원클릭으로 쉽게 수정할 수 있습니다.
- **Activate Space (공간 활성화)**: 다중 캐릭터 씬에서 내가 현재 애니메이션을 잡을 특정 캐릭터의 네임스페이스를 즉시 '액티브' 상태로 고정시킵니다. 이를 통해 애니메이터가 캐릭터가 엉켜 실수로 옆에 있는 다른 캐릭터를 건드려 망가뜨리는 대참사를 사전에 원천 차단해 줍니다.

---

## 3. 다른 외부 툴과의 이름 호환에 관하여

회사에서 자체 개발해 쓰던 전용 익스포터나 특정 스크립트는 접두사인 콜론(`:`)이 붙은 네임스페이스 노드 형식을 아예 인식하지 못할 수 있습니다.
그럴 경우 Namespace 접두사를 꺼서 원래의 평면적인 이름으로 씬에 뿌려주어야 하는데, **네임스페이스를 끈 채로 무작위 Replace를 하게 되면 충돌로 인해 옆에 있는 멀티 캐릭터가 통째로 증발하거나 얽히는 버그**가 생길 수 있습니다.

이러한 특수 파이프라인의 호환 고민을 해결해 주는 지능형 도우미가 바로 **EP04 (Unpack)**와 **EP06 (Smart Switch)** 입니다.