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 cours VRML
|