dcc-bridge 1.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- dcc_bridge-1.0.0/.gitignore +11 -0
- dcc_bridge-1.0.0/PKG-INFO +445 -0
- dcc_bridge-1.0.0/README.md +420 -0
- dcc_bridge-1.0.0/pyproject.toml +60 -0
- dcc_bridge-1.0.0/src/dcc_bridge/__init__.py +22 -0
- dcc_bridge-1.0.0/src/dcc_bridge/__main__.py +10 -0
- dcc_bridge-1.0.0/src/dcc_bridge/adapters/__init__.py +27 -0
- dcc_bridge-1.0.0/src/dcc_bridge/adapters/base.py +126 -0
- dcc_bridge-1.0.0/src/dcc_bridge/adapters/designer.py +99 -0
- dcc_bridge-1.0.0/src/dcc_bridge/adapters/max.py +84 -0
- dcc_bridge-1.0.0/src/dcc_bridge/adapters/maya.py +79 -0
- dcc_bridge-1.0.0/src/dcc_bridge/adapters/painter.py +82 -0
- dcc_bridge-1.0.0/src/dcc_bridge/cli/__init__.py +10 -0
- dcc_bridge-1.0.0/src/dcc_bridge/cli/cleanup.py +114 -0
- dcc_bridge-1.0.0/src/dcc_bridge/cli/main.py +45 -0
- dcc_bridge-1.0.0/src/dcc_bridge/cli/run.py +132 -0
- dcc_bridge-1.0.0/src/dcc_bridge/cli/setup.py +63 -0
- dcc_bridge-1.0.0/src/dcc_bridge/cli/status.py +102 -0
- dcc_bridge-1.0.0/src/dcc_bridge/cli/utils.py +63 -0
- dcc_bridge-1.0.0/src/dcc_bridge/client.py +196 -0
- dcc_bridge-1.0.0/src/dcc_bridge/dcc_types.py +54 -0
- dcc_bridge-1.0.0/src/dcc_bridge/debug.py +117 -0
- dcc_bridge-1.0.0/src/dcc_bridge/discovery.py +225 -0
- dcc_bridge-1.0.0/src/dcc_bridge/execute.py +190 -0
- dcc_bridge-1.0.0/src/dcc_bridge/protocol.py +155 -0
- dcc_bridge-1.0.0/src/dcc_bridge/reload.py +41 -0
- dcc_bridge-1.0.0/src/dcc_bridge/server.py +407 -0
- dcc_bridge-1.0.0/src/dcc_bridge/setup/__init__.py +8 -0
- dcc_bridge-1.0.0/src/dcc_bridge/setup/base.py +373 -0
- dcc_bridge-1.0.0/src/dcc_bridge/setup/designer.py +113 -0
- dcc_bridge-1.0.0/src/dcc_bridge/setup/max.py +90 -0
- dcc_bridge-1.0.0/src/dcc_bridge/setup/maya.py +140 -0
- dcc_bridge-1.0.0/src/dcc_bridge/setup/painter.py +113 -0
- dcc_bridge-1.0.0/src/dcc_bridge/start.py +214 -0
|
@@ -0,0 +1,445 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: dcc-bridge
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: DCC Python bridge: TCP server, CLI, and VS Code extension core for executing Python in DCC tools like Maya and 3ds Max.
|
|
5
|
+
Project-URL: Homepage, https://github.com/yourusername/dcc-python
|
|
6
|
+
Project-URL: Repository, https://github.com/yourusername/dcc-python
|
|
7
|
+
Author: Jbq
|
|
8
|
+
License: PolyForm-Noncommercial-1.0.0
|
|
9
|
+
Keywords: 3dsmax,cli,dcc,maya,substance-painter,vscode
|
|
10
|
+
Classifier: Development Status :: 4 - Beta
|
|
11
|
+
Classifier: Intended Audience :: Developers
|
|
12
|
+
Classifier: Programming Language :: Python :: 3
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.7
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
20
|
+
Requires-Python: >=3.7
|
|
21
|
+
Requires-Dist: click>=8.1.8
|
|
22
|
+
Provides-Extra: dev
|
|
23
|
+
Requires-Dist: pytest; extra == 'dev'
|
|
24
|
+
Description-Content-Type: text/markdown
|
|
25
|
+
|
|
26
|
+
# dcc-bridge
|
|
27
|
+
|
|
28
|
+
DCC Python 桥接核心包,提供 DCC 端 TCP 服务端、通用 TCP 客户端、`dcc` CLI、DCC 适配器、代码执行、模块热重载和调试集成。
|
|
29
|
+
|
|
30
|
+
## 安装
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
pip install dcc-bridge
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
安装后自动获得 `dcc` 全局命令。
|
|
37
|
+
|
|
38
|
+
开发模式:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
uv tool install -e packages/dcc-bridge
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## 快速开始
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
# 1. 注入自启动脚本(以 3ds Max 为例)
|
|
48
|
+
dcc setup 3dsmax
|
|
49
|
+
|
|
50
|
+
# 2. 打开 DCC,服务自动启动
|
|
51
|
+
|
|
52
|
+
# 3. 验证连接
|
|
53
|
+
dcc status
|
|
54
|
+
dcc ping
|
|
55
|
+
|
|
56
|
+
# 4. 执行代码
|
|
57
|
+
dcc run code "print('hello from DCC')"
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## `dcc` 命令详细用法
|
|
61
|
+
|
|
62
|
+
### 命令总览
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
dcc [--version] {run, setup, unsetup, status, ping} ...
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
| 子命令 | 功能 |
|
|
69
|
+
|---|---|
|
|
70
|
+
| `run` | 在 DCC 中执行 Python 代码或文件 |
|
|
71
|
+
| `setup` | 注入 DCC 自启动脚本(配置一次,永久生效) |
|
|
72
|
+
| `unsetup` | 移除 DCC 自启动脚本 |
|
|
73
|
+
| `status` | 查看桥接状态(实例列表 + 可选 ping) |
|
|
74
|
+
| `ping` | 测试 DCC 桥接服务是否可达 |
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
### `dcc run` — 执行代码
|
|
79
|
+
|
|
80
|
+
在 DCC 中执行 Python 代码,支持三种输入方式。
|
|
81
|
+
|
|
82
|
+
#### 语法
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
dcc run {file, code, stdin} [target] [选项]
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
#### 子命令
|
|
89
|
+
|
|
90
|
+
| 子命令 | 说明 | `target` 参数 |
|
|
91
|
+
|---|---|---|
|
|
92
|
+
| `file` | 执行本地 Python 文件 | 文件路径(必填) |
|
|
93
|
+
| `code` | 执行代码字符串 | Python 代码字符串(必填) |
|
|
94
|
+
| `stdin` | 从标准输入读取代码并执行 | 无需提供 |
|
|
95
|
+
|
|
96
|
+
#### 选项
|
|
97
|
+
|
|
98
|
+
| 选项 | 类型 | 默认值 | 说明 |
|
|
99
|
+
|---|---|---|---|
|
|
100
|
+
| `--port` | int | 自动发现 | 指定目标 DCC 服务端口 |
|
|
101
|
+
| `--dcc-type` | str | 自动发现 | 指定目标 DCC 类型(`maya`、`3dsmax`、`substance_painter`、`substance_designer` 等) |
|
|
102
|
+
| `-r`, `--reload` | flag | 否 | 执行前先重载模块(`file` 重载文件所在目录,`code`/`stdin` 重载当前工作目录) |
|
|
103
|
+
| `--origin` | str | 自动生成 | 自定义 `exec_origin`,用于标识代码来源 |
|
|
104
|
+
| `--plain` | flag | 否 | 输出纯文本而非 JSON |
|
|
105
|
+
| `--json` | flag | 是 | 输出 JSON 格式(默认行为) |
|
|
106
|
+
| `--timeout` | float | 30.0 | 连接超时(秒) |
|
|
107
|
+
|
|
108
|
+
#### 示例
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
# 执行文件
|
|
112
|
+
dcc run file /path/to/script.py
|
|
113
|
+
|
|
114
|
+
# 执行代码字符串
|
|
115
|
+
dcc run code "print('hello')"
|
|
116
|
+
|
|
117
|
+
# 从管道执行
|
|
118
|
+
echo "print('hello')" | dcc run stdin
|
|
119
|
+
|
|
120
|
+
# 执行前先重载模块
|
|
121
|
+
dcc run file ./my_tool.py --reload
|
|
122
|
+
|
|
123
|
+
# 指定端口和超时
|
|
124
|
+
dcc run code "import pymxs; print(pymxs.rt.maxOps())" --port 7002 --timeout 10
|
|
125
|
+
|
|
126
|
+
# 指定 DCC 类型(多实例同时运行时)
|
|
127
|
+
dcc run code "print('maya')" --dcc-type maya
|
|
128
|
+
|
|
129
|
+
# 纯文本输出(只打印 stdout 内容)
|
|
130
|
+
dcc run code "print(1 + 2)" --plain
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
#### 输出格式
|
|
134
|
+
|
|
135
|
+
**JSON 模式(默认):**
|
|
136
|
+
|
|
137
|
+
```json
|
|
138
|
+
{
|
|
139
|
+
"success": true,
|
|
140
|
+
"output": ["hello from DCC"],
|
|
141
|
+
"error": null,
|
|
142
|
+
"traceback": null
|
|
143
|
+
}
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
**纯文本模式(`--plain`):**
|
|
147
|
+
|
|
148
|
+
```
|
|
149
|
+
hello from DCC
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
执行出错时:
|
|
153
|
+
|
|
154
|
+
```json
|
|
155
|
+
{
|
|
156
|
+
"success": false,
|
|
157
|
+
"output": [],
|
|
158
|
+
"error": "NameError: name 'x' is not defined",
|
|
159
|
+
"traceback": "Traceback (most recent call last):\n ..."
|
|
160
|
+
}
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
#### 退出码
|
|
164
|
+
|
|
165
|
+
| 退出码 | 含义 |
|
|
166
|
+
|---|---|
|
|
167
|
+
| 0 | 执行成功 |
|
|
168
|
+
| 1 | 未知错误 |
|
|
169
|
+
| 2 | 执行失败(DCC 端返回错误)或参数错误 |
|
|
170
|
+
| 3 | 文件未找到(仅 `file` 子命令) |
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
### `dcc setup` — 注入自启动脚本
|
|
175
|
+
|
|
176
|
+
在 DCC 的启动目录中写入 `dcc_bridge_startup.py`,DCC 打开后自动启动桥接服务。
|
|
177
|
+
|
|
178
|
+
#### 语法
|
|
179
|
+
|
|
180
|
+
```
|
|
181
|
+
dcc setup <dcc_type> [--version <版本号>]
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
#### 参数
|
|
185
|
+
|
|
186
|
+
| 参数 | 必填 | 说明 |
|
|
187
|
+
|---|---|---|
|
|
188
|
+
| `dcc_type` | 是 | DCC 类型:`maya`、`3dsmax`、`substance_painter`、`substance_designer` |
|
|
189
|
+
| `--version` | 否 | 指定版本号。不指定时自动从注册表发现并注入所有已安装版本 |
|
|
190
|
+
|
|
191
|
+
#### 示例
|
|
192
|
+
|
|
193
|
+
```bash
|
|
194
|
+
# 注入 3ds Max(自动发现所有已安装版本)
|
|
195
|
+
dcc setup 3dsmax
|
|
196
|
+
|
|
197
|
+
# 注入指定版本的 Maya
|
|
198
|
+
dcc setup maya --version 2024
|
|
199
|
+
|
|
200
|
+
# 注入所有已安装的 Maya
|
|
201
|
+
dcc setup maya
|
|
202
|
+
|
|
203
|
+
# 注入 Substance Painter / Substance Designer
|
|
204
|
+
dcc setup substance_painter
|
|
205
|
+
dcc setup substance_designer
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
#### 注入位置
|
|
209
|
+
|
|
210
|
+
| DCC | 注入路径 | 额外操作 |
|
|
211
|
+
|---|---|---|
|
|
212
|
+
| Maya | `~/maya/<version>/scripts/dcc_bridge_startup.py` | 在 `userSetup.py` 中追加 `import dcc_bridge_startup` |
|
|
213
|
+
| 3ds Max | `~/AppData/Local/Autodesk/3dsMax/<year> - 64bit/ENU/scripts/startup/dcc_bridge_startup.py` | 无(Max 自动加载 startup 目录) |
|
|
214
|
+
| Substance Painter | 应用脚本目录 | 自动启动入口注入 |
|
|
215
|
+
| Substance Designer | 应用脚本目录 | 自动启动入口注入 |
|
|
216
|
+
|
|
217
|
+
#### 版本发现机制
|
|
218
|
+
|
|
219
|
+
通过读取 Windows 注册表自动发现已安装版本:
|
|
220
|
+
|
|
221
|
+
| DCC | 注册表路径 | 版本来源 |
|
|
222
|
+
|---|---|---|
|
|
223
|
+
| Maya | `HKLM\SOFTWARE\Autodesk\Maya\<version>` | 子键名(如 `2022`、`2024`) |
|
|
224
|
+
| 3ds Max | `HKLM\SOFTWARE\Autodesk\3dsMax\<internal_version>` | `Installdir` 值中的年份(如 `2019`、`2024`) |
|
|
225
|
+
| Substance Painter | 注册表/安装路径 | 自动发现 |
|
|
226
|
+
| Substance Designer | 注册表/安装路径 | 自动发现 |
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
### `dcc unsetup` — 移除自启动脚本
|
|
231
|
+
|
|
232
|
+
移除 `dcc setup` 注入的脚本,恢复原始状态。
|
|
233
|
+
|
|
234
|
+
#### 语法
|
|
235
|
+
|
|
236
|
+
```
|
|
237
|
+
dcc unsetup <dcc_type> [--version <版本号>]
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
#### 示例
|
|
241
|
+
|
|
242
|
+
```bash
|
|
243
|
+
# 移除 3ds Max 自启动脚本
|
|
244
|
+
dcc unsetup 3dsmax
|
|
245
|
+
|
|
246
|
+
# 移除指定版本的 Maya
|
|
247
|
+
dcc unsetup maya --version 2024
|
|
248
|
+
|
|
249
|
+
# 移除 Substance Painter / Substance Designer 自启动脚本
|
|
250
|
+
dcc unsetup substance_painter
|
|
251
|
+
dcc unsetup substance_designer
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
---
|
|
255
|
+
|
|
256
|
+
### `dcc status` — 查看桥接状态
|
|
257
|
+
|
|
258
|
+
扫描 `~/.dcc-bridge/instances/` 目录,列出所有正在运行的 DCC 桥接服务,并可对指定实例执行 ping 测试。
|
|
259
|
+
|
|
260
|
+
#### 语法
|
|
261
|
+
|
|
262
|
+
```
|
|
263
|
+
dcc status [--port <端口>] [--dcc-type <类型>] [--version <版本号>] [--plain]
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
#### 示例
|
|
267
|
+
|
|
268
|
+
```bash
|
|
269
|
+
# 查看所有实例状态
|
|
270
|
+
dcc status
|
|
271
|
+
|
|
272
|
+
# 对指定端口执行 ping
|
|
273
|
+
dcc status --port 7002
|
|
274
|
+
|
|
275
|
+
# 对指定 DCC 类型执行 ping
|
|
276
|
+
dcc status --dcc-type maya
|
|
277
|
+
|
|
278
|
+
# 对指定版本执行 ping
|
|
279
|
+
dcc status --dcc-type maya --version 2024
|
|
280
|
+
|
|
281
|
+
# 纯文本输出
|
|
282
|
+
dcc status --plain
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
#### 输出格式
|
|
286
|
+
|
|
287
|
+
**JSON 模式(默认):**
|
|
288
|
+
|
|
289
|
+
```json
|
|
290
|
+
{
|
|
291
|
+
"instances": [
|
|
292
|
+
{
|
|
293
|
+
"pid": 12345,
|
|
294
|
+
"dcc_type": "3dsmax",
|
|
295
|
+
"dcc_version": "2024",
|
|
296
|
+
"host": "127.0.0.1",
|
|
297
|
+
"port": 7002,
|
|
298
|
+
"started_at": "2026-07-15T10:30:00",
|
|
299
|
+
"python_path": "C:\\Program Files\\Autodesk\\3ds Max 2024\\python\\python.exe"
|
|
300
|
+
}
|
|
301
|
+
],
|
|
302
|
+
"count": 1,
|
|
303
|
+
"ping": {
|
|
304
|
+
"dcc_type": "3dsmax",
|
|
305
|
+
"python_path": "C:\\Program Files\\Autodesk\\3ds Max 2024\\python\\python.exe"
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
未指定 `ping` 目标时,`ping` 字段不出现;ping 失败时返回 `ping_error`。
|
|
311
|
+
|
|
312
|
+
**纯文本模式(`--plain`):**
|
|
313
|
+
|
|
314
|
+
```
|
|
315
|
+
Running DCC instances: 1
|
|
316
|
+
3dsmax:7002 v2024
|
|
317
|
+
Ping: OK - {'dcc_type': '3dsmax', 'python_path': '...'}
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
---
|
|
321
|
+
|
|
322
|
+
### `dcc ping` — 测试连接
|
|
323
|
+
|
|
324
|
+
向 DCC 桥接服务发送 ping 请求,验证服务是否可达并获取基础信息。
|
|
325
|
+
|
|
326
|
+
#### 语法
|
|
327
|
+
|
|
328
|
+
```
|
|
329
|
+
dcc ping [--port <端口>] [--dcc-type <类型>] [--version <版本号>] [--plain]
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
#### 示例
|
|
333
|
+
|
|
334
|
+
```bash
|
|
335
|
+
# 自动发现并 ping
|
|
336
|
+
dcc ping
|
|
337
|
+
|
|
338
|
+
# 指定端口
|
|
339
|
+
dcc ping --port 7002
|
|
340
|
+
|
|
341
|
+
# 指定 DCC 类型
|
|
342
|
+
dcc ping --dcc-type maya
|
|
343
|
+
|
|
344
|
+
# 指定版本
|
|
345
|
+
dcc ping --dcc-type maya --version 2024
|
|
346
|
+
|
|
347
|
+
# 纯文本输出
|
|
348
|
+
dcc ping --plain
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
#### 输出格式
|
|
352
|
+
|
|
353
|
+
**JSON(默认):**
|
|
354
|
+
|
|
355
|
+
```json
|
|
356
|
+
{
|
|
357
|
+
"success": true,
|
|
358
|
+
"dcc_type": "3dsmax",
|
|
359
|
+
"python_path": "C:\\Program Files\\Autodesk\\3ds Max 2024\\python\\python.exe"
|
|
360
|
+
}
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
**纯文本(`--plain`):**
|
|
364
|
+
|
|
365
|
+
```
|
|
366
|
+
DCC bridge server is reachable.
|
|
367
|
+
DCC type: 3dsmax
|
|
368
|
+
Python path: C:\Program Files\Autodesk\3ds Max 2024\python\python.exe
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
---
|
|
372
|
+
|
|
373
|
+
## 目标解析机制
|
|
374
|
+
|
|
375
|
+
当不指定 `--port` 时,CLI 通过 `~/.dcc-bridge/instances/` 下的发现文件自动解析目标:
|
|
376
|
+
|
|
377
|
+
1. 若指定 `--dcc-type`,只匹配该类型的实例
|
|
378
|
+
2. 若指定 `--version`,进一步按版本筛选
|
|
379
|
+
3. 若只找到一个实例,自动连接
|
|
380
|
+
4. 若找到多个实例,报错并提示用 `--port` 或 `--dcc-type` 指定
|
|
381
|
+
5. 若未找到任何实例,报错并提示先启动 DCC
|
|
382
|
+
|
|
383
|
+
---
|
|
384
|
+
|
|
385
|
+
## 服务发现与端口分配
|
|
386
|
+
|
|
387
|
+
DCC 端 TCP 服务启动后会自动在 `~/.dcc-bridge/instances/{dcc_type}-{pid}.json` 写入发现文件,CLI 与 VS Code 插件通过读取这些文件零配置发现运行中的实例。
|
|
388
|
+
|
|
389
|
+
- 发现文件命名:`{dcc_type}-{pid}.json`
|
|
390
|
+
- 默认起始端口:`7002`,多实例时自动递增,避免端口冲突
|
|
391
|
+
- 惰性清理:`list_instances` 会检查 PID 是否存活,已退出的 DCC 进程对应文件会被自动删除
|
|
392
|
+
|
|
393
|
+
---
|
|
394
|
+
|
|
395
|
+
## 在 DCC 中手动启动服务
|
|
396
|
+
|
|
397
|
+
正常情况下 `dcc setup` 后 DCC 打开即自动启动服务。如需手动启动:
|
|
398
|
+
|
|
399
|
+
```python
|
|
400
|
+
from dcc_bridge.start import start_server
|
|
401
|
+
start_server(port=7002)
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
服务启动后会自动在 `~/.dcc-bridge/instances/` 写入发现文件,供 CLI 与 VS Code 插件识别。
|
|
405
|
+
|
|
406
|
+
---
|
|
407
|
+
|
|
408
|
+
## 作为 Python 包使用
|
|
409
|
+
|
|
410
|
+
```python
|
|
411
|
+
from dcc_bridge import DCCClient
|
|
412
|
+
|
|
413
|
+
# 直连指定端口
|
|
414
|
+
with DCCClient(port=7002) as client:
|
|
415
|
+
result = client.execute_code("print('hello from DCC')")
|
|
416
|
+
print(result.to_dict())
|
|
417
|
+
|
|
418
|
+
# 自动发现实例
|
|
419
|
+
from dcc_bridge.client import resolve_client
|
|
420
|
+
with resolve_client(dcc_type="maya") as client:
|
|
421
|
+
client.execute_file("/path/to/script.py")
|
|
422
|
+
```
|
|
423
|
+
|
|
424
|
+
---
|
|
425
|
+
|
|
426
|
+
## 支持的 DCC
|
|
427
|
+
|
|
428
|
+
| DCC | 状态 | 版本发现 | 自启动注入 |
|
|
429
|
+
|---|---|---|---|
|
|
430
|
+
| Maya | 完整支持 | 注册表 | `userSetup.py` + `dcc_bridge_startup.py` |
|
|
431
|
+
| 3ds Max | 完整支持 | 注册表 | `scripts/startup/dcc_bridge_startup.py` |
|
|
432
|
+
| Substance Painter | 支持 | 注册表/安装路径 | 自动启动入口注入 |
|
|
433
|
+
| Substance Designer | 支持 | 注册表/安装路径 | 自动启动入口注入 |
|
|
434
|
+
|
|
435
|
+
---
|
|
436
|
+
|
|
437
|
+
## 调试集成说明
|
|
438
|
+
|
|
439
|
+
`dcc_bridge.debug.start_debugpy_server` 在启动 debugpy 服务前会调用当前 DCC 适配器的 `configure_debugpy(python_path)` 方法,完成针对各 DCC 的解释器配置。`SubstanceDesignerAdapter` 会跳过默认的 `debugpy.configure` 调用,以避免 Substance Designer 在启动调试服务时触发资源扫描弹窗(该问题目前仍在持续优化中)。
|
|
440
|
+
|
|
441
|
+
---
|
|
442
|
+
|
|
443
|
+
## 许可证
|
|
444
|
+
|
|
445
|
+
本项目采用 [PolyForm Noncommercial License 1.0.0](../../LICENSE) 授权,仅供非商业用途使用。详见根目录 `LICENSE` 文件。
|