Render.ru

Visible in Reflections

Misst

Пользователь сайта
Рейтинг
2
#1
Друзья, очень простой вопрос. Как известно, при экспорте модели из макса и obj в Майу теряются галочки Visible in Refractions, Visible in Reflections. Как мне выставить их на всех объектах, елси их слишком много? Я пытался написать какойнибудь скрпитец в стиле:

global proc Visible()
{
string $selected[] = 'ls -sl';

setAttr "objectShape.visibleInReflections" 1;
setAttr "objectShape.visibleInRefractions" 1;
}

но вот не знаю как мне после того как я получаю в строку селектед все объекты, как мне их пересчитать и потом вероятно сделать цикл по ним для выделения у каждого нужных галочек. (ну там конечно не objectShape, а вот какойто вызов наших выделенных объектов). Вобщем проблема скорее всего элементарная, и возможно решается и вовсе без всяких скриптов.
 

Ghostfly

Активный участник
Рейтинг
19
#3
я встречал два скрипта - один на хайэнде, второй мой. Мой такой, страшненький корявенький, но на деле работать с ним быстрее чем с хайэндовским. Хотя кому как - выбирай сам куда идти тебе...


//Ghostfly. If you have somethong to say : ghostfly3d@yahoo.com
//edit render stats for multiple selection of objects
//Version 0.3


// Procedure creation

global proc CSoff() {
string $it;
string $list[] = `ls -sl -dag -type surfaceShape`;
for($it in $list) {
string $a =$it +".castsShadows";
setAttr $a 0;
}
}
//
global proc CSon() {
string $it;
string $list[] = `ls -sl -dag -type surfaceShape`;
for($it in $list) {
string $a =$it +".castsShadows";
setAttr $a 1;
}
}
//-------------------------------
global proc RSoff() {
string $it;
string $list[] = `ls -sl -dag -type surfaceShape`;
for($it in $list) {
string $a =$it +".receiveShadows";
setAttr $a 0;
}
}
//
global proc RSon() {
string $it;
string $list[] = `ls -sl -dag -type surfaceShape`;
for($it in $list) {
string $a =$it +".receiveShadows";
setAttr $a 1;
}
}
//--------------------------------
global proc MBoff() {
string $it;
string $list[] = `ls -sl -dag -type surfaceShape`;
for($it in $list) {
string $a =$it +".motionBlur";
setAttr $a 0;
}
}
//
global proc MBon() {
string $it;
string $list[] = `ls -sl -dag -type surfaceShape`;
for($it in $list) {
string $a =$it +".motionBlur";
setAttr $a 1;
}
}
//---------------------------
global proc PVoff() {
string $it;
string $list[] = `ls -sl -dag -type surfaceShape`;
for($it in $list) {
string $a =$it +".primaryVisibility";
setAttr $a 0;
}
}
//
global proc PVon() {
string $it;
string $list[] = `ls -sl -dag -type surfaceShape`;
for($it in $list) {
string $a =$it +".primaryVisibility";
setAttr $a 1;
}
}
//----------------------------
global proc SSoff() {
string $it;
string $list[] = `ls -sl -dag -type surfaceShape`;
for($it in $list) {
string $a =$it +".smoothShading";
setAttr $a 0;
}
}
//
global proc SSon() {
string $it;
string $list[] = `ls -sl -dag -type surfaceShape`;
for($it in $list) {
string $a =$it +".smoothShading";
setAttr $a 1;
}
}
//-----------------------------
global proc VRFLoff() {
string $it;
string $list[] = `ls -sl -dag -type surfaceShape`;
for($it in $list) {
string $a =$it +".visibleInReflections";
setAttr $a 0;
}
}
//
global proc VRFLon() {
string $it;
string $list[] = `ls -sl -dag -type surfaceShape`;
for($it in $list) {
string $a =$it +".visibleInReflections";
setAttr $a 1;
}
}
//-------------------------------
global proc VRFRoff() {
string $it;
string $list[] = `ls -sl -dag -type surfaceShape`;
for($it in $list) {
string $a =$it +".visibleInRefractions";
setAttr $a 0;
}
}
//
global proc VRFRon() {
string $it;
string $list[] = `ls -sl -dag -type surfaceShape`;
for($it in $list) {
string $a =$it +".visibleInRefractions";
setAttr $a 1;
}
}
//--------------------------------
global proc DSoff() {
string $it;
string $list[] = `ls -sl -dag -type surfaceShape`;
for($it in $list) {
string $a =$it +".doubleSided";
setAttr $a 0;
}
}
//
global proc DSon() {
string $it;
string $list[] = `ls -sl -dag -type surfaceShape`;
for($it in $list) {
string $a =$it +".doubleSided";
setAttr $a 1;
}
}
//-------------------------------
global proc OPPoff() {
string $it;
string $list[] = `ls -sl -dag -type surfaceShape`;
for($it in $list) {
string $a =$it +".opposite";
setAttr $a 0;
}
}
//
global proc OPPon() {
string $it;
string $list[] = `ls -sl -dag -type surfaceShape`;
for($it in $list) {
string $a =$it +".opposite";
setAttr $a 1;
}
}
//---------------------------

