Render.ru

Изменение весовых коэф. точек на Nurbs

#1
Где в Maya можно интерактивно как в MAX и Soft Image изменять весовые коэфф управляющих точек на NURBS кривых. Я нашел одну функцию но она не притягивает кривую к точке так как в других программах.
 
#3
А вот , собственно и MEL -

// NURBS CV Weights Changer v. 1.0 a
// by Alexey Goussev
// algous@render.ru
// usage:
// source this script
// select NURBS CV,
// type CVweight()
global proc float setCVweight(int $getWt,float $wValue)
{
string $sel[]=`ls -sl`;
string $shp[]=`ls -sl -o`;
string $tkns[];
if ((`tokenize $sel[0] "[]" $tkns`)==3)
{
int $nums[]=eval("getAttr "+$shp[0]+".spansUV");
int $sel_u=$tkns[1];
int $sel_v=$tkns[2];
int $frmU=eval("getAttr "+$shp[0]+".formU");
int $frmV=eval("getAttr "+$shp[0]+".formV");
int $foundNum=($nums[1]+3)*($sel_u)+$sel_v;
//print ("found value="+$foundNum+"\n");
if ($getWt==1)
return eval("getAttr "+$shp[0]+".weights["+$foundNum+"] ");
eval("setAttr "+$shp[0]+".weights["+$foundNum+"] "+$wValue);
}
return $wValue;
}

global proc refreshW()
{
float $slValue=setCVweight(1,$slValue);
floatSliderGrp -e -label "weight" -field true -minValue 0 -maxValue 100 -fieldMinValue 0 -fieldMaxValue 99999 -value $slValue -cc ("setCVweight(0,`floatSliderGrp -q -v sliderW`)") sliderW;
}
global proc CVweight()
{
if (!(`window -ex MyWC`))
{
window -widthHeight 220 30 -title "Nurbs CV Weight" -iconName "Tune weight" MyWC;
columnLayout;
floatSliderGrp -label "weight" -field true -minValue 0 -maxValue 100 -fieldMinValue 0 -fieldMaxValue 99999 -value 1 sliderW;
}
scriptJob -p "MyWC" -e "SelectionChanged" refreshW;
refreshW;
showWindow MyWC;
}
CVweight();

// End of script


Пользуйся на здоровье.
 
#4
Спасибо что разъяснили, ввел скрипт выделил точку Contr. Vert. в окне появился только один параметр и никаких кнопок типа Apply или Ok нет. Может по этому никаких изменений нет после ввода разных данных и нажатий на кнопку Ввод. У меня прога 4.0
 
#5
можно для этих целей пользоваться вот такой MEL командой:

setAttr curveShape1.wt[2] 5;

curveShape1 -- имя кривой
wt[2] -- порядковый номер нужной точки
5 --- это новый вес, писваиваемый этой точке - чем больше - тем ближе кривая к точке

она порще, но тоже работает
 
Сверху