Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: авторелакс скрипт
Форум .:3DCenter.ru:. > Пакеты 3D моделирования > Maya > MEL
Sub
описание работы
есть размапленый сложный объект типа персонаж.
логически мысля понимаешь что если подёргать вертексы на персонаже то UV сетку тоже нужно будет подкорректировать.
но. есть один человек (Александер Лунёв ) которого эта шняга задолбала. и он (вечная ему слава почёт и всё такое), написал скрипт, который коректирует UV сетку автоматом

как с ним работать:

выдели размапленый объект, запусти скрипт( он должен лежать в папке скриптов, а вызывать его нужно просто набрав его название autoUVRelax, или хоткей который делает это автоматом)
появится маленькая панелька, где нужно поставить галочку, типа активировать фунцию скрипта.. !!!! при этом объект должен быть выбран, и находиться в режиме обджект !!!
потом двигаем вертексы, смотрим как чудесно работает, когда не нужно снимаем галочку и работаем как обычно.(скрипт работает со всеми подобъектами вертексы, ейджи, полики, коректно работает со сплитом)
!!!
ЗЫ скрипт не работает с бордерами UV сетки так как основная задача скрипта не нарушая области UV сетки коректировать геометрию



вот собсна листинг от начала и до конца


____________


global string $AUV_VER = "v 0.666b";
global string $UIName = "AUV_WINDOW";
global int $CheckValue = 0;
global int $AUV_JOB = -1;
global int $SEL_JOB = -1;



proc DoRelax()
{
string $whichCtx = `currentCtx`;
setToolTo selectSuperContext;
int $mode = 0;

string $CurSel[] = `ls -sl`;

PolySelectConvert 4;

untangleUV -r harmonic -pb 1 -ps 0 -pu 1 -rt 0 -mri 10;

select -r $CurSel[0];

setToolTo $whichCtx;
}


proc GetObjName()
{
global int $AUV_JOB;
string $ObjSelName[] = `ls -type "mesh" -o -sl`;

if($ObjSelName[0] == "")
{
print ("NOT A MESH !!!\n");
}
else
{
//print ($ObjSelName[0] + " MESH !!!\n");

if(`scriptJob -ex $AUV_JOB`)
{
scriptJob -kill $AUV_JOB;
}

$AUV_JOB = `scriptJob -ac ($ObjSelName[0] + ".pnts") DoRelax`;
}
}


proc CheckON()
{
global int $CheckValue;
global int $SEL_JOB;

$SEL_JOB = `scriptJob -e "SelectionChanged" GetObjName`;

$CheckValue = 1;
}


proc CheckOFF()
{
global int $CheckValue;
global int $SEL_JOB;
global int $AUV_JOB;

if(`scriptJob -ex $AUV_JOB`)
{
scriptJob -kill $AUV_JOB;
}

scriptJob -kill $SEL_JOB;

$CheckValue = 0;
}


global proc autoUVRelax ()
{
global string $UIName;
global string $AUV_VER;
global int $CheckValue;

if(`window -q -exists $UIName`)
{
deleteUI -wnd $UIName;
}

window
-maximizeButton false
-menuBar false
-menuBarVisible false
-sizeable false
-toolbox true
-title ("Automatic UV Relaxer " + $AUV_VER)
-widthHeight 200 80
$UIName;

string $frmMain = `formLayout -numberOfDivisions 100`;
string $chkOnOff = `checkBox -label "Enable" -v $CheckValue`;
string $txtCopyr = `text -label "Created by LuniX" -en 0`;

checkBox -e -onc "CheckON" $chkOnOff;
checkBox -e -ofc "CheckOFF" $chkOnOff;

formLayout -edit
-attachForm $chkOnOff "top" 10
-attachForm $chkOnOff "left" 65

-attachForm $txtCopyr "top" 35
-attachForm $txtCopyr "left" 55
$frmMain;

showWindow $UIName;
}


___________

собсна для ленивых вот сам скрипт , тока разширение нужно переименовать autoUVRelax.mel

скрипт работает под 6.1 и под 6.5 майки
Энджой как говорится
Sub
кстати забыл сказать не стесняйтесь чёто говорить у кого работает у кого глючит.. тестеры тоже нужны
Sub
вощем есть новая версия скрипта отловлены некоторые баги теперь всё работает просто зашибись....
хотя я вижу что она не нужна никому.
чтож дело хозяйское
Sagroth
Забавная штука, пользительная - спасибо. На 6.5 под ХР пока глюков не обнаружил.

Но факт в том, что ручной relax все-таки более функционален - это касается экструдов, к примеру - все равно придется обрабатывать релаксом. А для мелкой корректировки - да, скрипт удобен. Хотя я его пока так просто потестировал - попробуй на практике - отпишу.

П.С. А к чему ты указал о корректности при сплитах? И без скрипта сплит вроде нормально работает. Посравнивал - действительно результат идентичен.
Sub
дело в том что первая версия скрипта была очень ... скажем глюковатая, при сплитах скрипт не работал, тоесть просплитил и нужно снова его запускать.
насчёт экструдов , тут уж ничего неподелаешь... UV координаты работают только в двухмерном пространстве U и V горизонтальные и вертикальные, а экструд он выдавливает гометрию по третьей оси работает так что придётся в ручную немного повозится.

насчёт юзабилити приколная штука если подсчитать то в общем за неделю я сэкономил примерно дня три - четыре, так бы прыгал из одного окошка в другое тут подвинул там подвинул а тут полная автоматизация

ЗЫ. спасибо за тестинг. smile.gif
Vzor
Очень полезная вещь - Спасибо ! yes.gif

Пошёл разбираться blush.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.