Skocz do zawartości
Threef

Nagrywanie GIF z gry na pełnych FPS

Rekomendowane odpowiedzi

Gify są świetnym sposobem aby pokazać ruchomy element z naszej gry. Jest wiele sposobów na nagranie tego. Można nagrać gameplay programem jak Fraps i potem wyrenderować go na gif, ale nie polecam tego sposobu. Są specjalne programy do tego jak GifCam czy LICEcap które idealnie się do tego nadają.

 

Problem pojawia się gdy nasz komputer nie może na raz uciągnąć gry i nagrywania. Nawet pojedyncza zgubiona klatka może zepsuć nam całego gifa. Na szczęście mam na to szalony sposób. Będziemy robić w grze screenshoty i z nich zrobimy nasz gif.

 

Screeny

 

Potrzebujemy w grze dodać funkcję która pozwoli nam zrobić kilkaset screenshotów pod rząd. Od razu poczęstuję was sposobem jaki wykorzystałem już kilka razy:

GML
///Recording

if(keyboard_check_pressed(vk_f6))

{

global.recording+=room_speed

}

 

if(global.recording!=0)

{

t=get_timer()

zeros=string_repeat("0",18-string_length(string(t)))

screen_save("rec_"+string(current_minute)+zeros+string(t)+".png")

}

 

global.recording=max(0,global.recording-1)

Przejdźmy do tłumaczenia. Pierwszy warunek sprawdza czy został naciśnięty klawisz F6. Klawisz możemy sobie oczywiście zmienić. Za każdym wciśnięciem tego klawisza zwiększamy zmienną global.recording o sekundę, więc naciśnięcie F6 3 razy pozwoli nam zapisać po kolei tyle screenów żeby w sumie wyszły 3 sekundy.

 

Drugi warunek sprawdza czy możemy nagrywać i robi jeden screen. Po wykonaniu warunku wykonywana jest ostatnia linijka która zmniejsza naszą zmienną aż będzie równa 0.

 

Samo zapisywanie screena musi jednak odbyć się wg specjalnych zasad. Po prostu screeny muszą być posegregowane alfabetycznie. Niestety nasze komputery uznają że 15 jest przed 8, dlatego musimy sprawić żeby było to 000015 i 000008. Od tego jest zmienna zeros. Do nazwy screena dodaję także "rec_" i aktualną minutę żeby było mi łatwiej ja znaleźć w folderze. Ogółem można byłoby sobie to jeszcze przerobić żeby zapisywało nam do osobnego folderu, ale nie wiem czy komuś się chce w to bawić.

 

Przygotowanie

 

Screeny zapiszą się w folderze gry w %appdata%. U mnie jest to na przykład: C:\Users\Damian\AppData\Local\2_Guys_1_Gun.

 

Znajdujemy te screeny i przenosimy je do innego folderu. Do tego folderu ściągamy też program o nazwie MEncoder.exe. Nie łatwo jest go znaleźć w internecie. Domyślnie jest on częścią programu MPlayer. Udostępniam wam go do pobrania: https://gmclan.org/up3900_4_mencoder.html

 

To jest też moment w którym możemy dokonać poprawek w naszych screenach. Jeżeli coś wyszło nie tak, może coś chcemy poprawić, zasłonić albo po prostu usunąć, to jest dobry moment. Można najnormalniej usunąć te screeny które nam nie opowiadają. Poza tym zadbajcie żeby nie było więcej niż 10 sekund. Tak długie gify nie są fajne.

 

Rendering

 

Teraz nauczę was magicznego triku w Windowsie który zmieni wasze życia. Obok Windows+M i Windows+E jest to najbardziej przydatny skrót jaki znam. "Shift Click"!

 

Wciskamy shift i klikamy prawym przyciskiem myszy na folder z naszymi screenami. Ukaże wam się kilka nowych opcji w menu, a interesuje nas otwarcie wiersza poleceń.

45C3fha.png

Otwiera nam się konsola. Więc pora na kolejne sztuczki. W CMD nie działają Ctrl+C i Ctrl+V. Wielokrotnie się na tym łapiemy, ale jest sposób na to aby kopiować tekst. Wklejanie tekstu jest proste. Klikamy prawym przyciskiem myszy i wybieramy "paste". Kopiowanie wymaga wybrania "Mark" przeciągnięcia myszką po naszym tekście i naciśnięcie Enter. Wy musicie tylko wkleić to i odpalić skrypt:

