2007年09月16日
改装! 迷路・MAZE・LABYRINTH
迷路大改装。プリム数が106から56に減りました。
さらに本日の特記事項はスクリプトも大幅改装したこと。

床プリムに仕込んだ基盤スクリプトからの指令で、子プリムである壁プリムのLSLが発動し自らの位置や向きや幅を変更します。親子でスクリプトを分けた事でそれぞれの機能が整理され、システムの見通しが良くなりました。
さらに大技に挑戦。外部サーバーとの連携で迷路の中身をワンタッチで新しいものに入れ替えられるようになりました。
さらに本日の特記事項はスクリプトも大幅改装したこと。

床プリムに仕込んだ基盤スクリプトからの指令で、子プリムである壁プリムのLSLが発動し自らの位置や向きや幅を変更します。親子でスクリプトを分けた事でそれぞれの機能が整理され、システムの見通しが良くなりました。
さらに大技に挑戦。外部サーバーとの連携で迷路の中身をワンタッチで新しいものに入れ替えられるようになりました。
迷路の中身の壁の配置を自動設定するのは、LSLでは不可能ではないかもしれませんが相当工夫が要りそうです。そこでファーストライフに存在するレンタルサーバの援用を考えました。LSLにはURLを指定してWebサーバーにアクセスし、サーバーが返してきたデータを文字列として受け取る関数が用意されています。これを使えば実現は容易そうです。
llSetPosの仕様などいろんなところで嵌まりましたが、実質2日でなんとか実現しました。テスト実行の結果、迷路の中身は数秒以内に変更できることが確認できました。自分の仕事ながら、感動しましたよ。
- サーバーにはperlで組まれたCGIプログラムを用意する。呼び出されるごとに、このperlスクリプトはアトランダムに(かつ迷路として必ず使用可能な)壁の配置図を生成し、これを親LSLが理解可能なチャットコマンドのフォーマットに変換して返信する。
- アバターが親プリムのスクリプトに対して所定のチャットコマンドを投げ与えると、LSLに用意されているHTTP通信機能を利用して上記サーバーにアクセスしチャットコマンドの束を受け取る。
- うけとったチャットコマンドをプリム間通信によって子プリム(壁プリム)に配信する。
- コマンドを受け取った子プリムはそれぞれ自前のスクリプトによって自らの位置取りを行なう。
llSetPosの仕様などいろんなところで嵌まりましたが、実質2日でなんとか実現しました。テスト実行の結果、迷路の中身は数秒以内に変更できることが確認できました。自分の仕事ながら、感動しましたよ。
Posted by Yoo at 13:55│Comments(0)
│Japan Island 07
この記事へのトラックバック
Amusement Spaceじっくりこつこつ造営中。地味にスクリプトいじりを続けていましたが、ここにきてlandspaceにハマリ気味です。いろんな意味で植物恐るべし。
植物はプリムを馬鹿食いする【セカンドライフの隠れ家にて密かに生きてみる】at 2007年09月24日 12:19
※このブログではブログの持ち主が承認した後、コメントが反映される設定です。