ソラマメブログ

2009年08月15日

蛇口!

 半年ぶりに、髪型を変えてみたomallです。
蛇口!
 半年ぶりにヅラを買ったというだけですが。。。

 さて今回、友人vaiorinさんプロデュースのもと、こんなのを合作してみました。
蛇口!
 合作するほどもモンかい?という疑問は拭えませんが。。。その場の成り行きで合作になっちゃったんですね。
 タイトルにある通り、「蛇口」ではありません。 いわゆるジェットバス、ジャグジーのスイッチと噴出口であります。
 「タイトルは蛇口とジャグジーのダジャレかい!」と気づいてくれた方、ありがとう!

 こいつをタッチする度に、泡とジョボジョボという音が出ます。
蛇口!
 もう一回タッチで止ります。
 普通の機能です。。。

 そんなのをなぜ取り上げたか??
 それは生まれて初めて、スクリらしいスクリが出来たからです。 あまりにも嬉しくて、お披露目しちゃえ作戦です。

 vaiorinさんから「お風呂の湯気パーチクル作ってくれ」とお願いされ、(奇跡的に)チャチャっと湯気らしいパーチクルができあがってみると。。。「泡の出るお風呂も」とか追加注文が。。。
 スクリ大嫌いなvaiorinさんにパーチクルのパラメーターを教えながら一緒に作って、「水の音入れてみる?」と親切心でサウンド・ループのスクリをオマケで差し上げたところ。。。「泡と音のON-OFF機能つけてよ」。。。。。。
 そこはかとなく、いいように使われてないかい?

 しかしまぁ、いろいろゴチャゴチャ複合技なスクリは作ってみたかったりもしたので、挑戦してみました。

 まず注目したのが、サウンド・ループの方のスクリ。 こちらにはすでに、タッチでON-OFF機能が付いていたので、コイツを利用しようかと、

【サウンド・ループ&ON-OFFスクリ】

integer play=FALSE;
string sound="サウンド名";

default {
touch_start(integer detected){
if (llDetectedKey(0) == llGetOwner()){
play = !play;
if (play) {
llLoopSound("サウンド名", 1.0);
}else{
llStopSound();
}
}
}
}

//一番目のパラメータ : サウンドファイル名//
//二番目のパラメータ : サウンドを流すボリューム(0.0~1.0を指定)//
//音源ファイルをコンテンツに一緒に入れる//

  if (llDetectedKey(0) == llGetOwner()) とある通り、持ち主のみのタッチに反応するスクリです。
 「誰でもタッチで出来るように」ということだったので、コイツを消してしまい、上の touch_start(integer detected) のところを touch_start(integer total_number) と変えてvaiorinさんにタッチしてもらうと、うまく作動。。。「誰でも」をクリア!

 さて、問題のパーチクルスクリをどこにどうやって入れればいいのか。。。

【泡シュワシュワパーチクルのスクリ】

