SharedEvent

N'en posez pas trop, spas ? C'est chez web3d-fr, la technique. Ici, c'est juste dépannage.

Re: SharedEvent

Messagepar Taranis » Ven 04 Déc 2009 14:43

c'est parfait, ça fonctionne tout bien ! Merci :)
Avatar de l’utilisateur
Taranis
Voyageur du mois
Voyageur du mois
 
Messages: 2390
Inscrit le: Mer 15 Sep 2004 11:19

Re: SharedEvent

Messagepar Arsène » Ven 04 Déc 2009 14:44

En PROTO ça devrait donner... au pif :
Code: Tout sélectionner
PROTO OneShot [
    eventIn SFTime touchTime_in
    eventIn SFTime set_time
    eventOut SFTime touchTime_out
    eventOut SFTime time_changed
] {
    Script {
        eventIn SFTime touchTime_in IS touchTime_in
        eventIn SFTime set_time IS set_time
        eventOut SFTime touchTime_out IS touchTime_out
        eventOut SFTime time_changed IS time_changed
        field SFBool touched FALSE
        field SFBool done FALSE
        url "javascript:
        function touchTime_in(value, time) {
            if (!touched) {
                touched = true; // bloque le touchTime
                touchTime_out = time;
            }
        }
        function set_time(value, time) {
            if (!done) {
                done = touched = true; // bloque le touchTime et le shared event
                time_changed = time;
            }
        }
        "
    }
}

DEF OneShot-Anim1 OneShot {}

# bloque le touchTime vers le serveur si l'anim a été jouée
ROUTE TouchSensor01-SENSOR.touchTime TO OneShot-Anim1.touchTime_in
ROUTE OneShot-Anim1.touchTime_out TO sharedAnim1.set_time

# bloque la réponse du serveur et le touchTime si l'anim a été jouée
ROUTE sharedAnim1.time_changed TO OneShot-Anim1.set_time
ROUTE OneShot-Anim1.time_changed TO Dummy01-TIMER.startTime
ROUTE OneShot-Anim1.time_changed TO Box02-TIMER.stopTime

#...
Avatar de l’utilisateur
Arsène
 
Messages: 4201
Inscrit le: Mer 08 Sep 2004 22:35
Localisation: Paris

Re: SharedEvent

Messagepar Arsène » Ven 04 Déc 2009 14:55

Taranis a écrit:c'est parfait, ça fonctionne tout bien ! Merci :)

Je ne suis pas trop rouillé ; je n'ai pas pu tester le code puisque le plugin ne marche pas sous Ubuntu. ;)
Avatar de l’utilisateur
Arsène
 
Messages: 4201
Inscrit le: Mer 08 Sep 2004 22:35
Localisation: Paris

Re: SharedEvent

Messagepar Taranis » Jeu 10 Déc 2009 8:55

Une dernière précision : peut-on se contenter de déclarer le PROTO SharedEvent dans le fichier principal, même s'il y a des animations partagées dans les fichiers Inline ?
Je pense que oui, puisque les Inline sont une partie du fichier principal, mais je préfère me renseigner :).
Avatar de l’utilisateur
Taranis
Voyageur du mois
Voyageur du mois
 
Messages: 2390
Inscrit le: Mer 15 Sep 2004 11:19

Re: SharedEvent

Messagepar Arsène » Jeu 10 Déc 2009 12:09

Taranis a écrit:Une dernière précision : peut-on se contenter de déclarer le PROTO SharedEvent dans le fichier principal, même s'il y a des animations partagées dans les fichiers Inline ?
Je pense que oui, puisque les Inline sont une partie du fichier principal, mais je préfère me renseigner :).

Le PROTO, ou le EXTERNPROTO, doit être au niveau de son utilisation, c'est à dire au niveau du ROUTE de l'événement déclencheur et des interpolateurs de l'animation.
Avatar de l’utilisateur
Arsène
 
Messages: 4201
Inscrit le: Mer 08 Sep 2004 22:35
Localisation: Paris

Re: SharedEvent

Messagepar Taranis » Jeu 10 Déc 2009 14:50

