Como posso gravar a partir de uma segunda câmera do jogo e depois exportá-la para um arquivo de vídeo?

9

Estou criando um jogo de PC Horror no Unity e quero ter uma simulação de gravação de câmera no jogo - para que você possa deixar um local assustador a qualquer momento e tenha uma fita com o que gravou na câmera enquanto explora.

Tecnicamente, preciso conectar uma segunda câmera (mão-cam) à mão do personagem e deixar o jogador olhar pelo visor pressionando um botão. Mas em qualquer posição, a câmera de mão deve registrar tudo o que está em foco naquele momento - piso, escada, lixo, etc., seja ela abaixada no nível da mão ou elevada para corresponder ao ponto de vista do jogador.

Quando o jogo termina (o jogador sai ou morre), eu gostaria de ter a opção de salvar fitas gravadas em um arquivo de vídeo (se isso não for possível, em alguns arquivos salvos).

Como posso implementar esse recurso no meu jogo? Existem alguns truques especiais do Unity, ou complementos e módulos adicionais? Salvar decorações e cenas com gatilhos ativos ou apenas capturar vídeo da tela?

Abaixo está um rápido conceito MSPaint do que quero dizer:

conceito

KatShot
fonte
Se o seu jogo for determinístico (ou próximo o suficiente), outra abordagem seria salvar coisas como posições e dados de animação, acionadores de som, entrada do jogador e o que for mais relevante e recriar a cena a partir desses dados posteriormente. Isso usa muito menos espaço em disco do que a gravação de todos os quadros em disco e provavelmente consome um pouco menos de desempenho (?).
Christian

Respostas:

6

Você precisa renderizar sua cena duas vezes.

Primeiro, você renderiza a cena da visão da câmera para textura .

Então você renderizar a cena do ponto de vista jogadores , mas com a textura aplicada à tela de câmeras .

O que muda entre os dois passes de renderização é a transformação da câmera usada, enquanto a câmera de vídeo usa a orientação e o local da câmera, a visualização dos jogadores usa a orientação e o local da cabeça dos jogadores. Se você estiver usando animação esquelética, isso seria tão fácil quanto conectar o modelo da câmera à mão dos modelos do player.

Como você já processa a textura, salvar um vídeo seria tão fácil quanto salvar a textura em cada quadro . Quando o usuário decide salvar o vídeo, você pode converter essa sequência de imagens em um formato de vídeo .

Exilyth
fonte
11
Lembre-se que, se eu não estou faltando alguma coisa, este método não gravar qualquer áudio em tudo. Da pergunta, não tenho certeza se isso é relevante ou não.
Christian