Comment puis-je enregistrer à partir d'une deuxième caméra dans le jeu et l'exporter ensuite dans un fichier vidéo?

9

Je fais un jeu d'horreur sur PC dans Unity, et je veux avoir une simulation d'enregistrement de caméra dans le jeu - afin que vous puissiez quitter un endroit effrayant à tout moment, et vous aurez une bande avec ce que vous avez enregistré sur la caméra pendant l'exploration.

Techniquement, je dois attacher un deuxième appareil photo (caméra à main) à la main du personnage et laisser le joueur regarder dans le viseur en appuyant sur un bouton. Mais dans n'importe quelle position, la caméra à main doit enregistrer tout ce qui est au point à ce moment-là - sol, escaliers, ordures, etc., qu'elle soit abaissée au niveau de la main ou relevée pour correspondre au point de vue du joueur.

Lorsque le jeu se termine (le joueur quitte ou meurt), j'aimerais avoir une option pour sauvegarder les cassettes enregistrées dans un fichier vidéo (si ce n'est pas possible, puis dans un fichier de sauvegarde).

Comment puis-je implémenter une telle fonctionnalité dans mon jeu? Existe-t-il des astuces Unity spéciales, ou des modules complémentaires et des modules supplémentaires? Enregistrer des décorations et des scènes avec des déclencheurs actifs, ou simplement saisir une vidéo à l'écran?

Vous trouverez ci-dessous un rapide concept MSPaint de ce que je veux dire:

concept

KatShot
la source
Si votre jeu est déterministe (ou suffisamment proche), une autre approche consisterait simplement à enregistrer des éléments tels que les positions et les données d'animation, les déclencheurs sonores, les entrées des joueurs et tout ce qui est pertinent, puis à recréer la scène à partir de ces données à un stade ultérieur. Cela utilise beaucoup moins d'espace disque que l'enregistrement de chaque image sur le disque, et utilise probablement un peu moins de performances (?).
Christian

Réponses:

6

Vous devez rendre votre scène deux fois.

Tout d'abord, vous rendez la scène de la vue de la caméra à la texture .

Ensuite, vous restituez la scène du point de vue du joueur , mais avec la texture appliquée à l'écran des caméras .

Ce qui change entre les deux passes de rendu est la transformation de la caméra utilisée, tandis que le caméscope utilise l'orientation et l'emplacement de la caméra, la vue des joueurs utilise l'orientation et l'emplacement de la tête du joueur. Si vous utilisez une animation squelettique, ce serait aussi simple que d'attacher le modèle de caméra à la main du modèle de joueur.

Étant donné que vous effectuez déjà un rendu de texture, l'enregistrement d'une vidéo serait aussi simple que l' enregistrement de la texture à chaque image . Lorsque l'utilisateur choisit de sauvegarder la vidéo, vous pouvez convertir cette séquence d'images en un format vidéo .

Exilyth
la source
1
Sachez cependant que, si je ne manque rien, cette méthode n'enregistrer pas du tout audio. D'après la question, je ne sais pas si cela est pertinent ou non.
Christian