ソラマメブログ

2008年11月15日

あなたのお店の宣伝サービス&LSL講座 その1

こんばんちゃ^^
funfuncompanyのMasao Rangですよ♪

お店検索&宣伝サービスskywalker
好評稼動中wこちらの記事を読んでね^^

funfuncompany インプレス本店へテレポート


では早速本題w少しだけLSLについて説明しますよ^^

ここで説明することは、LSLの初心者さん向けです。
分かりやすい説明をモットウにしているので、
間違った使い方やいい回ししてたらごめんなさいw

ではでは、今日はさっそく第1回ということで、
LSLについての説明をさせていただきますね^^

これから先、プログラムを書いたことの無い方が、
このブログを見て、LSLが出来るようになったといってもらえたら、うれしいです♪

-------------------------------------------------------------------------------------------------------
第1回 LSLとは~基本まで
LSLとは、
-------------------------------------------------------------------------------------------------------
SL内で使用できるプログラムでリンデンスクリプトランゲージの略だったかなw

簡単に言えばSLの為のプログラム言語ですw
しかも一見難しそうですが、基本はめちゃ簡単ですよ^^・・・びっくりするくらいにw

種明かししてしまえば、LSLはあらかじめSL側が用意した機能があり、
それをパズルのように組み合わせていけば、自分が造りたいと思った事が簡単にできてしまう物なのです!!

このあらかじめSL側が用意した機能とは、ll「エルエル」と半角英字で
入力した後に、続くやつですw

たとえばこれ、llSay(0,"")
これを書けば、オブジェクトがチャットしてくれるやつですw

llSay(0,"私はMasaoRangです");
これをスクリプトの中の決められた場所に入力すれば、
そのオブジェが、「私はMasaoRangです」と緑の文字でチャットします。

簡単ですよねw
""(ダブルコーテーション2つ)並べた中にオブジェにしゃべらせたい事を入力しておくだけでチャットします。
これは、SLがあらかじめ用意してくれた1つの機能なのです。

こういった機能がたくさん用意されていて、
それらを組み合わせることで、自動車やキャンプ、ゲームといった、なんかすごい物が簡単に作れちゃうんですよ^^

これらの機能を覚える必要は無いのですが、どういったときにどんな機能があったなぁって言うのを覚えておけば
それを調べて組み合わせれば、こうしたいと頭で考えたスクリプトが簡単いつくれるようになります。



そして、ステートの概念も覚えちゃいましょうw

default
{
state_entry()
{
llSay(0, "Hello, Avatar!");
}

touch_start(integer total_number)
{
llSay(0, "Touched.");
}
}

新しいスクリプトを作ると必ず、デフォルトで作られるスクリプトがこれですね♪
先ほど学んだllSayが使われてますねw
このスクリプトを開いた時に、Hello, Avatar!という緑の文字が出たと思いますw
これが、オブジェがチャットしたって事ですw

じゃぁなぜ、Touched.はチャットされなかったのでしょうか??
答えは簡単、llSayを書いた場所です^^
しゃべらせる順番、タイミングを制御しているからなのですねw

一般的にスクリプトは、保存と同時に実行され、上から読み込んでいきます。

では、スクリプトの枠組みをご説明します

・defaultと書かれたのがステートという枠組み
・次にstate_entry、touch_startが書かれているのが、状態を入力した枠組み
・それぞれの状態の枠組みの中に実際にその状態になったらどういう機能を実行させるかを書かれた
機能を実行させる枠組みですw

ステートの中に状態の枠があってその中に初めて機能を書くところがあるわけです。
上の例では、
ステート1枠「
        状態枠1「実行させるメインの場所」
        状態枠2「実行させるメインの場所」
                               」


この初期のスクリプトには、ステートが1つ、状態が2つ入ってるわけですね^^
では、1つずつ見ていきましょう。


まず、スクリプトは、default(ステート枠1)を探します。(defaultステート)

通常スクリプトを実行する順番はスクリプトを作る人が決められます。
実行する順番を指定しないと何が最初に実行されるか分からないですよねw
ですので順番をスクリプトを作る人が指定するのですが、問題が発生します。

それは、一番最初に実行するのは、どのステートを実行すればいいのか分かりませんw
ですので、SL側があらかじめ1番最初に実行するのは、defaultステートを実行してねと取り決めされているのです。

後日説明しますが、この初期のスクリプトには、ステートが1つですが、
他のステートを用意する時は、好きな名前のステートを指定できますw
                   state 好きな名前
そして、好きなタイミングでこのステートに移動してと命令させることが出来ます。
ステートの移動の機能がちゃんと用意されていますw


そして{}で囲まれていますが、これはその中をみるという意味ですw
次は状態を指定する枠でしたね^^

状態は、決まった型があります。これもSL側が用意した物
state_entry()とtouch_start(integer total_number)をここでは使用してますね^^

まず、state_entry()ですが、この枠は、
何も状態が変化していない時、つまりそのオブジェが、放置プレーされている時なんですw
基本の状態ですねwオブジェを触っても、座っても、持っても、投げてもwいない
ただ置いてあるだけの状態の時にこれが実行されますw

じゃぁtouch_start(integer total_number)は何かといえば
英語が分かる人なら察しはつくと思いますがw
オブジェにタッチされたら(触ったら)どういう反応をするのかを入力します♪
integer total_numberこれは何??って話だと思いますが、
また後日話ます(ぁ

これは変数といって箱です、
integerは、箱の種類です。
total_numberははこの名前です。
数字用の(integer)total_numberという名前の箱を用意します。
この箱には、オブジェがタッチした人数がはいってきます。
でも、今回は使用しませんw
誰がタッチしたとかは関係ないですからw
誰が何万回タッチしようが、
やることは1つ「Touched.」とオブジェがしゃべるだけなのですからw

最初に説明した、なんで「Touched.」といわないのかはもうお分かりですよね??
そうwタッチされた状態枠の中にllSay機能が書かれているのですからw
オブジェをタッチしないとしゃべりません。

ちなみにこれも後日説明しますが、これらの状態枠はどれだけの種類が用意されているんでしょうか?
この状態を調べちゃえば、もう使えますよね??w
よく使う物として、
タッチ、チャットの声を聴く、お金が支払われたら、オブジェが取り出されたら、装着したら、座られたら
この辺が一般的じゃないでしょうかw
楽しそうなのは
キーボードの押されたボタンを感知したら(乗り物でよく使う、キーボードの押したボタンで動かせるやつね)
ノートカードの中身を呼び出したり、外部のWEBと連動なんてのもありますよ^^

これらは、おいおい説明していきますが
わざわざ説明するものではなく、状態枠をインターネットで調べて
実行すれば全部一緒なんですよね^^基本的にはw
おいおいの説明では、これで、こんな事ができるんですよってのを紹介するだけですw

基本はここで話した事が理解できれば、
60%くらいスクリプトが自由に出来たも同然ですw

あとは、どんな状態があるのかとどんな機能があるのかをインターネットなりで
調べるだけなのですw
残りの40%は、状態枠の中の機能を書く際に使用する、
変数、条件式や繰り返しというプログラム的な説明がまだですね^^
あとは、説明しないと複雑なところが少々と
安全装置(パーミッション指定)の説明が必要ですねw

ではでは、長いこと書いたので、最後まで読んでくれる人がいるかは
分かりませんが(おまけに説明が下手w)

また次回に期待してくだされ~~


肝心の宣伝wお店検索&宣伝サービスskywalker
好評稼動中wこちらの記事を読んでね^^

funfuncompany インプレス本店へテレポート




Posted by funfuncompany at 14:40│Comments(0)LSL
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。