Render.ru

Вопросница 5. Сюда скидываются все вопросы 5

Статус
Закрыта.

2manoff

Активный участник
Рейтинг
14
все я понял - у вас с
2manoff
особая связь. =) Вы понимаете с полуслова друг друга
нет, Lemieux указал нужное направление. Я, правда, еще не пробовал, но суть понял, если возникнут вопросы, я обязательно ими замучаю знатоков )))))
 

2manoff

Активный участник
Рейтинг
14
Взять значения obj.rotatePivot или obj.scalePivot (getAttr).

А скрипт сам напиши.
Там всего ls -sl, потом цикл с getAttr и присвоением этих данных куда надо, в цикле или вне его.
Дошли руки проверить. Я правда не нашел, как при помощи getAttr взять параметры rotatePivot или scalePivot, и не совсем понял какой цикл нужен.
Вот скрипт_1:
Код:
select pCube1;
string $obj[] = `ls -sl`;
float $XYZ[] = `objectCenter -gl $obj[0]`;
setAttr $obj[0].translateX $XYZ[0];
setAttr $obj[0].translateY $XYZ[1];
setAttr $obj[0].translateZ $XYZ[2];
Однако получаю ошибку:
Код:
// Error: setAttr $obj[0].translateX $XYZ[0];
//
// Error: Line 4.26: Syntax error //
// Error: setAttr $obj[0].translateY $XYZ[1];
//
// Error: Line 5.26: Syntax error //
// Error: setAttr $obj[0].translateZ $XYZ[2]; //
// Error: Line 6.26: Syntax error //
как присвоить атрибуты переменной?
вот скрипт_2:
Код:
select pCube1;
string $obj[] = `ls -sl`;
float $XYZ[] = `objectCenter -gl $obj[0]`;
setAttr pCube1.translateX $XYZ[0];
setAttr pCube1.translateY $XYZ[1];
setAttr pCube1.translateZ $XYZ[2];
Этот скрипт выполняется без ошибок: в каналах translate Channel Box появляются значения, и объект перемещается на эти значения. Необходимо, чтобы значения в Channel Box были отличны от ноля, а объект при этом оставался на месте, как это реализовать?
 

Lemieux

Знаток
Рейтинг
58
Дошли руки проверить. Я правда не нашел, как при помощи getAttr взять параметры rotatePivot или scalePivot, и не совсем понял какой цикл нужен.
Вот скрипт_1:
Код:
select pCube1;
string $obj[] = `ls -sl`;
float $XYZ[] = `objectCenter -gl $obj[0]`;
setAttr $obj[0].translateX $XYZ[0];
setAttr $obj[0].translateY $XYZ[1];
setAttr $obj[0].translateZ $XYZ[2];
Однако получаю ошибку:
Код:
// Error: setAttr $obj[0].translateX $XYZ[0];
//
// Error: Line 4.26: Syntax error //
// Error: setAttr $obj[0].translateY $XYZ[1];
//
// Error: Line 5.26: Syntax error //
// Error: setAttr $obj[0].translateZ $XYZ[2]; //
// Error: Line 6.26: Syntax error //
как присвоить атрибуты переменной?
вот скрипт_2:
Код:
select pCube1;
string $obj[] = `ls -sl`;
float $XYZ[] = `objectCenter -gl $obj[0]`;
setAttr pCube1.translateX $XYZ[0];
setAttr pCube1.translateY $XYZ[1];
setAttr pCube1.translateZ $XYZ[2];
Этот скрипт выполняется без ошибок: в каналах translate Channel Box появляются значения, и объект перемещается на эти значения. Необходимо, чтобы значения в Channel Box были отличны от ноля, а объект при этом оставался на месте, как это реализовать?
Есть в сцене сфера - pSphere1.
Чтобы получить значение rotatePivot или scalePivot нужно выполнить команду
Код:
getAttr pSphere1.rotatePivot
Аналогично со scale. Как узнать какие атрибуты есть у объекта? конекшн эдитор, команда listAttr.

Тебе нужен цикл for, например. Почитай о нём в "Scripting - MEL and expressions - Controlling the flow of a script
 

2manoff

Активный участник
Рейтинг
14
Есть в сцене сфера - pSphere1.
Чтобы получить значение rotatePivot или scalePivot нужно выполнить команду
Код:
getAttr pSphere1.rotatePivot
Аналогично со scale. Как узнать какие атрибуты есть у объекта? конекшн эдитор, команда listAttr.

Тебе нужен цикл for, например. Почитай о нём в "Scripting - MEL and expressions - Controlling the flow of a script
спасибо, с getAttr разобрался
 

2manoff

Активный участник
Рейтинг
14
Есть в сцене сфера - pSphere1.
Чтобы получить значение rotatePivot или scalePivot нужно выполнить команду
Код:
getAttr pSphere1.rotatePivot
Аналогично со scale. Как узнать какие атрибуты есть у объекта? конекшн эдитор, команда listAttr.

