2009年01月28日
サウンドのスライドショー
わかりづらいタイトルですみません。
いま、オブジェクトのインベに数秒の短いサウンドを6個ほどいれて
そのオブジェクトをクリックすると、ファイル名の順番に再生されるというのを作ってました。
それぞれのサウンドはクリックするまでは、ループしてる感じです。
スクリプトの基本がわかってなく、検索して見つけたサウンドのオンオフのスクリプトをいじって
あーだこーだしてたのですが、にっちもさっちもいかず
こちらに書き込みさせていただきました。
まったくどうにもならなかった僕のは以下。
いま、オブジェクトのインベに数秒の短いサウンドを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;
}
}
}
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について
モール用のプリムカウンターを探しています
連続するアニメーションの処理
オブジェクトの上にフローティングテキストを出す。
チャットログの盗聴について
椅子に座った後で位置調整できるスクリプト
モール用のプリムカウンターを探しています
連続するアニメーションの処理
オブジェクトの上にフローティングテキストを出す。
チャットログの盗聴について
椅子に座った後で位置調整できるスクリプト
どもすみません。
音をバラバラに切って、つながってるように再生するようなものはあったのですが、
クリックで次のサウンドファイルというのが、見つけられませんでした。
もういちど検索しなおして、見直してみます。
お手数をおかけいたしました。
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;
}
}
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();
}
}
}
これでどうでしょう。
タッチするたびにインベントリ内のサウンドを名前順に再生します。
最後まで再生したら最初のファイルに戻ります。
ついでに、インベントリ内が変化(サウンドファイルの追加・削除・リネームなど)があったときに更新するイベントも入れてみました。
あさみ様
わざわざありがとうございます。
おかげさまで無事うまくいきました。
あとはがんばって他の部分作ってみます。
完成したあかつきは出来上がったもの
いらね〜かもしれませんが w
もしよろしければ受け取ってくださいね。
ではいつでも中で声をかけてください。
ありがとうございました。