// window creation

string $window = `window -title "Render Stats editor"
-iconName "RS"
-widthHeight 200 55`;
columnLayout main;
frameLayout -l "Cast Shadows";
rowLayout -numberOfColumns 2 CS;
button -label "On" -c "CSon";
button -label "Off" -c "CSoff";
setParent ..;
setParent ..;
//--------------
frameLayout -l "Receive Shadows";
rowLayout -numberOfColumns 2 RS;
button -label "On" -c "RSon";
button -label "Off" -c "RSoff";
setParent ..;
setParent ..;
//--------------
frameLayout -l "Motion Blur";
rowLayout -numberOfColumns 2 MB;
button -label "On" -c "MBon";
button -label "Off" -c "MBoff";
setParent ..;
setParent ..;
//--------------
frameLayout -l "Primary Visibility";
rowLayout -numberOfColumns 2 PV;
button -label "On" -c PVon;
button -label "Off" -c PVoff;
setParent ..;
setParent ..;
//--------------
frameLayout -l "Smooth Shading";
rowLayout -numberOfColumns 2 SS;
button -label "On" -c SSon;
button -label "Off" -c SSoff;
setParent ..;
setParent ..;
//--------------
frameLayout -l "Visible In Reflections";
rowLayout -numberOfColumns 2 VRFL;
button -label "On" -c "VRFLon";
button -label "Off" -c "VRFLoff";
setParent ..;
setParent ..;
//--------------
frameLayout -l "Visible In Refractions";
rowLayout -numberOfColumns 2 VRFR;
button -label "On" -c "VRFRon";
button -label "Off" -c "VRFRoff";
setParent ..;
setParent ..;
//--------------
frameLayout -l "Double Sided";
rowLayout -numberOfColumns 2 DS;
button -label "On" -c "DSon";
button -label "Off" -c "DSoff";
setParent ..;
setParent ..;
//--------------
frameLayout -l "Opposite";
rowLayout -numberOfColumns 2 OPP;
button -label "On" -c "OPPon" ;
button -label "Off" -c "OPPoff";
setParent ..;
setParent ..;

showWindow $window;
 

Misst

Пользователь сайта
Рейтинг
2
#4
спасибо большое, а можете посоветовать каую-нибудь книжку, где можно нормально разобраться в Меле, если нет опыта программирования где бы то нибыло. Пытаюсь с хелпом работать, но вот не слишком выходит..
 

Миша Ершов

Модератор форума
Рейтинг
314
#5
Книги Гоулда, Казмиера и Уилкинса.
Очень многому можно научиться копаясь в исходниках майи, не забывая по хелп.
 

Misst

Пользователь сайта
Рейтинг
2
#6
спасибо, куплю, если продаются - так я кажется только Гоулда видел.
 

Misst

Пользователь сайта
Рейтинг
2
#8
ага, только сейчас вернули на место)) спасибо, я и не знал просто)
 

helg

Активный участник
Рейтинг
12
#9
лол... оч смешно... знание мел конечно сила :) такие скрипты нужны конечно, когда надо выставить значение тех параметров, что в спредШите не найти
 

Миша Ершов

Модератор форума
Рейтинг
314
#10
helg, если постоянно заниматься импортом, то простейший скрипт всё равно облегчает работу. Все операции можно свести к одному нажатию на полке.
 

Thrasher

Активный участник
Рейтинг
5
#13
Мда...действительно, гораздо ж проще выделить всю геометрию и в спредщите жмакнуть пару клавиш:)
 
Сверху