Zawartość dodana przez Kroopson
-
Animacja - AquarYum! (cgChallenge entry)
http://features.cgsociety.org/challenge/secret_agent/player.php?entry_id=106921 Animacja w Maya, rendering w Blenderze. Pozdróweczka dla wszystkich którzy nas wspierali w produkcji :)
-
Rzeczy interesujące, rzeczy zabawne vol.2
to jest nic :D http://www.spoko.home.pl/__klienci/spoko_firma/
-
Secret Agent - CGS Challenge!
Lisu i Biernac - gratulejszons :) U rock!
-
Animacja-Teledysk- KULT - Marysie
daje radę :) są słabsze elementy, ale ogólnie naprawdę mi się podoba
-
Fcheck - odtwarzanie animacji
faaajne :) naprawdę fajne.
-
Rzeczy interesujące, rzeczy zabawne vol.2
http://www.wulffmorgenthaler.com/default.aspx?id=e4123fa2-0eab-41ec-87d5-bc9676d4d011 HAHAHAHA :D
-
Pliki tga, tif etc
bleeeee. :)
-
Pliki tga, tif etc
Majowym paintem? Chodzi ci o artisana?
-
Pliki tga, tif etc
dzięki :* co prawda trzeba importować tą bibliotekę ale może sie przydać. Ogólnie potrzebuję tego do dość specyficznej operacji. Chciałbym spróbować skonstruować takie narzędzie które generowałoby mapy dla futra na podstawie zmodyfikowanego mesha bazowego. Dla zobrazowania idei posłużę się przykładem: Mamy model łba zwierzaka, chcemy mu dodać futerko ale nie chce nam się malować map atrybutów. Duplikujemy sobie łepek, sculptem albo czymś podobnym modyfikujemy kształt siatki żeby miał ogólnie volume taki jaki powinien mieć po nałożeniu futra. Wektory przesunięcia vertexów względem orginału mogłyby posłużyć do stworzenia mapy długości, inklinacji i kierunku (polar map).
-
Fcheck - odtwarzanie animacji
w sumie wiele nie zostało do zrobienia :) Lepiej popatrz do drugiego wątku który założyłem ;)
-
Pliki tga, tif etc
Czy ktoś może wie jak przy pomocy standardowych pythonowskich modułów zapisać plik tga lub tiff16bit ?
-
Fcheck - odtwarzanie animacji
Nie wiem jak zrobić w shellu analizę nazwy pliku żeby wyciągał które cyferki w nazwie to numery klatek (było nie było fcheck zeby odtworzyc animacje musi miec parametry takie jak: fcheck -n int(pierwsza_klatka) int(ostatnia_klatka) int(co_ile_klatek) nazwapliku_####.jpg
-
Fcheck - odtwarzanie animacji
Tak ale jak np chcesz sobie odtworzyć nie wiem, playblast sprzed tygodnia albo sekwencję z Aftera? :)
-
Fcheck - odtwarzanie animacji
Czy wkurzało was kiedykolwiek że żeby odtworzyć animację zapisaną jako sekwencja klatek w fcheck'u trzeba otworzyć fcheck'a, wklikać się w file->open animation i znów grzebać w poszukiwaniu klatki animacji. Jako że nie znalazłem rozwiązania tego palącego problemu jak uniknąć tego klikania (ale też nie szukałem za daleko) napisałem takie małe cuś: import re, sys, string, os, time def getFrameNumber(s): digitsLen = s.split(".") count = digitsLen[-2] digits = re.findall('[0,1, 2,3,4,5,6,7,8,9]', count) return digits def makeHashes(hashes): returnString = "" for h in range(hashes): returnString += "#" return returnString def getPattern(s): nameSplit = s.split(".") pattern = nameSplit[0:len(nameSplit) - 2] return '.'.join(pattern) def getExtension(s): extension = s.split(".")[-1] return extension arg = sys.argv filename = arg[1] pieces = filename.split("\\") sequenceName = pieces[-1] digits = getFrameNumber(sequenceName) replString = makeHashes(len(digits)) digitsLen = sequenceName.split(".") count = digitsLen[-2] digitsLen[-2] = replString joinDigitsLen = '.'.join(digitsLen) pieces[-1] = joinDigitsLen finalFileName = '\\'.join(pieces) directory = os.listdir('\\'.join(pieces[0:len(pieces)-1])) pattern = getPattern(sequenceName) extension = getExtension(sequenceName) firstFrame = "" framesCount = 0 for f in directory: if f.find(pattern) != -1: if f.find(extension) != -1: firstFrame = getFrameNumber(f) break for f in directory: if f.find(pattern) != -1: if f.find(extension) != -1: framesCount += 1 firstFrame = int(''.join(firstFrame)) lastFrame = firstFrame + (framesCount - 1) command = "fcheck -n " command += (" " + str(firstFrame) + " " + str(lastFrame) + " 1 " + finalFileName) os.system(command) Żeby działało trzeba mieć pythona zainstalowanego i wpisaną ścieżkę do Maya ( domyślnie przy instalacji się dopisuje). Ten kod zapisujemy w pliku np. runSequence.py zapisujemy na pulpicie. Wtedy wystarczy przeciągnąć dowolną klatkę z sekwencji na ikonę skryptu i powinien odpalić się fcheck. Ten skrypcik to taka luźna propozycja, obsługuje niestety tylko sekwencje zapisane w formacie: nazwasekwencji.###.jpg gdzie ### to numer sekwencji, nie zobaczy np nazwasekwencji_###.jpg etc. Może ktoś pomoże to rozwinąć trochu? Pozdrosy
-
UV proporcjonalne
polecam spróbować rozkładać UV w Blenderze, jest za free, jest prosty i jest duuużo materiałów do nauki. No chyba że stać cię na Modo
-
MAYA C4D kto zna oba programy
help -> mel command reference jeśli juz ;)
-
MAYA C4D kto zna oba programy
xform jest komendą MEL'a, jeśli chcesz pobrać np translację obiektu to wpisujesz wyrażenie xform -q -t -ws "obiekt"; To jak to wykorzystasz zależy już od ciebie.
-
Ostatnio obejrzane filmy, polecane filmy
ej ale to był właśnie ten gryps :D
-
Rzeczy interesujące, rzeczy zabawne vol.2
Epic mega fail
-
MAYA C4D kto zna oba programy
zobacz też connection editor
-
[porada] co wazne
Do modelowania polecam Modo lub Blendera, jak ktoś musi to maxa. Maya absolutnie nie nadaje się do tego żeby w niej modelować (ciągle to powtarzam :P )
-
Co czytacie?
Hyperion - klasyk który mnie pozamiatał
-
ps3 + kompuer = większa moc obliczeniowa?
ps3 ma 512MB ramu, myślę że samo to stwierdzenie wyczerpuje temat. Peace.
-
joint to mesh
nie ma sprawy ;)
-
joint to mesh
if(`window -exists "addGeoWindow"`) deleteUI "addGeoWindow"; if(`windowPref -exists "addGeoWindow"`) windowPref -r "addGeoWindow"; // Prepare the UI window -rtf true -title "Add geometry to selected." addGeoWindow; columnLayout -rowSpacing 5 addGeoControlColumn1; text -label "Geometry Orientation"; separator -ann "Geometry Orientation" -w 250; radioCollection addGeoRadioGrp1; rowLayout -numberOfColumns 3 addGeoControlRow1; radioButton -label "+X" posX; radioButton -label "+Y" posY; radioButton -label "+Z" posZ; setParent ..; rowLayout -numberOfColumns 3 addGeoControlRow2; radioButton -label "-X" negX; radioButton -label "-Y" negY; radioButton -label "-Z" negZ; setParent ..; separator -w 250; button -c "addGeoPrep" -label "Create"; setParent ..; showWindow addGeoWindow; radioCollection -e -sl posX addGeoRadioGrp1; // Preparation phase global proc addGeoPrep(){ $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; } // Read values float $width = `getAttr ($a + ".radius")`; //float $rad = `floatSliderGrp -q -value "FKradius"`; string $orient = `radioCollection -q -sl addGeoRadioGrp1`; addGeo( $width, $length, $a, $orient); // Make the main function } } global proc string addGeo ( float $width, float $height, string $targetName, string $orient) { $mesh = `polyCube -w $width -d $width-h $height -n ($targetName + "_joint_geo")`; setAttr ($mesh[0] + ".translateY") ($height / 2); xform -ws -piv 0 0 0 $mesh[0]; if ($orient == "posX"){ setAttr ($mesh[0] + ".rotateZ") -90; makeIdentity -apply true -t 1 -r 1 -s 1 -n 0 $mesh[0]; } if ($orient == "negX"){ setAttr ($mesh[0] + ".rotateZ") 90; makeIdentity -apply true -t 1 -r 1 -s 1 -n 0 $mesh[0]; } if ($orient == "negY"){ setAttr ($mesh[0] + ".rotateZ") 180; makeIdentity -apply true -t 1 -r 1 -s 1 -n 0 $mesh[0]; } if ($orient == "posZ"){ setAttr ($mesh[0] + ".rotateX") 90; makeIdentity -apply true -t 1 -r 1 -s 1 -n 0 $mesh[0]; } if ($orient == "negZ"){ setAttr ($mesh[0] + ".rotateZ") -90; makeIdentity -apply true -t 1 -r 1 -s 1 -n 0 $mesh[0]; } copyMatrixAddGeo($targetName, $mesh[0], 1); // constraint the scale to the .translateX attribute of a bone $child = `listRelatives -c $targetName`; if (`objExists($child[0])`){ $multDiv = `createNode -n ($mesh[0] + "_multDiv") multiplyDivide`; setAttr ($multDiv + ".input2X") (`getAttr ($child[0] + ".translateX")`); connectAttr ($child[0] + ".translateX") ($multDiv + ".input1X"); setAttr ($multDiv + ".operation") 2; connectAttr ($multDiv + ".outputX") ($mesh[0] + ".scaleX"); } parent $mesh[0] $targetName; // return the mesh name return $mesh[0]; } global proc copyMatrixAddGeo( 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); } Dawno tego narzedzia nie uzywalem ale powinno ci pomoc. Dodaje do zaznaczonych jointow geometrie (nie dziala na pelnej hierarhii wiec musisz sobie pozaznaczac wszystkie jointy ktore chcesz tym potraktowac. To co napisze ponizej pisze "z dyni" wiec moge sie pomylic ale: $sel = `ls -sl -l`; selectHierarhy($sel[size($sel) - 1]); proc selectHierarhy (string $obj){ $children = `listRelatives -c -f $obj`; for ($child in $children){ if ((`nodeType($child)`) == "joint"){ select -add $child; selectHierarhy($child); } } } Ten kod powinien zaznaczac wszystkie jointy w hierarchii. Musisz sprawdzic czy dziala wogole. Pozdrowki