LlLinkPlaySound/ja

From Second Life Wiki
< LlLinkPlaySound
Revision as of 15:07, 22 November 2023 by Misaki Vanilla (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

要約

関数: llLinkPlaySound( integer link, string sound, float volume, integer flags );

attached 音量で一度再生します。

• integer link リンク 番号 (0: リンクなし, 1: ルートプリム, >1: 子プリム) または LINK_* フラグ
• string sound プリムの インベントリ の中にあるsoundまたは UUID
• float volume 0.0 (消音) から 1.0 (大音量) (0.0 <= volume <= 1.0)
• integer flags サウンドの再生方法を制御するために使用されるビットフラグ。
フラグ 説明
LINK_ROOT 1 リンクセットの中のルートプリムに送ります
LINK_SET -1 全プリムに送ります
LINK_ALL_OTHERS -2 自分以外の全プリムに送ります
フラグ 説明
LINK_ALL_CHILDREN -3 (ルートプリム以外の全ての)子プリムに送ります
LINK_THIS -4 スクリプトの入った自プリムに送ります
フラグ 説明
LINK_ROOT 1 リンクセットの中のルートプリムに送ります
LINK_SET -1 全プリムに送ります
LINK_ALL_OTHERS -2 自分以外の全プリムに送ります
フラグ 説明
LINK_ALL_CHILDREN -3 (ルートプリム以外の全ての)子プリムに送ります
LINK_THIS -4 スクリプトの入った自プリムに送ります

定数 説明 LSL 関数
SOUND_PLAY 0x00 これがデフォルトの動作です。リンクされたプリミティブにアタッチされたサウンドを一度再生します。 llPlaySound
SOUND_LOOP 0x01 リンクされたプリミティブにアタッチされたサウンドをループ再生します。 llLoopSound
SOUND_TRIGGER 0x02 リンクされたプリミティブの場所でサウンドをトリガーします。サウンドはアタッチされず、プリムと一緒に移動しません。

このフラグが設定されている場合、他のすべてのフラグが上書きされます。

llTriggerSound
SOUND_SYNC 0x04 サウンドの再生を最寄りのサウンドマスターに同期させます。llLoopSoundMasterを参照してください。

llLoopSoundSlave, llPlaySoundSlave

警告

  • sound がプリムの中で見つからない場合、かつこれが UUID でない場合、またはこれがsoundでない場合、エラーが DEBUG_CHANNEL 上で叫ばれます。
  • soundUUID である場合、オブジェクト自体に新たな アセット権限 が発生するようなことはありません。
    • アセットをプリムのインベントリの中に置いた場合、これまで発生していた使用制限は新しいオブジェクトで新たに作成されません。
  • 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

特記事項

Search JIRA for related Issues

Signature

function void llLinkPlaySound( integer link, string sound, float volume, integer flags );
この翻訳は 原文 と比べて古いですか?間違いがありますか?読みにくいですか?みんなで 修正 していきましょう! (手順はこちら)
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。