Scripts pour écran vidéo WWW

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
Avatar de l’utilisateur
yannminh
Messages : 70
Inscription : 18 Fév 2010 15:09
Localisation : Noisy-Le-Grand
Contact :

Scripts pour écran vidéo WWW

Message par yannminh » 14 Sep 2011 13:34

Bonjour,

Voici un ensemble de scripts qui ont été réalisés pour les bornes vidéo du musée de la SCAM
http://www.scam3d.fr

et qui peuvent être utiles à ceux qui voudraient installer des écrans vidéo dans leurs projets.

Le package de l'écran vidéo simple peut-être téléchargé ici
http://www.noomuseum.net/noomuseum/Simp ... ackage.zip


Scripts créés, adaptés, améliorés par Eric Wenger (le créateur de Bryce) http://www.metasynth.com/ERICWENGER/ et Edwige Lelièvre http://www.armaghia.fr/ pour le Noomuseum scam3d http://www.scam3d.com/ de Yann Minh http://www.yannminh.org en avril 2010 et sont diffusés avec leur accord. (merci de conserver leurs références dans les codes :-)

Ces scripts permettent de créer un lecteur video avec boutons Play, Pause, Stop, pour diffuser sur un écran une video en format .ogg hébergée sur le web.
http://noozone.free.fr/noocrypte/viewto ... ?f=6&t=923


http://noozone.free.fr/noocrypte/viewto ... f=16&t=925
Image


Mettre ce script nommé videocontroller dans un object qui fera office d'écran vidéo.

Image

Code : Tout sélectionner

// VIDEOCONTROLLER  Script développé en mai 2011 à partir des scripts UNITY, par Eric Wenger http://www.metasynth.com/ERICWENGER/  et  Edwige Lelièvre http://www.armaghia.fr/
// pour le musée 3D de la SCAM de Yann Minh, http://www.scam3d.fr/   http://www.noomuseum.net/
// ce script permet, associé à 3 autres scripts pour les boutons play, pause, stop, de pouvoir déclencher la lecture de media vidéo au format OGV stockés sur un serveur web distant.
// mettre ce script "videocontroller" dans le game object qui sert d'écran
// mettre les autres scripts : "videobutton_pause", "videobutton_play", "videobutton_stop", dans les game objects faisant office de boutons.

//VIDEOCONTROLLER  Script written in May 2011 from the  unity scripts, by Eric Wenger  http://www.metasynth.com/ERICWENGER/   and Edwige Lelièvre for the SCAM'S 3D museum of Yann Minh. (http://www.scam3d.fr/   http://www.noomuseum.net/)
// this script, with 3 others scripts for the buttons play, pause, stop, allow to play OGV video from a distant server on the web.
// Put the script "videocontroller" in the screen game object
// put the others scripts : "videobutton_pause", "videobutton_play", "videobutton_stop" in the buttons's game objects.



var url = "http://www.yannminh.org/ShortFilms/NooGenesis-512.ogg";  //lien vers le film (format ogg, ou ogv)
//public var object:GameObject; // Ecran sur lequel la video est affichee
public var isplaying=0;	//1 when loading 2 when playing 3 when paused
private var waitimage : Texture;
var www : WWW;
var m : MovieTexture;
var asize : Vector3;

function Awake()
{	waitimage=renderer.material.GetTexture("_MainTex");
 	this.enabled=false;	
}

function reveilleVideo()//fonction appellee par videobutton_play.js
{
	this.enabled=true;	
 	asize=transform.localScale;
}
//------------//

function startmovie () {
   
   renderer.material.color =Color.white;
   renderer.material.mainTexture= m;
 //resize object
	renderer.material.SetVector ("_Datas", Vector4(m.width,m.height,0,0));
  	var fs=renderer.material.GetVector("_Datas");
 	transform.localScale=Vector3(asize.x,asize.y*(fs.y/fs.x),asize.z);   
 	
   audio.clip = m.audioClip;
   m.Play(); 
   audio.Play();	
   isplaying=2; //playing
}

//------------//

function stopmovie () {
	print("Stop recieved");
	if(m!="") m.Stop(); 
	audio.Stop();	
	isplaying=0; 
	transform.localScale=asize;//restore size
	renderer.material.color =Color.black;
	renderer.material.mainTexture=waitimage;
	
}

//------------//
function loadmovie() { 
 	
	if(isplaying>0){ stopmovie ();}
	
	isplaying=1; //loading
	renderer.material.mainTexture=waitimage;
	//renderer.material.SetVector ("_Datas", Vector4(1,1,Time.time*4.0,www.progress));

	www = new WWW(url);
    m= www.movie;   //yield www;
//let update play when ready
	}
//------------//

