複数のスピーカをならす

harayoki

2007年09月09日 04:38


micSpeaker links


マイク&スピーカ作成のエントリー5回目。


先のエントリーでは1つのスピーカを鳴らしましたが、
実は同時に2つ以上(プリム数がゆるせばいくつでも)のスピーカをならす事ができます。

このスピーカを作ったのは、llSetParcelMusicURLや設定画面で
土地にひもづいたBGM(外部サーバ置き)を鳴らすのではなく、
普通にinventory内にあるサウンドを広範囲にいっぺんに鳴らしたかったからです。
(そういうアイテムは探せば売ってそうですが、できるかぎり自分の頭で考えて作ることで
SLでの製作の理解を深めようというのが大きな目的としてあります。)

ということで2つのスピーカをならした映像をキャプチャしました。

まず普通に鳴らした場合。

(鳴らしているのはharayokiファンファーレ…)

この映像の音ではちょっと分かりづらいですが
音が単体の音源の場合とほとんど代わりなく聞こえます。

ただ、音量が大きくなってる感じです。
あたりまえですが、音の聞こえる範囲は確実に広がっているようです。

移動しながら聞くと、単体の音源の場合と明らかに違う感じになります。
(ドップラー効果がかかるからでしょう。)
次に演出を加えて鳴らした場合。

2つのスピーカでわざと0.03秒音の開始をずらしています。
デチューンというかリバーブというか音が立体的?に聞こえます。

リアルな世界で離れた場所に配置した複数の音源から、何かしらの音を同時に再生した場合、
音が人のいる場所に届くまでに時間がかるので、タイミングがずれて聞こえますね。
それを再現してみました。

実際にはこんな近くに音源を配置した場合は差異は感じないと思いますが。


あまりこれをやりすぎるとゴチャゴチャして聞きづらくなってしまうので、
どのくらいずらすのか、はたまた全くずらさないのかは、場合によるし好みなのかな、と思います。


前回説明した、スピーカのdescription設定に記述するパラメータ
(詳細パラメータ法と呼ぼう…)の3番目は、このずれ秒数の設定なのでした。

1つ1つのスピーカでずれ幅を設定するのは面倒かもしれないので、
ランダムに決定する仕組みを作ってもいいかな。



◆ミニまとめ◆

このアイテムは、チャットメッセージを用いて、
各スピーカに命令を伝える方法で実装されていますが
この方法には問題があります。

それは、アバタのチャット指令の届く範囲に限界がある事です。
普段の会話が届く範囲は20mまでですね。
shoutしてもらえば100m届くので、通常の使用ではそれで問題なさそうですが、
(SIMの1辺は255m)
そこをなんとかする為に用意したアイテムが↓マイクなのでした。



大したことしてませんけど。
マイク&スピーカセット