maya删除父节点,一键全选

目录

maya删除所有动画,pthon脚本

mel指令 删除父节点

mel指令 设置t-pose

python指令 测试ok

一键选择所有的子节点

FBX批量删除父节点


maya删除所有动画,pthon脚本

import maya.cmds as cmds

def delete_all_animations():
    # 获取所有类型的动画曲线节点
    anim_curves = cmds.ls(type='animCurve')
    
    # 如果存在动画曲线,删除它们
    if anim_curves:
        cmds.delete(anim_curves)
        print("所有动画曲线已删除。")
    else:
        print("没有找到动画曲线节点。")

# 调用函数执行删除
delete_all_animations()

mel指令 删除父节点

string $parentNodeName = "f_avg_root";
string $children[] = `listRelatives -children $parentNodeName`;

for ($child in $children) {
    parent -w $child;
}

delete $parentNodeName;

mel指令 设置t-pose

select -r f_avg_Pelvis f_avg_L_Hip f_avg_L_Knee f_avg_L_Ankle f_avg_L_Foot f_avg_R_Hip f_avg_R_Knee f_avg_R_Ankle f_avg_R_Foot f_avg_Spine1 f_avg_Spine2 f_avg_Spine3 f_avg_Neck f_avg_Head f_avg_L_Collar f_avg_L_Shoulder f_avg_L_Elbow f_avg_L_Wrist f_avg_L_Hand f_avg_R_Collar f_avg_R_Shoulder f_avg_R_Elbow f_avg_R_Wrist f_avg_R_Hand ;
        
        string $selToTpose[] =`ls -sl`;
        
        for ($each in $selToTpose)
        
        {
            setAttr ($each +".r") 0 0 0 ;
            setKeyframe $each;
        }

        currentTime 0 ;

python指令 测试ok

import maya.cmds as cmds

node_name="f_avg_root"
# 假定父节点的名称是 "parent_node"
children = cmds.listRelatives(node_name, children=True) or []
 
# 解除父级关系,使子节点成为顶级节点
for child in children:
    cmds.parent(child, world=True)
 
# 删除父节点
cmds.delete(node_name)


一键选择所有的子节点

把这个mel指令拖拽到工具架里面,取个名字,

调用方法:选择根节点,然后点击按钮,就全选所有子节点了。

// 获取当前选中的节点列表,选择第一个节点作为父节点
string $selection[] = `ls -sl`;
if (size($selection) > 0) {
    string $parentNode = $selection[0];

    // 选中父节点和其所有子节点
    select -r -hi $parentNode;
} else {
    print("No objects selected. Please select a parent node first.\n");
}

FBX批量删除父节点

自动创建父目录

global proc processMotionCaptureData() {
    string $sourcePath = "E:/20240326/output/";
    string $outputPath = "E:/20240326/output1/";
    string $fbxFiles[];

    if (!`filetest -d $outputPath`) {
        // mkdir has parent dir
        string $command = "mkdir \"" + $outputPath + "\"";
        system($command);

        // string $command = "mkdir -p \"" + $outputPath + "\"";
        // system($command);
    }

    $fbxFiles = `getFileList -folder $sourcePath -filespec "*.fbx"`;

    for ($file in $fbxFiles)
    {
        string $sourceFile = ($sourcePath + "/" + $file);

        file -import -type "FBX" -ignoreVersion -ra true -mergeNamespacesOnClash false -namespace "_tempNamespace" -options "fbx" -pr -importTimeRange "combine" $sourceFile;

        currentTime 0 ;
        select -r f_avg_Pelvis ;

        parent -w;
        
        
        delete f_avg_root;
        select -cl;
		
		string $outputFileName = $file;

        file -force -options "groups=1;ptgroups=1;materials=1;smoothing=1;normals=1" -type "FBX export" -pr -ea ($outputPath + "/" + $outputFileName);
		
    }
}

processMotionCaptureData();

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI算法加油站

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值