2009年01月16日
パーティクルを長方形・円形に発生させる
パーティクルでお花畑を作りました。
まずはよくあるパターンがこちら・・・

半径をrで指定します。半径はintervalの間隔で変更されます。
dはタイマーイベントあたりに発生するパーティクルの密度の目安です。
スクリプトを仕込むプリムはy軸方向に90度回転させておいてください。
円形だとお隣さんの土地にはみ出す心配がありますね。
その場合,位置を指定してパーティクルを発生させるとうまく長方形になります。

発生位置は極座標の要領で,角度と半径を指定します。
角度はllAtan2で,半径はピタゴラスの定理で計算しています。
ちなみにパーティクルを表示できる領域はプリムから50メートルぐらいの範囲に限られるようです。
まずはよくあるパターンがこちら・・・

半径をrで指定します。半径はintervalの間隔で変更されます。
dはタイマーイベントあたりに発生するパーティクルの密度の目安です。
スクリプトを仕込むプリムはy軸方向に90度回転させておいてください。
円形だとお隣さんの土地にはみ出す心配がありますね。
その場合,位置を指定してパーティクルを発生させるとうまく長方形になります。

発生位置は極座標の要領で,角度と半径を指定します。
角度はllAtan2で,半径はピタゴラスの定理で計算しています。
ちなみにパーティクルを表示できる領域はプリムから50メートルぐらいの範囲に限られるようです。
2009年01月01日
5面プリムにテクスチャを貼る
1プリムで合同な長方形を5面持つプリムの作り方です。
リアルタイム掲示板などでおなじみのやつです。

プリムを作成した後,建造物ブロックタイプを「プリズム」にします。
「作成」のメニューにある「プリズム」はボックスを変形した偽物ですので使えません!!

パスカットの始点と終点をそれぞれ0.2と0.8に,中空を66.6にします。

Yの値をZの値の5倍にしました。分かりやすいように左から色を付けてあります。
Xの値を0.01にすると各面がきちんと正方形になります!!

各面にテクスチャを貼付けるときには,「面ごとに繰り返す」の「垂直」の値はいずれも1にしましょう。「水平」の値は黄色と水色の面では1,赤と青の面は2.5,緑の面は15にします。
「ずれ」については赤と青の面では「水平」の値をそれぞれ-0.25と0.25にします。その他は0のままでオッケー!
ただし緑の面だけは水平方向に反転しておきます。

1つのテクスチャをそのまま貼付けるのならまだいいのですが,面の一部を拡大して貼付けたいときには,うんざりするような計算が必要になります。
ですので,テクスチャの一部を拡大して表示する関数を作ってみました。
最初の引数にはコンテンツ内にあるテクスチャの名前を指定してください。
次の引数で面を指定します。赤,黄,緑,水,青の順に0〜4の整数値で指定します。
残りのベクトル引数で,拡大表示したい部分の左上の座標と右下の座標を指定します。
x成分とy成分はいずれも0.0〜1.0の間で指定します。z成分は無視されます。
緑の面は両端にアンダーカット部分が発生します。
黄色と水色の面に透明なテクスチャを貼ると,緑の面が透けて見えますので工夫が必要です。
水平表示位置がずれるバグを修正しました。(2009/1/2)
この関数を使って1プリムの時計を作ってみました。
偶然3:33になっていますが,もちろん0:00から23:59まで表示できますよ〜

リアルタイム掲示板などでおなじみのやつです。

プリムを作成した後,建造物ブロックタイプを「プリズム」にします。
「作成」のメニューにある「プリズム」はボックスを変形した偽物ですので使えません!!

パスカットの始点と終点をそれぞれ0.2と0.8に,中空を66.6にします。

Yの値をZの値の5倍にしました。分かりやすいように左から色を付けてあります。
Xの値を0.01にすると各面がきちんと正方形になります!!

各面にテクスチャを貼付けるときには,「面ごとに繰り返す」の「垂直」の値はいずれも1にしましょう。「水平」の値は黄色と水色の面では1,赤と青の面は2.5,緑の面は15にします。
「ずれ」については赤と青の面では「水平」の値をそれぞれ-0.25と0.25にします。その他は0のままでオッケー!
ただし緑の面だけは水平方向に反転しておきます。

