Tworzę grę Horror na PC w Unity i chcę mieć w grze symulację nagrywania z kamery - abyś mógł opuścić przerażające miejsce w dowolnym momencie, a będziesz miał taśmę z tym, co nagrałeś podczas kamery.
Technicznie rzecz biorąc, muszę przymocować drugi aparat (kamerę ręczną) do ręki postaci i pozwolić graczowi patrzeć przez wizjer, naciskając przycisk. Ale w dowolnej pozycji kamera ręczna musi rejestrować wszystko, co jest w tym momencie w centrum uwagi - podłogę, schody, śmieci itp., Niezależnie od tego, czy jest obniżona na poziomie ręki, czy podniesiona, aby pasowała do punktu widzenia gracza.
Kiedy gra się kończy (gracz wychodzi lub umiera), chciałbym mieć opcję zapisania nagranych taśm do pliku wideo (jeśli nie jest to możliwe, to do jakiegoś pliku zapisu).
Jak mogę zaimplementować taką funkcję w mojej grze? Czy są jakieś specjalne sztuczki Unity, dodatki i dodatkowe moduły? Zapisujesz dekoracje i sceny z aktywnymi wyzwalaczami, czy po prostu przechwytujesz wideo z ekranu?
Poniżej znajduje się krótka koncepcja MSPaint tego, co mam na myśli:
źródło
Odpowiedzi:
Musisz dwukrotnie renderować scenę.
Najpierw renderujesz scenę z widoku kamery na teksturę .
Następnie renderujesz scenę z punktu widzenia gracza , ale z teksturą zastosowaną na ekranie aparatu .
To, co zmienia się między dwoma przebiegami renderowania, to zastosowana transformacja kamery , podczas gdy kamera wykorzystuje orientację i położenie kamery, widok odtwarzacza używa orientacji i położenia głowy gracza. Jeśli używasz animacji szkieletowej, byłoby to tak proste, jak przymocowanie modelu kamery do ręki modeli graczy.
Ponieważ renderujesz już teksturę, zapisanie wideo byłoby tak proste, jak zapisanie tekstury w każdej klatce . Gdy użytkownik zdecyduje się zapisać wideo, możesz przekonwertować tę sekwencję obrazów na format wideo .
źródło