LlAdjustSoundVolume/ja

From Second Life Wiki
Jump to navigation Jump to search

Summary

Summary: llAdjustSoundVolume, llLinkAdjustSoundVolume

付随するサウンドのvolume を調整します。

llAdjustSoundVolume

Function: llAdjustSoundVolume( float volume );
0.1 Forced Delay
10.0 Energy
• float volume 0.0 (消音) から 1.0 (大音量) (0.0 <= volume <= 1.0)
Caveats
  • This function causes the script to sleep for 0.1 seconds.

llLinkAdjustSoundVolume

Function: llLinkAdjustSoundVolume( integer link, float volume );
0.1 Forced Delay
10.0 Energy
• integer link リンク 番号 (0: リンクなし, 1: ルートプリム, >1: 子プリム) または LINK_* フラグ
• float volume 0.0 (消音) から 1.0 (大音量) (0.0 <= volume <= 1.0)
Caveats
  • This function causes the script to sleep for 0.1 seconds.
フラグ 説明
LINK_ROOT 1 リンクセットの中のルートプリムに送ります
LINK_SET -1 全プリムに送ります
LINK_ALL_OTHERS -2 自分以外の全プリムに送ります
フラグ 説明
LINK_ALL_CHILDREN -3 (ルートプリム以外の全ての)子プリムに送ります
LINK_THIS -4 スクリプトの入った自プリムに送ります

Caveats

llTriggerSound/jallCollisionSound/jaでは動作しません

Examples

default
{
    state_entry()
    {
        llListen(42, "", llGetOwner(), "");
    }

    listen(integer chan, string name, key id, string msg)
    {
        float value = (float)msg;
        llAdjustSoundVolume(value);
        llOwnerSay("Volume set to: " + (string)value + " of 1.0");
    }
}
default
{
    collision_start(integer p)
    {
        llPlaySound("5df2e97f-d3ab-9a80-7063-69007470a182", 1.0);
        llAdjustSoundVolume(1.0f);
        llSetTimerEvent(0.2f); //0.2秒後に再生中の音量を小さくします
    }
    timer(){
        llAdjustSoundVolume(0.1f);
        llSetTimerEvent(0.0f);
    }
}

Notes

リンク番号

オブジェクトを構成するそれぞれのプリムにはアドレスがあります。それがリンク番号です。オブジェクトの特定のプリムにアクセスするには、そのプリムのリンク番号を知らなければなりません。リンク番号はプリムに振られますが、オブジェクトに座っているアバターにも振られます。

  • オブジェクトが単一のプリムで構成されていて、アバターが座っていないとき、(ルート)プリムのリンク番号は 0 です。
  • しかし、オブジェクトが複数のプリムで構成されていたり、オブジェクトに座っているアバターがいたりすると、ルートプリムのリンク番号は 1 となります。

アバターがオブジェクトに座ると、リンクセットの末尾に追加され、いちばん大きなリンク番号が振られることになります。さらに、アバターがオブジェクトに座っている場合、アバターを立たせないと、プリムのリンク・リンク解除ができません。

プリムやアバターの数え方

オブジェクトのプリムや、プリムに座っているアバターの数を調べるのに、2つの関数があります。

  • llGetNumberOfPrims() - プリムと座っているアバターの数を返します。
  • llGetObjectPrimCount(llGetKey()) - オブジェクトのプリムの数だけを返しますが、アタッチメントとなっている場合は 0 を返します。
integer GetPrimCount() { //常にプリムの数だけを返します。
    if(llGetAttached())//装着されているか?
        return llGetNumberOfPrims();//アバターとプリムの数を返しますが、アタッチメントの上には座れないのでこれでいいです。
    return llGetObjectPrimCount(llGetKey());//プリムの数だけを返しますが、アタッチメントの場合ここは通りません。
}

See Also

Functions

•  llGetLinkNumber スクリプトが入っているプリムのリンク番号を取得します。
•  llGetLinkNumberOfSides/ja Returns the number of faces of the linked prim.
•  llLinkPlaySound/ja
•  llLinkSetSoundQueueing/ja
•  llLinkSetSoundRadius/ja
•  llLinkStopSound/ja
•  llLoopSound/ja
•  llLoopSoundMaster/ja
•  llLoopSoundSlave/ja
•  llPlaySound/ja
•  llPlaySoundSlave/ja
•  llPreloadSound/ja
•  llSetSoundQueueing/ja
•  llSetSoundRadius/ja
•  llSound/ja
•  llSoundPreload/ja
•  llStopSound/ja

Deep Notes

History

Footnotes

  1. ^ Early release notes were not very accurate or thorough, they sometimes included information about features added in previous releases or failed to include information about features added in that release.

Signature

function void llAdjustSoundVolume( float volume );
function void llLinkAdjustSoundVolume( integer link, float volume );