192110 ランダム
 HOME | DIARY | PROFILE 【フォローする】 【ログイン】

どらちゃんのしっぽ

どらちゃんのしっぽ

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
July 14, 2007
XML
テーマ:私のPC生活(7419)
カテゴリ:技術

いまや猫も杓子もSecondlifeという感じになってきた、仮想空間。
うちの会社も研究目的で土地を買ったということなので、ぼくもはじめてみた。

Snapshot_001-350.jpg

SLの一番の魅力は、ユーザが自由に物体を作り出せること。
その物体を自由にプログラミングできること。
作っている風景は、エスパーみたいでかっこいい。けっこうこれだけで楽しい。

そて、この物体の振る舞いを定義するためのプログラム言語は、SL独自のリンデンスクリプト言語(LSL)という。
一見、C言語っぽい文体を持つが、構造はawkに近い。

物体が持つ「状態」を定義し、その状態ごとに、イベント発生における処理を記述する。

状態A(初期状態)
{
    event1
    {
        処理1
    }
    event2
    {
        処理1
    }
    ・
    ・
    ・
}

状態B
{
    event1
    {
        処理1
    }
    event2
    {
        処理1
    }
    ・
    ・
    ・
}

こんな構造だ。状態というのが分りにくいが、自動ドアを考えてみる。初期状態Aというのは、ドアが閉まっている状態。ドアのオブジェクトが、閉まっている座標を持っている。そのA状態の中のイベントに、誰かがドアに触れると、touchイベントが発生する。
touchイベントの処理の中で、ドアを左に2m動かす、という処理をする。さらに、
状態Bのドアが開いている状態に移行する。
状態Bの中で、同じくtouchイベントが発生すると、ドアを右に2m動かす処理をして
状態Aに戻る。

LSL風に書くと、流れはこんな感じ。
default( =ドアが開いている状態)
{
    touch()
    {
        ドアを動かす(右に2m); //この処理は自分で作る
        state opened_door;  //状態を移動する
    }
}
opened_door
{
    touch()
    {
        ドアを動かす(左に2m)
        state default;  //状態を移動する
   }
}

Cとは違って、手続き型言語ではなく、イベントドリブンなので、書くには多少コツがいる。そうしたコツに慣れていないので、これから少し練習が必要だ。

処理のための関数も300以上もあり、その関数を理解するのだけで大変だが、以下にリファレンスがある。

LSL wiki

 






お気に入りの記事を「いいね!」で応援しよう

Last updated  July 15, 2007 01:49:01 AM
[技術] カテゴリの最新記事


PR

Keyword Search

▼キーワード検索

Profile

=やすき=

=やすき=

Calendar

Recent Posts

Comments

=やすき=@ Re:これはテスト(08/14) コメントテスト3 4
=やすき=@ Re:これはテスト(08/14) コメントテスト1 2
ことら@ Googleのリリース内容 Chrome OSに関するGoogleのコメントを読む…

Category

Favorite Blog

ぎゅーぎゅーぱん ぎゅーぎゅーちゃんさん

Headline News

Archives

September , 2024
August , 2024
July , 2024

© Rakuten Group, Inc.
X