LlLinkPlaySound/ja
Jump to navigation
Jump to search
LSL ポータル | 関数 | イベント | 型 | 演算子 | 定数 | 実行制御 | スクリプトライブラリ | カテゴリ別スクリプトライブラリ | チュートリアル |
|
|
|
|
定数 | 値 | 説明 | LSL 関数 |
---|---|---|---|
SOUND_PLAY | 0x00 | これがデフォルトの動作です。リンクされたプリミティブにアタッチされたサウンドを一度再生します。 | llPlaySound |
SOUND_LOOP | 0x01 | リンクされたプリミティブにアタッチされたサウンドをループ再生します。 | llLoopSound |
SOUND_TRIGGER | 0x02 | リンクされたプリミティブの場所でサウンドをトリガーします。サウンドはアタッチされず、プリムと一緒に移動しません。
このフラグが設定されている場合、他のすべてのフラグが上書きされます。 |
llTriggerSound |
SOUND_SYNC | 0x04 | サウンドの再生を最寄りのサウンドマスターに同期させます。llLoopSoundMasterを参照してください。 |
警告
- sound がプリムの中で見つからない場合、かつこれが UUID でない場合、またはこれがsoundでない場合、エラーが DEBUG_CHANNEL 上で叫ばれます。
- sound が UUID である場合、オブジェクト自体に新たな アセット権限 が発生するようなことはありません。
- アセットをプリムのインベントリの中に置いた場合、これまで発生していた使用制限は新しいオブジェクトで新たに作成されません。
- llPlaySoundの呼び出しは他のすべてのサウンドを置き換えます(同じプリムから同時に1つのサウンドしか再生できないため)。ただし、非推奨の llSound で開始されたサウンドは常にサウンドファイルを最後まで再生します。
- サウンドファイルは30秒以下である必要があります。
- サウンドは常に44.1KHz、16ビット、モノラルでサンプリングされます(ステレオファイルはアップロード時に1つのチャンネルが削除され、結合されます)。
- サウンドを再生しているオブジェクトが HUD である場合、サウンドはHUDがアタッチされているユーザーにしか聞こえません。
- HUDからワールド内でサウンドを再生するには、llTriggerSoundを使用してください。
- 同時に2つ以上のサウンドを再生し、それらをまったく同じタイミングで開始することは不可能です。 〜 VWR-15663
- 複数のサウンドエミッターが同じ音を同時にビューアの範囲内で再生する場合、通常はサーバー/クライアントとスクリプトの実行&通信遅延のために同期していません。これによりエコー、奇妙な共鳴、およびその他の奇妙な効果が生じる可能性があります(おそらく望ましくない)。
- llSetSoundQueueingと併用すると、正しくない場合があります。これは、単一のサウンドサンプルのみを再生する場合にサウンドキューを無効にすることで修正できます。
- リンクされたオブジェクトで開始されたループサウンドを停止するには、llLinkStopSoundを使用してください SOUND_LOOPと一緒に。
サンプル
default
{
state_entry()
{
llLinkPlaySound(LINK_ROOT, "some_sound", 1.0, SOUND_PLAY);
}
}
注意点
リンク番号
オブジェクトを構成するそれぞれのプリムにはアドレスがあります。それがリンク番号です。オブジェクトの特定のプリムにアクセスするには、そのプリムのリンク番号を知らなければなりません。リンク番号はプリムに振られますが、オブジェクトに座っているアバターにも振られます。
- オブジェクトが単一のプリムで構成されていて、アバターが座っていないとき、(ルート)プリムのリンク番号は 0 です。
- しかし、オブジェクトが複数のプリムで構成されていたり、オブジェクトに座っているアバターがいたりすると、ルートプリムのリンク番号は 1 となります。
アバターがオブジェクトに座ると、リンクセットの末尾に追加され、いちばん大きなリンク番号が振られることになります。さらに、アバターがオブジェクトに座っている場合、アバターを立たせないと、プリムのリンク・リンク解除ができません。
プリムやアバターの数え方
オブジェクトのプリムや、プリムに座っているアバターの数を調べるのに、2つの関数があります。
llGetNumberOfPrims()
- プリムと座っているアバターの数を返します。llGetObjectPrimCount(llGetKey())
- オブジェクトのプリムの数だけを返しますが、アタッチメントとなっている場合は 0 を返します。
integer GetPrimCount() { //常にプリムの数だけを返します。
if(llGetAttached())//装着されているか?
return llGetNumberOfPrims();//アバターとプリムの数を返しますが、アタッチメントの上には座れないのでこれでいいです。
return llGetObjectPrimCount(llGetKey());//プリムの数だけを返しますが、アタッチメントの場合ここは通りません。
}
リンク番号
オブジェクトを構成するそれぞれのプリムにはアドレスがあります。それがリンク番号です。オブジェクトの特定のプリムにアクセスするには、そのプリムのリンク番号を知らなければなりません。リンク番号はプリムに振られますが、オブジェクトに座っているアバターにも振られます。
- オブジェクトが単一のプリムで構成されていて、アバターが座っていないとき、(ルート)プリムのリンク番号は 0 です。
- しかし、オブジェクトが複数のプリムで構成されていたり、オブジェクトに座っているアバターがいたりすると、ルートプリムのリンク番号は 1 となります。
アバターがオブジェクトに座ると、リンクセットの末尾に追加され、いちばん大きなリンク番号が振られることになります。さらに、アバターがオブジェクトに座っている場合、アバターを立たせないと、プリムのリンク・リンク解除ができません。
プリムやアバターの数え方
オブジェクトのプリムや、プリムに座っているアバターの数を調べるのに、2つの関数があります。
llGetNumberOfPrims()
- プリムと座っているアバターの数を返します。llGetObjectPrimCount(llGetKey())
- オブジェクトのプリムの数だけを返しますが、アタッチメントとなっている場合は 0 を返します。
integer GetPrimCount() { //常にプリムの数だけを返します。
if(llGetAttached())//装着されているか?
return llGetNumberOfPrims();//アバターとプリムの数を返しますが、アタッチメントの上には座れないのでこれでいいです。
return llGetObjectPrimCount(llGetKey());//プリムの数だけを返しますが、アタッチメントの場合ここは通りません。
}
関連項目
関数
• | llGetLinkNumber | – | スクリプトが入っているプリムのリンク番号を取得します。 | |
• | llGetLinkNumberOfSides/ja | – | Returns the number of faces of the linked prim. | |
• | llGetLinkNumber | – | スクリプトが入っているプリムのリンク番号を取得します。 | |
• | llGetLinkNumberOfSides/ja | – | Returns the number of faces of the linked prim. | |
• | llTriggerSound/ja | – | サウンドを再生します unattached. | |
• | llTriggerSoundLimited/ja | |||
• | llLoopSound/ja | – | サウンドを再生します attached. | |
• | llLoopSoundMaster/ja | |||
• | llLoopSoundSlave/ja | |||
• | llPlaySoundSlave/ja | |||
• | llSetSoundQueueing/ja | – | サウンドが互いに上書きされずにキューに追加されるようにするプリムのプロパティを設定します。 | |
• | llStopSound/ja | |||
• | llLinkStopSound/ja |
特記事項
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。