Ich mache ein PC-Horror-Spiel in Unity und möchte eine Kameraaufzeichnungssimulation im Spiel haben - damit Sie jederzeit einen gruseligen Ort verlassen können und ein Band mit dem haben, was Sie während der Erkundung vor der Kamera aufgenommen haben.
Technisch gesehen muss ich eine zweite Kamera (Hand-Cam) an der Hand des Charakters anbringen und den Spieler per Knopfdruck durch den Sucher schauen lassen. In jeder Position muss die Handkamera alles aufzeichnen, was an diesem Punkt im Fokus steht - Boden, Treppen, Müll usw., unabhängig davon, ob sie auf Handhöhe abgesenkt oder angehoben wird, um dem Standpunkt des Spielers zu entsprechen.
Wenn das Spiel endet (der Spieler verlässt oder stirbt), möchte ich die Option haben, aufgezeichnete Bänder in einer Videodatei zu speichern (wenn dies nicht möglich ist, dann in einer Speicherdatei).
Wie kann ich eine solche Funktion in meinem Spiel implementieren? Gibt es spezielle Unity-Tricks oder Add-Ons und zusätzliche Module? Dekorationen und Szenen mit aktiven Triggern speichern oder einfach nur Videos vom Bildschirm aufnehmen?
Im Folgenden finden Sie ein kurzes MSPaint-Konzept für das, was ich meine:
quelle
Antworten:
Sie müssen Ihre Szene zweimal rendern.
Zunächst rendern Sie die Szene aus der Sicht der Kamera in eine Textur .
Dann rendern Sie die Szene aus der Sicht des Spielers , jedoch mit der Textur, die auf den Bildschirm der Kamera angewendet wird .
Was sich zwischen den beiden Renderdurchgängen ändert, ist die verwendete Kameratransformation , während der Camcorder die Ausrichtung und Position der Kamera verwendet, während die Spieleransicht die Ausrichtung und Position des Kopfes des Spielers verwendet. Wenn Sie eine Skelettanimation verwenden, ist dies so einfach wie das Anbringen des Kameramodells an der Hand des Spielermodells.
Da Sie dann bereits in Textur rendern, ist das Speichern eines Videos so einfach wie das Speichern der Textur in jedem Frame . Wenn der Benutzer das Video speichert, können Sie diese Bildsequenz in ein Videoformat konvertieren .
quelle