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:
fonte
Respostas:
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 .
fonte