# naming-convention-guide

リギングとアニメーションパイプラインにおける一貫したネーミング規則は、単なる約束事を超え、プロジェクトの安定性を決定する重要な要素です。

## 1. ネーミングルールの重要性

自動化システムと効率的なコラボレーションのために、プロジェクトごとのルール遵守は必須です。たとえば、エンジンチームが`Root`ボーンを基準にシステムを構築しているのに、データが`root`や`world`のような任意の名前で送られてくると、パイプライン全体に大きな支障をきたす可能性があります。

## 2. ネーミングの基本構成要素

- **プレフィックス（接頭辞）：** 名前の前に付けて、オブジェクトの性質（Control、Skinなど）を定義します。
- **サフィックス（接尾辞）：** 名前の後に付けて、方向（L、R）や状態を示します。

## 3. 主要なネーミングケース

プロジェクトの性質に応じて適切な表記法を選択します。

- **パスカルケース：** `RootNode`（各単語の最初の文字を大文字にする）
- **スネークケース：** `root_node`（単語の間をアンダースコア`_`でつなぐ）
- **キャメルケース：** `rootNode`（最初の単語は小文字、以降の単語の頭文字は大文字）

## 4. 3ds Max Biped構造の理解と分析

3ds Maxの標準であるBiped（`Bip001 L Foot`）をよく見てみると、重要なルールを発見できます。

> **「なるほど！3ds Maxでは基本的にパスカルケースを採用し、単語の区切りにスペース（" "）を使っているんだ！」**

熟練した作業者であれば、既存のデータを見て **{タイプ} {方向} {部位}** というルールを読み取れるはずです。新しいプロジェクトに参加した際も、この流れを尊重して作業する柔軟性が求められます。

## 5. 実務上の推奨事項：スペース禁止・アンダースコア（`_`）の使用

既存のBipedデータにはスペースが含まれている場合が多いですが、現代的なパイプラインでは**アンダースコア（`_`）**の使用を強く推奨します。

- **理由：** スペースはMayaとの互換性問題、エンジン移行時の特殊文字置換エラーなどの原因となり、スクリプト実行時に構文エラーを引き起こす主な要因にもなります。
- **解決策：** 既存のBipedボーン名はそのまま維持し、追加のセットアップ（Controlなど）には`Ctrl_L_Prop1`のようにアンダースコアを明確に使用してください。

---

## 💡 結論：3ds Max リギングネーミングの正石

3ds Maxのリギング環境では、最も広く使われている**Bipedをベース**にするのが最善です。

1. **基本文法：** パスカルケースを基本とし、単語の区切りはエラー防止のためにスペースではなく**アンダースコア（`_`）**を使用します。
2. **Bipedボーン：** 既存Bipedシステムのボーン名は標準なので、そのまま維持します。
3. **拡張ノード：** 追加するコントローラーや補助ボーンは、Bipedの部位名称と統一感を持たせるのが理想的です。

---

## 📌 よく使われるネーミングリスト

チーム内で参考にできるよう、実務でよく使われる名称をまとめました。

### **プレフィックス（タイプリスト）**

- **`Ctrl_`**: アニメーターが実際にキーを打つコントローラー要素
- **`Off_`**: コントローラーの親となるオフセットグループ（修正・管理用）
- **`Skin_`**: メッシュにスキンノードとして割り当てられる実際のボーン
- **`Pt_`**: ポイント、主にリギングシステム内で活用される補助ノード

### **ミドル（方向と位置）**

- **`L` / `R`**: 左（Left）/ 右（Right）
- **`C` / `M`**: 中央（Center/Middle）— 通常は省略可能です。

### **サフィックス（部位名称）**

部位名はできる限り**Bipedの名称と統一する**ことが最善です。

- **推奨例：** `Ctrl_L_Calf`（○）/ `Ctrl_L_Knee`（×）
- **理由：** 膝の部位であっても、Bipedの実際のボーン名が`Bip001 L Calf`であれば、混乱を避けるために`Calf`ベースで名前を合わせるのが効率的です。
- **主要名称：** `Thigh`、`Calf`、`Foot`、`Spine`、`Neck`、`Clavicle`など
@@