NodeWorld

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 mondeUne vidéo d'Internet
CommentLe composant Video Player de Unity avec un Video Clip de ton projetUn script FL# avec un VideoPlayer (lecteurs vidéo)
Ce qu'il litLe clip, qui part dans les fichiers du mondeUne adresse : un fichier vidéo, un direct, la page d'un site de vidéos
EnsembleLe jeu de chaque joueur le lit depuis son propre débutTon script garde tout le monde au même moment
Demandé au joueurRienLa 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 :

  1. Importe l'exemple Example World (installer le SDK) et copie Flux/Television.cs dans ton dossier de scripts FL#, puis ajoute-le aux Flux Sharp Sources de ta NW World Config.
  2. Fais l'écran : un objet dont le matériau affiche l'image (avec le Lit d'URP, sa propriété de texture est _BaseMap).
  3. Pose une Audio Source à l'écran, pour le son : en 3D (Spatial Blend à 1) pour qu'il vienne de l'écran.
  4. Fais à côté un canvas World Space avec un Input Field, un Button et un Text (interfaces).
  5. Sur un objet, Add Component, NodeWorld, FL# Script, choisis NodeWorldExample.Television, donne-lui un Network Id, et règle ses champs :
Champ
screenLe matériau de l'écran.
texturePropertyLa propriété de texture où va l'image (_BaseMap).
speakerL'Audio Source.
addressL'Input Field : Entrée lance l'adresse pour tout le monde.
playPauseLe Button.
statusLe Text : chargement, lecture, pause, ou pourquoi la vidéo ne passe pas.
resyncThresholdLes 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.