Render.ru

Аналог максовского параметра "Visible to camera" в Мае

#1
Коллеги здравствуйте.

Маю не знаю вообще. Стоит задача отрендерить уже готовую сцену, но по объектам.
Обычно в Максе я выделяю объект захожу в Object Properties и снимаю/ставлю галочку напротив "Visible To Camera".

Подскажите пожалуйста, желательно подробнее, где в Мае найти аналог данного параметра.

Спасибо, за внимание.
 

Ken_Zin

Мастер
Рейтинг
108
#2
Выделяешь объект, открываешь редактор атрибутов (Ctrl+A), переходишь в узел shape (второй с лева), открываешь вкладку render stats , там множество полезных атрибутов, в том числе и primary visibility (то что тебе надо).
 
#4
Появились следующие сложности.

Как убрать/поставить Primary Visibility сразу нескольким объектам? (Выделяю несколько объектов, снимаю/устанавливаю visibility, а этот параметр применяется только к последнему выбранному объекту.) К группам тоже этот параметр не применяется, приходится в outliner'e выбирать каждый объект отдельно. Это очень долго ибо в сцене достаточно мелких объектов.
 

iNOD

Активный участник
Рейтинг
18
#5
Открой скрипт эдитор скопируй туда
Код:
{
pickWalk -d down;
string $pv[] = `ls -sl`;
string $pvobj;
for($pvobj in $pv)
{
setAttr ($pvobj + ".primaryVisibility") 0;
}
}
За тем выдели что скопировал, зажми колесико мышки и перетащи на шелф.
Теперь выделяешь все свои объекты к которым хочешь применить невидимость и жмешь на кнопку :)
 

Ken_Zin

Мастер
Рейтинг
108
#6
Выдели все нужные объекты, иди в windows > genral editors > attribute spread sheet , в этом редакторе перейди на вкладку render, там ты найдёшь столбец "primiry visibility" , щёлкни прямо по надписи "primary visibility" и нажми "0", после этого у всех выбранных объектов primary visibility выставиться в off .
 
Рейтинг
47
#7
iNOD, предложенный скрипт к сожалению малоэффективен. Во-первых, это не Toggle, срабатывает только на Off. Во-вторых, не функционирует при выделении группы (нода Group).
Pacmaniac, "attribute spread sheet" очень полезная панелька! Пожалуй есть смысл вынести ее в одно из многих маркинг меню.
 
#8
Ого, коллеги, очень много благодарностей за отзывчивость.

iNOD, MEL для меня пока кузькина грамота, но в любом случаи очень спасибо. На будущее обязательно пригодится.

Pacmaniac, именно то, что надо.

Александр Чернега, ну почему же мало эффективен? Можно ручками подменивать в скрипте 0 на 1 и будет работать наоборот ))

