2010年7月6日火曜日

[LSL] Link 系ファンクション

ひさしぶりに、Linden Script ネタです。
Link に関連するファンクションが増えてますね。

たとえば、llSetLinkPrimitiveParamsFast などはプリムのリンクを多用している人にとっては待ちに待った機能ですね。メインのスクリプトから子プリムたちの操作に遅延が発生しないからです。遅延以外は llSetLinkPrimitiveParams とまったく同じです。

llSetLinkTextureAnim も最近追加された Link 系のファンクションですね。これも子プリムの面に対して Texture Animation (アニメーションGIFみたいな動く画像)を貼り付けることができるようになりました。

おもしろいのは llLinkParticleSystem です。
パーティクルってなかなかむずかしいのですが、wiki にはとても詳しくその仕様について日本語ページに書かれています。(関係者・翻訳者のみなさん、本当におつかれさま&ありがとうございます)

ポイントは、パーティクルのエミッター(発生源とでもいいましょうか)はプリム1個に対して1つしか作ることができない、ということ。パーティクルを発生させるスクリプトを複数、1つのプリムにいれても、挙動がおかしくなるのはそのせいです。

もちろん、llParticleSystem によってパーティクルを発生させるスクリプトをそれぞれのプリムにいれて、それらを Link し、llMessageLinked で各プリムにメッセージを送って操作するやり方も可能でしたが、llLinkParticleSystem を使った複数のスクリプトをルートのプリムにいれて、llMessageLinked であったり、touch_start, listen などのイベントを各スクリプトが拾うことで、一斉・同時に違うパーティクルを出すことが可能になりました。ここのプリムにスクリプトが分散されていない分、スクリプトの修正やメンテナンスが楽になっていると思います。

パーティクルの色や形を変えたものを同時に出そうとすると、この llLinkParticleSystem はとても使い勝手がよいわけです。

kira

llLinkParticleSystem 利用の注意点としては、もし、パーティクルに画像を指定した場合は、発生源である(子)プリムにその画像が存在していないと、デフォルトのパーティクルが使われるようです。もしかすると Key 指定だと存在しなくても OK かもしれませんが、string による画像名指定だとだめでした。

あと、これら Link 系のスクリプトを使う場合は、ルートプリムはどれか、子プリムはいったいいくつ Link されているのか、といったことを常に意識しなくてはなりません。

llGetNumberOfPrims その時点で Link されているプリムの数を取得します
llGetLinkNumber 自分の Link 番号を取得します
llGetLinkKey Link 番号を指定して Key を取得します
llGetLinkPrimitiveParams Link 番号を指定してプリムの情報を取得します
llSetLinkPrimitiveParamsFast Link 番号を指定して、リンクオブジェクトの設定を変えます

llGetLinkNumber は子プリム内でしか使えませんが、ルートのメインスクリプトと子プリムのスクリプトなどを llMessageLinked で複合させて使うことで、今いくつ Link されていて、Link 番号の 2 は何で、3は、、、とチェックすることができます。
スクリプトによる Link  番号決め打ちでもいいのですが、その際は Link させる順番に細心の注意を払うことになります。特に HUD などを作るときは Link させる順番に気を付けるか、スクリプトにより Link 番号とプリムのマッチングを行わせる、といった方法がありますね。また、プリムに座ったアバターを操作するときなども上述の関数を多用します。

2010年7月2日金曜日

YOUR WORLD, YOUR IMAGINATION, YOUR LIFE

お友達の日記に紹介されていた印象的な vimeo のビデオです。

Breathe 2 "it's a wonderful Second Life" from samlowry on Vimeo.

これ、公式にしてもいいんじゃない?(笑
M Linden のアナウンスでは、よりソーシャルな機能をいれていく、としてるけど、facebook や mixi と同じ方向を目指しても違うような気がしていたんですが、このビデオを見て、はっ、と気づきました。そうそう、YOUR WORLD, YOUR IMAGINATION, YOUR LIFE って、Secondlife はじめた最初のころよく見ていたフレーズだったことを思い出しました。

メインランドの Sandbox ではじめてべニア板のプリムを Rez したときの感覚、他の人の作品、SIM の世界観をみて感動したこと、こんなの作ってみたい!と思ったことなど、、、。

そして何より、このビデオで紹介されている SIM のクリエーターに日本の人が多いこと。

バタ臭くて日本じゃはやらない、と散々揶揄されましたが、日本人のクリエーターはその部分を自らのイマジネーションと作品をつくる技術でカバーしてきましたね。

創業者のフィリップが CEO として Linden に戻りました。原点回帰的ながらも、さらなる進化があれば、まだまだ楽しめると思ったのでした。