Ha zut, ça va alourdir le code ça, de mettre dans chaque inline ayant une animation partagée la définition du PROTO et son DEF ... :(
Avatar de l’utilisateur
Taranis
Voyageur du mois
Voyageur du mois
 
Messages: 2390
Inscrit le: Mer 15 Sep 2004 11:19

Re: SharedEvent

Messagepar Arsène » Jeu 10 Déc 2009 15:55

Taranis a écrit:Ha zut, ça va alourdir le code ça, de mettre dans chaque inline ayant une animation partagée la définition du PROTO et son DEF ... :(

Et avec des EXTERNPROTO ?

Tu fais un PROTO à part et tu mets dans chaque Inline un EXTERNPROTO qui fait référence à ce PROTO.
En plus, dans les EXTERNPROTO, tu n'es pas forcé de mettre tous les events, uniquement celui ou ceux que tu utilises : tu peux ne mettre que set_time et time_changed si tu n'utilises que ces events, il me semble.

Dans un fichier events.wrl tu mets
Code: Tout sélectionner
#VRML V2.0 utf8

PROTO SharedEvent [
    eventIn SFTime set_time
    eventIn ...
    eventOut SFTime time_changed
    eventOut .....
] {
    # le corps du PROTO
}


Et dans les Inline tu peux ne mettre que
Code: Tout sélectionner
#VRML V2.0 utf8

EXTERNPROTO SharedEvent [
    eventIn SFTime set_time
    eventOut SFTime time_changed
] event.wrl#SharedEvent

DEF toto SharedEvent {}

ROUTE tsoin-tsoin.startTime TO toto.set_time
# etc...


Je ne suis pas trop sûr de la syntaxe, la spécification du VRML doit avoir ça, mais, c'est le principe.
Avatar de l’utilisateur
Arsène
 
Messages: 4201
Inscrit le: Mer 08 Sep 2004 22:35
Localisation: Paris

Re: SharedEvent

Messagepar Taranis » Jeu 10 Déc 2009 20:47

Ok, on peut donc plus ou moins "inliner" un PROTO. Je note (là je mod/text diverses choses de détails :) )
Avatar de l’utilisateur
Taranis
Voyageur du mois
Voyageur du mois
 
Messages: 2390
Inscrit le: Mer 15 Sep 2004 11:19

Re: SharedEvent

Messagepar Taranis » Ven 11 Déc 2009 10:11

C'est le chapitre " 4.6.4 Defining Prototypes in External Files " .
Mais je n'ai finalement que 2 fichiers (au lieu de 3 initialement) qui utiliseront le PROTO SharedEvent.
Avatar de l’utilisateur
Taranis
Voyageur du mois
Voyageur du mois
 
Messages: 2390
Inscrit le: Mer 15 Sep 2004 11:19

Re: SharedEvent

Messagepar Taranis » Mer 16 Déc 2009 19:33

De la même façon qu'on a :
Code: Tout sélectionner
ROUTE pouet.time TO sharedAnim.set_time
ROUTE sharedAnim.time_changed TO anim-TIMER.startTime


peut-on avoir (pour un ProximitySensor enclenchant un son) :
Code: Tout sélectionner
ROUTE pouet_PS.enterTime TO   sharedAnim.set_time
ROUTE sharedAnim.time_changed TO son.startTime


?
Avatar de l’utilisateur
Taranis
Voyageur du mois
Voyageur du mois
 
Messages: 2390
Inscrit le: Mer 15 Sep 2004 11:19

Re: SharedEvent

Messagepar Arsène » Mer 16 Déc 2009 20:22

Taranis a écrit:De la même façon qu'on a :
Code: Tout sélectionner
ROUTE pouet.time TO sharedAnim.set_time
ROUTE sharedAnim.time_changed TO anim-TIMER.startTime


peut-on avoir (pour un ProximitySensor enclenchant un son) :
Code: Tout sélectionner
ROUTE pouet_PS.enterTime TO   sharedAnim.set_time
ROUTE sharedAnim.time_changed TO son.startTime


?

Bien sûr.
Avatar de l’utilisateur
Arsène
 
Messages: 4201
Inscrit le: Mer 08 Sep 2004 22:35
Localisation: Paris

Re: SharedEvent

Messagepar Taranis » Mer 16 Déc 2009 21:10

Ha , bien !
Il me semble également que les viewpoint n'ont pas besoin d'être SharedEvent non ?
Pour dire cela je me base sur le viewpoint de départ de la San Marco ( qui n'est pas Shared ). Cependant on voit bien l'animation d'arrivée des avatars. Donc les viewpoints sont Shared par défaut ?
Avatar de l’utilisateur
Taranis
Voyageur du mois
Voyageur du mois
 
Messages: 2390
Inscrit le: Mer 15 Sep 2004 11:19

Re: SharedEvent

Messagepar Taranis » Mer 16 Déc 2009 21:28

Damned ! Oui les viewpoints n'ont pas besoin d'être shared ! La gestion des avatars/viewpoints est partagée par défaut.
Ha mais je vois dans la documentation que l'on peut interdire le beamtoviewpoint... Ça m'intéresse ça !
Code: Tout sélectionner
PROTO BlaxxunZone [exposedField SFNode beamToViewpoint NULL]
Avatar de l’utilisateur
Taranis
Voyageur du mois
Voyageur du mois
 
Messages: 2390
Inscrit le: Mer 15 Sep 2004 11:19

Re: SharedEvent

Messagepar Arsène » Mer 16 Déc 2009 21:47

Taranis a écrit:Damned ! Oui les viewpoints n'ont pas besoin d'être shared ! La gestion des avatars/viewpoints est partagée par défaut.
Ha mais je vois dans la documentation que l'on peut interdire le beamtoviewpoint... Ça m'intéresse ça !
Code: Tout sélectionner
PROTO BlaxxunZone [exposedField SFNode beamToViewpoint NULL]

Il suffit que la position et l'orientation de l'avatar soient shared, n'est-ce pas... et c'est le cas, par définition : le VP a rarement besoin de l'être.


Souvent, ce qu'on fait, c'est qu'on utilise un viewpoint qui n'est pas dans la liste, pour ça ; un VP sans nom ?
Avatar de l’utilisateur
Arsène
 
Messages: 4201
Inscrit le: Mer 08 Sep 2004 22:35
Localisation: Paris

Re: SharedEvent

Messagepar Taranis » Mer 16 Déc 2009 21:58

la question du partage des mouvements des avatars étant réglée, ce qui me préoccupe maintenant c'est comment utiliser ce SFNode beamtoViewpoint... Les cours VRML de web3d-fr sont une véritable bible, mais je n'ai pas encore trouvé la réponse... :(
Avatar de l’utilisateur
Taranis
Voyageur du mois
Voyageur du mois
 
Messages: 2390
Inscrit le: Mer 15 Sep 2004 11:19

PrécédentSuivant

Retour vers Questions techniques

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité

cron