1つのテクスチャをそのまま貼付けるのならまだいいのですが,面の一部を拡大して貼付けたいときには,うんざりするような計算が必要になります。
ですので,テクスチャの一部を拡大して表示する関数を作ってみました。
最初の引数にはコンテンツ内にあるテクスチャの名前を指定してください。
次の引数で面を指定します。赤,黄,緑,水,青の順に0〜4の整数値で指定します。
残りのベクトル引数で,拡大表示したい部分の左上の座標と右下の座標を指定します。
x成分とy成分はいずれも0.0〜1.0の間で指定します。z成分は無視されます。
緑の面は両端にアンダーカット部分が発生します。
黄色と水色の面に透明なテクスチャを貼ると,緑の面が透けて見えますので工夫が必要です。
水平表示位置がずれるバグを修正しました。(2009/1/2)
この関数を使って1プリムの時計を作ってみました。
偶然3:33になっていますが,もちろん0:00から23:59まで表示できますよ〜

2008年12月28日
フラクタルの木の下で
さぶろさんの記事に触発されてフラクタルの木を作ってみました。

rezの時にプリムの番号を送ってやることで,自分のサイズを計算しています。
手抜きなのでY-Z平面上にしか成長しません。(^ ^;)''>
llSleepを指定しないと,処理が追いつかずエラーが出ます。
シリンダを作成し,サイズを<0.2,0.2,1.0>にします。

スクリプトを仕込んだあと,いったんテイクし,"branch"と名前を付けます。
再度rezしてから,テイクしてある"branch"をコンテンツ内に追加します。

タッチすると木がムクムク成長していきます!!
やた〜♪

rezの時にプリムの番号を送ってやることで,自分のサイズを計算しています。
手抜きなのでY-Z平面上にしか成長しません。(^ ^;)''>
llSleepを指定しないと,処理が追いつかずエラーが出ます。
シリンダを作成し,サイズを<0.2,0.2,1.0>にします。

スクリプトを仕込んだあと,いったんテイクし,"branch"と名前を付けます。
再度rezしてから,テイクしてある"branch"をコンテンツ内に追加します。

タッチすると木がムクムク成長していきます!!
やた〜♪
2008年12月23日
色をスムーズに変える
プリムの色をスムーズに変化させます
ベクトル変数cにはRGBそのものではなく,各色に対応した角度を保持しています。
0.05秒ごとにdで指定した角度(ラジアン)ずつ増加します。
各成分が微妙にずれていることによって,周期性を感じさせない
色の変化を実現しています。
プリムをタッチすることで色の変化が停止・再開します。
このスクリプトを使って装着するイルミネーションを作ってみましょう。
中空を持った球体を作り,パスカットで適当に口を開けておきます。

テクスチャをブランクにし,中空の内面と外面の透過度を指定します。
内面は1〜2%程度,外面は50〜80%ぐらいが良いでしょう。
加えて外面を0.10程度発光させると更に見栄えが良くなります。
続いてひねりを加えます。始めと終わりはそれぞれ180度にします。
パスカットを戻して口を閉じ,ファントムにしておきましょう。
スクリプトを仕込んで完成です!!

胴体周辺に装着してみましょう。シルエットが浮かび上がります。
ダンスホールなどで使用すると良いでしょう。

ベクトル変数cにはRGBそのものではなく,各色に対応した角度を保持しています。
0.05秒ごとにdで指定した角度(ラジアン)ずつ増加します。
各成分が微妙にずれていることによって,周期性を感じさせない
色の変化を実現しています。
プリムをタッチすることで色の変化が停止・再開します。
このスクリプトを使って装着するイルミネーションを作ってみましょう。
中空を持った球体を作り,パスカットで適当に口を開けておきます。

テクスチャをブランクにし,中空の内面と外面の透過度を指定します。
内面は1〜2%程度,外面は50〜80%ぐらいが良いでしょう。
加えて外面を0.10程度発光させると更に見栄えが良くなります。
続いてひねりを加えます。始めと終わりはそれぞれ180度にします。
パスカットを戻して口を閉じ,ファントムにしておきましょう。
スクリプトを仕込んで完成です!!

胴体周辺に装着してみましょう。シルエットが浮かび上がります。
ダンスホールなどで使用すると良いでしょう。