P.S. Pacmaniac второй раз, увы поблагодарить не получается. Скузи. ((
 

iNOD

Активный участник
Рейтинг
18
#9
Вот написал по бырому скрипт и для груп тоже работает :)

Код:
{
string $window = `window -title "cc" renderop`;

string $rnmBnFL = `columnLayout -adjustableColumn true `;
    frameLayout -label "off/on" -borderStyle "etchedIn";
    rowLayout -nc 2 -cw2 50 50;
    		button -label "off" -c offp -w 50;
    		button -label "on" -c onp -w 50;
		setParent $rnmBnFL;

		frameLayout -borderStyle "etchedIn" -h 180 -w 150 -label "options";
			string $mf = `formLayout`;

		checkBox  -label "Cast Shadows" cs;
		checkBox  -label "Receive Shadows" rs;
		checkBox  -label "Motion blur" mb;
		checkBox  -label "Primary Visibility" pv;
		checkBox  -label "Smooth Shading" ss;
		checkBox  -label "Visible in Reflection" viref;
		checkBox  -label "Visible in Refraction" virefra;
		checkBox  -label "Double Sided" ds;


	formLayout -e

		-attachForm cs "top" 0
		-attachForm cs "left" 2

		-attachForm rs "top" 20
		-attachForm rs "left" 2

		-attachForm mb "top" 40
		-attachForm mb "left" 2
		
		-attachForm pv "top" 60
		-attachForm pv "left" 2
		
		-attachForm ss "top" 80
		-attachForm ss "left" 2
		
		-attachForm viref "top" 100
		-attachForm viref "left" 2
		
		-attachForm virefra "top" 120
		-attachForm virefra "left" 2
		
		-attachForm ds "top" 140
		-attachForm ds "left" 2

		$mf;

showWindow renderop;
}

global proc onp ()

{
string $cs = `checkBox -q -value cs`;
string $rs = `checkBox -q -value rs`;
string $mb = `checkBox -q -value mb`;
string $pv = `checkBox -q -value pv`;
string $ss = `checkBox -q -value ss`;
string $viref = `checkBox -q -value viref`;
string $virefra = `checkBox -q -value virefra`;
string $ds = `checkBox -q -value ds`;
select -hi;
pickWalk -d down;
pickWalk -d down;
pickWalk -d down;
pickWalk -d down;
pickWalk -d down;
string $opobj[] = `ls -sl`;
if ($cs == 1)
    {
    string $opcs;
    for($opcs in $opobj)
        {
        setAttr ($opcs + ".castsShadows") 1;
        }
    }
if ($rs == 1)
    {
    string $oprs;
    for($oprs in $opobj)
        {
        setAttr ($oprs + ".receiveShadows") 1;
        }
    }
if ($mb == 1)
    {
    string $opmb;
    for($opmb in $opobj)
        {
        setAttr ($opmb + ".motionBlur") 1;
        }
    }
if ($mb == 1)
    {
    string $oppv;
    for($oppv in $opobj)
        {
        setAttr ($oppv + ".primaryVisibility") 1;
        }
    }
if ($ss == 1)
    {
    string $opss;
    for($opss in $opobj)
        {
        setAttr ($opss + ".smoothShading") 1;
        }
    }
if ($viref == 1)
    {
    string $opviref;
    for($opviref in $opobj)
        {
        setAttr ($opviref + ".visibleInReflections") 1;
        }
    }
if ($virefra == 1)
    {
    string $opvirefra;
    for($opvirefra in $opobj)
        {
        setAttr ($opvirefra + ".visibleInRefractions") 1;
        }
    }
if ($ds == 1)
    {
    string $opds;
    for($opds in $opobj)
        {
        setAttr ($opds + ".doubleSided") 1;
        }
    }
}
global proc offp ()

{
string $cs = `checkBox -q -value cs`;
string $rs = `checkBox -q -value rs`;
string $mb = `checkBox -q -value mb`;
string $pv = `checkBox -q -value pv`;
string $ss = `checkBox -q -value ss`;
string $viref = `checkBox -q -value viref`;
string $virefra = `checkBox -q -value virefra`;
string $ds = `checkBox -q -value ds`;
select -hi;
pickWalk -d down;
pickWalk -d down;
pickWalk -d down;
pickWalk -d down;
pickWalk -d down;
string $opobj[] = `ls -sl`;
if ($cs == 1)
    {
    string $opcs;
    for($opcs in $opobj)
        {
        setAttr ($opcs + ".castsShadows") 0;
        }
    }
if ($rs == 1)
    {
    string $oprs;
    for($oprs in $opobj)
        {
        setAttr ($oprs + ".receiveShadows") 0;
        }
    }
if ($mb == 1)
    {
    string $opmb;
    for($opmb in $opobj)
        {
        setAttr ($opmb + ".motionBlur") 0;
        }
    }
if ($mb == 1)
    {
    string $oppv;
    for($oppv in $opobj)
        {
        setAttr ($oppv + ".primaryVisibility") 0;
        }
    }
if ($ss == 1)
    {
    string $opss;
    for($opss in $opobj)
        {
        setAttr ($opss + ".smoothShading") 0;
        }
    }
if ($viref == 1)
    {
    string $opviref;
    for($opviref in $opobj)
        {
        setAttr ($opviref + ".visibleInReflections") 0;
        }
    }
if ($virefra == 1)
    {
    string $opvirefra;
    for($opvirefra in $opobj)
        {
        setAttr ($opvirefra + ".visibleInRefractions") 0;
        }
    }
if ($ds == 1)
    {
    string $opds;
    for($opds in $opobj)
        {
        setAttr ($opds + ".doubleSided") 0;
        }
    }
}
2Александр Чернега Надеюсь этот не малоэффективен))
 

iNOD

Активный участник
Рейтинг
18
#10
В скрипте допустил ошибку((
в 97 и 180 строчках вместо "if ($mb == 1)" нужно исправить на "if ($pv == 1)"
 
Сверху