mencoder.exe "mf://*.png" -mf fps=30 -o output.avi -ovc xvid -xvidencopts bitrate=9999999
Jedyne co was interesuje to argument fps. Jeżeli wasza gra jest w 60 to musicie to zmienić. Po kilku sekundach w folderze pojawi się plik output.avi. avi, nie gif więc coś jest nie tak.

 

Upload

 

Uzyskaliśmy zwykły film w avi, a chcieliśmy mieć gifa. To żaden problem bo i tak będziemy mieć HTML5!

 

Załóżcie sobie konto na gfycat.com. Konto pozwoli wam później w razie czego usunąć gifa albo edytować opis. Poza tym wszystkie będą posortowane i dostępne przez konto. Same plusy.

 

Uploadujecie film na gfycat i cieszycie się gotową animacją. Ale tak jak wspomniałem jest to film w HTML5. Więc przyda się trochę wyjaśnień, a najlepiej będzie porównać go do gifa.

 

Plusem filmów w HTML5 jest ich rozmiar. Czasami są nawet dziesięć razy mniejsze, bez żadnej straty na jakości. Do tego okienko na gfycat pozwala na pauzowanie, zwalnianie tępa albo odtwarzanie od tyłu.

Jedyna wada jest taka że nie zawsze można je użyć. Oczywiście wysyłając komuś link, postując na Facebooku czy Twitterze jest rewelacja, ale jeżeli chcecie pochwalić się np tutaj na forum potrzebujecie klasycznego gifa. Być może kiedyś się doczekamy takich feature na GMClanie. :P

 

Do niedawna gfycat oferował nam od razu linki do udostępniania, niestety w ostatniej zmianie interface'u coś skopali i nie mogę tej opcji znaleźć. Ale wciąż możemy dokopać się do gifa zmieniając URL linku.

Pierwszy to HTML5, a drugi to gif gotowy do wsadzenia w tag [ img ].

 

A może AVI?

 

Mamy gotowy film więc może z nim też coś zrobimy? Możecie pozbierać trochę takich krótkich materiałów i zmontować z nich np trailer gry. Niestety na gameplay się to nie nadaje bo nie nagrały się dźwięki, musicie poprosić kogoś o pomoc w nagraniu jeżeli wasz komp zamula.

 

Więc mając kilka filmów możecie otworzyć wasz program do montowania video i skleić wymarzony trailer. Jeżeli wiecie jak to zrobić to dziękuję za przeczytanie tego i liczę że się przyda.

 

Jeżeli jednak nie renderowaliście nic nigdy i w waszej głowie siedzi Windows Movie Maker, to możecie czytać dalej.

 

Solidnie odradzam WMM. Niektórzy twierdzą że się da, ale ja nigdy nie znalazłem opcji która pozwoliłaby mi renderować coś większego niż 480p bez okropnej kompresji. Ten program się do tego nie nadaje, MEncoder też nie, ale może pomóc.

 

Jeżeli zbierzecie wszystkie screeny jakie chcecie w swoim filmie do jednego folderu i wszystkie będą alfabetycznie, to nic nie szkodzi na przeszkodzie alby znów wyrenderować z tego avi. W dodatku możecie narysować własne efekty specjalne! Każda klatka waszego filmu jest przecież zapisana jako obraz w waszym folderze! Potrzebujecie wkleić logo na początku? Dodajcie go na kilku screenach! To bardzo mozolna praca, ale będziecie mogli potem się tym chwalić!

 

Jedyny problem jaki pozostaje to muzyka... No cóż. Skądś musicie ją mieć. Potem przycinacie to w Audacity do długości waszego filmu i obrabiacie w jaki chcecie sposób!

Jedyne co pozostaje do zrobienia to wrzucenie muzyki do folderu w którym jest MEncoder.exe i film po czym w CMD wykonanie:

mencoder.exe output.avi -o output_z_muza.avi -ovc copy -oac mp3lame -audiofile muzyka.wav
Oczywiście widzicie które argumenty trzeba zastąpić nazwami plików?

 

Skąd to wszystko wiem?

 

Ano stąd: http://www.mplayerhq.hu/DOCS/HTML/pl/mencoder.html

 

Nauczyłem się tego podczas używania Chronolapse. Nie podobało mi się jak mocno kompresował film więc sprawdziłem jak to robi i robię tak samo z tą różnicą że ustawiam "bitrate=9999999".

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Spoko, niech tylko jakiś moderator podepnie temat. Ja się jednak zatrzymam na GIFcamie.

 

@Edit, już podpiął :)

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Tylko 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ę tutaj.

Zaloguj się tutaj

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

×