Skocz do zawartości

Kroopson

Members
  • Liczba zawartości

    1 296
  • Rejestracja

  • Ostatnia wizyta

  • Wygrane w rankingu

    6

Zawartość dodana przez Kroopson

  1. Kroopson

    Problem Import//Export

    Nie da się - Obj nie zapisuje takich informacji jak pivot point, wszystkie współrzędne punktów przechowuje w przestrzeni globalnej sceny.
  2. Kroopson

    Wings 1.3.1

    dżizas - jak sobie pomyślę jaką ten sofcik przez te lata drogę przeszedł... Niegdyś był to mój ulubiony poly modeler. Ciekawe czy Klicek jeszcze w nim rzeźbi
  3. ICE pozwala na wszelakie zabawy z weight mapami. Jak coś pisz na priva to w miarę możliwości pokażę ci o co biega :)
  4. True true - najczęściej najbardziej kreatywną częścią mojej pracy jest programowanie :D
  5. Kroopson

    Problem przy rigu

    No tak - ja to pisałem jeszcze w Maya 7 chyba albo w 2008 czyli jakąś epokę temu. Generalnie jak teraz widzę ten faszystowski kod MEL'a to mnie słabi. Autodesk powinien pomyśleć trochu nad API pythona w majce bo nawet Blender wyprzedza ją pod tym względem o lata świetlne. Np. dziś potrzebowałem skryptu który w stabilny, przewidywalny sposób exportował by dane kamery z XSI do After Effects z zachowaniem pixel aspektu. Jako że nie lubię rozwiązań których nie rozumiem wziąłem sobie skrypt który niedawno powstał do Blendera. Zaadaptowanie go do XSI zajęło jakieś 3h. Z majką już by tak super nie było ponieważ nie ma ona domyślnie w pythonie żadnych operacji macierzowych (natywnych dla maya), i ogólnie sam python nie potrafi dostać się do danych obiektu inaczej niż przez zwrapowanego w nim Mel'a (no chyba że coś się ostatnio w tej materii zmieniło)
  6. Kroopson

    Problem przy rigu

    A jeszcze parę słów na temat tego dlaczego w maya tak się dzieje jak się dzieje. Otóż jointy w Maya mają 2 macierze - jedną zwykłą macierz transformacji oraz drugą - która często się nazywa "joint orient ", i jest ona swego rodzaju pre-transformem, ustawiającym jointa tak, żeby np jego oś X wskazywała na jointy potomne (taką operację dokonuje właśnie funkcja orient joint). Dlatego własnie mówiłem o innej przestrzeni transformacji dla jointów, innej dla kontrolera. Kiedy aplikujesz orient constraint to ten node (orient constraint) operuje w przestrzeni world space - kopiuje macierz rotacji z obiektu znajdującego się w world space do obiektu znajdującego się w zupełnie innej przestrzeni transformacji. Jeśli masz włączoną opcję "maintaint offset" (mogę nie pamiętać dokładnej nazwy) to Maya będzie musiała skompensować rotację targetu dla constraina przez co ustawia jakąś wartość rotacji na nim (np. 180, 180, 0 itp.). Spróbuj sobie nałożyć orient constraint z wyłączoną opcją maintaint offset, mając włączone wyświetlanie osi na joincie i na obiekcie kontrolującym jointa - zobacz jak się zachowają. Jeśli chcemy sobie zrobić kontrolki niezależne od jointów (które mogłyby służyć np do kontroli FK) to musimy sobie odtworzyć ten pretransfowm dodając transform node'a będącego rodzicem naszego wymarzonego fk kontrolera. Oczywiście nie jest to jedyna metoda rozwiązania tego problemu ale napewno jest skuteczna. W sumie może wystarczyłoby skopiować transformację jointa i zafreezować transformację na kontrolerze - może to by podziałało.
  7. Kroopson

    Problem przy rigu

    if(`window -exists "addFKControl"`) deleteUI "addFKControl"; if(`windowPref -exists "addFKControl") windowPref -r "addFKControl"; // Prepare the UI 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 -e 1 -n ($targetName + "_FK_control_orient")`; setAttr ($controlOrient[0] + ".localScaleX") ($radius / 10); setAttr ($controlOrient[0] + ".localScaleY") ($radius / 10); setAttr ($controlOrient[0] + ".localScaleZ") ($radius / 10); parent $curveNode $controlOrient; copyMatrixAddFK ($targetName, $controlOrient[0], 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); } Spróbuj sobie użyć tego skryptu. Może będzie działał, nie używałem go niestety od bardzo dawna więc nie ręczę za wyniki. Po zaznaczeniu jointa i odpaleniu tego cuda powinno ci się okienko otworzyć z możliwością stworzenia kontrolera do FK :)
  8. Kroopson

    Problem przy rigu

    Nie jest nic spaprane. Jeśli faktycznie poważnie myślisz o robieniu rigów to niestety nie ominie cię nauka matematyki która odpowiada za przekształcenia przestrzeni.
  9. Kroopson

    Problem przy rigu

    prawdopodobnie jest to kwestia tego że bone i circle mają całkowicie różne przestrzeni transformacji. Jak jeszcze rigowałem swego czasu w Maya to obchodziłem to w ten sposób że kontrolery dla kości przygotowywałem tak że najpierw tworzyłem transform node (albo group się to nazywało), kopiowałem mu macierz kości po czym linkowałem atrybuty (ma to swoją taką zaletę że nie używa się orient constraint, który jest znacznie bardziej zasobożerny niż connectAttr. Generalnie popatrz sobie jak wyglądają lokalne osie obiektów.
  10. http://motionographer.com/2010/09/22/gettin-money-with-a-mouse-and-a-wacom-pen-fuck-comic-sans-fuck-papyrus-too/ :) najsss :)
  11. Kroopson

    Co czytacie?

    "Lód" Dukaja - nie wiem co mógłbym o tej książce napisać żeby opisać jej głębię, czytałem ją około 10 miesięcy raz za razem podchodząc do niej i odbijając się od bardzo ciężkiego słownictwa, ciągłego przeplatania polskiego, rosyjskiego, angielskiego, francuskiego, niemieckiego, bardzo długich opisów czy to przyrody syberyjskiej czy wewnętrznych rozterek bohatera. Ponadto narracja jest dość nietypowa (się wsiadło się do przedziału i się odpaliło papierosa) co dodatkowo utrudnia odbiór. Aczkolwiek warto było, to napewno jedna z lepszych, jeśli nie najlepsza z książek jakie dane mi było przeczytać w ciągu kilku ostatnich lat. Bardzo, bardzo polecam, warto się przekopać przez te 1000 stron drobnym druczkiem zapisanych żeby poznać ideę Prawdy, Fałszu, Zimy i Lata oraz poczuć tą niesamowicie wykreowaną alternatywną rzeczywistość lat 20 ub. wieku. Pan Dukaj ma naprawdę niewiarygodny talent, po każdej jego powieści jestem zachwycony.
  12. jestem w połowie przechodzenia Demon Souls drugą postacią. Gra się totalnie nie nudzi, to najlepszy dungeon crawl w jakiego grałem od czasu ADOM'a :) i jedna z lepszych gier w jakie w ogóle grałem, ścisła czołówka na PS3. Czekam na kolejną taką gierę :)
  13. ja mam takie dziwne wrażenie że kolesie z Newteka jakoś tak na innej planecie mieszkają. Te wszystkie uber super nowości zdążyły stać się już dawno standardem a oni się tym podniecają jakby to było niewiadomo co. Z LW podziwiam jedynie modeler ale jak kogoś kręcił modeler to i tak używa Modo. Z tej podjarki "linear workflow" się uśmiałem :) podobnie jak z patetycznej muzyki przy pokazie HLSL. ... HAHAHAHAHA doszedłem do UV Tool - "lightwave new UV unwrap tools" - ROTFL PO CAŁOŚCI :D
  14. Kroopson

    MEL podrecznik

    To jest zdecydowanie najlepsze :)
  15. Polecam wam Harvey Krumpet, jak obejżycie to pogadamy o emocjach w krótkim metrażu
  16. Kroopson

    Sintel

    No dobra - czas na mnie. Jako że jestem fanem Blendera już od 10 lat to muszę przyznać że zrobili z niego już kawałek niezłego softu. Niestety widać że renderer wymaga przepisania od zera bo to co jest teraz niebardzo dało rady. Postać dorosłego scale'sa i dziadka w namiocie są naprawdę nieźle wyrenderowane a dorosły scales ponadto jest świetnie zanimowany. Za to sama sintel to chyba najgorsza postać w filmie. Kilka scen fajnie wygląda - podróż w deszczu, pustynia, jedzący smok. Ogólnie jakoś mi się tak przyjemnie zrobiło po obejżeniu tego, fajnie że jż to skończyli, bez Wielkiej Obsówy, konkretnie od początku do końca plan został zrealizowany. Może nie przekona armii majowców, maxowców albo houdiniowców do przesiadki na Blendera ale wydaje mi się że nie taki był zamiar. Anyways czekam teraz na swój dvd box :)
  17. Kroopson

    Podstawy

    Oj tam oj tam - nie bardzo rozumiem co mają do tego wszystkiego deformery itp? Niczego przecież tak naprawdę nie zmieniają, jedynie przesuwają wierzchołki. A jak się będziesz chciał odnosić do punktu w przestrzeni UV to możesz to nadal bez problemu robić :)
  18. Kroopson

    Podstawy

    NURBS w chwili obecnej ma zastosowanie już właściwie tylko tam gdzie potrzebne są powierznie parametryczne i ma dwie zalety: możliwość poruszania się w przestrzeni tejże powierzchni, czyli możemy sobie określić iż chcemy się znaleźc w punkcie (.32, .05, 0) na danej "łacie" i od razu wiemy gdzie w przestrzeni sceny znajduje się tenże punkt, oraz teoretycznia nieskończona precyzja definicji powierzchni ( co świetnie się sprawdza w projektowaniu przemysłowym ). Mniejsza o równania (dość proste w zasadzie) które tworzą samego NURBS'a, inną sprawą jest to że ta technologia pomału staje się bardzo niszowa (w takiej normalnej codziennej animacyjnej robocie) wraz z upowszechnianiem się coraz elastyczniejszego oprogramowania do 3d, które pozwala na dokładnie takie same zabawy z obiektami zbudowanymi z Poly, jedyny warunek to dobrze rozłożony UV map. (do tego elastycznego oprogramowania nie mogę niestety zaliczyć Maya, sory chłopaki ;) )
  19. Kroopson

    Zoom - skończony???

    tak zoom jest skończony (ponieważ sama dokładność liczb zmiennoprzecinkowych też jest skończona). Wyskaluj sobie cały obiekt trochę w górę.
  20. Kroopson

    Animacja: PIRP

    moje również. strasznie "statyczne" ale z drugiej strony widać taka specyfika prezentacji. Pozatym spoko .
  21. może gdybyś użył to by się policzyło? :> same cząsteczki ukryj, zostaw tylko instancer (jako geometrię dla instancji użyj kulki jakiejś prostej)
  22. a krople to zwykłe punkty cząsteczkowe czy jakiś particle instancer?
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności