VRML Worlds, Mondes VRML

Membre de ClickFR, Reseau francophone Paie-Par-Click

Cours VRML - Les sons

Ajoutez un son dans votre monde !

En plus des objets 3D, vous pouvez ajouter du son dans votre scène.

La description du noeud Sound

Le noeud Sound vous permet de placer un son et de décrire son comportement dans votre scène.

Type Champ Defaut Borne Utilisation
SFVec3f direction 0 0 1 - Donne la direction du son (uniquement utilisé si spatialize = TRUE
SFFLoat intensity 1 0-1 Donne l'intensité du son
SFVect3f location 0 0 0 - Emplacement du son
SFFloat maxBack 10 0- Distance maximum d'où on entend le son lorsqu'on se trouve dans la direction opposée du son.
SFFloat minBack 1 0- Distance d'où on entend le son dans son intensité maximale lorsqu'on se trouve dans la direction opposée du son.
SFFloat maxFront 10 0- Distance maximum d'où on entend le son lorsqu'on se trouve dans la direction du son.
SFFloat minFront 1 0- Distance d'où on entend le son dans son intensité maximale lorsqu'on se trouve dans la direction du son.
SFFloat priority 0 0-1 Priorité du son, lorsque plusieurs sons sont joués et que le navigateur doit choisir entre l'un et l'autre. Souvent, on met 0 pour un son d'ambiance et 1 pour des sons liés à l'interaction du monde
SFNode source NULL - Décrit la source sonore. Le noeud AudioCllip est utilisé.
SFBool spatialize TRUE   Utilise la stéréo pour donner la localisation de l'objet.

Le noeud AudioClip

AudioClip vous permet de décrire la source sonore.

Type Champ Defaut Borne Utilisation
SFString description ""   Texte de description de la source sonore
SFBool loop FALSE   si vrai (TRUE), joue le son en boucle
SFFloat pitch 1.0 1- Vitesse de déroulement du son
SFTime startTime 0 0- Temps (en seconde) à partir duquel démarre le son
SFTime stopTime 0 0- Temps (en seconde) à partir duquel s'arrête le son. (si 0, le son ne s'arrête pas)
MFString url []   URL du son

Le son peut être soit en WAV soit en MIDI. Notons que le pulg in blaxxun ne semble pas supporter les fichiers midis :-( .

Exemple 1 : Jouer un son simplement dans un scène

#VRML V2.0 utf8

Group {
 children [
  Shape {  # On decrit un cone pour bien localiser le son
   geometry Cone {}
   appearance Appearance {
    material Material {
     diffuseColor 1 0 0
    }
   }
  }
  Sound { #on place un même au même endroit (location 0 0 0)
   source AudioClip {
    url "click.wav" # Un son cours pour vous éviter un temps de téléchargement
    loop TRUE # on le fait boucler
    startTime 1
   }
  }

 ]
}

Déplacez vous autour du cône pour apprécier les effets de la stéréo. Eloignez vous du cône pour apprécier l'effets de la distance.

Voir le résultat.

Exemple 2 : Jouer un son orienté

Voici un exemple qui joue un son orienté dans une direction :

#VRML V2.0 utf8

Group {
 children [
  Transform {
   children Shape {    # Un cône pour localiser le son
    geometry Cone {}
    appearance Appearance {
     material Material {
      diffuseColor 1 0 0
     }
    }
   }
   rotation 1 0 0 1.6    # On le tourne pour matérialiser la direction du son
  }
  Sound {    # Le son
   direction 0 0 1    # Un vecteur de direction. Ici Z=1, le son est joué "vers l'arrière" de la scène
   location 0 0 0
   # On décrit les zones de propagation du son 
   minFront 20   
   maxFront 40
   minBack 1
   maxBack 2
   intensity 1
   spatialize TRUE
   source AudioClip { # La source sonore
    url "click.wav" 
    loop TRUE
    startTime 1
   }
  }

 ]
}

Voir le résultat.

A noter que blaxxun ne semble pas supporter les zones de propagation du son :-(( . Essayez avec le plug-in VRML Cortona (voir les viewers), l'exemple fonctionne très bien.

Définition des zones de propagation

Le noeud Sound permet de définir deux ellipsoïdes qui vont permettre de gérer l'intensité du son en fonction de la distance du son.
Si l'utilisateur se trouve dans la petite ellipsoïde, définie par minFront et MinBack , l'intensité du son sera toujours maximale (ne fonction de intensity)
Si l'utilisateur se trouve dans la grande ellipsoïde, définie par maxFront et MaxBack , l'intensité du son sera dégressive, jusqu'à devenir nulle.

Un petit schéma issu des specs VRML 2.0
pour illustrer la chose

A noter pour le plug-in Blaxxun

Il ne semble pas gérer correctement la notion de distance et de direction.

Il ne semble pas (non plus !) jouer le fichiers MIDI.

Par contre, il permet de jouer des sons de type Real audio. Ce point sera développé plus tard.

Retour aux tutorials


 Accueil de VRML Worlds   CHAT 3D   Autres technologies Web3D 
 Des textures   Apprendre le VRML   Autres mondes multi-user 
 Les objets du chat   Outils pour le VRML   Autres sites 3D 

Réagir, nous proposer un site, participer ...