# naming-convention-guide

리깅과 애니메이션 파이프라인에서 일관된 네이밍 규칙은 단순한 약속을 넘어, 프로젝트의 안정성을 결정짓는 핵심 요소입니다.

## 1. 네이밍 규칙의 중요성

자동화 시스템과 효율적인 협업을 위해 프로젝트별 규칙 준수는 필수적입니다. 예를 들어, 엔진팀에서 `Root` 본을 기준으로 시스템을 구축했는데 데이터가 `root`나 `world`처럼 임의의 이름으로 들어오게 되면, 전체 파이프라인에 큰 차질이 생길 수 있습니다.

## 2. 네이밍의 기본 구성 요소

- **Prefix (접두어):** 이름 앞에 붙여 오브젝트의 성격(Control, Skin 등)을 규정합니다.
- **Suffix (접미어):** 이름 뒤에 붙여 방향(L, R)이나 상태를 표시합니다.

## 3. 주요 네이밍 용법 (Naming Case)

프로젝트의 성격에 따라 적절한 용법을 선택하여 사용합니다.

- **Pascal Case:** `RootNode` (각 단어의 첫 글자를 대문자로 표기)
- **Snake Case:** `root_node` (단어 사이를 언더바`_`로 연결)
- **Camel Case:** `rootNode` (첫 단어는 소문자, 이후 단어 첫 글자 대문자)

## 4. 3ds Max Biped 구조의 이해와 분석

3ds Max의 표준인 Biped(`Bip001 L Foot`)를 유심히 살펴보면, 우리는 중요한 규칙을 발견할 수 있습니다.

> **"아하! 3ds Max에서는 기본적으로 Pascal Case를 기반으로 하고, 단어를 나눌 때 공백(" ")을 사용하고 있구나!"**

숙련된 작업자라면 기존 데이터를 보고 이처럼 **{타입} {방향} {부위}** 규칙을 유추해낼 수 있어야 합니다. 새로운 프로젝트에 참여하더라도 이러한 흐름을 존중하여 작업하는 유연함이 필요합니다.

## 5. 실무 권장 사항: 공백 지양 및 언더바(`_`) 사용

기존 Biped 데이터에는 공백(Space)이 포함된 경우가 많지만, 현대적인 파이프라인에서는 **언더바(`_`)** 사용을 강력히 권장합니다.

- **원인:** 공백은 Maya와의 호환성 문제, 엔진 이관 시 특수문자 치환 오류 등으로 변환되거나, 스크립트 실행 시 구문 에러를 유발하는 주요 원인이 됩니다.
- **해결책:** 기존 Biped 본의 이름은 유지하되, 추가적인 셋업(Control 등)에는 `Ctrl_L_Prop1`과 같이 명확하게 언더바를 사용해 주세요.

---

## 💡 결론: 3ds Max 리깅 네이밍의 정석

3ds Max 리깅 환경에서는 가장 많이 쓰이는 **Biped를 베이스**로 삼으시면 됩니다.

1. **기본 문법:** Pascal Case를 기반으로 하되, 단어 구분은 오류 방지를 위해 공백 대신 **언더바(`_`)**를 사용합니다.
2. **Biped 본:** 기존 Biped 시스템의 본 이름은 표준이므로 그대로 유지합니다.
3. **확장 노드:** 추가되는 컨트롤러나 보조 본은 Biped의 부위 명칭과 통일감을 주는 것이 좋습니다.

---

## 📌 자주 쓰이는 네이밍 리스트

팀 내에서 참고하실 수 있도록 실무에서 자주 활용되는 명칭들을 정리해 드릴게요.

### **Prefix (타입 리스트)**

- **`Ctrl_`**: 애니메이터가 실제로 키를 잡는 컨트롤러 요소
- **`Off_`**: 컨트롤러의 상위 Offset 그룹 (수정 및 관리용)
- **`Skin_`**: 메시(Mesh)에 스킨 노드로 할당되는 실제 본(Bone)들
- **`Pt_`**: Points, 주로 리깅 시스템 내에서 활용되는 보조 노드

### **Middle (방향 및 위치)**

- **`L` / `R`**: 왼쪽(Left) / 오른쪽(Right)
- **`C` / `M`**: 중앙(Center/Middle) - 보통은 생략 가능합니다.

### **Suffix (부위 명칭)**

부위 이름은 가급적 **Biped의 명칭과 통일**하는 것이 가장 좋습니다.

- **추천 예시:** `Ctrl_L_Calf` (O) / `Ctrl_L_Knee` (X)
- **이유:** 무릎 부위라도 Biped의 실제 본 이름이 `Bip001 L Calf`라면, 혼선을 줄이기 위해 `Calf` 기반으로 이름을 맞추는 것이 효율적입니다.
- **주요 명칭:** `Thigh`, `Calf`, `Foot`, `Spine`, `Neck`, `Clavicle` 등
@@