ソラマメブログ

  
Posted by at

2007年04月27日

ステートのこと(スクリプト初級第十九回)

今回はスクリプトの構成について少し突っ込んだ話をします。
具体的に実用性のあるスクリプトは出てきませんが、自分で1からスクリプトを書こうというとき、構成をどうするか考える際の参考にしていただければと思います。

このblogの記事では、最初の頃にスクリプトの構成について触れました。
「ステート」「イベント」「処理」の3つの要素で成り立っているという話です。

私はこの3つがスクリプトの基本要素であると説明し、スクリプトを書く際には作ろうとしている機能がどんな「ステート」「イベント」「処理」になるのか意識すると良いと書いてきましたが、実際には「ステート」がどんな時に登場するのか、いまひとつハッキリしないという方もいらっしゃるのではないでしょうか。
というのも、今まで挙げてきたスクリプトの例の中には、defaultステートしか存在しないようなものが多々あるからです。

ステートって、どんなときに使うのでしょうか?  続きを読む

Posted by Miz at 12:15Comments(2)初級スクリプト

2007年04月26日

rez!(スクリプト初級第十八回)

初級者向けに説明すべきことはもはやほとんど残っていません(^^;
もちろん、lslに関してはまだまだ膨大な機能があり、触れていない部分は多いのですが、あくまでも「初級」ということであれば、残っているのは今回扱うrezを含めて2、3の項目くらいかと思います。

ちなみに今まで一切触れてこなかった機能として、物理系のスクリプトがあります。
物理系のスクリプトとは、SL内の物理的なオブジェクトを扱うための関数群のことです。
例えば加速させたり、重力を無くしたり、コマのように回転する力を加えたりできるのですが、これらの関数についてはスクリプトの知識というよりはSL内物理学の知識が必要になってきますので、初級者向けの対象外としました。
ちなみに、乗り物(ビークル)を作成する際には物理系スクリプトが必須です。
そのうち「乗り物を作ろう」の回があるかもと期待してた方、ごめんなさい(^^;
初級者さん向けとしてはちょっと難しいかもしれません。

また、HTTPを使った外部Webサービスとのやり取りに関しても言及していません。
lslの範疇を越え、Webサービスの構築についても説明しないとわかりにくいでしょうし、そうなると初級者の方には無用な混乱を引き起こしかねないからです。

残っているlslの機能の中で、説明しておくべきかもしれないと思っているのは、rez、衝突判定、サーチ、アタッチの4つです。
今回はその中のrezについて説明したいと思います。
  続きを読む

Posted by Miz at 12:15Comments(28)初級スクリプト

2007年04月25日

音を鳴らそう(スクリプト初級第十七回)

今回のスクリプトは簡単です。
サウンドの再生についてはもっと早くに取り上げるべきでしたが、ついつい後回しになってしまいました(^^;

オブジェクトにちょっとした音を組み込むことは、簡単なわりに効果的です。
例えば照明のON/OFFをするときにスイッチ音を付けたり、アニメーションと一緒に効果音を付けたりするだけで、よりリアルで面白いものを実現することができます。
基本的にはスクリプトで実現できる音とは、効果音のことだと思ってください。
BGMのような長いサウンドを鳴らすことは容易ではありません。
というのも、SLにアップロード可能なサウンドは10秒以内に限られているためです。

今回は簡単な例として、以前作ったドアのスクリプトに、開閉の音を組み込んでみたいと思います。  続きを読む

Posted by Miz at 13:35Comments(23)初級スクリプト

2007年04月24日

ムービー作成

最近楽器屋稼業もそっちのけでムービー作成に夢中になっているのでありますが、興味のある方のために、SLでムービーを作成する方法について簡単に説明しておきたいと思います。  続きを読む

Posted by Miz at 17:33Comments(6)動画

2007年04月24日

HUDを作ろう(スクリプト初級第十六回)

prim間通信をもう少し練習するという意味で、今回はHUDを作ってみましょう。
HUDというのはヘッドアップディスプレイ (Head-Up Display)のことで、SLでは画面上に表示されるインターフェースのことを言います。
ミニマップなども広義の意味ではHUDになるのでしょうが、SLでは特にユーザーが独自に作ったインターフェースのことを指します。
日本人にとって馴染みのあるものは翻訳機などでしょうか。
チャットの自動英語翻訳を行ってくれるJ2Eは画面左中央に表示される半円型のHUDですね。

何のHUDを作ってもいいのですが、あんまり出回ってなくて、それでいて便利そうなものが良いですね・・・。
テレポート用HUDなどはどうでしょうか。
HUDのボタンにテレポート先を登録しておいて、ボタンを押すとマップが開き、すぐにテレポートができるようなHUDです。  続きを読む

Posted by Miz at 12:15Comments(44)初級スクリプト

2007年04月23日

鶏と赤ん坊

え~・・・。

SLで海外の方と交流しているという人も多いかと思いますが、なんといっても面白いのは文化の違いですよね。
日本では当たり前のようなことが、海外では当たり前でなかったり。
その逆に海外では当たり前のようなことでも、日本では珍しかったり。
ジョークのセンスなんかもずいぶんと違います。
特にアメリカンジョークの中には、まったくもって意味不明ものも・・・。

などと強引にSLから導入してみましたが、今回SLは一切関係ないですw
たまにはSLと無関係なことも書いてみようということで(^^;
  続きを読む

Posted by Miz at 18:15Comments(18)その他

2007年04月23日

prim間通信(スクリプト初級第十五回)

しばしばカツラなどに組み込まれている色変更のスクリプトを作ってみましょう。
単純に色を変えるだけのスクリプトであれば、ここまで読んできた方には簡単に出来ると思います。
ですが、今回は特にprim間の通信を行う方法使って、拡張性の高いスクリプトを考えてみたいと思います。

prim間通信とは、llMessageLinked()という関数を使い、リンクされているprim同士でメッセージをやり取りする方法です。
これを使うと、一つのprimを操作したときに、別のprimを操作することができるようになります。  続きを読む

Posted by Miz at 12:15Comments(16)初級スクリプト

2007年04月20日

ポーズボール(スクリプト初級第十四回)

引き続いてアニメーションのスクリプトです。
前回は単にタッチするとアニメーションするだけのスクリプトでしたが、これではいまひとつ実用性がありません。
アニメーションが最もよく利用されているのはポーズボールでしょう。

SLで遊んだ人なら誰もが一度は見たことがあると思います。
しばしば木陰とかベッドの上に置いてある、赤と青のボール。
あれですw
クラブのフロアや、バーのストゥールなんかにも置いてあるところがあります。

これらのボールは、アバターが座ったときに特定のアニメーションを実行するものです。  続きを読む

Posted by Miz at 16:24Comments(25)初級スクリプト

2007年04月19日

河童巻き

うわぁ、おいしそうな河童巻きだ~~ははは~~



いただきま~~す!

・・・って。



なんで私まで巻かれているんだぁ?

・・・・・。

ま、いっか~ははは~~  

Posted by Miz at 18:15Comments(6)出来事

2007年04月19日

アニメさせよう(スクリプト初級第十三回)

十三回もやってんのかって感じのスクリプト講座です(^^;
振り返ってみてみると、脱初級者までの道のりは、もうそれほど遠くはありませんね。
「ステート」「イベント」「処理」の三段構成を押さえ、最も多様性のあるイベントlistenも扱ったし、便利なダイアログも出てきたし。
パーミッションが少々モヤモヤ感がありますが、今回のアニメーションスクリプトでもパーミッションと格闘することになりますので、より理解が進むかと思います。

というわけで、今回は特にパーミッションに焦点をあてながら、アニメーションを扱うスクリプトについて見ていくことにしましょう。  続きを読む

Posted by Miz at 12:15Comments(20)初級スクリプト

2007年04月18日

ノートを使おう(初級スクリプト第十二回)

ベンダースクリプトの改良編です。
前回までで機能面は十分に満たすものを作りましたが、今回は使い勝手のよいものになるよう改造を施します。

改良点は商品データの管理の部分です。
前回までのスクリプトでは、商品データをリスト型変数に定義していましたが、この方法だと商品の追加や変更があったときにいちいちスクリプトを直さなければなりません。
そこで、商品データはSLのノートカードを使って管理するようにし、ノートカードを切り替えるだけで扱う商品を変えられるようなベンダーを考えます。

商品のデータに対して、そのデータを使ってアレコレ操作する仕組みを「ロジック」と言います。
ノートカードを使う方法は、言わば「データ」と「ロジック」を切り離して管理する手法になります。
これはシステム工学的に言っても基本的なところですね。  続きを読む

Posted by Miz at 12:15Comments(12)初級スクリプト

2007年04月17日

バァさん

魔過封村改め河童ランドですが、のんびりと開拓作業が進んでおります。

崖には巨大な滝が出現し、河童の生息する淵が出来ていました・・・。



かつてここで暮らしていた人々はどうなったのでしょうか?  続きを読む

Posted by Miz at 15:56Comments(0)土地

2007年04月17日

お金を扱う(初級スクリプト第十一回)

ベンダー作成の続きです。
簡単なようでいて、意外に面倒なのがベンダーです(^^;
やはりお金を扱うスクリプトですから、間違いのないような仕組みにしておかなければいけません・・・。

前回はタッチして商品の画像を切り替えるスクリプトを作りました。
今回はお金を受け取って商品を渡す部分に取り組みます。
そこまで出来ればベンダーとしては最低限のものにはなるでしょう。

  続きを読む

Posted by Miz at 12:15Comments(16)初級スクリプト

2007年04月16日

消滅!魔過封村

えー・・・。
公開していないのですが、私はMakapuという土地を持っています。
いろいろと経緯があって手に入れた土地ですが、
「妖怪の村を作ろう!」
ということで、いろいろと頭を悩ませつつ、建物を建てたりスクリプトを組んだりしておりました。

・・・が。

まことに遺憾ながら、このたび公開することなく、魔過封村は消滅と相成りましたw  続きを読む

Posted by Miz at 15:18Comments(0)土地

2007年04月16日

ベンダーを作ろう(初級スクリプト第十回)

SLでアイテムを販売するには、必ずしもスクリプトが必要になるわけではありません。
販売用のオブジェクト(ポスター、看板、箱など)を用意し、そのオブジェクトのコンテンツの中に売りたいアイテムを詰め、値段とコンテンツを販売する設定にすれば、ひとまず売ることは可能になります。
ですが、この方法はアイテム一つ(あるいは1セット)につき一つのオブジェクトが必要となり、商品が増えるに従ってprim数が増加していくという問題点があります。
また、販売用オブジェクトを並べるにはどうしてもスペースが必要になりますので、限られた店舗スペースでは、自ずと販売できるアイテムの数が限られてしまいます。

スクリプトを使ったベンダーは、そのような問題点を解決するために使われます。
よく見かけるものは、矢印ボタンを押すと商品の画像が切り替わり、欲しいものを見つけたらL$を支払い、アイテムが手に入るという仕組みのものです。
このようなベンダーでは、商品が増えたときにオブジェクトを増やさなくて済みます。

念のために言っておきますが、スクリプトによるベンダーのほうが優れているというわけではありません。
いちいち矢印をクリックして商品を探すのは、お客さんからすると面倒な作業です。
順番に見て行っても、欲しいアイテムが見つかるかどうかも確実ではないですし、途中で面倒になって見るのをやめてしまうことも考えられます。
どんな商品があるのか一目瞭然にするには、別途工夫が必要になるでしょう。

とは言うものの、この記事はスクリプトの勉強ですので、商売のやり方について書くのは少々的外れですね(^^;
とにかくベンダースクリプトを作ってみて、使えるか使えないかは別問題としておきましょう。  続きを読む

Posted by Miz at 12:15Comments(6)初級スクリプト

2007年04月13日

募集!エキストラ

SLに生息する幻の珍獣・河童のMococoさんが、いよいよムービーの作成を本格的に開始するようです。

エキストラさんの募集が出てましたので紹介しておきます。

4/21(土)夜9時~10時40分の100分間
エキストラとしてへなちょこMovieに出てくださる方を
募集します。
さくっと行けば1時間もかからず終わるかもしれません。

仕事内容
・お遊びで作るムービーの出演。
・役どころ、河童。
・河童以外の役もお願いすることがあります。

条件
・集合時間を守れる方。
・時間内、指示に従ってくださる方。
・SLの基本的な操作が出来る方。
・撮影中、一時的にグループに属してくれる方。
・撮影に支障が出ない程度のマシンスペックのある方。
・良識とユーモアがある方。
・怖くない方w

報酬
・100分間-100L$
100分以下での終了の場合もあり、残業なし。
100分以下で終了しても100L$。
撮影終了後支給。
Campの報酬よりはちょっと割りがいいと思います。

募集人数
・10人

連絡方法
・in worldにてMococo FlyerまでIM下さい。


元記事>報酬100L$  続きを読む

Posted by Miz at 18:15Comments(0)動画

2007年04月13日

看板を作ろう(初級スクリプト第九回)

第六回~第八回は初級スクリプトの最初の山場でした。
へヴィな内容が続きましたので、今回はちょっと息抜き的に、しかしながら実用的なスクリプトを作ってみたいと思います。

SLで店をやるという人は多いでしょう。
そして商品の販売用や、宣伝のために、看板を作りたいという人もいるかと思います。
綺麗なテクスチャさえ用意すれば、それなりの看板を作ることができますが、この記事は一応スクリプトの勉強ですのでw、スクリプトを使った動きのある看板に挑戦してみましょう。

照明スクリプトをクリアした人にとっては、何ら難しいところは無いスクリプトばかりです。
ちょっとしたスクリプトだけで、いろいろな看板が作れます。
小粒なスクリプトをいくつか書いてみようと思います。  続きを読む

Posted by Miz at 12:15Comments(9)初級スクリプト

2007年04月12日

ダイアログを使おう(初級スクリプト第八回)

照明スクリプトだけで三回にも及んでしまいました(^^;
ですが、照明スクリプト一回目の「ユーザー関数」、二回目の「listen」、そして今回の「ダイアログ」はlslの中でも使用頻度の高いものばかりですので、ぜひとも使い方をマスターしていただきたい部分です。
この回から初めて見たという方は、第六回の「照明を作ろう」から戻ってお読みいただくのが良いかと思います。
照明のスクリプト作成について順を追って解説しております。

さすがに照明スクリプトがこれだけ続くと、いいかげん目がチカチカして来そうですw
今回は頑張って完成まで行き着きたいと思います。  続きを読む

Posted by Miz at 12:15Comments(5)初級スクリプト

2007年04月12日

パンク龍

本業の楽器屋でやるべきことがたくさんあり、一つ一つ片付けようと思うのだが、遅々として進んでいない。

トランペットのケースにオリジナルなテクスチャを貼りたいというお客さんに対しては、申し訳ないがこちらで貼り直す手間が取れなかったため、Mod可能なケースを送付した。
本体じゃないので、まあいいだろう・・・。



  続きを読む

Posted by Miz at 10:18Comments(0)出来事

2007年04月11日

悪いヤツ

Mococoが以前より作る作ると言っていたムービーがある。
詳しいことはわからないが、ダサいヒーローとカッコいい悪者が戦うムービーらしい。

ダサいヒーローのほうはずいぶん前にYasichiさんが作り上げていたが、
「あなたは悪者をやりなさい」
という命令が私に下された。

そこでさっそくアバター作成から取り掛かる。
「ボバ・フェット的なカッコよさ」
との注文があったので、それならやはりサイバーっぽいアーマーだろうなぁと方向性を定め、悪そうな雰囲気が出るよう装飾していった。  続きを読む

Posted by Miz at 18:30Comments(0)出来事