You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:编写MEL脚本实现Maya多条曲线合并的方案

解决MEL脚本合并多条曲线的问题

先上完整可运行的脚本:

// 获取选中对象,保留完整路径避免重名冲突
string $selected[] = `ls -selection -long`;
string $curveTransforms[] = {};

// 遍历选中对象,筛选出所有包含曲线的transform节点
for ($item in $selected) {
    string $nodeType = `nodeType $item`;
    // 处理选中的曲线shape节点
    if ($nodeType == "nurbsCurve") {
        string $parent[] = `listRelatives -parent $item`;
        if (size($parent) > 0 && !stringArrayContains($parent[0], $curveTransforms)) {
            appendStringArray($curveTransforms, $parent);
        }
    }
    // 处理选中的transform节点,检查是否包含曲线shape
    else if ($nodeType == "transform") {
        string $shapes[] = `listRelatives -shapes -type "nurbsCurve" $item`;
        if (size($shapes) > 0 && !stringArrayContains($item, $curveTransforms)) {
            appendStringArray($curveTransforms, $item);
        }
    }
}

// 校验选中数量
if (size($curveTransforms) < 2) {
    error "请至少选中两条不同的曲线对象!";
}

// 目标父节点:首个有效曲线transform
string $targetParent = $curveTransforms[0];

// 合并曲线并清理空节点
for ($i = 1; $i < size($curveTransforms); $i++) {
    string $sourceTransform = $curveTransforms[$i];
    string $sourceShapes[] = `listRelatives -shapes -type "nurbsCurve" $sourceTransform`;
    // 逐个将shape节点以shape-parent方式移到目标父节点,保持世界位置不变
    for ($shape in $sourceShapes) {
        parent -s -r $shape $targetParent;
    }
    // 删除空transform节点
    delete $sourceTransform;
}

print ("已成功将" + (size($curveTransforms)-1) + "条曲线合并到" + $targetParent + "下!\n");

关键问题拆解

1. 区分transform与shape节点

  • 用nodeType $item直接判断节点类型:
    • 若为nurbsCurve,通过listRelatives -parent获取其所属的transform节点
    • 若为transform,用listRelatives -shapes -type "nurbsCurve"验证是否包含曲线shape,排除非曲线的空transform
  • 用stringArrayContains避免重复添加同一transform(比如同时选中了shape和它的父节点)

2. 正确使用parent -s命令

  • 必须加-s参数:实现shape级别的父子关系,让曲线shape直接成为目标transform的子节点,而非把整个transform嵌套进去
  • 配合-r参数:保持曲线在世界空间的位置不变,避免合并后曲线错位

3. 删除空transform节点

  • 移走所有shape节点后,原transform已无有效子节点,直接用delete命令清理即可

内容的提问来源于stack exchange,提问作者Ralf_Reddings

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 12:33:18