default {
state_entry(){
llParticleSystem( [
PSYS_SRC_TEXTURE, llGetInventoryName(INVENTORY_TEXTURE, 0),
PSYS_PART_START_SCALE, <0.085,0.085, 0>,
PSYS_PART_END_SCALE, <0.08,0.08, 0>,
PSYS_PART_START_COLOR, <1,1,1>,
PSYS_PART_END_COLOR, <1,1,1>,
PSYS_PART_START_ALPHA, 1.0,
PSYS_PART_END_ALPHA, 0.01,
PSYS_SRC_BURST_PART_COUNT, 6,
PSYS_SRC_BURST_RATE, 0.00,
PSYS_PART_MAX_AGE, 3.5,
PSYS_SRC_MAX_AGE, 0.0,
PSYS_SRC_PATTERN,PSYS_SRC_PATTERN_ANGLE_CONE,
PSYS_SRC_ACCEL, <0.2,0.3,0.0>,
PSYS_SRC_BURST_RADIUS, 0.1,
PSYS_SRC_BURST_SPEED_MIN, 0.0,
PSYS_SRC_BURST_SPEED_MAX, 0.1,
PSYS_SRC_ANGLE_BEGIN, 0*DEG_TO_RAD,
PSYS_SRC_ANGLE_END, 360*DEG_TO_RAD,
PSYS_SRC_OMEGA, <0,0,0>,
PSYS_PART_FLAGS, ( 0
| PSYS_PART_INTERP_COLOR_MASK
| PSYS_PART_INTERP_SCALE_MASK
| PSYS_PART_EMISSIVE_MASK
) ] );
}
}

 state_entry() とある通り、パーチクル垂れ流しのスクリです。
 サウンドの方のスクリとにらめっこさせて、「llParticleSystem( [  から ) ] ); の行を入れればいいのかな?」 ということで、 サウンドの方の llLoopSound("サウンド名", 1.0); の下にコピペ。。。ぉお、出たよママン!

 「なんだ簡単じゃん♪」 ルンルンでもう一回タッチしてみたら、音は止ったけどパーチクルが出っ放し。。。ダディどーして??

 もう一度、スクリにらめっこ。。。
 おやおや? サウンドスクリの下の方に
}else{
llStopSound();
 とかあるね?
 そりゃぁ、止める関数入れなきゃ止らないよねぇ。。。で、 llStopSound(); のマネして llStopParticleSystem(); とか入れてみたら、出ました。。。エラー。
 Stopって入れると文字の色が黒いままだから、そんな関数はないのね。。。Stopを消して保存、エラー。。。。。

 なんでーー?!
 その後、あり得ないエラーをたくさん出して、やっと気づいたのが「カッコ」。。。「もしかして」でカッコを一組つけ足したら。。。できちゃいました!
 なんでできたか知らないけど!!

【泡シュワシュワパーチクル、音も一緒にON-OFFスクリ】

integer play=FALSE;
string sound="water.wav";

default {
touch_start(integer total_number){
play = !play;
if (play) {
llLoopSound("water.wav", 1.0);
llParticleSystem( [
PSYS_SRC_TEXTURE, llGetInventoryName(INVENTORY_TEXTURE, 0),
PSYS_PART_START_SCALE, <0.085,0.085, 0>,
PSYS_PART_END_SCALE, <0.08,0.08, 0>,
PSYS_PART_START_COLOR, <1,1,1>,
PSYS_PART_END_COLOR, <1,1,1>,
PSYS_PART_START_ALPHA, 1.0,
PSYS_PART_END_ALPHA, 0.01,
PSYS_SRC_BURST_PART_COUNT, 6,
PSYS_SRC_BURST_RATE, 0.00,
PSYS_PART_MAX_AGE, 3.5,
PSYS_SRC_MAX_AGE, 0.0,
PSYS_SRC_PATTERN,PSYS_SRC_PATTERN_ANGLE_CONE,
PSYS_SRC_ACCEL, <0.2,0.3,0.0>,
PSYS_SRC_BURST_RADIUS, 0.1,
PSYS_SRC_BURST_SPEED_MIN, 0.0,
PSYS_SRC_BURST_SPEED_MAX, 0.1,
PSYS_SRC_ANGLE_BEGIN, 0*DEG_TO_RAD,
PSYS_SRC_ANGLE_END, 360*DEG_TO_RAD,
PSYS_SRC_OMEGA, <0,0,0>,
PSYS_PART_FLAGS, ( 0
| PSYS_PART_INTERP_COLOR_MASK
| PSYS_PART_INTERP_SCALE_MASK
| PSYS_PART_EMISSIVE_MASK
) ] );
}else{
llStopSound();
llParticleSystem([]);
}
}
}

 こんな感じ。
 たぶん書き方とかあってるんじゃない? と思われる初のスクリです。

 スクリいぢってて大嫌いになって、しばらく新しいスクリに挑戦していなかっただけに、嬉しいかぎりです。
 ただやはり素人なおまるさんなので保障の限りではありませんが、コピペして数値を換えるだけで、いろいろなパーチクルが楽しめるかと思います。
 。。。で、「ここ間違ってるよ」とかあったら、ぜひぜひご指導願いたい気分であります。


同じカテゴリー(モノ作り)の記事画像
はじける花火
カボチャ的なタイニー
ポーズを自作する
グライダーっぽいの飛ばしてみる
スカルプで丸いテーブル
スカルプでテーブルを。。。
同じカテゴリー(モノ作り)の記事
 はじける花火 (2010-01-15 20:42)
 カボチャ的なタイニー (2009-09-25 20:48)
 ポーズを自作する (2009-09-21 20:37)
 グライダーっぽいの飛ばしてみる (2009-09-19 18:21)
 スカルプで丸いテーブル (2009-09-12 03:11)
 スカルプでテーブルを。。。 (2009-09-09 06:30)
Posted by おまる at 20:34 │モノ作り