2015-11-26 3 views
1

Я искал в Интернете около 6 часов без везения по этой проблеме.Maya Python/MEL скрипт для замены/замены материала

В autodesk maya (2016) Я хочу поменять/заменить материалы из стандартного материала phong под названием «dg_plastic» на другой вид материала с названием «пластик».

  • Стандартный материал phong будет иметь предопределенное имя, как в приведенном выше примере.
  • У нас есть библиотека готовых материалов с заранее определенными именами для выбора.

Есть ли способ написать сценарий в Python или MEL, чтобы решить эту проблему?

Спасибо!

+0

Вы пытаетесь применить новый материал к материалам, которые уже имеют материалы, назначенные на сцене? – theodox

ответ

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); 

Должна быть возможность для Вас, чтобы вновь цели это для ваших нужд.

Смежные вопросы