2009年01月28日

サウンドのスライドショー

わかりづらいタイトルですみません。

いま、オブジェクトのインベに数秒の短いサウンドを6個ほどいれて
そのオブジェクトをクリックすると、ファイル名の順番に再生されるというのを作ってました。
それぞれのサウンドはクリックするまでは、ループしてる感じです。

スクリプトの基本がわかってなく、検索して見つけたサウンドのオンオフのスクリプトをいじって
あーだこーだしてたのですが、にっちもさっちもいかず
こちらに書き込みさせていただきました。

まったくどうにもならなかった僕のは以下。


integer i;
default
{
state_entry()
{
llPreloadSound("sound_001");
i= FALSE;
llPreloadSound("sound_002");
i= FALSE;
llPreloadSound("sound_003");
i= FALSE;
llPreloadSound("sound_004");
i= FALSE;
llPreloadSound("sound_005");
i= FALSE;
llPreloadSound("sound_006");
i= FALSE;
}
touch_start(integer total_number)
{
if(i== FALSE){
llLoopSound("sound_001",1.0);
i= TRUE;

}else{
llLoopSound("sound_002",1.0);
i= TRUE;
}

if(i== FALSE){
llLoopSound("sound_003",1.0);
i= TRUE;
}

if(i== FALSE){
llLoopSound("sound_004",1.0);
i= TRUE;
}

if(i== FALSE){
llLoopSound("sound_005",1.0);
i= TRUE;
}

if(i== FALSE){
llLoopSound("sound_006",1.0);
i= TRUE;
}
}
}

同じカテゴリー(スクリプト関連)の記事画像
オブジェクトのリンクとタッチで開く扉
自動チャットを止めたい
テレポートするとアニメーションが解除される
同じカテゴリー(スクリプト関連)の記事
 テクスチェンジのHUDについて (2015-07-01 04:51)
 モール用のプリムカウンターを探しています (2014-11-29 20:09)
 連続するアニメーションの処理 (2014-08-24 03:23)
 オブジェクトの上にフローティングテキストを出す。 (2014-08-22 16:46)
 チャットログの盗聴について (2014-02-03 03:43)
 椅子に座った後で位置調整できるスクリプト (2013-03-24 16:37)

Posted by taro_bosatsu  at 22:35 │Comments(5)スクリプト関連

この記事へのコメント
ここの過去記事に関連記事があったはずです。
Posted by shibata at 2009年01月28日 22:44
shibata 様

どもすみません。

音をバラバラに切って、つながってるように再生するようなものはあったのですが、
クリックで次のサウンドファイルというのが、見つけられませんでした。
もういちど検索しなおして、見直してみます。
お手数をおかけいたしました。
Posted by taro_bosatsu at 2009年01月28日 22:56
昼休みの時間しかないので、こんな感じでいかがです?

integer i;
default
{
state_entry()
{
llPreloadSound("sound_001");
llPreloadSound("sound_002");
llPreloadSound("sound_003");
llPreloadSound("sound_004");
llPreloadSound("sound_005");
llPreloadSound("sound_006");
i = 0;
}
touch_start(integer total_number)
{
if(i== 0){
llLoopSound("sound_001",1.0);
}
if (i == 1){
llLoopSound("sound_002",1.0);
}
if (i == 2){
llLoopSound("sound_003",1.0);
}

if(i== 3){
llLoopSound("sound_004",1.0);
}

if(i== 4){
llLoopSound("sound_005",1.0);
}

if(i== 5{
llLoopSound("sound_006",1.0);
}
i++;
if (i > 5) i = 0;
}
}
Posted by hiromitsu at 2009年01月29日 12:49
integer n;
integer i;
default
{
state_entry()
{
n=llGetInventoryNumber(INVENTORY_SOUND);
i=0;
llPreloadSound(llGetInventoryName(INVENTORY_SOUND,i));
}
touch_start(integer total_number)
{
llLoopSound(llGetInventoryName(INVENTORY_SOUND,i),1.0);
i++;
if(i==n)
{
i=0;
}
llPreloadSound(llGetInventoryName(INVENTORY_SOUND,i));
}
changed(integer change)
{
if(change & CHANGED_INVENTORY)
{
llResetScript();
}
}
}



これでどうでしょう。

タッチするたびにインベントリ内のサウンドを名前順に再生します。
最後まで再生したら最初のファイルに戻ります。

ついでに、インベントリ内が変化(サウンドファイルの追加・削除・リネームなど)があったときに更新するイベントも入れてみました。
Posted by あさみ at 2009年01月29日 13:25
hiromitsu様
あさみ様

わざわざありがとうございます。
おかげさまで無事うまくいきました。

あとはがんばって他の部分作ってみます。
完成したあかつきは出来上がったもの
いらね〜かもしれませんが w
もしよろしければ受け取ってくださいね。
ではいつでも中で声をかけてください。

ありがとうございました。
Posted by taro_bosatsu at 2009年01月29日 16:42
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。