gpt4 book ai didi

while-loop - 如何在MEL脚本中获取根节点?

转载 作者:行者123 更新时间:2023-12-02 04:33:47 24 4
gpt4 key购买 nike

我遇到过一段现有的代码可以做到这一点,但我认为一定有更好的方法。因此,我需要在 Autodesk Maya 中获得最高级别的网格节点。

// List all mesh objects
string $nodess[] = `ls -type mesh` ;

// Replace existing items on active list with this
select -r $nodess[0] ;

int $i = 1 ;

while ($i < 30) {
// Pick up the tree 30 times
pickWalk -d up ;
$i++ ;
}

// List all selected objects
string $rootNode[] = `ls -sl` ;

// Clear selection
select -cl ;

string $myroot = $rootNode[0] ;

最佳答案

要获取根,只需对长名称进行字符串分割即可:

global proc string get_root(string $node)
{
string $longname[] = ls("-l", $node);
string $tokens[];
tokenize($longname[0], "|", $tokens);
return $tokens[0];
}

当然,Python 更优雅:

root = cmds.ls(node, l=True)[0].split("|")[0]

您还可以通过调用listRelatives -p来重写原始函数,直到它不返回任何内容;但字符串方法更简单

关于while-loop - 如何在MEL脚本中获取根节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22457183/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com