Aller au contenu principal

Capture Audio

Unreal Engine permet de capturer l'audio, qu'il s'agisse du micro de l'utilisateur ou des sons de l'environnement virtuel. Il n'existe cependant pas de solution pour streamer ces bandes sons en temps réel, la seule option est de l'enregistrer au format .wav.

Enregistrer une bande audio

L'enregistrement passe par le système Audio Mixer d'Unreal Engine, qui se base sur des Submixes. Ce sont des bandes sons qui peuvent être traités indépedamment avant d'être assemblées pour former des sorties audios. Il est possible de séparer les différentes sources audio sur plusieurs Submixes, ce qui nous permet de sélectionner les sources que l'on souhaite enregistrer. Il suffit ensuite d'utiliser en blueprint les nodes StartRecordingOutput et FinishRecordingOutput.

Le fichier .wav ainsi obtenu est indépendant, il faut l'associer à une vidéo pour obtenir le rendu souhaité.

Ajouter le microphone à une bande son

Unreal Engine propose le composant AudioCapture, il permet de récupérer le son du micro par défaut. Comme tout composant il faut ensuite ajouter cette entrée à un submix ou un bus audio. Par défaut, le son est envoyé directement au Submix global (on entend un écho). Nous créons un Submix MicOutputSubmix et nous l'assignons comme Submix pour notre composant AudioCapture. Il peut ensuite être enregistré.

Avec TakeRecorder

Nous n'avons pas expérimenté avec cette fonctionnalité, mais il est possible d'ajouter une piste de capture microphone à TakeRecorder. Il enregistre alors l'audio entrant en parallèle des propriétés de l'environnement virtuel. Fonction qui semble très utile pour synchroniser audio et vidéo, mais qui ne peut pas s'appliquer à notre solution basée sur le streaming de texture.

A défaut, utiliser OBS

Pour finir, quitte à passer par Spout+OBS pour la capture vidéo, il est tout à fait envisageable de capturer l'audio via ce même outil. La latence introduite par Spout est minimale et cela permet de visualiser dès le tournage l'ensemble du rendu.