ソラマメブログ
< 2025年05月 >
S M T W T F S
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
※カテゴリー別のRSSです
Mail

  
Posted by at

2008年01月25日

LSLインクリメンタルサーチ



LSL IncSearch β0.1なるものを試してみました。
lslモジュール達人のjvnさんの製作です。
lslをweb上でインクリメンタルサーチできるだけでなく、
構文までコピーできるという優れものです。

コチラです!
http://www2.k-rent.net/jvn/lsl/lsl_search/

ブログの解説記事はコチラ
http://jvn.slmame.com/e122869.html



こういうサービスってもっとモッソリ動く物かと思ってたんですが
ずいぶんサクサク動くもんですねー。
基本キーボードだけで操作できるのがツボにはまる人、いるかもです。

入力保管されるエディタと比べてという部分ですが
・インストールがいらないので外出先とかでもお気軽につかえる
・日本語だ
・一覧表示が見やすい
・リンク先が適切(BlackSheep-LSL@Wikiさんなど)
といういい部分がありますね。

惜しいなという部分では、
自分のvista+IE7ではクリップボードコピーの際に
1回だけ警告ダイアログでちゃいます。
が、firefox系であれば平気です。


こういった開発の役に立つツールはどんどん増えていくと良いですね。
ユーザの開発の敷居を下げてくれる感じでステキです。

-=-=-=-=

自分はワガママなため、誰かのためのツールというのは
どうしても作る気がしません。
(自分のために作ったものを公開したりはしますが)
jvnさんのようにこういう物を労力費やして
作れるのは1つの才能だなと思いました。
  
タグ :ツール系lsl

Posted by harayoki at 23:11Comments(4)script

2007年10月17日

テクスチャをプリロードする

あるテクスチャが画面に初めて出るときに
あらかじめキャッシュに読み込まれているよう、
影で隠れて連続でテクスチャを連続表示しておくlslです。
前に作ったヤツが出てきたので、エントリーに書いておきます。

適当なプリムにこのscriptを設定し、
プリロードしておきたいテクスチャもたくさん突っ込んでおきます。
目立たないところに小さくしておいて置くといいでしょう。

効果があるかちゃんと検証してませんが…。

list textures;
float interval = 0.2;
integer len;
integer cur = -1;
Init(){
len = llGetInventoryNumber(INVENTORY_TEXTURE);
textures= [];
integer i;
for(i=0;i<len;i++){
string name = llGetInventoryName(INVENTORY_TEXTURE,i);
textures += [name];
}
llSetTimerEvent(interval);
//llSetAlpha(0.0,ALL_SIDES);
}
default{
state_entry(){
Init();
}
on_rez(integer num){
Init();
}
changed(integer cha){
if(cha & CHANGED_INVENTORY){
Init();
}
}
timer(){
if(len==0) return;
if(++cur>=len) cur = 0;
string tex = llList2String(textures,cur);
llSetTexture(tex,1);
}
}



うーん、scriptよりも別のことをしたい。
  
タグ :lslツール系

Posted by harayoki at 06:35Comments(0)script

2007年10月11日

複雑な関数は上に置け!



最近はなかなか多忙でINできないので…
lslプログラムをSciTE上で作ってみたりしていました。
(SciTEは汎用プログラムエディターです…詳しくはココを)
INする時間がなくても、コンパイルが通るかどうかまではSciTEだけで作れますし。

で、だんだんプログラムが長くなってくると。コンパイルチェック時に
Parser stack depth exceeded
などという、エラーが出てしまう事が多くなりました。

このエラーの挙動がなんだかよくわからい感じで…
気持ち悪かったので調べてみました。

まずlslプログラムは複雑な状態になると…
…簡単に言うと150以上の階層ができてしまうとエラーになってしまうようです。
変数・関数の宣言はそれぞれ1階層増えたとみなされます。

うーん、簡単じゃないですね。
実は、自分もよくわかってません。が、なんとなくはわかりました。

ここで、エラーになる例を1つ  続きを読む
タグ :lsl研究

Posted by harayoki at 04:37Comments(6)script

2007年05月16日

何度も同じscriptはロードできない

ミニscriptメモ

別オブジェクトに対して何度も同じscriptをロードしてみた。
llRemoteLoadScriptPin(id,scriptName,scriptPin,TRUE,0);

を連続で呼び出す。
しかし、2回目以降のllRemoteLoadScriptPinでは前のscriptが
上書きされて消えてしまった。

クラスのインスタンス化みたいに一つのscriptを複製できないかと
試みたのだけれど。失敗。  

Posted by harayoki at 15:01Comments(0)script

2007年05月16日

自分に自分のscriptはロードできない

ミニscriptメモ
下記のscriptでInventoryにある"copyScript"というscriptを
自分自身にロードしようかと思ったら失敗した。

エラーになるんじゃなくて、scriptが張り付いているオブジェクト自身が
叫んできたのでびっくりした。
Object shouts: Unable to add item!

クラスのインスタンス化みたいに一つのscriptを複製できないかと
試みたのだけれど。失敗。  続きを読む

Posted by harayoki at 14:51Comments(0)script

2007年05月06日

touchとstateのステキな関係



問題です。

下記のscriptを実行してプリムにtouchすると
default{
touch_start(integer total_number){
llSay(0, "Touch start default");
state state1;
}
}
state state1{
touch_start(integer total_number){
llSay(0, "Touch start state1");
}
touch_end(integer total_number){
llSay(0, "Touch end state1");
state default;
}
}


このように
"Touch start default"
"touch end state1"
と表示されますが
では、プリムをドラッグしてからマウスをリリースした場合はどうなるでしょう?


予想外にも正解は…  続きを読む

Posted by harayoki at 05:10Comments(0)script

2007年04月29日

scriptエディタのご紹介


自分はlslを書く際には、外部エディタのSciTE-ezというものを使っています。


これがかなり優れものでして
キーワードの強調やコード補完機能だけでなくオフラインの文法エラーチェックもしてくれます。
SLにログインしていなくとも、プログラムが組めて
どこに間違いがあるかコンパイルして知らせてくるわけです。
(実際はSLにログインしながら作業は行いますが。
また、実行ファイルは書き出されません。)

そのエラーの通知内容は、SL内のエディタよりもずっと詳しいです。  続きを読む

Posted by harayoki at 17:20Comments(0)script

2007年04月28日

llSitTarget注意点


瞬間ワープのエントリーの補足で、llSItTargetについての渋いエントリーを書いておきます。
自分がはまった所のおさらいです。


llSItTargetの注意点

1.アバタが座った事を感知できないYO!?

エレベータ作成の際は気づかなかったのですが、

llSitTarget(<0,0,0>,rot);

などと椅子に座る座標を指定すると
rotがどんな値であっても、アバタがいすに座ったことを
changeイベントで感知できなくなります。  続きを読む

Posted by harayoki at 12:31Comments(0)script