Skocz do zawartości

Kroopson

Members
  • Rejestracja

  • Ostatnia wizyta

Zawartość dodana przez Kroopson

  1. Kroopson dodał odpowiedź w temacie → w Animacje
    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 :)
  2. Kroopson odpowiedział illy → na odpowiedź w temacie → Wolne dyskusje
    to jest nic :D http://www.spoko.home.pl/__klienci/spoko_firma/
  3. Kroopson odpowiedział tweety → na odpowiedź w temacie → Aktualności (mam newsa)
    Lisu i Biernac - gratulejszons :) U rock!
  4. Kroopson odpowiedział pawel → na odpowiedź w temacie → Animacje
    daje radę :) są słabsze elementy, ale ogólnie naprawdę mi się podoba
  5. Kroopson odpowiedział Kroopson → na odpowiedź w temacie → Maya
    faaajne :) naprawdę fajne.
  6. Kroopson odpowiedział illy → na odpowiedź w temacie → Wolne dyskusje
    http://www.wulffmorgenthaler.com/default.aspx?id=e4123fa2-0eab-41ec-87d5-bc9676d4d011 HAHAHAHA :D
  7. Kroopson odpowiedział Kroopson → na odpowiedź w temacie → Maya
    bleeeee. :)
  8. Kroopson odpowiedział Kroopson → na odpowiedź w temacie → Maya
    Majowym paintem? Chodzi ci o artisana?
  9. Kroopson odpowiedział Kroopson → na odpowiedź w temacie → Maya
    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).
  10. Kroopson odpowiedział Kroopson → na odpowiedź w temacie → Maya
    w sumie wiele nie zostało do zrobienia :) Lepiej popatrz do drugiego wątku który założyłem ;)
  11. Kroopson dodał odpowiedź w temacie → w Maya
    Czy ktoś może wie jak przy pomocy standardowych pythonowskich modułów zapisać plik tga lub tiff16bit ?
  12. Kroopson odpowiedział Kroopson → na odpowiedź w temacie → Maya
    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
  13. Kroopson odpowiedział Kroopson → na odpowiedź w temacie → Maya
    Tak ale jak np chcesz sobie odtworzyć nie wiem, playblast sprzed tygodnia albo sekwencję z Aftera? :)
  14. Kroopson dodał odpowiedź w temacie → w Maya
    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
  15. Kroopson odpowiedział jacenty → na odpowiedź w temacie → Maya
    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
  16. Kroopson odpowiedział pawe3 → na odpowiedź w temacie → Maya
    help -> mel command reference jeśli juz ;)
  17. Kroopson odpowiedział pawe3 → na odpowiedź w temacie → Maya
    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.
  18. Kroopson odpowiedział Nimrod → na odpowiedź w temacie → Wolne dyskusje
    ej ale to był właśnie ten gryps :D
  19. Kroopson odpowiedział illy → na odpowiedź w temacie → Wolne dyskusje
    Epic mega fail
  20. Kroopson odpowiedział pawe3 → na odpowiedź w temacie → Maya
    zobacz też connection editor
  21. Kroopson odpowiedział snoopster → na odpowiedź w temacie → Modeling
    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 )
  22. Kroopson odpowiedział Frankot → na odpowiedź w temacie → Wolne dyskusje
    Hyperion - klasyk który mnie pozamiatał
  23. Kroopson odpowiedział odpowiedź w temacie → Wolne dyskusje
    ps3 ma 512MB ramu, myślę że samo to stwierdzenie wyczerpuje temat. Peace.
  24. Kroopson odpowiedział witjah → na odpowiedź w temacie → Maya
    nie ma sprawy ;)
  25. Kroopson odpowiedział witjah → na odpowiedź w temacie → Maya
    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

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności