# EP02 — 워크플로우 (Cross DCC 개념)

https://youtu.be/MmlTDULtD38?si=i3BDftkFo79UBoJA

## 1. Cross DCC란?

**어떤 DCC에서도 같은 방식으로** 스킨 웨이트를 편집하는 **독립 .exe 전문 툴**.

**왜 플러그인이 아닌가?**
- DCC는 올인원이라 **무거움** — 스키닝 전용 UI·알고리즘 넣기 어려움.
- **독립 프로세스:** 안정성 향상, 툴 전용 기능 확장 용이.
- **레이어 스키닝**은 Maya 등에서 검증됐으나 Max/Blender 장벽 → SLS가 공통 솔루션.

---

## 2. 핵심 플로우

```
DCC  ── Pick (Pull) ──►  SkinLayer Studio  ── Apply to Skin (Push) ──►  DCC
         TCP Connector          .sls SSOT
```

| 단계 | 용어 | 내용 |
|------|------|------|
| 가져오기 | **Pick** | 메시·본·웨이트·(선택) BoneAniCache |
| 편집 | Layers, Brush… | LayerStack, **File → Save** (`.sls`) |
| 보내기 | **`> Apply to Skin`** | DCC Skin에 반영 |

---

## 3. 작업 환경

- **듀얼 모니터:** 좌 DCC · 우 SLS.
- **Pick/Re-Pick·Push 할 때만 DCC 연결** — 편집 중에는 SLS만으로 가능.

---

## 4. Skin Archive (멀티 메시)

- Pick마다 슬롯이 **Skin Archive**에 누적.
- **Skin Desk** = visible 작업 메시만.
- **Get All from DCC** = 일괄 Pick (ep09 참고).

---

## 5. 역할 분담

| DCC | SkinLayer Studio |
|-----|------------------|
| 본 추가·삭제·계층 | 웨이트·레이어·마스크 |
| 리그 수정 후 **Re-Pick** | **Push**로 스킨만 반환 |

**본 SSOT = DCC, 웨이트 SSOT = `.sls`**.

> 리그에 본을 추가·삭제한 뒤에는 DCC에서 작업 → **Re-Pick**이 정석입니다.

---

## 6. 레이어 스택의 의미

- 여러 Layer를 쌓아 편집하지만, DCC로 보낼 때는 **합쳐진 최종 웨이트**가 Push됨.
- 내부는 비파괴 레이어, 외부(DCC)는 **결과 스킨 데이터**만 필요.

---

## 7. 품질 규칙 (엔진 대비)

| 규칙 | 설명 |
|------|------|
| **Influence limit** | PC/콘솔 보통 **8개** 이하 (모바일 **4개** 등) |
| **Normalize** | 버텍스당 웨이트 **합 = 1.0** — 합계가 1이 아니면 메시가 당겨지거나 수축하는 이상 변형 발생 |
| **Undo** | DCC Undo와 **분리** — SLS에서 **Ctrl+Z** / **Ctrl+Shift+Z** 로 SLS 웨이트 조작만 되돌림 |

---

## 8. 연결 문제 · 백업

| 우려 | 대응 |
|------|------|
| 연결 끊김 · DCC 버전 업데이트 | 지원팀 문의 · 커넥터 재설치 |
| 방화벽 | localhost TCP 예외 |
| 최악의 경우 | **Tools → Export Weights (.json)** → DCC 적용 |

**일상 백업:** **File → Save** — `.sls`가 슬롯·레이어·웨이트 **정본**.

---

## 9. DCC · 엔진 로드맵

| DCC | 상태 |
|-----|------|
| 3ds Max | 상용 |
| Maya / Blender | 순차 제공 예정 |
| 게임 엔진 직접 전송 | 검토 중 |