用于替换/交换材料的Maya Python / MEL脚本

时间:2015-11-26 10:33:54

标签: python maya mel

我在网上搜索了大约6个小时而没有运气。

在Autodesk maya(2016)中,我想换掉/替换名为" dg_plastic"的标准phong材料中的材料。另一种名为" plastic"。

的材料
  • 标准的phong材质将具有预定义的名称,如上例所示。
  • 我们有一个现成材料库,可以选择预先定义的名称。

有没有办法用Python或MEL编写脚本来解决这个问题?

谢谢!

1 个答案:

答案 0 :(得分:0)

CreativeCrash上有一个旧线程处理此问题。我在那里呈现的脚本如下所示(有关详细信息,请参阅原始主题):

proc connectAndSet(string $original, string $target){
    $conn = `connectionInfo -sfd $original`;
    if ($conn != ""){
        connectAttr -force $conn $target;
    } else {
        connectAttr -force $original $target;
        disconnectAttr $original $target;
    }
}

proc convertPhongToMia(string $original){
    $target = `mrCreateCustomNode -asShader "" mia_material_x`;

    connectAndSet($original + ".color", $target + ".diffuse");
    // ... any other mapping you need comes here...
    // a bit weak test should work for simple materials,
    // not used in special context
    $sg = `connectionInfo -dfs ($target + ".message")`;
    $sgr = `match "[^.]*" ((string)$sg[0])`;
    $sg0 = `connectionInfo -dfs ($original + ".outColor")`;
    $sgr0=`match "[^.]*" ((string)$sg0[0])`;
    sets -e -forceElement $sgr `sets -q $sgr0`;
    delete $original;
    rename $sgr $sgr0;
    rename $target $original;
}

for ($item in `ls -et phong`)
    convertPhongToMia($item);

你应该可以根据自己的需要重新定位。