オブジェクトに音をつける
Three.jsの例、misc_sound.htmlを見る。
例をブラウザ上で見ると、平面に2つの球があるだけ。
でも2つの球は大きて、しかも距離が離れている。
マウスを押すとそちらの方向に移動する。
球に移動すると音楽が流れているのがわかる。
でもただ音楽が流れているだけではない。
距離によって大きさが変わる。
マウスを動かして別の球に近づけば、また違う音楽が流れている。
この例は応用の範囲は広い。
例えば、車のオブジェクトにエンジンの音をつけると、カメラに近づけばエンジンの音が大きくなる…そんなことができる。
でも、向く方向によるステレオの左右までは計算しないようだ。
initの中:
var mesh1 = new THREE.Mesh( sphere, material_sphere1 );
mesh1.position.set( -250, 30, 0 );
mesh1.scale.set( s, s, s );
scene.add( mesh1 );
sound1 = new Sound( [ 'sounds/358232_j_s_song.mp3', 'sounds/358232_j_s_song.ogg' ], 275, 1 );
sound1.position.copy( mesh1.position );
sound1.play();
renderの中:
sound1.update( camera );
updateメソッドが音源とカメラの位置を再計算している。
でもこの例は球と同じ場所に音源を置きましたってだけ。
独自のクラスを作って3Dオブジェクトと音オブジェクトを扱うといいかも。
2012/08/01 23:41