Zawartość dodana przez 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
-
Szybkie pytania nt. Softimage XSI
ICE pozwala na wszelakie zabawy z weight mapami. Jak coś pisz na priva to w miarę możliwości pokażę ci o co biega :)
-
Ile czasu już tworzycie?
True true - najczęściej najbardziej kreatywną częścią mojej pracy jest programowanie :D
-
Wasze Sugestie, Zmiany, Usprawnienia serwisu...
popieram petycję lucka
-
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)
-
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.
-
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 :)
-
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.
-
Ostatnio obejrzane filmy, polecane filmy
wyszedłem w połowie filmu z kina.
-
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.
-
Rzeczy interesujące, rzeczy zabawne TYLKO CG
http://motionographer.com/2010/09/22/gettin-money-with-a-mouse-and-a-wacom-pen-fuck-comic-sans-fuck-papyrus-too/ :) najsss :)
- Zaproszenie do zapoznania się z nowym programem do wizualizacji - Lumion
-
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.
-
W jakie gry gracie i jakie polecacie??
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ę :)
-
Prezentacja LightWave'a 10
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
-
MEL podrecznik
To jest zdecydowanie najlepsze :)
-
emocje w krótkim metrażu
Polecam wam Harvey Krumpet, jak obejżycie to pogadamy o emocjach w krótkim metrażu
-
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 :)
-
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ć :)
-
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 ;) )
-
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ę.
-
Animacja: PIRP
moje również. strasznie "statyczne" ale z drugiej strony widać taka specyfika prezentacji. Pozatym spoko .
-
mental ray motion blur i maya 2009 x64
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)
-
mental ray motion blur i maya 2009 x64
a krople to zwykłe punkty cząsteczkowe czy jakiś particle instancer?
-
Rzeczy interesujące, rzeczy zabawne vol.2
no nieźle nieźle pojechał z tym alladynem ale absolutnie pozamiatał jako Ariel w mojej ulubionej piosence z Disney'a: :)