ソラマメブログ
QRコード
QRCODE
アクセスカウンタ
読者登録
メールアドレスを入力して登録する事で、このブログの新着エントリーをメールでお届けいたします。解除は→こちら
現在の読者数 0人
オーナーへメッセージ

2007年04月28日

太陽と時の刻み

 今日はNitaroさんとParticleでアレを作って遊んでいました。アレのようにゆらゆらと、というのはなかなかに難しく、移動すると点在してしまうのが残念。でも夜間限定で左肩に乗せておくことに。
 ParticleについてはNitaroさんのBlogの方を参照してください。つか、llParticleSystemに設定する数値が多すぎて書くのが面倒です。Particleを消すのは簡単なのにね。

 Particleの解説は彼に譲るとして、夜間限定というお話をば。
 Second Life内での時間(実時間ではなく)の取得はllGetTimeOfDayという関数ですが、単に昼か夜かを調べるのならllGetSunDirectionで太陽の位置、つまりz軸の数値を得て0より小さければ夜、大きければ昼と判断できます。lslWikiの解説ページにあるサンプルがとても分かりやすいので、そちらを読んだほうが理解は早いでしょう。

 その中にllSetTimerEventという関数があります。指定時間(秒)毎にイベントのtimerを実行するわけですが、他のタスクが実行中だとtimer内で記述したタスクはキャンセルされるので注意してください。指定秒毎のtimer実行を停止するには

 llSetTimerEvent(0) ;

と記述します。そんなわけで5分か10分毎にllGetSunDirectionで昼か夜かを調べ、夜になったのにアレが出てなかったらParticleを出し、昼になったのにアレが出てたらParticleを消す、という動作をさせるわけです。
 ええ、if文重ねすぎて正常に実行されてませんでしたともよ。

 ちなみに指定秒毎に順番に○○させていく、というときはllSleepを使います。指定した秒数だけ一時的にそこで実行を停止して、過ぎたら次の行を実行という感じ。llSetTimerEventを書いてもダメです(w

 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。