# F17 — DCC Connector（Max / Blender）

> SkinLayer Studio **1.3.x Standalone** UI reference.  
> Practice: EP00–EP12 · Features: **F01–F17** (order 50+).

> **本功能：** DCC 内运行的 **Connector（接收端）** 用法。  
> SLS → DCC **Push** 见 [EP12](/guide/skin-layer-studio/ep12-push-to-dcc?lang=zh)。安装见 [EP01](/guide/skin-layer-studio/ep01-install-connect?lang=zh)。  
> JSON Export/Import 菜单见 [F12](/guide/skin-layer-studio/ui-export-json?lang=zh)。

## 1. Push vs Connector

| 路径 | 位置 | 作用 |
|------|--------|------|
| **Apply to Skin (Push)** | SLS 本体 | **日常主路径** — 将图层权重直接应用到 DCC Skin |
| **Connector + JSON Import** | DCC 内 | **备份 / 绕行** — Push 失败或不完整时用 JSON 恢复 |

Connector 驻留在 DCC 中，通过 **IPC** 与 SLS 通信。`IPC: Listening` 表示就绪；`IPC: Offline` 时请检查 SLS / 端口。

通过 SLS **Tools → Install Connector...**（[EP01](/guide/skin-layer-studio/ep01-install-connect?lang=zh)）安装后，需 **完全重启 DCC**。

---

## 2. For 3ds Max

### 2-1. 打开 Connector

**方法 A — OS Tools 菜单（推荐）**  
Max **2025+**：**OS Tools → os_skinLayer_studio_connector**。

![OS Tools 菜单](max_os_tools_menu.png)

**方法 B — 工具栏按钮**  
菜单没有或想用按钮时：

1. **Customize → Customize User Interface…**
2. **Toolbars** 选项卡 → Category **`OtakuSolutions_Tools`**
3. 将 Action **`os_skinLayer_studio_connector`** **拖到**工具栏

![Customize User Interface — Toolbars](max_customize_toolbar.png)

![工具栏上的 Connector 按钮](max_toolbar_button.png)

### 2-2. Connector 窗口（User / Management）

![skinLayer_connector 窗口](max_connector_window.png)

| 区域 | 按钮 | 说明 |
|------|------|------|
| **User** | **Import Weights (\*.json)** | 进入 JSON 备份流程（见 2-3） |
| **User** | **About** | 版本 / 产品信息 |
| **User** | **Help** | 帮助 / 文档 |
| **Management** | **SLS Debug Report** | 生成支持用调试报告 |
| **Management** | **Open Log Folder** | 打开日志文件夹 |
| **Management** | **Open Connector Folder** | 打开 Connector 安装文件夹 |

### 2-3. JSON Import = 备份方案（Max）

日常工作用 [EP12 Push](/guide/skin-layer-studio/ep12-push-to-dcc?lang=zh)。当 Push 失败或部分网格遗漏时：

1. 在 SLS 用 [F12 Export Weights](/guide/skin-layer-studio/ui-export-json?lang=zh) 导出 `.json`。
2. Max Connector → **Import Weights (\*.json)**。
3. **Add weight files (.json)** 添加文件。
4. 检查 **Target Mesh** 与 **Status=OK**（仅 `Status=OK` 会应用）。
5. **Skin Apply**。

![Import Weights (JSON) — Skin Apply](max_import_weights_json.png)

| UI | 说明 |
|----|------|
| **Add weight files (.json)** | 添加 JSON |
| **Remove selected** | 移除所选行 |
| **Skin Apply** | 将 OK 行应用到 Skin |
| **Close** | 关闭 |

> 若 Target Mesh 为空或 Status 不是 OK：请确认场景中是否有同名网格，以及蒙皮 / 拓扑 / 顶点数量是否与 JSON 一致。

---

## 3. For Blender

### 3-1. 打开 SLS 选项卡

在视口按 **N** → 侧栏 **`SLS`** 选项卡。

![Blender N 面板 — SLS 选项卡](blender_sls_panel.png)

确认顶部 **SkinLayer Studio — Connector** 与 `IPC: Listening (port …)`（端口因环境而异）。

### 3-2. 面板结构（User / Management）

与 Max **职责相同**，UI 为 N 面板形式。

| 区域 | 项目 | 说明 |
|------|------|------|
| **User** | **Import Weights (\*.json)** 列表 | 已加载 JSON · Target · Status |
| **User** | **+ Add JSON…** | 添加权重 JSON |
| **User** | **清除** | 清空列表 |
| **User** | **Skin Limit** | 影响骨骼数限制（常用 `0` ≈ 不限制） |
| **User** | **Apply to Scene** | 将 Status=OK 项应用到场景 |
| **User** | **About** / **Help** | 信息 · 帮助 |
| **Management** | **SLS Debug Report** | 支持报告 |
| **Management** | **Open Log Folder** | 日志文件夹 |
| **Management** | **Open Connector Folder** | Connector 文件夹 |

### 3-3. JSON Import = 备份方案（Blender）

1. 在 SLS 导出 JSON（[F12](/guide/skin-layer-studio/ui-export-json?lang=zh)）。
2. Blender **SLS** 选项卡 → **+ Add JSON…**。
3. 确认各网格为 **OK**。
4. **Apply to Scene**。

主路径仍是 SLS **Apply to Skin (Push)**（[EP12](/guide/skin-layer-studio/ep12-push-to-dcc?lang=zh)）。

---

## 4. 故障排查

| 现象 | 检查 |
|------|------|
| `IPC: Offline` | SLS 是否运行 · 重装/重启 Connector · 防火墙 |
| Push 正常但 JSON 失败 | 网格名一致 · Status=OK · 顶点数量 |
| 找不到菜单 / 选项卡 | [EP01](/guide/skin-layer-studio/ep01-install-connect?lang=zh) 安装后 **完全退出并重启** DCC |
| 需要支持 | 附上 **SLS Debug Report** 与 **Open Log Folder** 日志 |

---

## 5. 相关文档

- [EP01 — 安装与DCC连接](/guide/skin-layer-studio/ep01-install-connect?lang=zh)
- [EP12 — Push to DCC](/guide/skin-layer-studio/ep12-push-to-dcc?lang=zh)
- [F12 — Export / Import Weights (.json)](/guide/skin-layer-studio/ui-export-json?lang=zh)