function Start () {
   renderer.material.SetVector ("_Datas", Vector4(1,1,0,-1));
   
   MovieController(1); //comme la fonction start n'est activee que lorsqu'on a appuye sur play, alors on joue automatiquement la video une fois que le chargement est fait
}
//------------//
function MovieController( action ) { 
switch(action){
case 0:	 
	if (isplaying>=2) stopmovie ();
	break;
case 1:
		if(isplaying==3){//paused
			m.Play(); 
   			audio.Play();	
   			isplaying=2; //playing
		}else if(isplaying==0){
			loadmovie();//start loading update will start play when ready
		}
		break;
case 2:	 if(isplaying==2){ m.Pause(); audio.Pause(); isplaying=3; } break;
}
}

//------------//

function Update () {
	
	if(isplaying==1){
		if (m.isReadyToPlay) { 
			startmovie();
		}else{
		 	//renderer.material.color =Color.green;  
		 	//loading animation 
		 	renderer.material.color.r = Mathf.Sin(Time.time*12.0);
		 	renderer.material.color.g =1;
		 	renderer.material.color.b =1;
		 	renderer.material.SetVector ("_Datas", Vector4(1,1,Time.time*4.0,www.progress));	
		}
	}else{	//check if done
		if((isplaying==2)  && (m.isPlaying==false)){
			stopmovie();
		}
	}
}

//------------//


function OnMouseDown () { 
	 
	audio.clip = m.audioClip;
	if(isplaying==2){
		MovieController( 2 );//pause
	}else if(isplaying==0){
		MovieController( 1 );//start
	}
}



@script RequireComponent (AudioSource)

Mettre ce script dans le bouton Play

Code : Tout sélectionner

// videobutton_play  Script développé en mai 2011 à partir des scripts UNITY, par Eric Wenger http://www.metasynth.com/ERICWENGER/  et  Edwige Lelièvre
// pour le musée 3D de la SCAM de Yann Minh, http://www.scam3d.fr/   http://www.noomuseum.net/

// mettre ce script "videobutton_play" dans le game object qui sert de bouton play: "ButtonPlay"

//videobutton_play  Script written in May 2011 from the  unity scripts, by Eric Wenger  http://www.metasynth.com/ERICWENGER/   and Edwige Lelièvre for the SCAM'S 3D museum of Yann Minh. (http://www.scam3d.fr/   http://www.noomuseum.net/)
// Put this script "videobutton_play" in the play game object : "ButtonPlay"



private var script : videocontroller;
var Target : GameObject;
var videochargee : int;
var highlightColor = Color.red;
var rollover = 0;

function Start () {
	 script= Target.GetComponent("videocontroller");
	 videochargee = 0;
}

function OnMouseDown () {
	Debug.Log("appuye sur play"); 
	 
	transform.localScale = transform.localScale * 0.9;	// Scale up the text
	if(videochargee==0)
	{
		Target.SendMessage("reveilleVideo");
		videochargee=1;
	}
	else
	{
		script.MovieController(1); //play
	}
}
function OnMouseUp () {
	// Scale down the text to the original value
	transform.localScale = transform.localScale / 0.9;
}

function Update (){ 
	 if(script.isplaying>0){
	 	renderer.material.color =Color.green;  
	 }else{
	 	renderer.material.color =rollover ? highlightColor : Color.white;  
	 }	
}


function OnMouseEnter () {
	rollover =1; 
}

function OnMouseExit () {
	rollover =0;
}

Mettre ce script dans le bouton Pause

Code : Tout sélectionner

// videobutton_pause  Script développé en mai 2011 à partir des scripts UNITY, par Eric Wenger http://www.metasynth.com/ERICWENGER/  et  Edwige Lelièvre
// pour le musée 3D de la SCAM de Yann Minh, http://www.scam3d.fr/   http://www.noomuseum.net/

// mettre ce script "videobutton_pause" dans le game object qui sert de bouton pause: "ButtonPause"

//videobutton_pause  Script written in May 2011 from the  unity scripts, by Eric Wenger  http://www.metasynth.com/ERICWENGER/   and Edwige Lelièvre for the SCAM'S 3D museum of Yann Minh. (http://www.scam3d.fr/   http://www.noomuseum.net/)
// Put this script "videobutton_pause" in the pause game object : "ButtonPause"



private var script : videocontroller;
var Target : GameObject;
var highlightColor = Color.red;
var rollover = 0;

function Start () {
	script= Target.GetComponent("videocontroller");
}

function OnMouseDown () { 
	renderer.material.color =Color.green;  
	transform.localScale = transform.localScale * 0.9;
   	script.MovieController((script.isplaying==2) ? 2 : 1 ); //pause
}
function OnMouseUp () { 
	renderer.material.color =Color.white;  
	transform.localScale = transform.localScale / 0.9;
}
 
