Expériences interactives · Guide pratique
Intégrer un personnage virtuel en vidéo : signal, transparence et délai
Superposer un personnage à l’image d’une caméra ou transmettre son image à une application exige d’accorder formats, transparence et trajets. Voir le personnage dans le moteur n’est qu’une étape.
Faire entrer la caméra et choisir où composer
- Caméra / format
- Entrée documentée
- Moteur / composition
- Sortie / surface
La caméra peut arriver en SDI/HDMI via une carte, comme périphérique vidéo USB ou par un trajet IP documenté. Un connecteur USB seul ne démontre pas une sortie UVC. Relevez le mode produit et celui accepté par l’application, avec câbles/adaptateurs.
- Source : modèle, sortie, résolution, fréquence exacte et balayage ; inclure l’audio embarqué. Identifier qui peut modifier ces valeurs.
- Entrée : carte/périphérique, pilote, système et build d’application. Confirmer format accepté et disponibilité pour le processus.
- Composition : personnage ajouté dans le moteur, une autre application ou un mélangeur. Marquer recadrage, échelle et synchronisation audio.
- Destination : canevas, sortie physique, processeur et surface. Conserver une prévisualisation distinguant source reçue et composition livrée.
Media Framework d’Unreal distingue source, texture et audio ; les entrées de cartes utilisent des plugins spécifiques. Une source acceptée par un lecteur ne l’est pas nécessairement par chaque moteur. Vérifiez entrée et synchronisation avec le guide de capture de ce trajet.
Répétition proposée : mire/source stable, puis caméra, puis composition. Garder le format fixe et vérifier orientation, proportions, couleur, niveaux et voix. Si le changement de source échoue, relever les modes avant/après et l’étape concernée. La prévisualisation ne confirme pas la destination finale. Prévoir un contenu local retirant la caméra perdue sans laisser le personnage sur un mauvais fond.
Transparence : alpha, incrustation et key/fill
Un fond noir n’est pas automatiquement transparent. L’alpha décrit la contribution de l’image à la composition ; un chroma key calcule un masque depuis une couleur. Un personnage déjà composé sur le fond final n’a pas forcément besoin de transporter sa transparence.
Key/fill sépare image couleur et signal de découpe. vMix 29 documente sorties séparées et modes Straight/Premultiplied sur des périphériques sélectionnés. Cet exemple ne confirme pas d’autres moteurs, cartes ou ports. Les deux signaux doivent avoir format et timing compatibles avec le récepteur.
- Convenir du fichier/texture/signaux livrés, de l’application/build réceptrice, de l’espace couleur et de l’alpha. L’extension du conteneur ne suffit pas.
- Tester les contours semi-transparents sur fond clair et sombre : cheveux, ombres et brillances révèlent halos ou découpes. Comparer au rendu approuvé.
- Vérifier couleur prémultipliée et attente du récepteur. Un désaccord peut assombrir les contours ; ne pas modifier tout le personnage à l’aveugle.
- Pour deux signaux, identifier key et fill, fréquence, résolution et alignement. Répéter perte d’un signal et passage à un contenu local déjà composé.
Essai proposé : personnage fictif avec zones opaques, transparentes et progressives, immobile puis animé. Observer la composition finale ; le damier de l’éditeur ne valide pas tout le transport. Relever résultats par trajet/version. Si l’alpha n’est pas conservé, évaluer une composition en amont ou un autre mécanisme approuvé, puis le tester avec le récepteur retenu.
Spout ou Syphon : transmettre l’image entre applications
Spout vise le partage vidéo entre applications Windows ; Syphon partage des images entre applications macOS. Ils peuvent relier moteur visuel et composition/lecture sur le même système. Ils ne remplacent pas seuls une liaison entre lieux ou une étude de réseau vidéo.
- Identifier applications émettrice/réceptrice, versions, plugin/intégration et système. Un nom dans une liste ne confirme pas tous les builds.
- Nommer la sortie et sélectionner le bon émetteur. Relever résolution, fréquence, alpha et comportement au redémarrage.
- Étudier GPU actif et trajet entre processus selon les deux documentations. Avec plusieurs GPU, tester la combinaison réelle avant de garantir la continuité.
- Tracer la voix séparément et confirmer son transport. Une texture reçue ne prouve ni audio ni synchronisation.
Répétition proposée : envoyer mire numérotée et contour transparent, recevoir, composer et observer la destination. Ouvrir les processus dans l’ordre prévu, fermer/rouvrir l’émetteur d’essai et vérifier reprise ou nécessité de resélection. Relever charge et fluidité sur le projet complet.
Si l’image disparaît, passer au contenu local pendant l’identification de l’émetteur, du récepteur et de l’état. Mesurez le délai complet dans les deux applications et jusqu’à l’écran final, même si le mécanisme de partage est décrit comme ayant une faible latence. Sortie physique et traitement écran ajoutent des étapes. Documentez cette interface avec les deux projets pour pouvoir la restaurer.
Latence : mesurer la réaction complète
Séparez capture données/image, filtrage, traitement, rendu, transport et présentation. La personne bougeant la main attend le changement de surface, pas seulement un nombre d’images par seconde annoncé par le moteur. La conversation dépend aussi du rapport bouche/voix.
Exemple arithmétique, pas une mesure : à 60 fps, une période vaut 1000/60 ≈ 16,67 ms ; à 30 fps, ≈ 33,33 ms. Cela ne signifie pas qu’une étape dure une image ou que le délai total vaut cette période. Buffers, évaluation et affichage ajoutent parfois de l’attente ; d’autres tâches sont parallèles.
- Convenir de l’événement initial et de la réponse : bouton fictif→changement visuel, geste autorisé→réaction ou voix→sortie. Ne pas mélanger des périmètres de mesure différents.
- Employer si possible une observation commune du début et de la fin ; noter résolution temporelle et incertitude. Pour des horloges séparées, vérifier leur relation avant soustraction.
- Répéter avec projet/charge prévus : résolution, fréquences exactes, mode capteur, réseau et sortie. Relever variation, pas seulement meilleur résultat.
- Distinguer estimé, documenté et mesuré. Une valeur fabricant par composant n’est pas une mesure de bout en bout.
Essai proposé : comparer stimulus fictif et réponse graphique, puis ajouter entrée réelle et surface. Mesurer séparément voix et image puis vérifier la synchronisation perçue en conversation. Si la réponse suit mal l’action, ajuster filtres, contenu ou règles puis répéter la mesure pour vérifier si la réponse convient à l’action. Conserver les réglages précédents pour revenir en arrière.
Questions pour préparer la configuration
Un fichier sur fond noir est-il déjà transparent ?
Le noir peut appartenir à l’image. Confirmez alpha, découpe calculée ou key/fill selon le trajet. Testez les contours sur fonds clair et sombre dans l’application réceptrice.
L’image dans le moteur valide-t-elle la sortie publique ?
Le trajet vers la surface et la voix restent à vérifier. Testez format, composition, synchronisation et réponse à la destination finale, en plus de la prévisualisation.
Sources et portée
- Epic — Media Framework Overview, Unreal Engine 5.8 — Sources, textures et audio dans le moteur ; plugins et compatibilité selon le trajet retenu.
- vMix 29 — Key and Fill output support — Exemple documenté de key/fill et modes alpha ; ses menus ne s’appliquent pas aux autres logiciels.
- Spout — Windows video sharing — Partage d’image entre applications Windows ; ne valide pas chaque paire d’applications.
- Syphon — realtime video sharing — Partage d’images entre applications macOS avec intégration compatible ; pas une liaison entre lieux.