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

如何编写Maya脚本实现将选中的多个对象或节点父化到特定组,或自动将名称含Crowd的对象移动到对应组?

Maya实用脚本:批量父化与自动归类工具

这里有两个针对你需求的Maya Python脚本,我做了简单的容错处理,使用起来很方便:

功能一:选中对象批量父化到指定组

这个脚本可以把你当前选中的所有对象,统一父化到你指定名称的组里,如果目标组不存在,会自动帮你创建,省得手动操作。

import maya.cmds as cmds

def parent_selected_to_group():
    # 获取当前选中的对象
    selected_objs = cmds.ls(selection=True, long=True)
    if not selected_objs:
        cmds.warning("请先选中需要父化的对象!")
        return
    
    # 弹出输入框让用户指定组名
    dialog_result = cmds.promptDialog(
        title="设置目标组",
        message="请输入目标组的名称:",
        button=["确定", "取消"],
        defaultButton="确定",
        cancelButton="取消",
        dismissString="取消"
    )
    
    if dialog_result == "确定":
        target_group_name = cmds.promptDialog(query=True, text=True)
        if not target_group_name:
            cmds.warning("组名称不能为空!")
            return
        
        # 检查组是否存在,不存在则创建
        if not cmds.objExists(target_group_name):
            target_group_name = cmds.group(empty=True, name=target_group_name)
        
        # 批量父化选中对象到目标组
        cmds.parent(selected_objs, target_group_name)
        print(f"已成功将 {len(selected_objs)} 个对象父化到组 *{target_group_name}*")

# 执行脚本
parent_selected_to_group()

使用步骤:

  • 在Maya中选中需要处理的所有对象
  • 打开脚本编辑器,粘贴这段代码并运行
  • 在弹出的对话框中输入目标组的名称,点击确定即可完成操作

功能二:自动识别并归类含"Crowd"的对象

这个脚本会自动扫描场景中所有名称包含Crowd的对象,将它们移动到名为Crowd_Collection的组中(组不存在时自动创建),无需手动筛选对象。

import maya.cmds as cmds

def auto_move_crowd_objects():
    # 查找所有名称包含"Crowd"的对象
    crowd_objects = cmds.ls("*Crowd*", long=True)
    target_group = "Crowd_Collection"
    
    # 过滤掉已经在目标组中的对象,避免重复操作
    if cmds.objExists(target_group):
        crowd_objects = [obj for obj in crowd_objects if target_group not in cmds.listRelatives(obj, parent=True, fullPath=True)]
    
    if not crowd_objects:
        cmds.warning("场景中未找到名称包含'Crowd'的对象!")
        return
    
    # 创建目标组(如果不存在)
    if not cmds.objExists(target_group):
        target_group = cmds.group(empty=True, name=target_group)
    
    # 批量移动对象到目标组
    cmds.parent(crowd_objects, target_group)
    print(f"已成功将 {len(crowd_objects)} 个含'Crowd'的对象移动到组 *{target_group}*")

# 执行脚本
auto_move_crowd_objects()

使用步骤:

  • 直接在Maya脚本编辑器中粘贴并运行这段代码
  • 脚本会自动完成扫描和归类操作,结果会在脚本编辑器的输出窗口显示

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 21:37:30