Kroopson Napisano 30 Wrzesień 2009 Napisano 30 Wrzesień 2009 (edytowane) 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 Edytowane 30 Wrzesień 2009 przez Kroopson
bartolomeo Napisano 30 Wrzesień 2009 Napisano 30 Wrzesień 2009 a nie myślałeś, żeby dobrać się do komendy pleyblasta? jak ustawisz w pleyblascie klatki, to automatycznie uruchamia fcheka i odtwarza animację.
Kroopson Napisano 30 Wrzesień 2009 Autor Napisano 30 Wrzesień 2009 Tak ale jak np chcesz sobie odtworzyć nie wiem, playblast sprzed tygodnia albo sekwencję z Aftera? :)
beny Napisano 1 Październik 2009 Napisano 1 Październik 2009 Nie myślałeś żeby zrobić to z zwykłym ".bat"-em shellowym? Też kiedyś nad tym się zastanawiałem, ale zawsze było 10 ważniejszych rzeczy do zrobienia.
Kroopson Napisano 1 Październik 2009 Autor Napisano 1 Październik 2009 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
beny Napisano 1 Październik 2009 Napisano 1 Październik 2009 Czaję. Może coś wymyślę. Ale inicjatywa spoko.
Kroopson Napisano 1 Październik 2009 Autor Napisano 1 Październik 2009 w sumie wiele nie zostało do zrobienia :) Lepiej popatrz do drugiego wątku który założyłem ;)
beny Napisano 1 Październik 2009 Napisano 1 Październik 2009 ok, jako że na chorobowym jestem to z nudów zrobiłem ładowanie animacji do FCheck'a w Visual Basicu - ogólnie odpali się u wszystkich z Windowsem, wystarczy fcheck .... chyba :) plik: VIsual Basic Based fcheck_animLoader Usage: Ściągasz, rozpakowujesz, przeciągasz którąkolwiek z klatek animacji na plik .vbs i oglądasz animke w fchecku. Obsługuje wszystkie paddingowane klatki w sensie 100 klatek od klatka001.tga do klatka100.tga, przejdzie jak ulał, ale klatka1.tga do klatka100.tga już nie. Jak będzie Wam brakowało klatek między najmniejszym numerem a największym to je po prostu ominie. Akceptowane formy numeracji: aaaa.00132.tga aaaa00345.jpg nnnnn_fdmkl.2frdwsf.rewjiow_0234.innyFormat ogólnie każdy który ma padding i jakieś rozszerzenie które łyka fcheck. Jak ktoś bardzo polubi ten skrypt i będzie wolał od Krupsonowej napisanej Pythonowej wersji to niech mi skrobnie maila - jak się nazbiera maili to dorobię brakujące funkcjonalności - poki co jest późno i kończy mi się "chorobowe" więc nie mam czasu za bardzo na dokończenie. 1
SYmek Napisano 1 Październik 2009 Napisano 1 Październik 2009 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 Napisałem dawno temu taki skrypt dla mplaya. Jest tam funkcja, która daje radę z większością formatów, poza klatkami floating point, coś jak: def padding(file, return_full_name=True): # find padding rule and applies it pic_dir = os.path.dirname(file) base, ext = os.path.splitext(os.path.basename(file)) list_base = list(base).reverse() count = 0 for letter in list_base: if letter.isdigit(): count += 1 else: break # generate new name: if return_full_name: if count != 0: if count == 1: base = base[0:-count] + "$F" else: base = base[0:-count] + "$F" + str(count) file = os.path.join(pic_dir, base + ext) else: if count != 0: base = base[0:-count] file = os.path.join(pic_dir, base) return file Całość znajduje się tutaj. pozdro, skk. (mplay otworzy w zakładkach kilka sekwencji jednocześnie, jeśli znajdzie je w katalogu/podkatalogach).
bartolomeo Napisano 2 Październik 2009 Napisano 2 Październik 2009 spoczko :) już użyłem benego skryptu :)
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się