Napisano 30 Wrzesień 200915 l 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ń 200915 l przez Kroopson
Napisano 30 Wrzesień 200915 l a nie myślałeś, żeby dobrać się do komendy pleyblasta? jak ustawisz w pleyblascie klatki, to automatycznie uruchamia fcheka i odtwarza animację.
Napisano 30 Wrzesień 200915 l Autor Tak ale jak np chcesz sobie odtworzyć nie wiem, playblast sprzed tygodnia albo sekwencję z Aftera? :)
Napisano 1 Październik 200915 l 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.
Napisano 1 Październik 200915 l Autor 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
Napisano 1 Październik 200915 l Autor w sumie wiele nie zostało do zrobienia :) Lepiej popatrz do drugiego wątku który założyłem ;)
Napisano 1 Październik 200915 l 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.
Napisano 1 Październik 200915 l 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).
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto