2007年05月15日
ページ切り替え型選択ダイアログ
今日は作ったスクリプトを貼ってみたいと思います。
//+++
項目を選択するダイアログのスクリプトです。
ダイアログには12個しか項目を並べられないですが、12個以上の選択ができる汎用的なダイアログのソースを作ってみました。
ソースを探すのが面倒だったのが本音なのは秘密です。
//+++
listに項目を全部入れてcreate_listdlg()を呼ぶだけです。
ダイアログに渡せる文字列長が決まっているので切り詰めています。
ボタンには24文字も表示し切れませんけれどねー。
ソースをそのままコピペするとコメントの日本語が化けますが動くようです。
(SLのエディタが表示できないだけで日本語のデータは持てているのですねー)
タッチすると選択ダイアログが出ます。
HTMLとかさっぱりなので整形はぽい投げしました。
にたろさんは色つけたりしてましたねー。
ちょっとやりたかったけれどポイ投げポーイ。
改変ご自由にどうぞ。
バグありましたら教えていただけると嬉しいです。
以下ソースです。 続きを読む
//+++
項目を選択するダイアログのスクリプトです。
ダイアログには12個しか項目を並べられないですが、12個以上の選択ができる汎用的なダイアログのソースを作ってみました。
ソースを探すのが面倒だったのが本音なのは秘密です。
//+++
listに項目を全部入れてcreate_listdlg()を呼ぶだけです。
ダイアログに渡せる文字列長が決まっているので切り詰めています。
ボタンには24文字も表示し切れませんけれどねー。
ソースをそのままコピペするとコメントの日本語が化けますが動くようです。
(SLのエディタが表示できないだけで日本語のデータは持てているのですねー)
タッチすると選択ダイアログが出ます。
HTMLとかさっぱりなので整形はぽい投げしました。
にたろさんは色つけたりしてましたねー。
ちょっとやりたかったけれどポイ投げポーイ。
改変ご自由にどうぞ。
バグありましたら教えていただけると嬉しいです。
以下ソースです。 続きを読む
2007年04月03日
テクスチャアニメーションの面指定
カンバンにアニメを入れたかったので調べてました。
あ、アニメGIFをテクスチャに変換してくれるWebツールがあるようですね。
使わせていただきました。
http://www.slboutique.com/anim/
//+++
llSetTextureAnim というLSLの関数でテクスチャをアニメーションできます。
引数の二番目で面を指定するのですが、LSLWikiのSideの項にはこうあります。
http://rpgstats.com/wiki/index.php?title=Side
On an axis-aligned box:
0 - top
1 - lesser y
2 - greater x
3 - greater y
4 - lesser x
5 - bottom
(HollowもCutも入れていない箱の場合です)
たとえば1と3でアニメーションしたい場合はどうしたらいいでしょうか。
ビットフラグみたいに足して4!・・・ですと側面反対側がアニメしますね。
うーん、わからない。
色々実験してみました。
//+++
手始めに二回呼んでみます。
llSetTextureAnim(ANIM_ON | LOOP, 0,2,2,0,0,5.0);
llSetTextureAnim(ANIM_ON | LOOP, 1,2,2,0,0,5.0);
側面のみアニメーションしていましたので、後に呼ばれたものが設定されているようです。
うん、そりゃそうですね。
上面はコマの途中で止まっていました。
これ、本来はテクスチャ丸ごとが表示されるはずなんです。
戻らないのは何でかなーと思ってたんですが、リログすると本来の表示に戻ってました。
//+++
次に、本来の引数の範囲外のものを渡してみました
たとえば、6。
うーん、何も動きません。
お、試しに色々いじっていたら複数の面が動いた!
…と思ったんですが、リログしたら一面だけアニメに戻っていました。
なんでだろう。
どうやら、
llSetTextureAnim(ANIM_ON | LOOP, 0,2,2,0,0,5.0);
llSetTextureAnim(ANIM_ON | LOOP, 1,2,2,0,0,5.0);
と呼んだ後に
llSetTextureAnim(ANIM_ON | LOOP, 6,2,2,0,0,5.0);
と範囲外の引数で関数をコールすると、"1(側面)"で上書きされて止まっているはずの"0(上面)"が
動いて見えるようです。
ただし、一番目と二番目のコールをしたときにその場に居なかった人には動いて見えないようです。
なのでこれをタイマー等で定期的に実行すれば複数の面を同時にアニメーションさせることができます。
とはいっても、スクリプトは常時実行しないといけないので、本来のllSetTextureAnimの利点はあまり無いですね。
あとllSetTextureAnimを呼びなおすと、アニメが初期化されるので呼ぶタイミングにも気を使わないといけません。
//+++
面白ワザかなーと思ったんですがあんまり実用的ではないですね…(笑)
普通に複数面をアニメさせる方法がありましたらどなたか教えてくださいー。
続きにソースを貼っておきました。
Sleepを入れないとうまく動いていなかったです。 続きを読む
あ、アニメGIFをテクスチャに変換してくれるWebツールがあるようですね。
使わせていただきました。
http://www.slboutique.com/anim/
//+++
llSetTextureAnim というLSLの関数でテクスチャをアニメーションできます。
引数の二番目で面を指定するのですが、LSLWikiのSideの項にはこうあります。
http://rpgstats.com/wiki/index.php?title=Side
On an axis-aligned box:
0 - top
1 - lesser y
2 - greater x
3 - greater y
4 - lesser x
5 - bottom
(HollowもCutも入れていない箱の場合です)
たとえば1と3でアニメーションしたい場合はどうしたらいいでしょうか。
ビットフラグみたいに足して4!・・・ですと側面反対側がアニメしますね。
うーん、わからない。
色々実験してみました。
//+++
手始めに二回呼んでみます。
llSetTextureAnim(ANIM_ON | LOOP, 0,2,2,0,0,5.0);
llSetTextureAnim(ANIM_ON | LOOP, 1,2,2,0,0,5.0);
側面のみアニメーションしていましたので、後に呼ばれたものが設定されているようです。
うん、そりゃそうですね。
上面はコマの途中で止まっていました。
これ、本来はテクスチャ丸ごとが表示されるはずなんです。
戻らないのは何でかなーと思ってたんですが、リログすると本来の表示に戻ってました。
//+++
次に、本来の引数の範囲外のものを渡してみました
たとえば、6。
うーん、何も動きません。
お、試しに色々いじっていたら複数の面が動いた!
…と思ったんですが、リログしたら一面だけアニメに戻っていました。
なんでだろう。
どうやら、
llSetTextureAnim(ANIM_ON | LOOP, 0,2,2,0,0,5.0);
llSetTextureAnim(ANIM_ON | LOOP, 1,2,2,0,0,5.0);
と呼んだ後に
llSetTextureAnim(ANIM_ON | LOOP, 6,2,2,0,0,5.0);
と範囲外の引数で関数をコールすると、"1(側面)"で上書きされて止まっているはずの"0(上面)"が
動いて見えるようです。
ただし、一番目と二番目のコールをしたときにその場に居なかった人には動いて見えないようです。
なのでこれをタイマー等で定期的に実行すれば複数の面を同時にアニメーションさせることができます。
とはいっても、スクリプトは常時実行しないといけないので、本来のllSetTextureAnimの利点はあまり無いですね。
あとllSetTextureAnimを呼びなおすと、アニメが初期化されるので呼ぶタイミングにも気を使わないといけません。
//+++
面白ワザかなーと思ったんですがあんまり実用的ではないですね…(笑)
普通に複数面をアニメさせる方法がありましたらどなたか教えてくださいー。
続きにソースを貼っておきました。
Sleepを入れないとうまく動いていなかったです。 続きを読む