Skocz do zawartości
View in the app

A better way to browse. Learn more.

Max3D.pl

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Fcheck - odtwarzanie animacji

Featured Replies

Napisano

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 przez Kroopson

  • Odpowiedzi 10
  • Wyświetleń 1,2k
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Napisano

a nie myślałeś, żeby dobrać się do komendy pleyblasta? jak ustawisz w pleyblascie klatki, to automatycznie uruchamia fcheka i odtwarza animację.

Napisano
  • Autor

Tak ale jak np chcesz sobie odtworzyć nie wiem, playblast sprzed tygodnia albo sekwencję z Aftera? :)

Napisano

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
  • 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
  • Autor

w sumie wiele nie zostało do zrobienia :) Lepiej popatrz do drugiego wątku który założyłem ;)

Napisano

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

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

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.