骨骼批量添加约束
global proc asCustomJointsConnect ()//全局函数//
{
string $tempString[];//给数组定义字符串//
$tempString=`listRelatives -ad -type joint UE4_xxx_Geo`;//数组赋值:"UE4_xxx_Geo"层级以下的所有骨骼类型//
$tempString[size($tempString)]="UE4_xxx_Geo";//数组增加字符"UE4_xxx_Geo"//
for ($i=0;$i<size($tempString);$i++)//for循环,循环直到数组最后一个对象//
{
parentConstraint -mo (`substitute "UE4_" $tempString[$i] ""`) $tempString[$i];//加父子约束;把字符串$tempString[$i]中的"UE4_"替换为""//
scaleConstraint -mo (`substitute "UE4_" $tempString[$i] ""`) $tempString[$i];//加缩放约束;把字符串$tempString[$i]中的"UE4_"替换为""//
}
print "// GameSkeleton connected \n";
}
//运行后,输入"asCustomJointsConnect"出效果//
适用于两套相同层级的只有部分不同命名的骨骼,比如“UE4_A_Joint”对“A_Joint”加约束。
“UE4″可以换为任意的前缀“UE4_xxx_Geo”同理可以换为其他父层级,当然需要稍微修改代码。
ps:我项目需要把adv的那一套骨骼复制出来一套,单独跟模型组打个组成为资产组然后导出fbx,所以每次都要复制一套骨骼出来加一套约束,有了这个mel脚本就可以一键批量约束了。