Render.ru

автоматическое назначение разных материалов

Кирка

Активный участник
Рейтинг
11
#1
Скажите пожалуйста есть ли способ на несколько объектов назначить разные новые материалы автоматически. Объектов много, и не хочется каждый выделять и назначать материал, потом выбирать новый и назначать другой новый материал и снова и снова....

или на один скомбайненый объект состоящий из разных не сшитых между собой кусков.
Чтобы на каждый такой кусок как на отдельную модель назначить разный материал.
 
Г

Григорий Филипов

Guest
#2
поищите скрипты на просторах, наверняка кто-то писал
 

Ванька Гудной

Активный участник
Рейтинг
8
#4
Если на разные меши, то написать скриптец, который перебирает выбранные меши и ляпает на них новосозданные материалы. (Казалось бы, есть ведь высокоуровневая команда hyperShade -assign, но она отработает лишь под курсором на одном объекте из выделения, а если перебирать циклом, то придется вручную создавать связку шейдер+шейдинггруп и коннектить атрибуты).
Вот у меня так получилось:
Perl:
string $sel[] = `ls -sl`;    // получить имена объектов под выделением и запхать их в массив
string $obj;    // тупа объявление переменной под выбранный объект
for ($obj in $sel) {    // тупа цикл
    // шейдера еще нет, надо его создать
    string $sn = `shadingNode -as lambert -n "suxxx"`;    // название сам придумай
    // и шейдинг-группу тоже
    string $sg = `sets -r 1 -nss 1 -em -n "suxx_ShadingGroup"`;    // тут тоже название поменяй. Или оставь
    // и подрубить эти две ноды друг к другу. Как это выглядит, смотри слева в ноде едиторе
    connectAttr -f ($sn + ".outColor") ($sg + ".surfaceShader");
    // и обязательно выбрать объект, потому что выделение уже сбросилось
    select -r $obj;
    // лишь после этого можно назначить кубикам материал
    hyperShade -assign $sn;
    // тупа принтф для информативности, больше никаких проверок и предупреждений
    print ("  Material '" + $sn + "' was created and assigned to object '" + $obj + "'\n");
}
Безымянный.png

Если стоит задача так обработать скомбайненный меш и сохранить его атрибуты в первозданном виде, то это уже сложно и нужен дрочь, иначе задача сводится к тому же детачу и коду выше.
 
Сверху