Skocz do zawartości

guzikk

Members
  • Liczba zawartości

    17
  • Rejestracja

  • Ostatnia wizyta

Miasto (opcjonalne)

  • Miasto
    Warszawa

guzikk's Achievements

Newbie

Newbie (1/14)

10

Reputacja

  1. zasadniczo to skrót 'z' od zawsze był tak samo traktowany jak ctrl+z. Jesli chcesz zmienic jakiekolwiek ustawienia w skrótach to window>setting/preferences>hotkey editor
  2. guzikk

    Kamera na motion path

    Hmm...możesz też stworzyć curve [np okrąg] i podpiąć do niego kamerke poprzez attach to motion path i jest git. Do tego możesz albo ustawić kąt kamery na sztywno [i wtedy camera będzie na przykład zawsze poruszać się prostopadle do linii prawym bokiem do przodu] albo stworzyć locator, podpiąć camerkę aim constraintem pod ten locator i wtedy camerka zawsze bedzie na niego patrzyła niezależnie od tego jaka będzie jej trasa [bo przecież można trochę zmodyfikować owy okrąg]. Mam nadzieję że pomogłem, pozdrawiam.
  3. Coś chyba zły link do galerii bo mi przynajmniej nie chce się ona otworzyć. Zaś samo autokey polega na tym że zmieniając dowolne współrzędne obiektu w danej klatce są one automatycznie keyowane więc może po prostu niechcący przesuwasz obiekt w przestrzeni w innej klatce.
  4. Wybaczcie że się wtrącam ale mam pytanie do Krisa - a gdybym chciał uzyskać podobną funkcjonalność skrzydła tyle że pod Mayą to co byś polecał użyć do tego by było to zarówno efektowne jak i efektywne? Od razu powiem że nigdy wcześniej nie robiłem rigu skrzydła i pierwsze co mi przyszło do głowy do jakiś skrypt napisać a w szczególnych przypadkach wykorzystać blendshape'y.
  5. W zasadzie nie dużo wiem o animacji ale może to Ci pomoże: jeśli chodzi o drugie pytanie to otwórz graph editora i tam się baw. Ad edit2: jak wyżej. Jeśli chcesz to tylko zapętlić to zrób curves->pre-infinity->cycle with offset
  6. "Chyba Viste wywale i przejde na 7." = Chyba wywalę martwą rybę i kupię sobie żywą. Jasne że się przerzucaj. Btw - też jestem z wawy. Zupełnie nie ciągnie mnie do modelowania, za to od pewnego czasu rigguje i poszukuję modeli do rigu. Zarówno postaci jak i maszyn. Może chciałbyś mi podesłać pare swoich modeli? :) Ponadto bardzo chętnie wymienię się doświadczeniami z riggowania. Jakbyś był chętny to wal: [email protected]
  7. guzikk

    Node vs Expression

    wyczerpująco i jasno, dzięki. O to mi dokładnie chodziło : )
  8. guzikk

    Node vs Expression

    Z góry przepraszam, że tyle pytań zadaje, ale nie wszystko jest do znalezienia w sieci : P. Otóż chciałem się dowiedzieć na czym polega mechanizm działania node'a. Dlaczego jest on szybszy od expression skoro, i to, i to, jak mi się zdaje, wykonuje działania w każdym framesie? Innymi słowy na czym polega ta cudowna różnica między tymi dwoma elementami? W jakich przypadkach lepiej użyć Node'a, a w jakich Expression [to chyba poniekąd wyniknie samo z odpowiedzi na pierwsze pytanie :)]? Pozdrawiam
  9. Czy są jakieś sposoby na on/off expression? Narazie poradziłem sobie z problemem robiąc atrybut typu boolean i wsadziłem całe expression do warunku if [if zależny od owego atrybutu]. Ale mam dziwne przeczucie że istnieje przynajmniej jeszcze jedna metoda stworzenia takiego switcha.
  10. guzikk

    Problem przy rigu

    z tego co wiem nic się nie zmieniło. Jakiś czas temu podjąłem się próby pisania w pythonie pod mayą i zrezygnowałem po tym jak się okazało że i tak i tak sprowadza się to do operowania na MELu. A - tak jak mówisz - przydałoby się móc pisać w innym języku niż MEL. Wręcz możnaby się pokusić o aplikację typu Eclipse albo NetBeans dla Mayi. To by dopiero było. Wygodniejsze skryptowanie i tworzenie GUI. Ehh...
  11. guzikk

    Problem przy rigu

    Oto działający kod: if(`window -exists "addFKControl"`) deleteUI "addFKControl"; if(`windowPref -exists "addFKControl"`) windowPref -r "addFKControl"; window -rtf true -title "Add FK Controller" addFKControl; columnLayout -rowSpacing 5 addFKControlColumn1; intSliderGrp -label "Number of sides" -field true -minValue 3 -maxValue 32 -value 4 FKnumber; intSliderGrp -label "Height divisions" -field true -minValue 1 -maxValue 32 -value 1 FKheight; floatSliderGrp -label "Radius" -field true -minValue .0001 -maxValue 2 -value 1 FKradius; text -label "Controller Orientation"; separator -ann "Controller Orientation" -w 250; radioCollection addFKRadioGrp1; rowLayout -numberOfColumns 3 addFKControlRow1; radioButton -label "+X" posX; radioButton -label "+Y" posY; radioButton -label "+Z" posZ; setParent ..; rowLayout -numberOfColumns 3 addFKControlRow2; radioButton -label "-X" negX; radioButton -label "-Y" negY; radioButton -label "-Z" negZ; setParent ..; separator -w 250; button -c "addFKControlPrep" -label "Create"; setParent ..; showWindow addFKControl; radioCollection -e -sl posX addFKRadioGrp1; // Preparation phase global proc addFKControlPrep(){ $sel = `ls -sl`; string $a; float $length; // See if we have anything selected if (size($sel) == 0){ error "Select a target"; } // Recurence trough selection for($a in $sel){ $child = `listRelatives -c $a`; if (size($child) > 0 && nodeType($child[0]) == "joint"){ // If the target is a joint calculate the length float $componentX = `getAttr ($child[0] + ".tx")`; float $componentY = `getAttr ($child[0] + ".ty")`; float $componentZ = `getAttr ($child[0] + ".tz")`; $length = `mag (>)`; } else { // If not - set length to 1 $length = 1; } int $nGon = `intSliderGrp -q -value "FKnumber"`; // Read values int $height = `intSliderGrp -q -value "FKheight"`; float $rad = `floatSliderGrp -q -value "FKradius"`; string $orient = `radioCollection -q -sl addFKRadioGrp1`; addFKControl( $nGon, $height, $length, $rad, $a, $orient); // Make the main function } } global proc string addFKControl ( int $nGon, int $height, float $len , float $radius, string $targetName, string $orient) { string $name = $targetName + "_FK_control"; float $vertCoords[] = {}; string $command = "curve -d 1 "; float $step = 360/$nGon; float $angle = 0 - ($step/2); string $endcommand = " "; for ($a = 0; $a $angle +=$step; float $resultX = (`cos (deg_to_rad($angle))`) * $radius; float $resultY = (`sin (deg_to_rad($angle))`) * $radius; $vertCoords[($a*2)] = $resultX; $vertCoords[($a*2) + 1] = $resultY; } $vertCoords[$nGon*2] = $vertCoords[0]; $vertCoords[($nGon*2)+1] = $vertCoords[1]; for ($n = 0; $n float $div = 1.0; float $flHeight = ($height/$len) * 1.0; int $count = 0; for ($a = 0; $a float $div = `floor($n/$nGon)`; $command += "-p " + $vertCoords[($a*2)] + " " + ($n/$flHeight) + " " + $vertCoords[($a*2) + 1] + " "; $command += "-p " + $vertCoords[(($a+1)*2)] + " " + ($n/$flHeight) + " " + $vertCoords[(($a+1)*2) + 1] + " "; $command += "-p " + $vertCoords[(($a+1)*2)] + " " + (($n+1)/$flHeight) + " " + $vertCoords[(($a+1)*2) + 1] + " "; $command += "-p " + $vertCoords[($a*2)] + " " + (($n+1)/$flHeight) + " " + $vertCoords[($a*2) + 1] + " "; $command += "-p " + $vertCoords[($a*2)] + " " + ($n/$flHeight) + " " + $vertCoords[($a*2) + 1] + " "; $count = $a; } $command += "-p " + $vertCoords[($count*2)] + " " + (($n + 1)/$flHeight) + " " + $vertCoords[($count*2) + 1] + " "; } $command += $endcommand; $command += " -n "; $command += $name; $curveNode = `eval ($command)`; $curveNodeShape = `listRelatives -c $curveNode`; rename $curveNodeShape ($curveNode + "Shape"); if ($orient == "posX"){ setAttr ($curveNode + ".rotateZ") -90; makeIdentity -apply true -t 1 -r 1 -s 1 -n 0 $curveNode; } if ($orient == "negX"){ setAttr ($curveNode + ".rotateZ") 90; makeIdentity -apply true -t 1 -r 1 -s 1 -n 0 $curveNode; } if ($orient == "negY"){ setAttr ($curveNode + ".rotateZ") 180; makeIdentity -apply true -t 1 -r 1 -s 1 -n 0 $curveNode; } if ($orient == "posZ"){ setAttr ($curveNode + ".rotateX") 90; makeIdentity -apply true -t 1 -r 1 -s 1 -n 0 $curveNode; } if ($orient == "negZ"){ setAttr ($curveNode + ".rotateZ") -90; makeIdentity -apply true -t 1 -r 1 -s 1 -n 0 $curveNode; } $controlOrient = `group -em -n ($targetName + "_FK_control_orient")`; setAttr ($controlOrient + ".scalePivotX") ($radius / 10); setAttr ($controlOrient + ".scalePivotY") ($radius / 10); setAttr ($controlOrient + ".scalePivotZ") ($radius / 10); parent $curveNode $controlOrient; copyMatrixAddFK ($targetName, $controlOrient, 1); // Set proper rotation order. setAttr ($curveNode + ".rotateOrder") (`getAttr ($targetName + ".rotateOrder")`); return $curveNode; } global proc copyMatrixAddFK( string $sourceObj, string $targetObj, int $worldSpace){ string $command; float $sourceMatrix[]; if($worldSpace == 1){ $sourceMatrix = `xform -q -ws -m $sourceObj`; $command = "xform -ws -m "; } else { $sourceMatrix = `xform -q -os -m $sourceObj`; $command = "xform -os -m "; } string $matrix; string $a; for($a in $sourceMatrix){ $matrix += $a; $matrix += " "; } $command += $matrix; $command += $targetObj; eval($command); }; Wszystko pięknie bangla. Istny miodek. Big Thx Kroopson za skrypt.
  12. guzikk

    Problem przy rigu

    dobra, znalazłem błąd. w 4 linii kodu if(`windowPref -exists "addFKControl") brakowało gravisa przed nawiasem zamykającym if(`windowPref -exists "addFKControl"`) EDIT oho, widzę tu więcej błędów. Prawdopodobnie przez to że zmieniły się flagi metod. Postaram się to poprawić i przesłać wersję działającą na aktualnym oprogramowaniu.
  13. guzikk

    Problem przy rigu

    Co do skryptu: wyrzuca mi syntax error. Mój ulubiony error z czasów pisania w C ;P. I szukaj tu teraz błędu składni. To ja już wolę Jave ;] Przejżę ten kod i jak znajdę przyczynę erroru to dam znać. Serdeczne dzięki za wyjaśnienie problemu - zdecydowanie przyda mi się ta wiedza. Poświęcę jej niebawem więcej uwagi by dokładnie przeanalizować i zrozumieć zagadnienie interakcji constrainta na obiekt constraintowany na tyle dobrze by umieć wytłumaczyć komuś innemu.
  14. guzikk

    Problem przy rigu

    Tu jednak chodzi chyba faktycznie o to na co wskazuje Kroopson. Zrobiłem parę doświadczeń i faktycznie wyszło że to nie zależy od mirrora tylko od fragmentu przestrzeni na której działam. a zatem Kroopson móglbyś konkretniej wyjaśnić co masz na myśli?
  15. guzikk

    Problem przy rigu

    tylko dlaczego w po jednej stronie osi globalnej wszystko działa a po drugiej już nie. Nie jest coś spaprane z mirror jointem?
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności