1. Пользоваться форумом на планшетах и телефонах стало удобнее благодаря Tapatalk

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

Тема в разделе "Maya", создана пользователем -, 18 фев 2002.

Модераторы: Dark™, Skif
  1. Guest

    Где в Maya можно интерактивно как в MAX и Soft Image изменять весовые коэфф управляющих точек на NURBS кривых. Я нашел одну функцию но она не притягивает кривую к точке так как в других программах.
     
  2. Guest

    В Майе нет стандартных средств для этого. Только MEL.
     
  3. Guest

    А вот , собственно и 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. Guest

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

    можно для этих целей пользоваться вот такой MEL командой:

    setAttr curveShape1.wt[2] 5;

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

    она порще, но тоже работает
     
Модераторы: Dark™, Skif

Поделиться этой страницей