function Update (){ 
 	renderer.material.color =(script.isplaying==3) ? Color.green : rollover ? highlightColor : Color.white;  
}


function OnMouseEnter () {
	rollover =1; 
}

function OnMouseExit () {
	rollover =0;
}
Mettre ce script dans le bouton Stop

Code : Tout sélectionner

// videobutton_pause  Script développé en mai 2011 à partir des scripts UNITY, par Eric Wenger http://www.metasynth.com/ERICWENGER/  et  Edwige Lelièvre
// pour le musée 3D de la SCAM de Yann Minh, http://www.scam3d.fr/   http://www.noomuseum.net/

// mettre ce script "videobutton_pause" dans le game object qui sert de bouton pause: "ButtonPause"

//videobutton_pause  Script written in May 2011 from the  unity scripts, by Eric Wenger  http://www.metasynth.com/ERICWENGER/   and Edwige Lelièvre for the SCAM'S 3D museum of Yann Minh. (http://www.scam3d.fr/   http://www.noomuseum.net/)
// Put this script "videobutton_pause" in the pause game object : "ButtonPause"



private var script : videocontroller;
var Target : GameObject;
var highlightColor = Color.red;
var rollover = 0;

function Start () {
	script= Target.GetComponent("videocontroller");
}

function OnMouseDown () { 
	renderer.material.color =Color.green;  
	transform.localScale = transform.localScale * 0.9;
   	script.MovieController((script.isplaying==2) ? 2 : 1 ); //pause
}
function OnMouseUp () { 
	renderer.material.color =Color.white;  
	transform.localScale = transform.localScale / 0.9;
}
 
function Update (){ 
 	renderer.material.color =(script.isplaying==3) ? Color.green : rollover ? highlightColor : Color.white;  
}


function OnMouseEnter () {
	rollover =1; 
}

function OnMouseExit () {
	rollover =0;
}
Dernière édition par yannminh le 15 Déc 2011 10:14, édité 1 fois.

Avatar de l’utilisateur
yannminh
Messages : 70
Inscription : 18 Fév 2010 15:09
Localisation : Noisy-Le-Grand
Contact :

Re: Scripts pour écran vidéo WWW

Message par yannminh » 14 Sep 2011 13:36

videobutton_play

a mettre dans l'objet qui sert de bouton play

Code : Tout sélectionner

private var script : videocontroller;
var Target : GameObject;

function Start () {
	 script= Target.GetComponent("videocontroller");
}

function OnMouseDown () { 
	 
   	script.MovieController(1); //play
}

function Update (){ 
 
	 if(script.isplaying){
	 	renderer.material.color =Color.green;  
	 }else{
	 	renderer.material.color =Color.white;  
	 }	
}

Avatar de l’utilisateur
green
Messages : 92
Inscription : 08 Juil 2011 13:01

Re: Scripts pour écran vidéo WWW

Message par green » 14 Sep 2011 13:56

Alors ca c'est vraiment super chic et au top !

Merci beaucoup pour tes sources et ton travail (tres jolie et reussi d'ailleurs).

Je pense que cela va en interesser plus d'un (a commencer par moi :D )

Avatar de l’utilisateur
yannminh
Messages : 70
Inscription : 18 Fév 2010 15:09
Localisation : Noisy-Le-Grand
Contact :

Re: Scripts pour écran vidéo WWW

Message par yannminh » 14 Sep 2011 14:46

J'espère qu'il sera utile...

j'ai l'impression qu'il manque peut-être un script supplémentaire et un shader...

je vérifie... et je fabrique un package à télécharger, ça sera plus fiable
Dernière édition par yannminh le 14 Sep 2011 15:14, édité 1 fois.

Avatar de l’utilisateur
Franck
Bricoleur
Bricoleur
Messages : 2884
Inscription : 08 Jan 2011 18:43
Localisation : Tours

Re: Scripts pour écran vidéo WWW

Message par Franck » 14 Sep 2011 14:47

Salut.

Sympa de partager comme ça, pour le plaisir...
Dés fois j'bug, dés fois j'bug pas.

Avatar de l’utilisateur
yannminh
Messages : 70
Inscription : 18 Fév 2010 15:09
Localisation : Noisy-Le-Grand
Contact :

Re: Scripts pour écran vidéo WWW

Message par yannminh » 15 Déc 2011 10:15

Tardivement, mais vaut mieux tard que jamais,

Pour ceux qui ont, comme moi, du mal avec la programmation :
voici le package avec un écran vidéo simple, pour lire des vidéos en .ogv stockées sur le web, ou localement.

http://www.noomuseum.net/noomuseum/Simp ... ackage.zip


Bonne vidéo...

Yann, NooVidéaste...

Répondre

Revenir vers « Scripting »