3dsmax-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MAXMCP_HOME | No | Configuration directory | |
| MAXMCP_HOST | No | Bridge host, default 127.0.0.1 | 127.0.0.1 |
| MAXMCP_PORT | No | Bridge port, default 8765 | 8765 |
| MAXMCP_PROFILE | No | Tool profile: core, modeling, lookdev, animation, pipeline, full | full |
| MAXMCP_TIMEOUT | No | Single call timeout in seconds | 120 |
| MAXMCP_LANGUAGE | No | Language: auto (default), zh, or en | auto |
| MAXMCP_BILINGUAL | No | Whether to output bilingual descriptions (1/true) | false |
| MAXMCP_HTTP_HOST | No | HTTP bind address | 127.0.0.1 |
| MAXMCP_HTTP_PATH | No | HTTP endpoint path, default /mcp | /mcp |
| MAXMCP_HTTP_PORT | No | HTTP port | 8770 |
| MAXMCP_TRANSPORT | No | Transport: stdio (default), http, or both | stdio |
| MAXMCP_HTTP_TOKEN | No | HTTP access token (Authorization: Bearer) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| bridge_statusA | 查询 3ds Max 桥接的实时状态:是否在监听、端口、已连接客户端数、命令总数、Max 版本、当前场景、对象与选择数量。在开始任何操作前调用它确认连接正常。 [English] Report live bridge state: listening, port, connected clients, command count, Max version, current scene, object and selection counts. Call this first to confirm the connection is healthy. |
| bridge_pingA | 轻量心跳,返回 Max 内部时间戳。用于确认桥接存活,不会改动场景。 [English] Lightweight heartbeat returning the Max internal timestamp. Use it to confirm the bridge is alive; it never touches the scene. |
| bridge_stopA | 停止桥接并释放端口。停止后所有 MCP 工具都会失败,直到在 3ds Max 中重新运行 mcpBridgeStart()。 [English] Stop the bridge and release the port. Every MCP tool will fail afterwards until mcpBridgeStart() is run again inside 3ds Max. |
| bridge_restartA | 重启桥接(默认沿用当前端口)。当 AI 客户端断连后无法恢复时使用。 [English] Restart the bridge (keeps the current port by default). Use it when an AI client lost the connection and cannot recover. |
| bridge_capabilitiesA | 列出 3ds Max 端实际注册的所有命令及其分类前缀。当你不确定某个工具在当前 Max 版本上是否可用时,先调用它。 [English] List every command actually registered on the 3ds Max side, grouped by prefix. Call it first whenever you are unsure whether a tool exists on this Max version. |
| bridge_selftestA | 在 3ds Max 内部运行完整自检:JSON 编解码、中文往返、对象创建、撤销栈、TCP 监听。当任何工具莫名失败时先运行它,返回逐项结果,便于快速定位是环境问题还是参数问题。 [English] Run a full in-Max self test: JSON encode/decode, Chinese round trip, object creation, undo stack, TCP listener. Run it whenever a tool fails oddly - it returns per-check results so you can tell an environment problem from a bad argument. |
| set_languageB | 切换输出语言:zh(简体中文)、en(英文)或 auto(跟随 3ds Max 的界面语言)。本 MCP 服务自身的工具描述会立即切换;桥接端的提示、错误、日志信息也会同步切换。用 auto 可以让中英文用户各自看到自己语言的消息,无需手动设置。 [English] Switch the output language: zh (Simplified Chinese), en (English), or auto (follow the 3ds Max UI language). This server's tool descriptions switch immediately, and the wording of every message, error and log line produced inside 3ds Max follows. Use auto so Chinese and English users each get their own language without configuration. |
| get_languageA | 查询桥接当前使用的语言,以及它是被固定还是跟随 3ds Max 的界面语言。 [English] Return the language currently used by the bridge, and whether it is pinned or following the 3ds Max UI language. |
| get_max_versionA | 返回 3ds Max 年份、内部主版本号、版本字符串、构建号、界面语言、系统语言和单位制。在调用跨版本差异较大的功能(Substance、UV 展开、导出格式)前先确认版本。 [English] Return the 3ds Max year, internal major version, version string, build number, UI language, system language and unit setup. Check this before using features that differ between releases (UV unwrap, import/export formats, render engines). |
| get_pathsA | 返回 3ds Max 的各类默认目录:安装目录、脚本目录、导出/导入目录、渲染输出、临时目录、自动备份、材质库。用于拼出正确的默认输出路径。 [English] Return the 3ds Max default folders: install, scripts, export/import, render output, temp, autoback and material library. Use it to build sensible default output paths. |
| get_system_infoA | 返回当前会话的完整环境快照:渲染器、单位、帧率、动画范围、场景路径、对象统计。 [English] Return a full snapshot of the session: renderer, units, frame rate, animation range, scene path and object statistics. |
| list_render_enginesA | 列出本机已安装并被检测到的渲染引擎(扫描线、Arnold、V-Ray、Corona、FStorm、Redshift、ART、Quicksilver)以及当前使用的渲染器。 [English] List the render engines detected on this machine (Scanline, Arnold, V-Ray, Corona, FStorm, Redshift, ART, Quicksilver) and the one currently assigned. |
| execute_maxscriptA | 直接执行一段 MAXScript 代码并把结果返回。这是万能逃生舱:当没有现成工具时用它访问任意 Max 功能。设置 asOneUndo=true 可让整段代码成为一步撤销。 [English] Execute a MAXScript snippet and return its result. This is the universal escape hatch: use it to reach any Max feature that has no dedicated tool. Set asOneUndo=true to make the whole snippet a single undo step. |
| execute_pythonA | 在 3ds Max 内置 Python 中执行代码(需要该版本随附 Python)。注意:3ds Max 2020 出厂只有 Python 2.7,2021 及以后是 Python 3。若脚本需要 pymxs,请确认版本支持。 [English] Execute code in the Python interpreter embedded in 3ds Max (if that release ships one). Note: 3ds Max 2020 ships Python 2.7 only, 2021 and later ship Python 3. Check the version if your script needs pymxs. |
| undo_lastB | 撤销最近一次(或最近 N 次)操作,等价于在 Max 中按 Ctrl+Z。 [English] Undo the last operation (or the last N), equivalent to pressing Ctrl+Z in Max. |
| redo_lastC | 重做最近一次(或最近 N 次)被撤销的操作。 [English] Redo the last undone operation (or the last N). |
| begin_undoA | 开启一个跨多次调用的撤销事务。之后的所有改动会合并为一次撤销,直到 end_undo。适合「建一个角色并绑定」这类多步骤操作。 [English] Open an undo transaction spanning several MCP calls. Everything you do until end_undo collapses into a single undo step - ideal for multi-step tasks such as building and rigging a character. |
| end_undoA | 提交 begin_undo 开启的撤销事务。 [English] Commit the transaction opened by begin_undo. |
| cancel_undoA | 取消 begin_undo 开启的事务并回滚其中的全部改动。 [English] Cancel the transaction opened by begin_undo, rolling back everything inside it. |
| hold_sceneA | 保存当前场景状态(相当于 Max 的 Hold)。在危险操作前使用,随时可用 fetch_scene 完整还原。 [English] Save the current scene state (Max's Hold). Use it before risky operations; fetch_scene restores it exactly. |
| fetch_sceneA | 把场景还原到最近一次 hold_scene 的状态。会丢弃此后的全部改动。 [English] Restore the scene to the last hold_scene. Everything done since is discarded. |
| release_sceneA | 释放 Hold 缓冲区,接受当前场景状态,使其不再能被 fetch 还原。 [English] Release the hold buffer and accept the current scene, so it can no longer be fetched back. |
| set_unitsA | 设置场景单位制与显示方式。建模前必须与目标引擎/项目约定一致,否则导出的模型尺寸会差 100 倍。 [English] Set the scene unit system and display units. Always align this with the target engine or project convention before modelling, otherwise exported geometry will be off by a factor of 100. |
| get_unitsA | 读取当前单位设置。 [English] Read the current unit setup. |
| set_time_configA | 设置帧率与动画时间范围。做动画前必须先设定,否则关键帧会被重新采样。 [English] Set frame rate and the animation time range. Set this before animating, otherwise keyframes get resampled. |
| get_time_configA | 读取帧率、时间范围与当前帧。 [English] Read frame rate, time range and current frame. |
| scene_infoA | 返回当前场景的名字、路径、是否已修改、对象数量、选择、活动层与渲染器。 [English] Return the current scene name, path, modified flag, object count, selection, active layer and renderer. |
| scene_statisticsA | 统计场景构成:按类型(几何体/图形/灯光/相机/辅助体)分组计数、总顶点数、面数、材质数、贴图数。用于评估导出与渲染的规模。 [English] Summarise the scene composition: counts grouped by type (geometry, shapes, lights, cameras, helpers), total vertices, faces, materials and texture maps. Use it to gauge the scale of a render or export. |
| scene_newA | 新建空场景。可选保留当前场景的某些设置。未保存的改动会丢失。 [English] Create a new empty scene. Some session settings can be carried over. Unsaved changes are lost. |
| scene_resetA | 把 Max 重置到出厂状态。会清空一切,包括单位、渲染器、自定义设置。 [English] Reset 3ds Max to factory state. This wipes everything including units, renderer and custom settings. |
| scene_openB | 打开一个 .max 场景文件(默认不弹出保存提示)。 [English] Open a .max scene file (no save prompt by default). |
| scene_saveA | 保存当前场景。若从未保存过则等同于另存为。 [English] Save the current scene. If it has never been saved this behaves like save-as. |
| scene_save_asA | 把当前场景另存到指定路径(自动创建缺失的目录)。 [English] Save the current scene to a given path, creating missing folders. |
| scene_mergeB | 把另一个 .max 文件里的内容合并进当前场景(不会清空现有对象)。 [English] Merge the contents of another .max file into the current scene without clearing it. |
| list_layersA | 列出场景所有层及其子对象数量、隐藏/冻结状态。用层来组织大型场景是最可靠的做法。 [English] List every scene layer with its child count and hidden/frozen state. Layers are the most reliable way to organise a large scene. |
| create_layerA | 新建一个层,可选设置颜色与初始隐藏状态。 [English] Create a layer, optionally with a colour and initial hidden state. |
| delete_layerB | 删除一个层。可选连同层内对象一起删除。 [English] Delete a layer, optionally deleting the objects inside it too. |
| set_layer_propertiesA | 修改层的属性:隐藏、冻结、线框色、渲染可见性。 [English] Change layer properties: hidden, frozen, wire colour and render visibility. |
| assign_to_layerA | 把指定对象移动到目标层。层不存在时会自动创建。 [English] Move objects into a target layer, creating the layer if needed. |
| move_objects_to_new_layerA | 一步完成:新建层并把指定对象放进去。 [English] One step: create a layer and move the given objects into it. |
| get_scene_assetsA | 列出场景引用的所有外部资源(贴图、代理、点缓存、XRef)及其解析状态。在打包、迁移或渲染前检查,可避免丢贴图。 [English] List every external asset the scene references (bitmaps, proxies, point caches, XRefs) with its resolved status. Check this before packaging, moving or rendering a project to avoid missing textures. |
| find_missing_assetsA | 只列出丢失(无法解析路径)的资源,并给出每个文件的引用次数。 [English] List only the assets whose paths cannot be resolved, with a reference count per file. |
| relink_assetsA | 批量重新链接丢失的贴图/资源:在指定目录(可递归)中按文件名查找并替换路径。等价于 Max 的「资源追踪」批量重链接,是修复丢贴图场景最常用的操作。 [English] Batch relink missing bitmaps/assets: search the given folder (recursively) for files with matching names and repoint the scene. Equivalent to Max's Asset Tracking batch relink, and the standard fix for scenes with missing textures. |
| read_text_fileA | 读取一个文本文件(脚本、配置、日志)。用于检查导出的 .ini 或 MAXScript 片段。 [English] Read a text file (script, config, log). Handy for inspecting exported .ini files or MAXScript snippets. |
| write_text_fileA | 写入一个文本文件(自动创建父目录,可选 UTF-8 编码)。用于生成批处理脚本、导出清单、自定义配置。 [English] Write a text file, creating parent folders automatically (optional UTF-8). Use it to emit batch scripts, export manifests or custom configs. |
| list_directoryA | 列出目录内容,可按扩展名过滤,支持递归。用于批量处理贴图或代理文件。 [English] List a directory, optionally filtered by extension and recursive. Use it to batch process textures or proxy files. |
| file_existsB | 判断文件是否存在。 [English] Check whether a file exists. |
| make_directoryA | 创建目录(含所有上级目录)。 [English] Create a directory including all parents. |
| copy_fileA | 复制文件(可选覆盖)。 [English] Copy a file (optionally overwriting). |
| delete_fileB | 删除文件。不可恢复,请谨慎调用。 [English] Delete a file. Not recoverable, use with care. |
| get_file_infoA | 返回文件大小与修改时间。 [English] Return file size and modification time. |
| list_max_classesA | 按关键字搜索 3ds Max 的类注册表,返回匹配的类名。这是发现「本机到底装了什么插件」的核心手段:例如搜索 Vray、FStorm、Corona、Substance、RailClone 就能得知可用材质与插件。 [English] Search the 3ds Max class registry by keyword and return matching class names. This is the primary way to discover what plugins a machine actually has: search for Vray, FStorm, Corona, Substance or RailClone to find available materials and tools. |
| get_class_propertiesA | 列出某个类的所有可读写属性及其当前值。在设置不熟悉的参数前先用它确认属性名,可避免大量试错。 [English] List every readable/writable property of a class with its current value. Check this before setting unfamiliar parameters - it removes most trial and error. |
| get_class_methodsA | 列出某个类可用的方法/函数及其参数签名。 [English] List the methods/functions available on a class with their signatures. |
| does_class_existA | 判断某个类在本机 3ds Max 中是否存在,用于在调用前探测插件可用性。 [English] Check whether a class exists in this 3ds Max installation, so plugin availability can be probed before use. |
| list_scene_classesA | 统计当前场景中实际出现的所有类及其数量。 [English] Count every class actually present in the current scene. |
| get_property_valueA | 读取任意对象的任意属性值,支持点号路径(例如 material.diffuse)。配合 get_class_properties 使用可完成绝大多数参数读取。 [English] Read any property of any object, supporting dotted paths such as material.diffuse. Together with get_class_properties this covers almost every parameter read. |
| set_property_valueA | 设置任意对象的任意属性值,支持点号路径。值会按目标属性类型自动转换。这是给未提供专用工具的参数赋值时的通用手段。 [English] Set any property of any object, supporting dotted paths. The value is coerced to the target property's type. This is the generic way to touch parameters that have no dedicated tool. |
| create_primitiveA | 按类名创建一个 3ds Max 基础体(Box/Sphere/Cylinder/Cone/ChamferBox/Capsule 等)。不熟悉的类先用 does_class_exist 探测是否可用。分段数越高多边形越多,游戏资产保持 12-16。 [English] Create any 3ds Max primitive by class name (Box/Sphere/Cylinder/Cone/ChamferBox/Capsule...). Probe availability with does_class_exist for unfamiliar classes first. Higher segments mean more polygons; keep 12-16 for game assets. |
| create_boxA | 创建一个长方体。长度/宽度/高度可分别设分段;游戏资产分段保持 12-16,烘焙法线前用 reset_transform 清掉非均匀缩放。 [English] Create a box. Set length/width/height and their segment counts; keep 12-16 segments for game assets and call reset_transform before baking normals to clear non-uniform scale. |
| create_sphereB | 创建一个球体。segments 与 sides 共同决定多边形数,游戏资产保持低值。 [English] Create a sphere. segments and sides together drive polygon count; keep low for game assets. |
| create_cylinderB | 创建一个圆柱。可设顶/底盖分段与边数;去掉封顶可当管道用。 [English] Create a cylinder. Control cap segments and sides; drop the caps to use it as a pipe. |
| create_coneA | 创建一个圆锥/圆台。radius1 为顶半径、radius2 为底半径,把顶半径设为 0 即为尖锥。 [English] Create a cone / frustum. radius1 is the top radius and radius2 the bottom; set top to 0 for a pointed cone. |
| create_torusA | 创建一个圆环。radius1 是主管半径、radius2 是管子半径;sides 控制管子圆滑度。 [English] Create a torus. radius1 is the major (ring) radius, radius2 the minor (tube) radius; sides controls tube smoothness. |
| create_teapotB | 创建一个茶壶(经典测试模型)。axis 选择壶身/壶盖/壶嘴/壶把,通常保持默认。 [English] Create a teapot (classic test mesh). axis picks body/lid/spout/handle; usually leave default. |
| create_planeA | 创建一个平面(默认只有 1 段,渲染时常用作地面/水面)。lengthSegs/widthSegs 给细分。 [English] Create a plane (1 segment by default, common as ground/water). lengthSegs/widthSegs add subdivisions. |
| create_tubeA | 创建一个管状几何体。radius1 为外半径、radius2 为内半径;可控制封顶与边数。 [English] Create a tube. radius1 is outer, radius2 inner radius; control caps and sides. |
| create_pyramidC | 创建一个四棱锥(方底金字塔)。用 width/height/depth 控制尺寸;也可当作低面数障碍体。 [English] Create a pyramid (square base). Use width/height/depth for size; handy as a low-poly obstacle. |
| create_hedraC | 创建一个多面体(异面体),可选 family 与顶点类型,适合做科幻晶体。 [English] Create a hedra (multifaceted solid) with selectable family; good for sci-fi crystals. |
| create_geosphereA | 创建一个几何球体(基于经纬/二十面体细分),比普通 Sphere 更均匀,更适合做行星与碰撞球。 [English] Create a geo sphere (icosa/geodesic subdivision) - more uniform than Sphere, good for planets and collision spheres. |
| create_chamferboxA | 创建一个带圆角的长方体(拓展基础体)。chamfer 控制倒角,圆角面会显著增加多边形数。若当前 Max 未启用拓展基础体则会报错提示。 [English] Create a chamfered box (extended primitive). chamfer controls the bevel; bevel faces add many polygons. Errors gracefully if Extended Primitives are not enabled in this Max. |
| create_capsuleA | 创建一个胶囊体(拓展基础体)。fillet 控制端盖圆角;常用于角色碰撞体与道具。若当前 Max 未启用拓展基础体则会报错提示。 [English] Create a capsule (extended primitive). fillet controls end caps; common for character collision shapes and props. Errors gracefully if Extended Primitives are not enabled in this Max. |
| create_lineA | 用一组世界坐标点创建一条样条线(Line)。可闭合。点数量越多曲线越精细,之后用 spline_set_points 修改顶点、spline_get_points 读取顶点。闭合样条可倒出成面片。 [English] Create a Line spline from an array of world-space points. Can be closed. More points = finer curve. Edit vertices with spline_set_points and read them with spline_get_points. A closed spline can be capped into a surface. |
| create_rectangleA | 创建一个矩形样条。length/width 控制尺寸,cornerRadius 可倒圆角;常作墙体/地面的截面。 [English] Create a rectangle spline. length/width size it; cornerRadius rounds corners. Common as wall/floor profile. |
| create_circleB | 创建一个圆样条。radius 控制大小;常用于轮胎/孔洞轮廓。 [English] Create a circle spline. radius sizes it; common for tyres/hole outlines. |
| create_ellipseC | 创建一个椭圆样条。length/width 分别控制长、短轴。 [English] Create an ellipse spline. length/width are the major/minor axes. |
| create_ngonB | 创建一个正多边形(NGon)样条。radius 为外接圆半径,sides 为边数(至少 3)。 [English] Create a regular polygon (NGon) spline. radius is the circumradius, sides the edge count (>=3). |
| create_donutA | 创建一个圆环(Donut)样条,即两个同心圆。radius1 外、radius2 内。 [English] Create a donut spline (two concentric circles). radius1 outer, radius2 inner. |
| create_arcC | 创建一段圆弧样条。radius 半径,from/to 起止角(度);做扇形/弯管截面。 [English] Create an arc spline. radius plus from/to angles in degrees; good for sectors/bent profiles. |
| create_helixA | 创建一条螺旋线。radius1/radius2 为上下半径,height 高度,turns 圈数;常用于弹簧/楼梯路径。 [English] Create a helix spline. radius1/radius2 top/bottom, height, turns; common for springs/stair paths. |
| create_textA | 创建文字样条(Text)。text 为内容,size 字号,可加厚描边;文字需转样条后才能挤出成面。 [English] Create a Text spline. text is the content, size the font size, thickness the stroke. Text must be a spline before extruding. |
| spline_get_pointsA | 读取样条线的所有顶点(按样条/节点编号)。用于检查或修改曲线,配合 spline_set_points 使用。 [English] Read all knot points of a spline (by spline/knot index). Inspect or prep a curve; pair with spline_set_points. |
| spline_set_pointsA | 替换/追加样条线的顶点。顶点数少于原有则覆盖前 N 个,多于则追加。修改后 Max 会自动更新几何体。 [English] Replace/append a spline's knot points. Fewer points overwrite the first N, more append. Max updates the geometry automatically. |
| transform_objectA | 对对象做 移动/旋转/缩放,支持绝对或相对、世界或局部、欧拉角(度)或轴角。objects 省略则作用于当前选择。缩放父级会连带扭曲子级,先 reset_transform 再缩放。 [English] Move/rotate/scale objects, absolute or relative, world or local, euler(degrees) or axis-angle. Omit objects to act on the selection. Scaling a parent skews children; reset_transform first. |
| align_objectsA | 把多个对象对齐到目标对象(位置/旋转/缩放可分别开关)。用于批量摆放道具、对齐相机与瞄准点。 [English] Align several objects to a target (position/rotation/scale toggles). Great for placing props or aligning cameras. |
| mirror_objectA | 沿 X/Y/Z 平面镜像对象(翻转对应轴缩放并重新定位)。cloneType 可同时生成副本(copy/instance)。镜像会翻转法线,导出前考虑翻转或加壳。 [English] Mirror objects across the X/Y/Z plane (flips that axis scale and repositions). cloneType can also spawn copies. Mirroring flips normals; consider flipping or adding a shell before export. |
| set_pivotA | 移动或居中对象的轴点(pivot)。place=放到指定坐标,center=几何中心,origin=世界原点。烘焙动画/父子链接前先定好轴点,否则旋转会绕错位置。 [English] Move or center an object's pivot. place=given coord, center=geometric center, origin=world origin. Set the pivot before baking animation or parenting or rotation spins around the wrong spot. |
| reset_transformA | 清零对象的旋转与缩放(或位置),把变换烘焙回对象自身。缩放父级会连带扭曲子级,先调用它再缩放。 [English] Reset an object's rotation and scale (or position), baking the transform into the object. Scaling a parent skews children; call this before scaling. |
| snap_objects_to_gridA | 把对象位置吸附到指定间距的网格点上。用于规整摆放、对齐棋盘/阵列起点。 [English] Snap object positions to a grid of the given spacing. Tidy placement, align chessboard/array origins. |
| scatter_objectsA | 在盒状区域内(或某个表面之上)随机散布对象副本,可随机旋转/缩放,并用 seed 保证结果可复现。用于做草地、碎石、观众席等大量重复物。数量很大时会卡,建议分批。 [English] Scatter copies of objects randomly inside a box (or over a surface), with optional random rotation/scale and a seed for reproducibility. Great for grass, rubble, crowds. Huge counts lag; scatter in batches. |
| parent_objectsA | 把对象链接到父对象下(建立层级)。keepTransform 保持世界变换不变。父子层级下,缩放父级会连带扭曲子级,必要时先 reset_transform。 [English] Link objects under a parent (build a hierarchy). keepTransform preserves world transform. Under parenting, scaling the parent skews children; reset_transform if needed. |
| unparent_objectsA | 把对象从父级解绑(取消层级)。keepTransform 保持世界位置/旋转不变。 [English] Unlink objects from their parent. keepTransform keeps world position/rotation. |
| get_hierarchyA | 返回场景层级树(递归子级)。root 省略或为 scene 时从根节点开始。只读。 [English] Return the scene hierarchy tree (children recursed). Omit root or pass scene to start at the root. Read-only. |
| group_objectsA | 把多个对象编组为一个组(Group),便于整体移动/隐藏。返回组头名称。 [English] Group several objects into one Group for moving/hiding together. Returns the group head name. |
| ungroup_objectsA | 解散组(保留成员对象)。传组头或组内任意成员均可。 [English] Ungroup (keeps the member objects). Pass the group head or any member. |
| open_groupA | 打开组(临时解组以便编辑成员,关闭后恢复)。 [English] Open a group (temporarily ungroup for editing; close to restore). |
| close_groupA | 关闭(重新合上)之前打开的组。 [English] Close a previously opened group (re-collapse it). |
| list_objectsA | 列出场景对象,可按 superclass/class/layer/名称通配符过滤,支持 limit/offset 分页并返回 count。只读,适合先摸清场景再决定操作。namePattern 用 * 作通配,例如 Box。* [English] List scene objects, filterable by superclass/class/layer/name wildcard, paginated with limit/offset and a count field. Read-only, use it to survey the scene first. namePattern uses * as wildcard, e.g. Box.* |
| find_objectsA | 按名称精确或模糊查找对象,返回命中列表与 count。只读。exact=true 时只匹配完全相同名称。 [English] Find objects by exact or fuzzy name; returns hits and a count. Read-only. exact=true matches only identical names. |
| get_object_infoA | 返回单个对象的完整信息:类、层级、变换、隐藏/冻结、材质、顶点/面数等。只读。 [English] Return full info for one object: class, hierarchy, transform, hidden/frozen, material, vertex/face counts. Read-only. |
| get_selectionA | 返回当前选择的对象列表及概要。只读。 [English] Return the current selection with summaries. Read-only. |
| select_objectsA | 选择对象。mode=replace 替换、add 追加、subtract 移除、invert 反选。 [English] Select objects. mode=replace/add/subtract/invert. |
| deselect_allA | 清空当前选择。批量操作前先清空可避免误伤上一次选择的对象。 [English] Clear the current selection. Useful before a batch operation so you do not accidentally operate on whatever was selected earlier. |
| select_allB | 选择场景中所有对象。 [English] Select every object in the scene. |
| select_by_superclassB | 按 superclass 全选(例如 Shape 选中所有图形、Light 选中所有灯光)。 [English] Select all by superclass (e.g. Shape selects every spline, Light every light). |
| hide_objectsA | 隐藏指定对象(省略则隐藏当前选择)。隐藏对象仍参与渲染,除非层/对象设为不可渲染。 [English] Hide the given objects (or the current selection). Hidden objects still render unless set non-renderable. |
| unhide_allA | 显示场景中所有被隐藏的对象。 [English] Show every hidden object in the scene. |
| unhide_objectsB | 显示指定对象;若不传 objects 则显示全部。 [English] Show the given objects; show all if none specified. |
| freeze_objectsA | 冻结指定对象(不可选中、不可变换,但仍可见/可渲染)。适合锁定背景参考物。 [English] Freeze the given objects (unselectable/untransformable but still visible/renderable). Lock reference props. |
| unfreeze_allA | 解冻场景中所有被冻结的对象。 [English] Unfreeze every frozen object in the scene. |
| rename_objectB | 重命名一个对象。返回旧名与新名。 [English] Rename one object. Returns old and new name. |
| delete_objectsA | 删除指定对象(省略则删除当前选择)。不可恢复,危险操作前建议 hold_scene。 [English] Delete the given objects (or the selection). Not recoverable; call hold_scene before risky deletes. |
| clone_objectsA | 克隆对象:copy 独立副本、instance 关联实例、reference 参考。count>1 时按 offset 间隔摆放。 [English] Clone objects: copy (independent), instance (linked), reference. count>1 spaces them by offset. |
| array_objectsA | 按 1D/2D/3D 网格(grid)或绕轴环形(radial)阵列复制对象。grid 用 count1/2/3 与 spacing1/2/3;radial 用 count1、axis、radius 绕轴均布。 [English] Array-clone objects in a 1D/2D/3D grid or radially around an axis. grid uses count1/2/3 + spacing1/2/3; radial uses count1, axis, radius. |
| attach_objectsA | 把一个或多个样条合并进目标样条(Editable Spline 的 attach),用于把多条线合成一条轮廓再挤出。 [English] Attach one or more splines into a target spline (Editable Spline attach); combine profiles before extruding. |
| detach_elementsA | 把一个可编辑多边形按元素拆分,每个元素拆成独立对象(Det_<原名><序号>)。适合把合并网格重新拆开。 [English] Split an editable poly by element, each element becomes its own object (Det_). Re-separate merged meshes. |
| count_objectsA | 统计场景对象数量,可按 superclass 过滤。只读。 [English] Count scene objects, optionally by superclass. Read-only. |
| boolean_operationA | 对选中的两个及以上对象做布尔运算(union/subtract/intersect/merge)。第 1 个对象是 A,其余依次作用于它;subtract 即 A 减后面所有。布尔结果依赖水密网格,破面会失败。 [English] Boolean operation on two or more selected objects (union/subtract/intersect/merge). The first object is A; the rest apply to it; subtract = A minus all others. Booleans need watertight meshes; broken faces fail. |
| probooleanA | 使用 3ds Max 的 ProBoolean 做更鲁棒的布尔(支持多 operands、交集/减集/合并)。第 1 个对象为基,其余并入。若当前 Max 未启用 ProBoolean 会报错提示。 [English] Use 3ds Max ProBoolean for a more robust boolean (multi-operand, union/subtract/intersect/merge). First object is the base; the rest are added. Errors gracefully if ProBoolean is unavailable. |
| convert_to_editable_polyA | 把对象转换为可编辑多边形(Editable Poly)。这是绝大多数多边形建模操作的前置步骤。该转换会塌陷对象原本的修改器与基础类型,不可撤销为原类型。 [English] Convert an object to an Editable Poly. This is the prerequisite for almost every polygon modeling operation. The conversion collapses the object's base type and modifiers and cannot be reverted to the original class. |
| convert_to_editable_meshA | 把对象转换为可编辑网格(Editable Mesh)。网格比多边形更老、功能更少,通常优先用 convert_to_editable_poly。仅在需要旧版网格接口时使用。 [English] Convert an object to an Editable Mesh. Mesh is older and less capable than poly; prefer convert_to_editable_poly. Use this only when a legacy mesh interface is needed. |
| convert_to_nurbsA | 把对象转换为 NURBS 曲面。并非所有对象都能转换(例如普通几何体通常不行),失败时会在 failures 里报告原因,不会中断其他对象。 [English] Convert an object to a NURBS surface. Not every object can be converted (plain primitives usually cannot); failures are reported per object and do not abort the rest. |
| collapse_stackA | 塌陷(应用并删除)对象上的整个修改器堆栈,把结果烘焙进基础对象。此操作会永久丢失所有修改器的参数可调性,仅在对结果满意时使用。 [English] Collapse (apply and delete) the entire modifier stack of an object, baking the result into the base object. This permanently destroys the editability of every modifier; only do it when you are happy with the result. |
| poly_infoA | 返回多边形对象的顶点/边/面数量、当前子对象选择层级(subobjectLevel)、材质 ID 的取值范围。用于建模前确认对象状态。 [English] Return a polygon object's vertex/edge/face counts, the current sub-object level (subobjectLevel) and the range of material IDs present. Use it to confirm the state of an object before editing. |
| poly_get_vertsA | 分页返回顶点索引与坐标。可用 faces 过滤只取某些面用到的顶点。 [English] Return vertex indices and positions, paginated. Pass faces to limit the result to the vertices used by those faces. |
| poly_get_facesA | 分页返回每个面的索引、组成顶点、法线方向与材质 ID。非常适合读取几何拓扑。 [English] Return, per face, its index, the vertices it uses, its normal direction and its material ID, paginated. Great for reading geometry topology. |
| poly_get_edgesA | 分页返回每条边的索引及其连接的两个顶点。 [English] Return each edge's index and the two vertices it connects, paginated. |
| poly_get_statsA | 返回多边形统计:顶点/边/面数量、材质 ID 区间、多边形总数。 [English] Return polygon statistics: vertex/edge/face counts, the material ID range and the total polygon count. |
| poly_set_vertexA | 把单个顶点移动到绝对坐标(position)或相对偏移(offset)。不能同时省略两者。坐标使用当前场景单位。 [English] Move a single vertex to an absolute position or by a relative offset. Exactly one of position/offset is required. Coordinates use the current scene unit. |
| poly_move_verticesA | 把一批顶点整体按同一偏移量移动。比逐个 poly_set_vertex 高效。 [English] Move a batch of vertices by the same offset. More efficient than calling poly_set_vertex per vertex. |
| poly_weld_verticesA | 在给定阈值内焊接(合并)一批顶点。阈值过小可能焊不上,过大可能误并无关顶点。单位与场景一致,常用 0.01 |
| poly_target_weldA | 把 vertex 焊接到 target 顶点上(目标焊接),结果与 target 重合。与 poly_weld_vertices(取平均点)不同,这里明确指定落点。
[English]
Target-weld |
| poly_chamfer_verticesA | 对顶点做倒角,沿相邻边方向切出小面,amount 控制切出宽度。 [English] Chamfer the given vertices, cutting small faces along adjacent edges. Amount controls how far the cut extends. |
| poly_remove_verticesA | 删除顶点。被删顶点会连同其所属的面一起消失,会破坏拓扑,请先确认后果。 [English] Delete vertices. Removing a vertex also removes the faces that use it, destroying topology - confirm the consequences first. |
| poly_select_facesA | 按索引、材质 ID、法线方向或高度范围选择面,并保留该选择(进入面子对象模式)。返回被选中面的索引,方便后续用 poly_extrude_faces 等继续操作。 [English] Select faces by index, material ID, normal direction or height range, and leave the selection active (enters face sub-object mode). Returns the selected face indices so you can follow up with poly_extrude_faces etc. |
| poly_extrude_facesA | 沿面法线挤出所选面。amount 为正向外挤、为负向内挤(挖洞)。可省略 faces 表示挤出所有面;direction 可覆盖默认的法线方向。 [English] Extrude the selected faces along their normals. A positive amount extrudes outward, a negative amount pushes inward (to dig a hole). Omit faces to extrude all faces; direction overrides the default normal. |
| poly_bevel_facesA | 对面做斜角:先沿法线挤出 height,再向内收 outline,常用于制作凹槽与边框。 [English] Bevel faces: first extrude along the normal by height, then inset by outline. Useful for grooves and borders. |
| poly_inset_facesB | 向内收面(inset),在面内部生成一圈更小的面,常用于做凹陷或分段。 [English] Inset faces, generating a smaller face inside each one. Good for depressions or panels. |
| poly_bridge_facesA | 在两组面之间桥接(bridge),生成连接它们的几何。常用于挖洞后连接两侧、做管道。 [English] Bridge two sets of faces, generating geometry that connects them. Useful after holes or to build tubes. |
| poly_cap_holesA | 用面填补孔洞(cap)。选择要封口的面(或省略表示尝试全部边界)即可补洞。 [English] Cap holes by filling them with faces. Select the faces to cap (or omit to try all boundary loops). |
| poly_flip_facesA | 翻转所选面的法线方向,用于修正反面(黑面/光照错误)。 [English] Flip the normals of the selected faces, fixing back-facing (dark / wrongly lit) surfaces. |
| poly_delete_facesA | 删除所选面。删除后面上的顶点若孤立会被一并清除。会破坏拓扑。 [English] Delete the selected faces. Isolated vertices left behind are removed too. This destroys topology. |
| poly_assign_material_idA | 给所选面设置材质 ID(多材质的前缀)。同一 ID 的面共享子材质槽。 [English] Assign a material ID to the selected faces (for multi/sub-object materials). Faces with the same ID share a sub-material slot. |
| poly_set_smoothingB | 把所选面归入某个平滑组(1-32)。平滑组决定面与面之间是否平滑过渡(硬边/软边)。 [English] Put the selected faces into a smoothing group (1-32). Smoothing groups decide whether faces shade smoothly into each other (hard vs soft edges). |
| poly_detach_facesA | 把所选面从原对象分离成一个(或克隆出)新对象。name 为新建对象名。 [English] Detach the selected faces into a new object (or clone them into one). name is the new object's name. |
| poly_chamfer_edgesA | 对边做倒角,切出一条宽度可控的边带。常用于硬边圆角。 [English] Chamfer edges, cutting a controllable-width edge strip. Good for rounded hard edges. |
| poly_connect_edgesA | 在所选边之间连接(插入)新边/边环,segments 控制插入条数。用于加密网格、加支撑边。 [English] Connect (insert) new edges between the selected edges; segments sets how many. Use it to densify the mesh or add support loops. |
| poly_extrude_edgesA | 沿边法线挤出边,生成带状几何(如做墙裙、边框)。amount 控制挤出高度。 [English] Extrude edges along their normals, producing strip geometry (e.g. skirting, borders). Amount controls the height. |
| poly_loop_selectC | 选择给定边所在的循环(loop),并保留边子对象选择。常用于快速选一圈环形边。 [English] Select the edge loop containing the given edges and keep the edge sub-object selection. Quick way to grab a ring of edges around a model. |
| poly_ring_selectA | 选择给定边所在的环(ring),并保留边子对象选择。与 poly_loop_select 垂直互补。 [English] Select the edge ring containing the given edges and keep the edge sub-object selection. Complementary and perpendicular to poly_loop_select. |
| poly_sliceB | 用一个平面切割多边形对象(沿 x/y/z 轴、可平移 offset)。split 为真时把切出的面分成两组。 [English] Slice a polygon object with a plane aligned to the x/y/z axis, shifted by offset. With split true the cut faces are split into two groups. |
| poly_triangulateA | 把所选面三角化(每个多边形切成三角形)。游戏/实时引擎通常要求三角面。 [English] Triangulate the selected faces (split each polygon into triangles). Real-time/game engines generally require triangles. |
| poly_quadifyA | 把三角形合并为四边形(尽可能),得到更规整的拓扑。不是所有三角网都能四边化。 [English] Merge triangles into quads where possible, yielding cleaner topology. Not every triangle mesh can be quadified. |
| poly_subdivideA | 通过细分修改器(MeshSmooth)加密网格,iterations 为细分次数。iterations 超过 3 会让面数爆炸式增长,游戏资产建议 1-2。 [English] Subdivide the mesh via the MeshSmooth modifier; iterations is the subdivision count. Iterations above 3 explode the polygon count - keep it 1-2 for game assets. |
| poly_optimizeA | 用 ProOptimizer 按百分比简化模型,percent 为保留的顶点百分比(0-100)。会明显改变形状,雕刻/高精度模型慎用。 [English] Simplify the model with ProOptimizer by a percentage; percent is the kept vertex percentage (0-100). This visibly changes the shape - use care on sculpted/high-detail meshes. |
| poly_relaxB | 用 Relax 修改器松弛顶点,减少褶皱、均匀网格。iterations 为迭代次数。 [English] Relax vertices via the Relax modifier to reduce wrinkles and even out the mesh. iterations is the pass count. |
| poly_auto_smoothA | 按夹角自动计算平滑组:面法线夹角小于 angle 的相邻面平滑过渡。等效于 3ds Max 的 Auto Smooth。 [English] Auto-compute smoothing groups by angle: adjacent faces whose normals differ by less than angle are shaded smoothly. Equivalent to 3ds Max Auto Smooth. |
| poly_unify_normalsA | 统一所选面的法线方向(全部翻成一致朝向),修正法线紊乱导致的花面。 [English] Unify the normals of the selected faces (flip them to a consistent direction), fixing broken shading from inconsistent normals. |
| poly_make_planarA | 把所选面投影到同一平面(make planar),常用于修正歪斜的平面、对齐切割口。 [English] Project the selected faces onto a single plane (make planar). Handy for fixing skewed surfaces or aligning cut openings. |
| mod_addA | 给对象添加一个修改器。修改器名用 3ds Max 类名,例如 Bend、TurboSmooth、Shell。新增的顶层参数(非 objects/name/params)会作为该修改器的属性被设置。mod_add 追加到堆栈顶部;要用 mod_reorder 把它移到已有修改器下方。 [English] Add a modifier to an object. Use the 3ds Max class name, e.g. Bend, TurboSmooth, Shell. Any extra top-level parameter (other than objects/name/params) is applied to the new modifier as a property. mod_add appends to the top of the stack; use mod_reorder to move it below existing modifiers. |
| mod_removeA | 从对象上删除一个修改器。modifier 可用修改器名、类名或堆栈索引(从 1 开始)。 [English] Remove a modifier from an object. modifier may be the modifier name, class name or stack index (1-based). |
| mod_listA | 列出对象修改器堆栈:索引、名称、类名、是否启用。分页返回。 [English] List an object's modifier stack: index, name, class and whether it is enabled. Paginated. |
| mod_get_paramsA | 列出某个修改器的全部可读写属性及当前值(按实例读取)。分页返回。 [English] List every readable/writable property of a modifier with its current value (read from the instance). Paginated. |
| mod_set_paramB | 设置某个修改器的单个参数(param=value)。值按目标属性类型自动转换。 [English] Set a single parameter of a modifier (param=value). The value is coerced to the target property type. |
| mod_set_paramsB | 批量设置某个修改器的多个参数,params 为属性名->值对象。 [English] Set several parameters of a modifier at once; params is a name->value object. |
| mod_enableB | 启用(显示效果)指定修改器。 [English] Enable (make effective) the named modifier. |
| mod_disableA | 禁用(保留但不生效)指定修改器。 [English] Disable (keep but make ineffective) the named modifier. |
| mod_reorderA | 把修改器移动到堆栈的指定位置(index 从 1 开始,1 为最底部/离基础最近)。修改器顺序会显著改变最终效果。 [English] Move a modifier to a stack position (index 1-based, 1 is the bottom / closest to the base). Order strongly affects the final result. |
| mod_renameA | 重命名对象上的一个修改器(便于在 mod_get_params 等命令里按名字引用)。 [English] Rename a modifier on an object so it can later be referenced by name in mod_get_params etc. |
| mod_get_gizmo_infoA | 返回修改器的 Gizmo(变换控制器)位置/旋转/缩放;没有 Gizmo 的修改器返回 hasGizmo=false。 [English] Return a modifier's Gizmo (transform gizmo) position/rotation/scale; modifiers without a gizmo return hasGizmo=false. |
| mod_set_sub_object_selectionA | 设置某个修改器的子对象层级(level)与选择(selection,顶点/边/面/控制点的索引)。常用于 FFD 控制点、Edit Poly 子对象等需要选中子元素的修改器。 [English] Set a modifier's sub-object level and selection (indices of verts/edges/faces/control points). Used for modifiers that need a sub-element selection, e.g. FFD control points or Edit Poly sub-objects. |
| mod_turbosmoothB | 涡轮平滑(非破坏性细分)。iterations 为视口细分次数,renderIterations 为渲染细分次数。游戏资产建议视口 1 / 渲染 2,iterations 过高面数爆炸。 [English] TurboSmooth (non-destructive subdivision). iterations is the viewport subdivision count, renderIterations the render count. For game assets keep viewport 1 / render 2; high iterations explode the polygon count. |
| mod_bendA | 弯曲修改器:沿 axis 轴把物体弯 angle 度,direction 控制弯曲平面方向。 [English] Bend modifier: bend the object by angle degrees around axis; direction sets the bend plane. |
| mod_taperB | 锥化修改器:沿 axis 轴按 amount 缩放截面(一端粗一端细)。 [English] Taper modifier: scale the cross-section along axis by amount (thick at one end, thin at the other). |
| mod_twistB | 扭转修改器:沿 axis 轴把物体扭转 angle 度,bias 控制扭转在长度上的分布。 [English] Twist modifier: rotate the object along axis by angle degrees; bias controls how the twist is distributed along the length. |
| mod_noiseB | 噪声修改器:用分形噪声沿 x/y/z 扰动顶点。fractal 开启更有细节,roughness 控制分形粗糙度。 [English] Noise modifier: displace vertices along x/y/z with fractal noise. fractal adds detail; roughness controls fractal roughness. |
| mod_ffd_2x2x2B | 自由变形修改器 2x2x2:用 8 个控制点变形对象。移动控制点(mod_set_sub_object_selection)即可塑形。 [English] Free-form deform 2x2x2: deform the object with 8 control points. Move them via mod_set_sub_object_selection to sculpt. |
| mod_ffd_3x3x3A | 自由变形修改器 3x3x3:27 个控制点,比 2x2x2 更细腻。 [English] Free-form deform 3x3x3: 27 control points, finer than 2x2x2. |
| mod_ffd_4x4x4B | 自由变形修改器 4x4x4:64 个控制点,最细腻的 FFD。 [English] Free-form deform 4x4x4: 64 control points, the finest FFD. |
| mod_shellA | 壳修改器:给表面加厚度,生成内壁(outerAmount)与外壁(innerAmount)。常用于做实体、管壁。 [English] Shell modifier: give a surface thickness with an outer wall (outerAmount) and inner wall (innerAmount). Use it to make solids or tube walls. |
| mod_symmetryA | 对称修改器:沿 axis 轴镜像对象并焊接接缝(weldSeam)。做角色左右对称时很方便。 [English] Symmetry modifier: mirror the object across axis and weld the seam (weldSeam). Handy for left/right symmetric characters. |
| mod_displaceA | 置换修改器:按强度 strength 沿法线推开顶点(需配合贴图/灰度图才有丰富形状;纯强度为均匀外扩)。 [English] Displace modifier: push vertices along normals by strength (needs a map/grayscale to get rich shapes; pure strength just inflates uniformly). |
| mod_relaxB | 松弛修改器:迭代地把顶点拉向邻居平均位置,平滑网格、消除褶皱。 [English] Relax modifier: iteratively pull vertices toward their neighbours' average, smoothing the mesh and removing wrinkles. |
| mod_subdivideB | 细分修改器:按 size 把每个面细分为更小的面(经典细分,不改平滑度)。 [English] Subdivide modifier: split each face into smaller faces by size (classic subdivision, no smoothing change). |
| mod_extrudeB | 挤出修改器:把剖面/面沿轴挤出成实体。amount 为高度,segments 为分段,capStart/capEnd 控制两端封口。 [English] Extrude modifier: push a profile/face into a solid along an axis. amount is the height, segments the divisions, capStart/capEnd toggle end caps. |
| mod_latheA | 车削修改器:把剖面绕轴旋转成回转体(瓶、柱、碗)。degrees 默认 360 成闭环。 [English] Lathe modifier: revolve a profile around an axis into a solid of revolution (bottles, columns, bowls). degrees defaults to 360 for a closed object. |
| mod_sweepA | 扫掠修改器:沿路径扫一个截面成形。本工具仅添加修改器;如需自定义截面,用 model_sweep 并指定 section。
[English]
Sweep modifier: sweep a section along a path. This tool only adds the modifier; for a custom section use model_sweep with a |
| mod_pathdeformA | 路径变形修改器:让对象沿一条路径(path)变形。percent 为路径位置百分比,twist/rotation 控制扭转与旋转。 [English] PathDeform modifier: deform an object along a path. percent is the position along the path (0-100), twist/rotation add twist and rotation. |
| mod_weightednormalsA | 加权法线修改器:按面面积加权计算顶点法线,硬表面/低模烘焙法线时常用,比平滑更硬朗。 [English] Weighted Normals modifier: compute vertex normals weighted by face area. Common for hard-surface / low-poly normal bakes; gives a crisper look than smoothing. |
| mod_editpolyA | 编辑多边形修改器:把多边形编辑能力作为非破坏性修改器加入堆栈(之后可用 poly_* 思路配合子对象选择操作)。 [English] Edit Poly modifier: add non-destructive polygon editing to the stack (afterwards drive it with sub-object selections like the poly_* tools). |
| mod_editnormalsB | 编辑法线修改器:显式控制每个顶点的法线(可拆开/指定),常用于法线修复与硬边定制。 [English] Edit Normals modifier: explicit per-vertex normal control (break/assign), used for normal fixing and custom hard edges. |
| mod_smoothB | 平滑修改器:按阈值自动平滑(autoSmooth)或按角度平滑组平滑,柔化表面。 [English] Smooth modifier: auto-smooth by a threshold (autoSmooth) or smooth by angle, softening the surface. |
| model_extrude_splineA | 把样条线(图形)沿轴挤出成三维实体(添加 Extrude 修改器)。amount 为高度。 [English] Extrude a spline (shape) into a 3D solid along an axis by adding an Extrude modifier. amount is the height. |
| model_lathe_splineC | 把样条线绕轴旋转成回转体(添加 Lathe 修改器)。截面应是 2D 轮廓线。 [English] Revolve a spline around an axis into a solid of revolution by adding a Lathe modifier. The profile should be a 2D outline. |
| model_loftB | 放样(Loft 复合对象):用一条 path 样条作路径,一个或多个 shapes 作截面,扫出复杂曲面。path 与 shapes 都必须是已存在的图形对象名。
[English]
Loft compound object: use a |
| model_sweepA | 扫掠:沿路径样条扫一个截面(section)成形,添加 Sweep 修改器。省略 section 时使用默认矩形截面。section 必须是已存在的图形对象名。
[English]
Sweep: sweep a |
| mat_listA | 列出场景中所有材质:类名、名称、被多少对象引用(usedBy)。结果分页。改材质前先用它确认材质名,再传给 mat_get / mat_assign。 [English] List every material in the scene with its class, name and how many objects use it (usedBy). Paginated. Confirm the material name here before passing it to mat_get or mat_assign. |
| mat_getA | 读取一个材质的完整信息:类名、漫反射/高光/粗糙度/金属度/IOR/不透明度/自发光,以及所有贴图槽(按名字列出槽名、贴图类、位图路径)。名称可用 mat_list 查到。StandardMaterial 的 diffuse 在 PBR 灯光下会偏暗;PhysicalMaterial 用 Base Color + Metallic + Roughness。 [English] Read full details of a material: class, diffuse/specular/roughness/metallic/IOR/opacity/emission, plus every map slot (slot name, map class, bitmap path). Names come from mat_list. A StandardMaterial's diffuse looks wrong under PBR lighting; PhysicalMaterial uses Base Color + Metallic + Roughness. |
| mat_get_for_objectA | 读取一个或多个对象当前使用的材质详情。省略对象则使用当前选择。 [English] Read the material currently assigned to one or more objects. Omit objects to use the current selection. |
| mat_slotsA | 读取材质编辑器(Material Editor)的 24 个槽位,返回每个已占用槽的类名与名称。这是把材质放进编辑器、或在 mat_set_slot 之前查看空槽的入口。 [English] Read the 24 Material Editor slots, returning the class and name of each occupied slot. Use it to place a material into the editor or to find an empty slot before mat_set_slot. |
| mat_set_slotA | 把一个材质放进材质编辑器的指定槽位(1..24)。常用于把新建材质显示到编辑器里。 [English] Put a material into a Material Editor slot (1..24). Handy to surface a freshly created material in the editor. |
| mat_assignA | 把材质赋给对象。可传对象列表,省略则赋给当前选择(assign-to-selection)。Multi/Sub-Object 的逐面分配需要给对象设置面材质 ID,这里只做整体赋值,逐面请配合 poly 工具设置面 ID。 [English] Assign a material to objects; pass a list or omit to assign to the current selection (assign-to-selection). Per-face assignment of a Multi/Sub-Object material requires face material IDs on the object - this tool does whole-object assignment only. |
| mat_set_propertyA | 设置材质的任意命名属性,值会按目标属性的类型自动转换(颜色/数字/布尔/字符串)。当你要改的属性没有专用工具时用它。先用 get_class_properties 查准属性名。 [English] Set any named property of a material; the value is coerced to the target property's type (color/number/boolean/string). Use it for parameters without a dedicated tool. Check the exact property name with get_class_properties first. |
| mat_set_diffuseA | 设置材质的漫反射/基础色。对 StandardMaterial 写入 diffuse,对 PhysicalMaterial 写入 base_color,自动适配。颜色接受 [r,g,b](0-255)或 "#RRGGBB"。 [English] Set the diffuse/base colour. Writes diffuse for a StandardMaterial and base_color for a PhysicalMaterial, auto-adapting. Accepts [r,g,b] (0-255) or a "#RRGGBB" string. |
| mat_set_pbrA | 一次性设置 PBR 参数:基础色 + 金属度 + 粗糙度 + IOR(反射折射率)。只对 PhysicalMaterial 等 PBR 材质有效;StandardMaterial 没有这些属性会被忽略。 [English] Set PBR parameters in one call: base colour + metallic + roughness + IOR. Only meaningful on PhysicalMaterial and similar PBR materials; StandardMaterial lacks these and is skipped. |
| mat_set_specularB | 设置材质的高光颜色(StandardMaterial 的 specular,或无此属性时 reflection_color)。 [English] Set the specular colour (StandardMaterial's specular, or reflection_color when it has no specular). |
| mat_set_opacityA | 设置材质不透明度。注意 StandardMaterial 的 opacity 范围是 0..100,PhysicalMaterial 多为 0..1,传值时按目标材质约定给。 [English] Set material opacity. Note StandardMaterial's opacity is 0..100 while PhysicalMaterial is usually 0..1 - pass the value in the target material's range. |
| mat_set_emissionA | 设置材质自发光:颜色(PhysicalMaterial 的 emission_color 或 StandardMaterial 的 selfIllumColor)以及自发光强度 amount。 [English] Set material emission: a colour (PhysicalMaterial's emission_color or StandardMaterial's selfIllumColor) and an emission amount. |
| mat_set_sub_materialA | 给 Multi/Sub-Object 材质的某个子槽(index,从 1 开始)设置子材质。可新建一个 subClass 材质,或复用已存在的 sourceMaterial。 [English] Set a sub-material (index, 1-based) of a Multi/Sub-Object material. Creates a new subClass material or reuses an existing sourceMaterial. |
| mat_renameB | 重命名一个材质。 [English] Rename a material. |
| mat_deleteA | 从场景中删除一个材质:把所有引用它的对象材质设为空,并清空编辑器里对应的槽位。这会断开对象与材质的关联,但对象本身不会被删除。 [English] Delete a material from the scene: unassign it from every object that uses it and clear the matching editor slots. This detaches the material but does not delete the objects. |
| mat_duplicateA | 克隆一个材质(深拷贝),可选新名称,返回新材质名。用于在不破坏原材质的前提下改一套变体。 [English] Clone a material (deep copy) with an optional new name; returns the new material name. Use it to derive variants without touching the original. |
| mat_set_map_slotA | 把一个贴图挂到材质的命名槽位(例如 "diffuseMap" / "base_color_map" / "bumpMap")。可指定 mapClass(默认 Bitmaptexture)新建贴图,并用 path 指向位图文件。 [English] Attach a map to a named slot of a material (e.g. "diffuseMap", "base_color_map", "bumpMap"). Creates a map of mapClass (default Bitmaptexture) and points it at path. |
| mat_get_map_slotB | 读取材质某个命名槽位上的贴图:贴图类名与位图路径。 [English] Read the map on a named slot of a material: its class and bitmap path. |
| mat_create_standardA | 创建一个 StandardMaterial(经典标准材质),可选漫反射颜色,并可顺手赋给对象。在 PBR/物理灯光下它表现偏旧;新项目优先用 mat_create_physical。 [English] Create a StandardMaterial (classic standard) with an optional diffuse colour, optionally assigning it to objects. Looks dated under PBR/physical lighting; prefer mat_create_physical for new work. |
| mat_create_physicalA | 创建一个 PhysicalMaterial(PBR 金属/粗糙度工作流)。可设基础色、金属度、粗糙度,并可顺手赋给对象。这是现代 3ds Max 的默认材质。 [English] Create a PhysicalMaterial (PBR metal/roughness workflow) with optional base colour, metallic and roughness, optionally assigning it to objects. This is modern 3ds Max's default material. |
| mat_create_arnoldA | 创建一个 Arnold 材质(aiStandardSurface)。只有当本机安装了 Arnold 时才可用;否则返回 class_missing 错误。用 list_render_engines / does_class_exist 先探测。 [English] Create an Arnold material (aiStandardSurface). Only available when Arnold is installed on this machine - otherwise it returns a class_missing error. Probe first with list_render_engines / does_class_exist. |
| mat_create_vrayA | 创建一个 V-Ray 材质(VRayMtl)。只有当本机安装了 V-Ray 时才可用;否则返回 class_missing。先探测再调用。 [English] Create a V-Ray material (VRayMtl). Only available when V-Ray is installed - otherwise it returns class_missing. Probe before calling. |
| mat_create_coronaA | 创建一个 Corona 材质(CoronaMtl)。只有当本机安装了 Corona 时才可用;否则返回 class_missing。先探测再调用。 [English] Create a Corona material (CoronaMtl). Only available when Corona is installed - otherwise it returns class_missing. Probe before calling. |
| mat_create_fstormA | 创建一个 FStorm 材质(FStormMtl)。只有当本机安装了 FStorm 时才可用;否则返回 class_missing。先探测再调用。 [English] Create an FStorm material (FStormMtl). Only available when FStorm is installed - otherwise it returns class_missing. Probe before calling. |
| mat_create_genericA | 用任意材质类名创建材质(用 mcpEnsureClass 校验类存在)。适合创建没有专用工具的冷门材质;类名可通过 get_class_properties 探索。 [English] Create a material from any class name (validated with mcpEnsureClass). Use it for obscure materials that lack a dedicated tool; discover class names via get_class_properties. |
| mat_create_multi_subA | 创建一个 Multi/Sub-Object(多维/子对象)材质,指定子槽数量 count。子槽先用默认占位,再用 mat_set_sub_material 逐个填入。配合对象的面材质 ID 使用。 [English] Create a Multi/Sub-Object material with a given number of sub-slots (count). The slots start empty; fill them with mat_set_sub_material. Use with face material IDs on objects. |
| mat_create_blendC | 创建一个 Blend(混合)材质,用于把两种材质按遮罩混合。 [English] Create a Blend material that mixes two materials by a mask. |
| mat_create_shellacA | 创建一个 Shellac(虫漆)材质,用于叠加涂层效果。 [English] Create a Shellac material for layered coat effects. |
| map_create_bitmapA | 创建一个位图贴图(Bitmaptexture),可指定文件路径、是否真实世界缩放、U/V 平铺。这是最常用的贴图,挂在材质的命名槽位(如 diffuseMap)上。 [English] Create a bitmap texture (Bitmaptexture) with an optional file path, real-world scale and U/V tiling. The most common map, attached to a material's named slot (e.g. diffuseMap). |
| map_set_bitmap_pathA | 设置材质某个槽位上位图贴图的文件路径。若槽位上还没有贴图,会自动新建一个 Bitmaptexture。 [English] Set the file path of the bitmap map on a material's slot. If there is no map yet, a Bitmaptexture is created automatically. |
| map_create_checkerA | 创建一个棋盘格贴图(Checker),可选两个颜色。常用于测试 UV。 [English] Create a Checker map with two optional colours. Useful for testing UVs. |
| map_create_gradientA | 创建一个渐变贴图(Gradient),可选三个颜色。 [English] Create a Gradient map with three optional colours. |
| map_create_gradient_rampA | 创建一个渐变坡度贴图(Gradient Ramp),比普通渐变更灵活(多色标、多种类型)。 [English] Create a Gradient Ramp map, more flexible than a plain gradient (multiple flags, types). |
| map_create_noiseB | 创建一个噪波贴图(Noise),可选噪波类型(1=常规,2=分形,3=湍流)、尺寸、随机种子与两个颜色。 [English] Create a Noise map with optional noise type (1=regular, 2=fractal, 3=turbulence), size, seed and two colours. |
| map_create_falloffA | 创建一个衰减贴图(Falloff),常用于 Fresnel 边缘效果,可选两个颜色。 [English] Create a Falloff map, commonly used for Fresnel edge effects, with two optional colours. |
| map_create_color_correctA | 创建一个色彩校正贴图(Color Correction),可调节亮度等,用于后期调色。 [English] Create a Color Correction map (e.g. brightness) for look-dev colour grading. |
| map_create_normalB | 创建一个法线贴图(Normal Bump),用于把高模细节烘焙的法线应用到低模。 [English] Create a Normal Bump map to apply baked high-poly normals onto a low-poly mesh. |
| mat_library_loadA | 加载一个 .mat 材质库到当前场景:把其中的材质放进材质编辑器空槽,并返回材质名列表。这是复用工作室已有 look-dev 的标准方式。 [English] Load a .mat material library into the current scene: its materials are placed into empty Material Editor slots and their names returned. The standard way to reuse a studio's existing look-dev. |
| mat_library_saveA | 把一组材质保存为 .mat 材质库文件。省略 materials 时保存材质编辑器所有槽位上的材质。 [English] Save a set of materials to a .mat library file. Omit materials to save everything in the Material Editor slots. |
| uvw_mapA | 给对象添加 UVW 贴图修改器(UVW Map),支持平面/圆柱/球/方形包裹/立方体/按面/XYZ 映射,可设 U/V/W 平铺与尺寸。省略对象则作用于当前选择。 [English] Add a UVW Map modifier with planar/cylindrical/spherical/shrink-wrap/box/face/XYZ mapping and U/V/W tiling and size. Omit objects to affect the current selection. |
| uvw_unwrapA | 给对象添加 Unwrap UVW(UVW 展开)修改器,进入后可手动编辑 UV。省略对象则作用于当前选择。 [English] Add an Unwrap UVW modifier so UVs can be edited manually. Omit objects to affect the current selection. |
| uvw_quick_peelA | 给对象添加 Unwrap UVW 并尝试一键快速剥皮(quick peel)展开。展开需要 UVW 编辑器会话,若不可用会静默跳过,仅添加修改器。省略对象则作用于当前选择。 [English] Add Unwrap UVW and attempt a one-click quick peel. Peeling needs a UVW editor session and is skipped silently if unavailable (the modifier is still added). Omit objects to affect the current selection. |
| uvw_get_channelsA | 查询对象存在哪些 UV 贴图通道(返回受支持的通道编号列表)。省略对象则作用于当前选择。 [English] Report which UV map channels an object has (returns the supported channel indices). Omit objects to affect the current selection. |
| light_createA | 通用灯光创建:支持 omni / free_spot / spot(目标聚光) / directional(目标平行) / mr_area_omni / mr_area_spot,以及 FStorm/VRay/Corona 面积光(需对应渲染器安装)。目标型灯光会在给定位置创建并自动偏移目标点。共享参数:名称、位置、颜色、强度/倍增、投影、衰减、聚光锥角与半影。 [English] Generic light creation: omni / free_spot / spot (target) / directional (target) / mr_area_omni / mr_area_spot, plus FStorm/VRay/Corona area lights (require the renderer installed). Target-type lights are created at the given position with an offset target. Shared params: name, position, colour, intensity/multiplier, shadows, decay, cone angle and penumbra. |
| light_create_omniA | 创建一个泛光点光源(Omni)。灯光在给定位置创建,可选颜色、倍增、投影、衰减。 [English] Create an Omni light at the given position, with optional colour, multiplier, shadows and decay. |
| light_create_spotA | 创建一个目标聚光灯(Target Spot)。灯光在给定位置创建,目标点自动偏移;可设锥角与半影。 [English] Create a target Spot light at the given position with an auto-offset target. Set cone angle and penumbra. |
| light_create_directionalA | 创建一个目标平行光(Target Directional),类似太阳的平行光线。 [English] Create a target Directional light - parallel rays like the sun. |
| light_create_sunA | 创建一个日光系统(Daylight,含太阳+天空+罗盘),可用方位角/高度角定位太阳。Daylight 类需本机支持;方位/高度会尽力设置,不同版本属性名可能不同。 [English] Create a Daylight system (sun + sky + compass) positioned by azimuth/altitude. The Daylight class must be available; azimuth/altitude are set best-effort since the property names vary across releases. |
| light_create_areaA | 创建一个面积光(默认用 mental ray 面积光 mr_Area_Omni;若装了 VRay/Corona 也可)。面积光能产生柔和的阴影,适合室内布光。 [English] Create an area light (defaults to the mental ray mr_Area_Omni; VRay/Corona area lights also work if installed). Area lights produce soft shadows, good for interior lighting. |
| light_listA | 列出场景所有灯光:名称、类名、位置。结果分页。 [English] List every light in the scene: name, class and position. Paginated. |
| light_getA | 读取一个灯光的详情:位置、倍增/强度(跨版本兼容读取)、颜色、是否投影、是否启用。 [English] Read a light's details: position, multiplier/intensity (read defensively across releases), colour, shadow state and enabled flag. |
| light_setA | 修改一个灯光的属性:名称、颜色、倍增/强度、投影、启用、聚光锥角与半影、衰减、位置。强度在不同版本字段不同(multiplier 或 intensity),两个都接受,按目标灯光的字段写入。 [English] Modify a light: name, colour, multiplier/intensity, shadows, enabled, cone angle, penumbra, decay and position. Intensity differs across releases (multiplier vs intensity); both are accepted and written to whichever field the light has. |
| light_deleteA | 删除一个灯光。不可恢复,请谨慎调用。 [English] Delete a light. Not recoverable, use with care. |
| light_align_to_objectA | 把一个灯光对准某个对象:灯光移到对象上方,目标型灯光的目标点对准对象位置。 [English] Aim a light at an object: the light moves above the target and a target-type light's target snaps to the object's position. |
| light_set_sunA | 当场景存在日光/太阳系统(Daylight/Sunlight/IES_Sun)时,用方位角/高度角重新定位太阳。若不存在此类系统则返回 class_missing。 [English] Reposition the sun via azimuth/altitude when a Daylight/Sunlight/IES_Sun system exists in the scene. Returns class_missing if no such system is present. |
| cam_createA | 创建一个相机:free(自由)或 target(目标)。可设位置、目标点、视场角 fov。 [English] Create a camera: free or target. Set position, target and field-of-view. |
| cam_create_physicalB | 创建一个 Physical Camera(物理相机),可设焦距、光圈 f-stop、快门、ISO、景深 DoF、视场角。 [English] Create a Physical Camera with focal length, f-stop, shutter, ISO, depth of field and FOV. |
| cam_getA | 读取一个相机的详情:位置、视场角、焦距、是否为当前活动相机。 [English] Read a camera's details: position, field of view, focal length and whether it is the active viewport camera. |
| cam_setB | 修改相机的属性:名称、位置、目标点、视场角、焦距、光圈、快门、ISO、景深。 [English] Modify a camera: name, position, target, FOV, focal length, f-stop, shutter, ISO and DOF. |
| cam_look_throughA | 把当前活动视口切换为透过该相机观察(look-through)。 [English] Make the active viewport look through this camera. |
| cam_align_to_viewA | 把一个相机对齐到当前视口:相机位置与朝向匹配活动视图。目标相机会同步移动目标点。 [English] Align a camera to the current view: its position and orientation match the active view. A target camera's target is moved too. |
| cam_set_viewportA | 把一个相机设为活动视口(可指定第几个视口 viewport)。等价于进入该相机的视图。 [English] Make a camera the active viewport (optionally a specific viewport index). Equivalent to entering that camera's view. |
| cam_listA | 列出场景所有相机:名称、类名、位置。结果分页。 [English] List every camera in the scene: name, class and position. Paginated. |
| cam_deleteA | 删除一个相机。不可恢复,请谨慎调用。 [English] Delete a camera. Not recoverable, use with care. |
| env_getA | 读取环境设置:背景色、环境光颜色、背景贴图(类名)、当前曝光控制器。 [English] Read the environment: background colour, ambient colour, background map (class) and the active exposure control. |
| env_set_background_colorA | 设置场景背景色。颜色接受 [r,g,b](0-255)或 "#RRGGBB"。 [English] Set the scene background colour. Accepts [r,g,b] (0-255) or a "#RRGGBB" string. |
| env_set_background_mapB | 设置场景背景贴图(用 path 创建一个位图贴图作为 environmentMap)。 [English] Set the scene background map (creates a bitmap from path as the environmentMap). |
| env_set_ambientA | 设置环境光颜色(影响所有未照亮区域的补光)。颜色接受 [r,g,b] 或 "#RRGGBB"。 [English] Set the ambient light colour (fills unlit areas). Accepts [r,g,b] or "#RRGGBB". |
| env_set_exposureA | 设置曝光控制器:physical / logarithmic / automatic / linear / none,并可设曝光值 EV。none 表示移除曝光控制;physical 为 3ds Max 默认。 [English] Set the exposure control: physical / logarithmic / automatic / linear / none, with an optional exposure value (EV). none removes the control; physical is 3ds Max's default. |
| anim_set_keyA | 在指定帧为对象的某个属性写入一个关键帧(position / rotation / scale,或任意命名属性)。rotation 用欧拉角(度)表示。mode=relative 时在当前值上叠加。欧拉旋转无法插值超过 180°:车轮、转盘要改用 Quaternion/TCB 控制器,否则会出现瞬移。 [English] Write one keyframe for a property (position / rotation / scale, or any named property) at a given frame. Rotation is given as Euler angles in degrees. With relative=true the value is added on top of the current value. Euler rotation cannot interpolate past 180 degrees - spinning wheels and turntables must use a Quaternion/TCB controller or they will snap. |
| anim_set_keysA | 一次性为某个属性写入多个关键帧:keys 是 [{frame, value}] 列表。一个完整的行走循环用一次调用即可完成,比反复调 anim_set_key 高效得多。 [English] Write many keyframes for one property in a single call: keys is a list of {frame, value}. A whole walk cycle is one call, far cheaper than repeated anim_set_key invocations. |
| anim_get_keysA | 读取某个属性的所有关键帧(帧号、值、进出切线类型),支持 limit/offset 分页。 [English] Read every keyframe of a property (frame, value, in/out tangent type). Paginated with limit/offset. |
| anim_delete_keysA | 删除某个属性的关键帧。给定 frames 则只删这些帧,否则删除该轨道上的全部关键帧。 [English] Delete keyframes of a property. With frames, only those frames are removed; otherwise every key on the track is deleted. |
| anim_clear_animationA | 清除对象上的动画关键帧。给定 properties 只清这些轨道,否则清空 position/rotation/scale 三条变换轨道。 [English] Clear animation keys on an object. With properties only those tracks are cleared, otherwise the position / rotation / scale transform tracks are. |
| anim_offset_keysA | 把整条轨道在时间上整体平移 offset 帧(可为负),所有关键帧一起移动。 [English] Shift a whole track in time by offset frames (may be negative); every key moves together. |
| anim_scale_keysA | 时间拉伸整条轨道:以 pivotFrame 为锚点,把所有关键帧时间乘以 factor(factor<1 变快,>1 变慢)。 [English] Time-stretch a whole track about pivotFrame: every key time is multiplied by factor (factor<1 speeds up, >1 slows down). |
| anim_set_controllerA | 给某个属性指定控制器:Linear / Bezier / TCB / Euler / Position XYZ / List 等。位置用 bezier_position,旋转用 euler_xyz 或 tcb_rotation,标量用 bezier_float。切换控制器会清空该轨道已有的关键帧。 [English] Assign a controller to a property: Linear / Bezier / TCB / Euler / Position XYZ / List. position uses bezier_position, rotation euler_xyz or tcb_rotation, scalars bezier_float. Switching controllers clears existing keys on the track. |
| anim_get_controllerA | 返回某个属性当前使用的控制器类名及其关键帧数量。 [English] Return the controller class name currently used by a property and its key count. |
| anim_set_out_of_rangeB | 设置控制器在动画范围之外的行为:loop(循环)/ cycle(往复周期)/ pingpong(乒乓)/ constant(保持)/ linear(线性外推)。 [English] Set a controller's out-of-range behaviour: loop / cycle / pingpong / constant / linear. |
| anim_easeB | 设置某一帧关键帧的进出切线类型(smooth/linear/step/slow/fast)及可选手柄值,用于控制缓动。 [English] Set the in/out tangent type (smooth/linear/step/slow/fast) and optional handle values of the keyframe at a frame, to shape easing. |
| anim_bakeA | 把程序化/约束驱动的轨迹按帧采样并写入显式关键帧——这正是导出到游戏引擎前必须做的事。引擎无法求值 Max 的程序化控制器、约束、表达式,所以 FBX 导出前一定要先烘焙。返回写入的关键帧数量。 [English] Sample a procedural/constraint-driven track per frame and write explicit keyframes - this is exactly what you must do before exporting to a game engine. Engines cannot evaluate Max's procedural controllers, constraints or expressions, so ALWAYS bake before FBX export. Returns the number of keys written. |
| anim_bake_rangeA | 对整个层级(对象及其所有子对象)在帧范围内逐帧烘焙为显式关键帧。烘焙重骨骼/约束驱动的角色后再导出,可避免引擎端动画丢失。返回写入的关键帧数量。 [English] Bake an entire hierarchy (object and all descendants) into explicit keys over a frame range. Bake heavily rigged/constrained characters before export so the animation survives. Returns the number of keys written. |
| anim_set_interpolationA | 设置整条轨道(或指定帧)每个关键帧的插值切线类型:smooth/linear/step 等。 [English] Set the interpolation tangent type (smooth/linear/step ...) of every key on a track, or only the given frames. |
| anim_goto_frameA | 跳到指定帧(设置当前时间滑块位置)。不播放,仅定位。 [English] Jump to a frame (set the current time slider). Locates only, does not play. |
| anim_get_frameA | 读取当前时间轴帧号与时间值。做关键帧操作前先确认当前帧,避免把关键帧写错位置。 [English] Read the current timeline frame and time value. Check it before keying, otherwise keys land on the wrong frame. |
| anim_playC | 播放 / 暂停 / 停止动画。action=play 开始播放,pause 暂停,stop 停止。 [English] Play / pause / stop the animation. action=play starts, pause pauses, stop stops. |
| anim_play_previewA | 生成一段实时预览动画文件(avi/影序)。可指定输出路径与帧范围。生成的预览用于快速检查,不是最终渲染。 [English] Generate a real-time preview animation file (avi / image sequence). Output path and frame range are optional. The preview is for quick checks, not final render. |
| anim_get_key_statsA | 统计每个对象各变换轨道的关键帧数量,烘焙重角色前先评估规模很有用。支持分页。 [English] Count keyframes per object across transform tracks - useful to gauge the cost before baking a heavy rig. Paginated. |
| ctrl_listA | 列出对象所有可动画轨道及其控制器类型与关键帧数。排查『为什么这个属性没动』时先看它。 [English] List every animatable track of an object with its controller type and key count. Check it first when wondering why a property will not animate. |
| ctrl_set_valueA | 在指定帧把一个可动画轨道的值写入为关键帧(相对 anim_set_key 更偏底层,专用于控制器轨道)。 [English] Write a keyframed value to an animatable controller track at a frame (lower level than anim_set_key, aimed at controller tracks). |
| ctrl_set_propertyB | 设置对象的任意(含非动画)属性值,支持点号路径,如 material.diffuse。可选在指定帧写入。 [English] Set any object property (including non-animatable) with dotted paths such as material.diffuse. Optionally written at a given frame. |
| ctrl_add_listA | 给轨道加一个 List 控制器(把程序化噪声叠加在已有动画之上的标准做法)。例如位置轨道叠加 noise_position,再用 constraint_set_weight 调权重。 [English] Add a List controller to a track - the standard way to layer procedural noise on top of an existing animation. E.g. stack noise_position on a position track, then tune the weight with constraint_set_weight. |
| ctrl_wireB | 把两个对象的参数用表达式连线(Wire Parameters)。典型用法:车轮旋转由车体位移驱动。sourceProperty/targetProperty 是相对节点的点号路径,例如 position.x_position 或 rotation.controller.z_rotation。 [English] Wire two objects' parameters together with an expression (Wire Parameters). Classic use: a wheel's rotation driven by the car's position. sourceProperty / targetProperty are dotted paths relative to the node, e.g. position.x_position or rotation.controller.z_rotation. |
| ctrl_assign_expressionA | 给一个标量属性挂一个 Expression(表达式)控制器,用表达式驱动它。注意:表达式控制器对浮点/标量属性最可靠;变换轨道请改用 List 控制器加 Noise 层。 [English] Attach an Expression controller to a scalar property and drive it with an expression. Note: Expression controllers are most reliable on float/scalar properties; for transform tracks use a List controller with a Noise layer instead. |
| constraint_look_atA | 给对象加 LookAt 约束,使其始终朝向 target。可选 upNode 定上方向,keepOffset 保留初始朝向。 [English] Add a LookAt constraint so the object always faces target. Optional upNode sets the up direction; keepOffset preserves the initial orientation. |
| constraint_positionA | 给对象加 Position 约束,使其跟随 target 的位置(可多个目标加权混合)。 [English] Add a Position constraint so the object follows target's position (multiple targets can be blended by weight). |
| constraint_orientationB | 给对象加 Orientation 约束,使其匹配 target 的旋转。 [English] Add an Orientation constraint so the object matches target's rotation. |
| constraint_pathA | 给对象加 Path 约束,使其沿一条样条曲线运动。percent 是可在动画中驱动的运动百分比(0-100)。 [English] Add a Path constraint so the object follows a spline. percent is the animatable travel percentage (0-100) you can drive in the animation. |
| constraint_linkA | 给对象加 Link 约束,把对象在指定时间附着到 target(实现拾取/交接动画的关键)。 [English] Add a Link constraint, attaching the object to target at the current time - the key to pick-up / hand-off animations. |
| constraint_surfaceA | 给对象加 Surface 约束,使其贴附在 target 曲面(网格/面片)上并随曲面变形而移动。 [English] Add a Surface constraint so the object sticks to target's surface (mesh/patch) and moves as the surface deforms. |
| constraint_listA | 列出对象上所有约束(控制器类型为 *constraint 的轨道)及其目标。只读,支持分页。 [English] List every constraint on an object (tracks whose controller is a *constraint) and their targets. Read-only, paginated. |
| constraint_removeA | 移除对象某个属性上的约束,并把控制器恢复为默认的 Bezier 控制器(会丢失该约束产生的动画)。 [English] Remove the constraint on a property and reset its controller to the default Bezier controller (animation produced by the constraint is lost). |
| constraint_set_weightA | 设置约束中某个目标的权重(0-100,与 UI 一致)。多个目标混合时靠它分配影响力。 [English] Set the weight (0-100, like the UI) of a target in a constraint. With multiple targets this distributes influence between them. |
| rig_create_boneA | 从根位置沿 direction 方向创建一根骨骼,长度 length、宽 width、高 height。骨骼是绑定之基,先做这根再 rig_create_bone_chain 串成肢体。 [English] Create one bone from a root position along direction, with length, width and height. Bones are the basis of rigging - make one, then chain them with rig_create_bone_chain into a limb. |
| rig_create_bone_chainA | 在 start 与 end 两点之间创建 count 根骨骼串成一条链——几乎所有肢体(手臂、腿、脊柱)都由它构成。每根骨的枢轴落在分段起点,并自动父子链接。 [English] Create a chain of count bones between start and end - nearly every limb (arm, leg, spine) is built from this. Each bone's pivot sits at its segment start and they are auto parented. |
| rig_create_dummyA | 创建一个虚拟体(Dummy),绑定中常作为控制器/枢轴点。 [English] Create a Dummy helper, commonly used as a rig control / pivot point. |
| rig_create_point_helperA | 创建一个 Point 辅助体,轻量且常作 IK 目标或约束目标。 [English] Create a Point helper, lightweight and often used as an IK or constraint target. |
| rig_link_objectsA | 把对象父子链接到 parent,并保持其世界变换不变(即视觉位置/朝向不跳变)。 [English] Parent objects under parent while keeping their world transform unchanged (the visual position / orientation does not jump). |
| rig_set_bone_sizeA | 批量设置骨骼的宽/高(仅影响显示,不影响绑定)。 [English] Set the width / height of bones in bulk (display only, does not affect skinning). |
| rig_mirror_bone_chainA | 沿某轴镜像一整条骨骼链,并自动重命名 _L/_R——手臂/腿镜像最常用也最繁琐的手工活。原链保持不动,新建的镜像链带新名。 [English] Mirror a whole bone chain across an axis and auto-rename _L/_R - the most common yet tedious manual job when mirroring arms/legs. The original chain is left untouched; the mirrored chain gets new names. |
| rig_list_bonesA | 列出场景中所有骨骼(BoneGeometry)。只读,支持分页。可选 root 只列其子树。 [English] List every bone (BoneGeometry) in the scene. Read-only, paginated. Optional root limits the listing to its subtree. |
| rig_skin_addA | 给网格对象添加 Skin 修改器,为蒙皮做准备。 [English] Add a Skin modifier to a mesh object, preparing it for skinning. |
| rig_skin_add_boneC | 把一个骨骼加入对象的 Skin 修改器(可指定 rigid/weighted 初始模式)。 [English] Add a bone to the object's Skin modifier (with an optional rigid / weighted mode). |
| rig_skin_set_weightA | 设置单个顶点对单个骨骼的权重。注意:顶点权重被归一化到 1.0,把某骨骼设成 1.0 会抹掉其它骨骼影响。 [English] Set one vertex's weight for one bone. Note: vertex weights are normalised to 1.0, so setting one bone to 1.0 removes every other bone's influence on that vertex. |
| rig_skin_auto_weightB | 运行骨骼热(bone-heat)自动蒙皮权重——2015+ 可用。复杂网格上可能较慢,用 try/catch 保护。 [English] Run the bone-heat automatic skin weighting - available on 2015+. Can be slow on complex meshes; guarded with try/catch. |
| rig_skin_weight_tableA | 读取对象的蒙皮权重表(顶点 x 骨骼)。只读,支持分页。导出前核对权重很有用。 [English] Read the skin weight table (vertices x bones). Read-only, paginated. Handy to verify weights before export. |
| rig_skin_remove_boneA | 从对象的 Skin 修改器移除一根骨骼(该骨骼对所有顶点的影响一并消失)。 [English] Remove a bone from the object's Skin modifier (its influence on all vertices is gone too). |
| rig_skin_set_vertex_weightsA | 批量设置单个顶点对多根骨骼的权重(一组 {bone, weight})。配合归一化,可一次配好一个顶点的完整影响。 [English] Set one vertex's weights across many bones in bulk (a list of {bone, weight}). Together with normalisation this configures a vertex's full influence at once. |
| rig_ik_solverA | 给一根骨骼链加 IK 解算器:HI Solver / HD Solver / Spline IK。会创建并自动绑定 IK 目标(goal)。 [English] Add an IK solver to a bone chain: HI Solver / HD Solver / Spline IK. Creates and auto-binds the IK goal. |
| rig_set_ik_chainB | 调整骨骼链的 IK 参数:preferredAngle(首选弯折角)与 swivelAngle(极向量/扭曲角),单位是度。 [English] Tune a bone chain's IK parameters: preferredAngle (the favoured bend) and swivelAngle (pole/twist angle), in degrees. |
| rig_ik_goalA | 移动 IK 目标(goal)到指定位置;可选 frame 在该帧写入关键帧,从而驱动整条链。 [English] Move the IK goal to a position; with frame the move is keyed at that frame, driving the whole chain. |
| rig_spline_ikA | 给骨骼链加 Spline IK 解算器并绑定一条样条曲线,链会沿曲线分布(常用于尾巴、触手、绳索)。 [English] Add a Spline IK solver to a bone chain and bind a spline; the chain distributes along the curve (tails, tentacles, ropes). |
| rig_ik_enableB | 启用骨骼链上各骨骼的 IK(使其能被 IK 解算器驱动)。 [English] Enable IK on the bones of a chain (so they can be driven by the IK solver). |
| rig_ik_disableA | 禁用骨骼链上各骨骼的 IK(恢复为 FK 手动摆放)。 [English] Disable IK on the bones of a chain (back to manual FK posing). |
| rig_morpher_addA | 给对象加 Morpher 修改器,为变形目标(blendshape)动画做准备。 [English] Add a Morpher modifier to an object, preparing it for morph target animation. |
| rig_morpher_add_targetA | 向对象的 Morpher 添加一个变形目标网格(blendshape)。目标需与本体拓扑一致。 [English] Add a morph target mesh (blendshape) to the object's Morpher. The target must share the base mesh topology. |
| rig_morpher_set_valueB | 设置某个 Morph 通道的权重(0-100)以驱动变形;可选 frame 在该帧写入关键帧。 [English] Set a morph channel's weight (0-100) to drive the deformation; with frame the value is keyed at that frame. |
| rig_morpher_listA | 列出对象 Morpher 的所有通道名与当前值。只读,支持分页。 [English] List every morph channel name and its current value on an object. Read-only, paginated. |
| render_set_engineA | 按友好名称切换生产渲染器:scanline / arnold / vray / corona / fstorm / redshift / art / quicksilver。会先逐个探测候选类(用 mcpClassExists),若本机没有则报错并列出实际可用的渲染器。切换渲染器不会改变场景内容,但会重置部分渲染设置。 [English] Switch the production renderer by friendly name: scanline / arnold / vray / corona / fstorm / redshift / art / quicksilver. Each candidate class is probed with mcpClassExists; if the machine lacks it the call fails with a clear message listing the renderers this Max actually has. Switching does not alter the scene but may reset some render settings. |
| render_get_engineA | 返回当前生产渲染器的类名。 [English] Return the class name of the current production renderer. |
| render_get_settingsA | 返回渲染设置的快照:分辨率、像素比、输出路径与格式、时间范围类型、起止帧、选帧字符串、是否保存文件。用于确认导出/渲染前的配置。 [English] Return a snapshot of the render settings: resolution, pixel aspect, output path and format, time-range type, start/end frames, the selected-frames string and whether file saving is enabled. Use it to confirm the configuration before rendering. |
| render_set_resolutionA | 设置渲染分辨率(宽、高、像素比)。任一项省略则保持不变。 [English] Set the render resolution (width, height, pixel aspect). Omit any field to leave it unchanged. |
| render_set_outputA | 设置渲染输出文件路径与格式(png/jpg/tga/tif/exr/hdr)。会自动开启「保存到文件」。路径缺扩展名时会按格式补全。 [English] Set the render output file path and format (png/jpg/tga/tif/exr/hdr). Turns on "save to file" automatically. A missing extension is appended from the format. |
| render_set_qualityA | 设置一个通用的质量/采样旋钮,并尽可能写入渲染器特定的采样参数(aaSamples、samples 等)。不同渲染器的属性名差异很大,无法写入的会被忽略;用 render_get_settings 核对是否生效。 [English] Set a generic quality/sampling knob and, where the renderer exposes them, renderer-specific sampling properties (aaSamples, samples, ...). Property names vary greatly between renderers; anything it does not understand is silently ignored. Verify with render_get_settings. |
| render_set_frame_rangeA | 设置要渲染的帧范围:scene(活动时间段)/ single(单帧)/ range(起止帧)/ frames(选帧字符串)。single 可省略 mode 直接用 frame 指定帧号。 [English] Set which frames to render: scene (active time segment) / single (one frame) / range (start..end) / frames (a selected-frames string). For single you may skip mode and pass frame directly. |
| render_save_presetA | 把当前渲染预设保存为 .rps 文件。缺扩展名会自动补 .rps。 [English] Save the current render preset to a .rps file. A missing extension is completed to .rps automatically. |
| render_load_presetA | 从 .rps 文件载入渲染预设。文件不存在时报错。 [English] Load a render preset from a .rps file. Fails if the file does not exist. |
| render_stillA | 渲染当前(或指定)帧到文件,并返回解析后的输出路径与文件是否真的写出来了。渲染会阻塞 3ds Max,调用会一直等到完成。省略 path 时写到渲染输出目录。 [English] Render the current frame (or a named frame) to a file and return the resolved output path plus whether the file was actually written. Rendering blocks 3ds Max, so the call waits until it finishes. Omit path to render into the render output folder. |
| render_framesA | 渲染一串明确的帧号,每帧一个文件(文件名按帧号编号)。返回每个文件的写入结果。渲染一整批会非常慢,调用会阻塞直到全部完成。 [English] Render an explicit list of frames, one file per frame (numbered by frame index). Returns the write result for each file. A whole batch can take minutes and the call blocks until everything is done. |
| render_animationB | 渲染整个动画范围或其中的一个子区间,每帧一个文件。渲染整段会非常慢,调用阻塞直到完成。 [English] Render the whole animation range or a sub-range, one file per frame. Rendering a full sequence can take minutes; the call blocks until it finishes. |
| render_camera_viewA | 通过指定相机渲染一帧。相机名解析不到时报错。 [English] Render a single frame through a named camera. Fails if the camera name does not resolve to a node. |
| render_regionA | 只渲染画面上的一个矩形区域(像素坐标 x,y,width,height)——典型的「先看看这块灯光对不对」工作流。 [English] Render only a rectangular region of the frame in pixel coordinates x,y,width,height - the classic "check the lighting on this one area" workflow. |
| render_previewA | 生成一段预览动画文件(默认 .avi)。用于快速检查运动而不做正式渲染。 [English] Make a preview animation file (default .avi). Use it for a quick motion check without a full render. |
| render_batchB | 一次调用里排队渲染多个「相机 + 路径 + 帧」组合。jobs 是对象数组,每项含 camera、path、frame。返回每项的写入结果。整批会较慢,调用阻塞直到完成。 [English] Queue several camera/path/frame combinations in one call. jobs is an array of objects, each with camera, path and frame. Returns the write result per job. The whole batch is slow and the call blocks until done. |
| render_elements_listA | 列出当前场景已添加的渲染元素(ZDepth、Normal、ObjectID、Alpha、Reflection 等),支持 limit/offset 分页。 [English] List the render elements currently added to the scene (ZDepth, Normal, ObjectID, Alpha, Reflection, ...) with limit/offset pagination. |
| render_element_addA | 添加一个渲染元素:zdepth / normal / objectid / materialid / alpha / reflection / refraction / specular / diffuse / lighting / shadows / ao / sss / uv / velocity 等。ZDepth、Normal 等需要显式输出路径,否则渲染会静默跳过——可在此用 output 指定。 [English] Add a render element: zdepth / normal / objectid / materialid / alpha / reflection / refraction / specular / diffuse / lighting / shadows / ao / sss / uv / velocity. ZDepth, Normal and friends need an explicit output path or the render silently skips them - pass output here to set one. |
| render_element_removeA | 按索引或友好名移除一个渲染元素。 [English] Remove a render element by index or by friendly name. |
| render_element_set_outputA | 给一个渲染元素设置输出文件路径。ZDepth、Normal 等若不设路径,渲染会静默跳过。 [English] Set the output file path for a render element. Without a path, ZDepth, Normal and friends are silently skipped by the render. |
| viewport_captureA | 把当前活动视口抓取到一张图片文件并返回路径——这是 AI「看到」自己刚搭建的场景的主要方式。 [English] Grab the active viewport into an image file and return the path - this is how the AI gets to see what it just built. |
| viewport_capture_allA | 把当前所有视口拼到一张网格图里并保存。便于一次看清顶/前/透视图的布局。 [English] Capture every viewport into a single grid image and save it. Handy for seeing the top/front/perspective layout at once. |
| viewport_set_viewA | 切换活动视口为标准视图:top/bottom/front/back/left/right/orthographic/perspective/user。 [English] Switch the active viewport to a standard view: top/bottom/front/back/left/right/orthographic/perspective/user. |
| viewport_set_layoutA | 切换视口布局:单视图 / 水平双格 / 垂直双格 / 三格 / 四格 / 最大化。 [English] Switch the viewport layout: single / horizontal split / vertical split / three / quad / maximize. |
| viewport_zoom_extentsA | 把所有视口缩放到合适大小:selection=true 只框选当前选择,否则框整个场景。 [English] Zoom all viewports to fit: selection=true frames only the current selection, otherwise the whole scene. |
| viewport_set_shadingA | 设置活动视口的着色方式:wireframe / flat / shaded / realistic / edged(带边面)/ noedges。 [English] Set the active viewport shading mode: wireframe / flat / shaded / realistic / edged (edge faces on) / noedges. |
| viewport_statsA | 返回每个视口的分辨率、当前活动视口编号、当前视图类型与活动相机名。 [English] Return each viewport's resolution, the active viewport index, the current view type and the active camera name. |
| viewport_toggle_gridA | 显示或隐藏活动视口的网格。show=true 显示,false 隐藏。 [English] Show or hide the active viewport grid. show=true shows it, false hides it. |
| bake_textureA | Render To Texture:把选中对象当前材质的贴图烘焙到目标文件夹——把一个 Max 资产带外观送进游戏引擎最常用的工具。要求对象有 UVW 通道与合理的壳/偏移;否则会得到重叠 UV 与糊掉的贴图(可用 bake_set_output 先设输出)。 [English] Render To Texture: bake the selected objects' current material maps into a target folder - the single most used tool for getting a Max asset into a game engine with its look intact. The objects must have a UVW channel and a clean shell/offset, otherwise you get overlapping UVs and a smeared map. Set the output first with bake_set_output. |
| bake_aoB | 把环境光遮蔽(AO)烘焙成一张贴图。同 bake_texture 的要求:对象需有 UVW 通道与壳。 [English] Bake ambient occlusion (AO) into a single map. Same requirement as bake_texture: the objects need a UVW channel and a shell. |
| bake_normalsA | 把法线贴图从高模烘焙到低模壳(NormalMap)。需对象有 UVW 通道;高低模关系由 Max 的 RTT 投影设置决定。 [English] Bake a normal map from a high-poly cage to a low-poly shell (NormalMap). Requires a UVW channel; the high/low relationship is governed by Max's RTT projection setup. |
| bake_lightingA | 把灯光/完整贴图(LightingMap 或 CompleteMap)烘焙成贴图,用于静态光照。要求对象有 UVW 通道。 [English] Bake lighting / a complete map (LightingMap or CompleteMap) for static lighting. Requires a UVW channel on the objects. |
| bake_set_outputA | 设置烘焙的全局输出参数:文件夹、贴图尺寸、格式、文件名填充位数与模板(%s=对象名 %e=元素名)。 [English] Set the global bake output parameters: folder, map size, format, filename padding and template (%s=object name, %e=element name). |
| bake_objectsB | 底层烘焙调用:用显式的元素列表烘焙一组对象。elements 为必填(如 #("diffuse","normal"))。返回每个贴图的写入结果,缺失文件会列在 failures/written 里。 [English] Low level bake: bake a list of objects with an explicit element list. elements is required (e.g. ["diffuse","normal"]). Returns per-map write results; missing files appear in failures/written. |
| bake_get_settingsA | 返回烘焙的当前全局输出设置(文件夹、尺寸、格式、填充、模板)。 [English] Return the current global bake output settings (folder, size, format, padding, template). |
| export_fbxA | 主力导出:FBX,可选 Unity/Unreal/Maya 预设、只导出选择、烘焙动画、动画开关、上轴与单位。警告:units=automatic 且场景是 1 单位时,会导出成 1 单位模型——Unity 与 Unreal 都用米,所以先用 set_units 设好单位比例再导出。 [English] The workhorse: FBX, with optional Unity/Unreal/Maya preset, selection-only, animation baking, animation toggle, up-axis and units. WARNING: with units=automatic and a 1-unit scene you export a 1-unit model - both Unity and Unreal expect metres, so set the unit scale first with set_units before exporting. |
| export_objA | 导出 Wavefront OBJ(可选只导出选择)。无动画/无材质实例,适合静态网格。 [English] Export a Wavefront OBJ (optionally selection only). No animation or material instances - fine for static meshes. |
| export_gltfA | 导出 glTF / GLB。glTF 是插件,若本机未安装会直接报错(err.class_missing)。 [English] Export glTF / GLB. glTF is a plugin - if this Max lacks it the call fails with err.class_missing. |
| export_usdB | 导出 USD。USD 是插件,若本机未安装会直接报错(err.class_missing)。 [English] Export USD. USD is a plugin - if this Max lacks it the call fails with err.class_missing. |
| export_abcA | 导出 Alembic (.abc)。Alembic 是插件,若本机未安装会直接报错(err.class_missing)。 [English] Export Alembic (.abc). Alembic is a plugin - if this Max lacks it the call fails with err.class_missing. |
| export_stlA | 导出 STL(3D 打印/逆向常用)。若本机没有对应导出器会报错。 [English] Export STL (common for 3D printing / reverse engineering). Fails if this Max has no matching exporter. |
| export_3dsA | 导出旧的 3DS 格式。若本机没有对应导出器会报错。 [English] Export the legacy 3DS format. Fails if this Max has no matching exporter. |
| export_engine_presetA | 一键为指定目标引擎选好格式与选项的便捷调用:unity / unreal / godot / maya / blender / generic。目前统一走 FBX 并套用对应上轴与预设(Blender/Godot 也用 FBX,更稳)。 [English] One call that picks the right format and options for a named target engine: unity / unreal / godot / maya / blender / generic. Currently routes through FBX with the matching up-axis and preset (Blender/Godot also use FBX for robustness). |
| export_selectionA | 把当前选择按文件扩展名对应的格式导出(引擎未知时很有用)。导出器不存在会报错。 [English] Export the current selection using the format implied by the file extension (handy when the engine is unknown). Fails if the exporter for that extension is missing. |
| export_get_last_reportA | 返回上一次导出调用的结果摘要(路径、预设等)。便于排查导出失败。 [English] Return the result summary of the last export call (path, preset, ...). Useful for troubleshooting a failed export. |
| import_fbxA | 导入 FBX。file 不存在则报错;merge=true 时合并进当前场景,否则替换。 [English] Import an FBX. Fails if the file is missing; with merge=true it merges into the current scene, otherwise it replaces it. |
| import_objB | 导入 Wavefront OBJ。file 不存在则报错;支持 merge。 [English] Import a Wavefront OBJ. Fails if the file is missing; merge is supported. |
| import_gltfA | 导入 glTF / GLB。glTF 是插件,若本机未安装会直接报错(err.class_missing)。 [English] Import glTF / GLB. glTF is a plugin - if this Max lacks it the call fails with err.class_missing. |
| import_usdA | 导入 USD。USD 是插件,若本机未安装会直接报错(err.class_missing)。 [English] Import USD. USD is a plugin - if this Max lacks it the call fails with err.class_missing. |
| import_merge_sceneA | 把一个文件合并进当前场景(不会清空现有对象)。按扩展名探测对应导入器,缺失则报错。 [English] Merge a file into the current scene without clearing existing objects. The importer is probed from the extension; missing importers fail with err.class_missing. |
| import_get_formatsA | 探测本机实际可用的导入/导出插件:用 mcpClassExists 检查 FBX/OBJ/glTF/USD/Alembic/STL/3DS 等类。在依赖特定格式前先调用它,避免盲猜。 [English] Report which importer/exporter plugins this Max can actually use: mcpClassExists is checked against the FBX/OBJ/glTF/USD/Alembic/STL/3DS classes. Call it before depending on a specific format instead of guessing. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 375 tools
With 375 tools there is substantial overlap. Examples: create_primitive vs the many create_box/sphere/cylinder/cone/torus/teapot/plane/tube/pyramid/hedra/geosphere/capsule tools; set_property_value/ctrl_set_property/get_property_value all do arbitrary property access; poly_set_vertex and poly_move_vertices overlap; render_preview and anim_play_preview both generate preview animations; export_engine_preset/export_selection overlap with format-specific exporters. The generic escape hatches (execute_maxscript, execute_python) also blur boundaries with every other tool, making selection harder.
There is a strong prefix-group convention: create_*, poly_*, mod_*, mat_*, map_*, anim_*, rig_*, render_*, viewport_*, export_*, import_*, cam_*, light_*, env_*, bridge_*, scene_*, uvw_*. However, there are notable deviations: generic create_primitive alongside 20 specific create_* tools, model_* vs mod_* subdivisions, convert_to_editable_* using a different verb style than the poly_* tools, and ctrl_*/constraint_* overlapping with anim_*. The pattern is readable but not consistently applied.
375 tools is an extreme count for a single MCP server. While 3ds Max is a large domain, the server exposes nearly every operation plus generic escape hatches, which overwhelms an agent's ability to navigate. Many tools could be consolidated (e.g., a single create_primitive with parameters vs dozens of create_* wrappers, or generic property/modifier tools instead of dozens of specialized variants). This is far beyond a well-scoped tool surface.
The tool surface is exceptionally complete, covering scene management, modeling, polygon editing, modifiers, materials, maps, UVs, lights, cameras, environment, animation, rigging, skinning, rendering, baking, viewports, import/export, and file operations. Generic escape hatches (execute_maxscript, execute_python, create_primitive, mod_add, mat_create_generic, get/set_property_value) fill any remaining gaps. Common workflows from asset creation to engine export are fully supported with no obvious dead ends.