Тебе нужен цикл for, например. Почитай о нём в "Scripting - MEL and expressions - Controlling the flow of a script
в общем решил поставленную задачу вот таким способом:
Код:
string $obj[] = `ls -sl`;
float $needXYZ[] = `objectCenter -gl $obj[0]`;

float $X0 = (-1 * $needXYZ[0]);
float $Y0 = (-1 * $needXYZ[1]);
float $Z0 = (-1 * $needXYZ[2]);

move $X0 $Y0 $Z0;
FreezeTransformations;

move $needXYZ[0] $needXYZ[1] $needXYZ[2];
с циклом for ознакомился, и, если честно, не понял как его применить в данной ситуации. Если понадобится выполнить данный скрипт для нескольких объектов одновременно, то скорее подойдет цикл for in.
 

Igor Rogov

Активный участник
Рейтинг
7
Привет всем! У меня наверно очень нубский вопрос) Но буду очень благодарен если кто-то подскажет! Вобщем, когда использую екструд, то при переключении с мув тул на ротейт или скейл исчезает панелька настроек экструда.

Т.е выбираю эдж - экструд - появляется панелька и ручки для мува - переключаю на скейл, например, и исчезает панелька экструда и приходится кликать на иконку инструмента (слева, где последний использованный инструмент) и тогда панелька появляется...

Maya 2017

Спасибо большое!
 

DAAK

Пользователь сайта
Рейтинг
2
Добрый вечер уважаемые знатоки!
Подскажите, пожалуйста, как правильно назначить материал выделенному объекту?

string $sel[0] = `ls -sl`;
shadingNode -asShader blinn -n TEST;
select $sel[0];
hyperShade -assign TEST;
select $sel;

Такой вариант рабочий, но в Script Editor предупреждение:
// Warning: line 4: Material had no shading group. A shading group was created. //

Буду благодарен за подсказку.
 

Lemieux

Знаток
Рейтинг
58
Добрый вечер уважаемые знатоки!
Подскажите, пожалуйста, как правильно назначить материал выделенному объекту?

string $sel[0] = `ls -sl`;
shadingNode -asShader blinn -n TEST;
select $sel[0];
hyperShade -assign TEST;
select $sel;

Такой вариант рабочий, но в Script Editor предупреждение:
// Warning: line 4: Material had no shading group. A shading group was created. //

Буду благодарен за подсказку.
Ясен пень, что выдаёт предупреждение. Ты посмотри, что происходит когда ты назначаешь blinn на объект из материалов, и когда ты назначаешь blinn вот таким скриптом.
 
Симпатии: DAAK

Vasya1988

Активный участник
Рейтинг
19
Подскажите, как правильно нужно поворачивать тело персонажа?
По референсам все понятно как, мне не понятно по контроллерам, вот мне нужно повернуть на 90 градусов, если не трогать глобальный контроллер, то все получается. Но ведь его же тоже нужно развернуть на 90 градусов, что бы потом персонаж пошел вперед.
Скорее всего вопрос не сложный и дело в пустяке, но пока не могу догнать что я делаю не так (=

И второй вопрос, можно ли как нибудь создать новый анимационный слой, что бы в нем все контроллеры в нулях стояли? У меня такая проблема, что когда я создаю новый слой, персонаж слегка перекошенный, я все контроллеры ставлю в нули в чанел боксе, за анимировал, сохранил, а потом, когда открываю эту сцену, персонаж в этом слое опять перекошенный )=
 
Последнее редактирование:

UserMaya

Активный участник
Рейтинг
7
Всем привет.
Кто может подсказать по мелу, как на одну кнопку в шелве, привентить два действия. При первом нажатии выполняется один код, при втором нажатии другой код. Хочу прозрачность материала повесить на одну кнопочку)
Вот эти две команды
setAttr "lambert1.transparency" -type double3 0.626016 0.626016 0.626016 ;
setAttr "lambert1.transparency" -type double3 0 0 0 ;

Про Popup Menu Items знаю, но все же на одну кнопку хочется повесить
 

Lemieux

Знаток
Рейтинг
58
Всем привет.
Кто может подсказать по мелу, как на одну кнопку в шелве, привентить два действия. При первом нажатии выполняется один код, при втором нажатии другой код. Хочу прозрачность материала повесить на одну кнопочку)
Вот эти две команды
setAttr "lambert1.transparency" -type double3 0.626016 0.626016 0.626016 ;
setAttr "lambert1.transparency" -type double3 0 0 0 ;

Про Popup Menu Items знаю, но все же на одну кнопку хочется повесить
Либо двойной и одиночный клик, либо условие
 

Sacr

Мастер
Рейтинг
234
Почему когда включена галочка Preserve UVs, двигаю точку или эдж он возвращается на место? как это исправить?
 

11 z 2

Пользователь сайта
Рейтинг
4
Подскажите как сказать Maya, чтобы она показывала мне справку не через тот браузер который ей нравится, а через тот который мне надо? Заранее благодарен!
 
Статус
Закрыта.
Сверху