среда, 24 февраля 2021 г.

Maya Mel String Substring

Рассмотрим на примере работы массива с использованием имени выделенных объектов и части его имени.

У нас есть ноды с названием каждого позвонка в позвоночном столбе C,T,L. У ноды есть атрибут Max Rot Limit. Есть Joint_List в которой есть добавочные атрибуты Vector: C T L. Вектор, значит в одном названии 3 атрибута XYZ. Так удобно группировать для подключения в NodeEditor.
Надо умножить Max Rot Limit на Vector и полученный результат подключить к ригу костей в Rotate.
Т.к. нод много, их можно подключить с помощью массива.



Создаем MultiplyDivide ноду для умножения.
Если подключить вручную ноды, мы получим такие строки:
connectAttr -f C0.maxRotLimit multiplyDivide_C0.input1;
connectAttr -f Joints_List.C multiplyDivide_C0.input2;

Чтобы подключить все ноды используем массив и части имен.

string $list[] = `ls -sl`;
for ($item in $list)
{
string $node = eval("substring "+$item+" "+1+" "+1);    
connectAttr -f ($item+".maxRotLimit") ("multiplyDivide_"+$item+".input1");
connectAttr -f ("Joints_List."+$node) ("multiplyDivide_"+$item+".input2");
}

В это примере я использую только первую букву.
Вот что получается с одного скрипта:


Вот отрывки найденых примеров:
// returns the string "Hello".
substring "Hello There" 1 5;
Числа означают: используем порядок символов текста от первого числа и до второго числа.

Так можно использовать Substring в коде
string $t ="pahan is my name";
string $currentChr = eval("substring "+$t+" "+1+" "+7);





пятница, 19 февраля 2021 г.

Bind Poses

How to quickly remove the skin and Bind Pose from character?

a) When nothing is selected in the scene go to Edit> Delete All by Type> History
b) In the Outliner editor uncheck the following Display> DAG Objects Only
c) Delete bindpose node Maya creates while binding the skin

How to fix multiple Bind Poses?

Sometimes character export pipeline (custom tools and game engines) still require a single bind pose for a character. So this can be a reason why the skeleton must have only single bind pose (dagPose) associated with it.

There is an easy fix:

a) In the Outliner editor uncheck the following Display> DAG Objects Only
b) Delete multiple bindpose nodes Maya creates while binding the skin
c) Pose your character’s skeleton to what you want your bindpose to be
d) Run this (MEL) in the command line (dagPose -bindPose -save) or equivalent:

dagPose -bp -s;

e) Now you have just a single bind pose

Скопировано со страниы 

Полезные советы сохраняю тут :) 
Контакты: gmail mnexuss@gmail.com | ICQ 201882385 | Add me to Skype