2007年04月10日
【asa】意外と知られていない!? プリム透明化
たとえばガラス窓なんかを作る際、プリム・オブジェクトの「編集」メニューでTransparent設定をいじりします。
ここ、値の設定が0~90までできるようになってます。
しかし最大値の90を設定しても完全に透明化しません。
ガラスのようなものを作るなら存在感を残すため90とかで良いと思います。
しかし何らかの事情で完全に見えなくしたい場合に、これでは都合が悪いですね。
スクリプトを使わずにこれを実現する場合、アルファチャンネルを使えるソフトでテクスチャを作り、これを実現することもできます。
が、スクリプトを使う場合は、たった↓これだけでできます。
---------------------- プリム1つの場合
default {
state_entry(){
llSetAlpha(0.0,ALL_SIDES);
}
}
----------------------
---------------------- linkされた複数プリムをまとめて全部
default {
state_entry(){
llSetLinkAlpha(LINK_SET,0.0,ALL_SIDES);
}
}
----------------------
ついでに、こんなんすると、touchする度に表示/非表示が入れ替わるプリムになります。
touchした時(touch_startイベント発生)、
もしも現在それが表示されてたら(llGetAlpha()が 0.0より大きければ)、非表示(llSetAlpha(0.0,ALL_SIDES))。
そうでなければ(else)、表示(llSetAlpha(1.0,ALL_SIDES))。
という意味になります。
----------------------
default {
touch_start(integer detected){
if(llGetAlpha(ALL_SIDES) > 0.0){
llSetAlpha(0.0,ALL_SIDES);
}
else{
llSetAlpha(1.0,ALL_SIDES);
}
}
}
----------------------
ここ、値の設定が0~90までできるようになってます。
しかし最大値の90を設定しても完全に透明化しません。
ガラスのようなものを作るなら存在感を残すため90とかで良いと思います。
しかし何らかの事情で完全に見えなくしたい場合に、これでは都合が悪いですね。
スクリプトを使わずにこれを実現する場合、アルファチャンネルを使えるソフトでテクスチャを作り、これを実現することもできます。
が、スクリプトを使う場合は、たった↓これだけでできます。
---------------------- プリム1つの場合
default {
state_entry(){
llSetAlpha(0.0,ALL_SIDES);
}
}
----------------------
---------------------- linkされた複数プリムをまとめて全部
default {
state_entry(){
llSetLinkAlpha(LINK_SET,0.0,ALL_SIDES);
}
}
----------------------
ついでに、こんなんすると、touchする度に表示/非表示が入れ替わるプリムになります。
touchした時(touch_startイベント発生)、
もしも現在それが表示されてたら(llGetAlpha()が 0.0より大きければ)、非表示(llSetAlpha(0.0,ALL_SIDES))。
そうでなければ(else)、表示(llSetAlpha(1.0,ALL_SIDES))。
という意味になります。
----------------------
default {
touch_start(integer detected){
if(llGetAlpha(ALL_SIDES) > 0.0){
llSetAlpha(0.0,ALL_SIDES);
}
else{
llSetAlpha(1.0,ALL_SIDES);
}
}
}
----------------------
【asa】おーねがいattach!attach!
【asa】 ランラン乱数で おみくじ!
【asa】スクリプトに日本語しゃべらせるアレの支援ツール
【asa】気まぐれLSL tips:ちゃんと座ってよ;;
【asa】ネタ製作とその実現3 ぱーみっしょん
【asa】ネタ製作とその実現2 代替手段に学ぶ
【asa】 ランラン乱数で おみくじ!
【asa】スクリプトに日本語しゃべらせるアレの支援ツール
【asa】気まぐれLSL tips:ちゃんと座ってよ;;
【asa】ネタ製作とその実現3 ぱーみっしょん
【asa】ネタ製作とその実現2 代替手段に学ぶ
Posted by mina Cookie at 10:26│Comments(5)
│学習
この記事へのコメント
更新頑張ってますね(笑)。
あるふぁちゃんねるか~、こんな関数あるんですね。
でもね、前にプリムのトランスいじったけど100があったような?気のせい?
それでminaさんのお墓に設置した回る線香を作ったんだけどなぁ。
土台部分を透明にしてます。
あるふぁちゃんねるか~、こんな関数あるんですね。
でもね、前にプリムのトランスいじったけど100があったような?気のせい?
それでminaさんのお墓に設置した回る線香を作ったんだけどなぁ。
土台部分を透明にしてます。
Posted by せき at 2007年04月10日 21:25
Editメニューからできることの殆どがスクリプトでできます。プリムに限れば、もしかすると全部できりかも?
Trans=100は、llSetAlpha(0.0)で設定してある場合は100と表示されます。と、書きましたが、あれー100を直接放り込めました?仕様変わったのかな。あるいは設定があるのかな?
事実関係は調べてみます。
Trans=100は、llSetAlpha(0.0)で設定してある場合は100と表示されます。と、書きましたが、あれー100を直接放り込めました?仕様変わったのかな。あるいは設定があるのかな?
事実関係は調べてみます。
Posted by asa at 2007年04月11日 09:00
書き込んでからINしてないので何ともいえません(笑)。
editから直接100入れた気がします(笑)。
editから直接100入れた気がします(笑)。
Posted by せき at 2007年04月12日 22:08
んー、一昨日試したんですが、やっぱり90が限界でした。
Posted by asa at 2007年04月13日 09:11
そうでしたか~。
きっと俺が寝ながら作ってたんでしょ(笑)
きっと俺が寝ながら作ってたんでしょ(笑)
Posted by せき at 2007年04月13日 21:42
※このブログではブログの持ち主が承認した後、コメントが反映される設定です。