Télés et vidéo
Depuis SDK 0.2.1
Un monde montre une vidéo de deux façons :
| Un clip inclus dans le monde | Une vidéo d'Internet | |
|---|---|---|
| Comment | Le composant Video Player de Unity avec un Video Clip de ton projet | Un script FL# avec un VideoPlayer (lecteurs vidéo) |
| Ce qu'il lit | Le clip, qui part dans les fichiers du monde | Une adresse : un fichier vidéo, un direct, la page d'un site de vidéos |
| Ensemble | Le jeu de chaque joueur le lit depuis son propre début | Ton script garde tout le monde au même moment |
| Demandé au joueur | Rien | La première vidéo d'un site, sauf sur les grands sites de vidéos |
Un Video Player qui lit une URL est retiré du monde : les vidéos d'Internet passent par FL# (ce qu'un monde peut contenir).
Un écran que tout le monde regarde
La Television du monde d'exemple est un écran complet : un joueur tape une adresse (ou un lien YouTube) et appuie sur Play / Pause, et tout le monde voit la même vidéo au même moment, joueurs arrivés plus tard compris.
Pour la mettre dans ton monde :
- Importe l'exemple Example World (installer le SDK) et copie
Flux/Television.csdans ton dossier de scripts FL#, puis ajoute-le aux Flux Sharp Sources de ta NW World Config. - Fais l'écran : un objet dont le matériau affiche l'image (avec le Lit d'URP, sa propriété de texture est
_BaseMap). - Pose une Audio Source à l'écran, pour le son : en 3D (Spatial Blend à 1) pour qu'il vienne de l'écran.
- Fais à côté un canvas World Space avec un Input Field, un Button et un Text (interfaces).
- Sur un objet, Add Component, NodeWorld, FL# Script, choisis
NodeWorldExample.Television, donne-lui un Network Id, et règle ses champs :
| Champ | |
|---|---|
screen | Le matériau de l'écran. |
textureProperty | La propriété de texture où va l'image (_BaseMap). |
speaker | L'Audio Source. |
address | L'Input Field : Entrée lance l'adresse pour tout le monde. |
playPause | Le Button. |
status | Le Text : chargement, lecture, pause, ou pourquoi la vidéo ne passe pas. |
resyncThreshold | Les secondes dont la vidéo d'un joueur peut dériver avant de revenir au temps partagé (1,5). |
Le joueur qui agit prend la propriété de la télé et envoie l'adresse, en lecture ou en pause, et où en est la vidéo à une heure de l'horloge du serveur ; chaque jeu lit la vidéo lui-même et suit ce temps.
Ce que voient les joueurs
- La première vidéo d'un site demande l'accord de chaque joueur, dans une fenêtre : Toujours, Cette fois ou Refuser (les sites qu'un monde contacte). Les grands sites de vidéos (YouTube, Twitch, Vimeo…) se lancent sans rien demander, sauf si le joueur a changé cette liste. Pendant ce temps, la vidéo charge.
- Le jeu transforme la page d'un site de vidéos en sa vidéo. Une vidéo privée, bloquée dans la région du joueur, ou qui demande une connexion, ne passe pas (
VideoError.AccessDenied). - Le lecteur vidéo est fourni avec le jeu sur Windows, Linux et Quest. En Play mode, toutes les adresses passent sans fenêtre.
