ソラマメブログ

  
Posted by at

2007年10月31日

LSLコンベンションその9

TERRA Zehetbauerです。
SSとノートの整理が追いつきません><

さて今回は



鳥さんです。チャットではなすといい加減な返事をしますw
ノートカードはこちら。

「名前」
人工無脳ドリ

「機能及び操作方法」
人間と疑似対話(chat)をする鳥です。
タッチして話しかけて下さい。
60秒間話しかけないと停止します。

「主な関数,イベント,文」
--------- 頭 -------------
イベント touch_start → state active;
タッチされたことによってアクテティブになります。
関数 llSetTimerEvent → イベント timer
60秒はなしかれらないと停止するのに使用しています。
関数 llListen → イベント listen
チャットを聞き取ります。
関数 llGetAgentSize
本来は、アバターのサイズを調べる関数ですが、
喋った相手が Object かアバターかを判別するために使っています。
関数 llSensor → イベント sensor
アバターが近くにいるか調べるのに使用しています。
関数 llHTTPRequest → イベント http_response
サーバーに質問文を投げて応答文を得るのに使用しています。
関数 llSay
トリが喋るのに使用しています
関数 llMessageLinked
トリが喋るのに合わせて、体や、嘴、羽を動かすために
各プリムにメッセージを送るのに使用しています。
--------- 胴体 -------------
イベント link_message
頭から送られたイベントを受信します。
関数 llGetPos, llAtan2, llEuler2Rot
アバターの位置から向く方向を計算するのに使用しています。
関数 llSetRot
トリを回転させるのに使用しています。
関数 llSetTimerEvent, llFrand
体を動かすタイミングを図るために使用しています。
乱数性をもたせるため llFrand を使用しています。
関数 llSetPos
トリをジャンプさせるために使用しています。
関数 llMessageLinked
ジャンプしたときに羽に動けというメッセージを送るのに使用しています。
--------- 嘴 -------------
イベント link_message
頭から送られたイベントを受信します。
関数 llSetLocalRot
嘴を開閉するのに使用しています。
--------- 羽 -------------
イベント link_message
同体から送られたイベントを受信します。
関数 llSetLocalRot
羽を動かすのに使用しています。

llGetAgentSizeってしらないです。。
う~ん、まだまだ勉強が足りないです^^;

さてもうひとつUPしときましょう。



まあ、みてのとおりですね。

ノートです。

「オブジェクト名前」
 感想受付箱

「機能及び操作方法を教えてください」
 操作方法:箱をクリックしてチャットする。

 機能:チャットした内容がWebの掲示板に書かれます

「このオブジェクトの主な関数を教えてください」
llHTTPRequest,llSetTimerEvent,llListen

外部WEBへの連携ですね。
この機能はlslの枠を超えたことがデキルので大事らしいですね。
でも詳しくはベンキョーしてから書きます^^;  

Posted by KIREINA RESORT at 21:30Comments(0)スクリプト

2007年10月31日

LSLコンベンションその8

TERRA Zehetbauerです。
そろそろこのシリーズも終わらせて放浪したくなってきましたw

さて今回は



吹き出しです。チャットの文字が吹き出しにかかれます、ってSSに写ってない><
そろそろプリントスクリーンの連写できるフリーソフトがほしいな。だれかいいの教えてください!

さてこの吹き出し、乗れます。



で、ノートカードです。

■「オブジェクト名前」
フキダシ屋

■「機能及び操作方法を教えてください」
・オブジェクトの周囲一定範囲内でチャットすると、チャット内容の入ったフキダシを発生させます。
・出てきたフキダシをタッチすると上に座って浮き上がります。
・またtake copyすることで好きなセリフを保存することも出来ます。

■「このオブジェクトの主な関数を教えてください」

◇フキダシ屋(マスター):
・llSensorRepeatでアバターが範囲内に居るときだけllListenを有効にし、0チャンネル(オープンチャンネル)でアバターのチャットを拾います。
・チャット入力があったらllRezAtRootでフキダシを出してます。

◇フキダシ(子):
・フキダシの動きはllSetBuoyancyを使って調整してます。
・フキダシにセリフを表示するためマスターからメッセージを渡す必要があるのですが、フキダシごとにランダムなListenチャンネルを設け、Rezされたあとに1度だけマスターと通信してます。

llSetBuoyancyというのは初めて聞きました。メモメモ。


さて次は



多分ノートはこれ…

●オブジェクト名前
  MindVoice

●機能及び操作方法を教えてください

  装着(attach)して使います。
  クリックで右上にメニューがでます。
  
  心の声:通常の発言もしくは1チャンネル(「/1 」に続く発言)
      の30文字を表示します。
  定型文:あらかじめ用意した発言をセットします。
  履歴 :過去12回までの発言を選べます。
  文字色:文字の色を選択するダイアログを出します。
  背景色:ふきだしの色を選択するダイアログを出します。
  消す :表示されている文字を消します。

●このオブジェクトの主な関数を教えてください
  自分の発言を受け取る listen
  受け取った文字を表示部分へ流す llMessageLinked
  フォントマップから指定部分を表示する llOffsetTexture
  が主な流れと関数です。
  特に難しいことをしてませんが、日本語処理が面倒くさいはず。
  Macでは簡単に出来てもWin/LinuxだとUnicodeの処理が大変です。

まちがってたらゴメンナサイ><

ではまた
  

Posted by KIREINA RESORT at 11:30Comments(0)スクリプト

2007年10月30日

LSLコンベンションその7

TERRA Zehetbauerです。

どんどん書かないとネタがたまり出していますw
さて今回は



のブースです。では、いざ中へ。



黒板です。ノートカードは…


「オブジェクト名前」
Kanji Chalkboard(黒板)

「機能及び操作方法を教えてください」
チャットでしゃべって書き込める黒板です。
クリックしてから30秒以内にチャットで発言してください。第2水準までの漢字、各種記号、キリル文字、ギリシャ文字を表示できます。

黒板側面の赤ボタンは書き込みできる人やグループを設定します。
黒板の中にノートカードやLMを入れておくとタッチした人に渡します。
配る対象は黄色いボタンで設定します。

「このオブジェクトの主な関数を教えてください」
あらかじめ漢字を詰め込んだ512x512のテクスチャを数枚用意しておき、llSetPrimitiveParamsでテクスチャの倍率と位置をずらして漢字を表示しています。
テクスチャをずらす値の計算は、変数に入れた文字列と入力した文字をllSubStringIndexなどで照合して求めています。

「作った人」
Keimar Kuhn
PCの不調で日本語を喋るとPCが落ちて困っているFurry。
常にBusyになってますが忙しいわけではありません。
近くにいる同名のAltが代わりに喋ります。
今回の黒板は、こちらの自宅付近にて販売しています。
興味をもたれた方はどうぞ。



となっています。ノートに書いてませんが日本語変換するための機能は外部連携なのでしょうか?
気になります。



さて次です。



電光掲示板のようですね。ノートカードはこんなです。


「オブジェクト名前」
日本語対応メッセージボード Japanese-MessageBoard v05

「機能及び操作方法を教えてください」
機能:
指定した文字(日本語を含む)を表示できます。
操作方法:
1.スクリプト動作が可能な土地に置いてください。
2.タッチして表示されるメニューで「MESSAGE」を選んでください。
3.ダイヤログボックスで指示されたチャンネルで発言してください。
  発言内容がメッセージボードに表示されます。
  発言例:「/7 こんにちは」
タッチした際に表示されるメニューについてはここでは省略します(^^;)

「このオブジェクトの主な関数を教えてください」
主な関数:
listenイベント、link_messageイベント、llOffsetTexture関数、llScaleTexture関数
工夫した点:
・スクリプトの流れは以下のとおり。
 1.元の文字列取得
 2.URLエスケープ
 3.1文字ずつ区切る
 4.UTF-8 -> UTF-16化
 5.1文字ずつ子供プリムに送信
 6.子供プリムで、指定した文字を表示
・文字を表示させる部分にPrismを使ってプリム数を削減。
・リセット時のデフォルト文字列は、途中に空白に見えるひらがな・カタカナを入れて
 ロード時間をかせぐ。
・子供プリムはIDが違うだけで動作が同じなので、ID取得部分だけ別スクリプト化。
・フォントは「さざなみゴシック」+「ふい字」(一部の記号のみ)
・その他、細かい所(^^)


展示品では一部のメニューが機能しないようにしてあります。
全機能が動くデモは私の家においてありますので、よければ遊びに来てください(^_^)


日本語の表示ってめんどうですね。

でわまた~

  

Posted by KIREINA RESORT at 11:30Comments(0)スクリプト

2007年10月30日

LSLコンベンションその5

TERRA Zehetbauerです。

今回はおもしろいアイテムです。



これです。装着するとついてきます。




ノートカードはこのようになっていました。


「オブジェクト名前」
flying Otama (trial)
(flying Otama trial rezzer)


「機能及び操作方法を教えてください」
おたまじゃくしのようなアバター「おたま」型のペット、の体験版です。
浮かんでるのをタッチすると、あなたをマスターと認識して3分間従います。※居ない場合は場合は30秒ほど待ってみてください。

通常状態では、マスターを追いかけて行きます(左肩あたり)。

マスターが乗ると、操縦して飛行する事ができます。2人乗り可能。
 前後左右:移動 PageUp:上昇 PageDown:下降

タッチするとダイアログから命令できます。
Follow me:呼び戻します。マスターが乗って追尾中の場合は飛行モードになります。
Follow:近くの人から選択して追尾します(背中あたり)。
 乗って追尾も可能。相手がタッチすると返品されます。
Stroll:付近をうろうろさせます。
Emergency:乗ってる人を緊急脱出させます。
Explode:爆破処理します。

※補足:
・オブジェ侵入やスクリプト禁止の場所には入れず、動かなくなります。マスターが操縦してる場合はその限りではありません。
・動かなくなった時は「Follow me」などで回復する事があります。
・体験版は一部の機能がカットされています。本来は直接地面にrezします。今のところ、製品版の販売はされていません。


「このオブジェクトの主な関数を教えてください」
前も同じようなペット物を作っていましたが、最近1から作り直しました。
旧版は llSensorRepeat を使用してましたが、今回追尾関係は llGetObjectDetails を利用しています。そのため対象がテレポしたりして居なくなった場合、1分間ほど暴れます。96m以上瞬間移動で吹っ切れないのが利点でもあり、欠点でもあったり(迷惑行為目的とか)。
移動は llMoveToTarget、llRotLookAt などです。
マスターが乗っている場合は llSetVehicleXXX でビークルに切り替わっています。※旧版は移動椅子。
ペット時の侵入可能チェックもいろいろ試しましたが、完璧な移動可能経路判定は無理っぽい上に無駄なので、簡易チェック程度となっています。
体験版化する際は、本来はオーナーなのかを判定している部分を置き換える事でマスター変更可能な形態としてます。

Tomoneko Mayo 2007.10.20


ということで乗ってみましたw



そして爆破!





すごいですね。でもひとつひとつの動作はひとつの関数だったりするわけで
単純な命令の積み重ねなのですね。そのつみ重ねるのがむづかしいのですが^^;

  

Posted by KIREINA RESORT at 08:30Comments(0)スクリプト

2007年10月29日

LSLコンベンションその6

TERRA Zehetbauerです。
完全シリーズ化しています^^;

今回はまずは音関係です。




ボタンを選ぶと音が変わります。
ノートカードです。

「オブジェクト名前」
簡易リズムボックス

「機能及び操作方法を教えてください」
このオブジェクトは下半分のボタンが1小節分の譜面になっています。
下半分のボタンをタッチすることでそこに音符を配置することができ、上の"Play/Stop"ボタンを
タッチすることで下に配置した音符の通りにドラムを鳴らすことができます。

「このオブジェクトの主な関数を教えてください」
llList2String
llList2Float
llSetLinkPrimitiveParams
llDetectedLinkNumber
この4つが主要です。
譜面のデータを管理するためにList形式の変数を使っているので、List変数を取り扱う関数が頻繁に使われます。
また、スクリプトは2つのプリムにだけ入れているので、スクリプトを入れていないボタンを遠隔操作する関数も重要になってくるでしょう。


Listからデータを取り出すのが複雑になってくるとわけわからなくなりますね。
そのあたりを整理するのがポイントなのでしょうか?いやぁスクリプトみたいです。



さて次はこちら。



動きはシンプルに足が前後に動きます。
ノートカードです。


■名前
 DEKU
■機能・操作方法
 ボタンをタッチすると動きます
 RotationとPositionを連続して変更することで
 立体アニメーション的に動きます
 (SIMなどの環境の状態によってはバラバラになります)
■特徴
 Rotation/Positionの設定関数
 速度を稼ぐのと、処理を簡略化するために
 特に計算はしていません。
 パラパラマンガみたいな仕組です


立体ぱらぱら漫画ですねw
こういう基本形にどんどん動作を加えていくのですね。

でわはた次回。  

Posted by KIREINA RESORT at 19:30Comments(0)スクリプト

2007年10月29日

LSLコンベンションその4

TERRA Zehetbauerです。

コンベンションが終わったというのにこのシリーズの終わりは一体いつ?^^;

さて今回は…



風船です。
装着するとくっついてきます。
タッチすると色が変わります。
ノートをみましょう。

「オブジェクト名前」
Balloon Rezzer

「機能及び操作方法を教えてください」
Physicalな風船をrezします。rezされた風船からはパーティクルのヒモ
が現れ、ハンドル型のrezzerと接続されます。このハンドルをwearして
いる間は風船は持ち主の動きを追ってついてきます。なお、風船に衝撃
を加えると、破裂します。ですがすぐにまた、次の風船がrezされます。

「このオブジェクトの主な関数を教えてください」
Rezzer本体 rezした風船の存否を確認するのにllKey2Name
破裂音をpreloadするためにllPreloadSound 島

風船    ヒモを張るのにllParticleSystem
動きを作るのにllSetBuoyancy,llSensorRepeart
llDetectedPos,llDetectedRot,llRotLookAt 等

腕にwearして、腕の動きをトレースする風船とは違う風船を作ろうと思って
製作しました。


う~ん、ひもにパーティクル!普通思いつかないような^^;
llSetBuoyancyって関数もはじめて聞きました。

スクリプトって文法と関数を覚えたらあとはとにかくアイディアなんですね!
自由自在にスクリプトを扱えたらたのしいだろうな~。  

Posted by KIREINA RESORT at 11:30Comments(0)スクリプト

2007年10月26日

LSLコンベンションその3

TERRA Zehetbauerです。

なんかこのシリーズ際限なく続きそう。
終わるのかしら?というか全部みることが出来るのだろうか^^;



さて今回はこれ。
SSだとわかりづらいですが蛍のような感じです。
で、ノートをみると…

「オブジェクト名前」
Firefly Rezzer

「機能及び操作方法を教えてください」
Physical Temporary Phantom なobjectの蛍をrezします。Temporaryなobjectは
rezされてから約1分で消えるので、時間当たりにrezする蛍の個数を変えて、
同時に存在する蛍の個数をコントロールします。最大で1分間に256個の
蛍をrezし、同時に256個の蛍が飛び交います。1分間にrezする蛍の個数と
rezする半径は本体をtouchして出てくるダイアログで調節ができます。
さらにrezのon、off、日没時だけrez、の3通りのモードもダイアログから
選択できます。

「このオブジェクトの主な関数を教えてください」
Rezzer本体 一定間隔でrezを行うのにllSetTimerEvent,llRezObject
一定範囲内にランダムにrezするのにllFrand,llSqrt,llPow
パラメータの操作にllDialog,llListen,llGetSubString,llListFindList 等

蛍     動力源としてllSetForce,スピードの調節にllApplyImpulse,llGetVel
上下動を行うのにllSetHoverHeight,一定範囲内を動き回るために
llTarget,llTargetRemove 等

物理objectのコントロールという課題に挑戦するために、作成しました。


なんと、太陽の調節に合わせることが出来るのですね。すごい!
ランダムにrezするのにllFrand,llSqrt,llPowなどの関数があるとはもちろん知りません!
なんせlslwikiは英語ですから!
だれか早く完全日本語版作って下さい!(切実。。。)
  

Posted by KIREINA RESORT at 11:30Comments(0)スクリプト

2007年10月25日

LSLコンベンションその2

TERRA Zehetbauerです。

前回の続きです。



AVに装着する羽です。例によってこのノートカードです。

「オブジェクト名前」
Nine Soul Wings (exhibition)

「機能及び操作方法を教えてください」
◆機能
1.飛んだら羽が出る、降りたら消えるようにできます。
2.常に出たまま、または消えたままにもできます。
3.羽の色が9色から選べます。
  パーティクルの色も選んだ色に応じて変わります。
4.羽を通常と、発光状態とを切り替えられます。
◆操作方法
wearした(身に付けた)状態で背中に当たる部分、
展示では半透明の部分に触れるとダイアログが出て、
機能1~4それぞれの選択ができます。

「このオブジェクトの主な関数を教えてください」
llParticleSystem(光の演出)
llGetAgentInfo(飛行状態の感知)
llMessageLinked(羽を出したり消したりの制御)
llListen(ダイアログの表示)

重要なのは、llGetAgentInfoとllMessageLinkedです。
llGetAgentInfoではアバターの様々な状態
(飛行中か、歩行中か、AWAY中かなど)が得られます。
llMessageLinkedはリンクしているプリムに対して
メッセージが送れ、link_messageで受け取れます。
メッセージAではBという動き、メッセージCではDというように
1つのオブジェクトの中に別の動きをつけられます。


llGetAgentInfoという関数ははじめて聞きました。収穫です^^
llListenとllMessageLinkedはただいまエレベーターの製作で駆使しています。
でもいまひとつ使いこなせずにいます><。


さて次のブースに行きましょう。



タッチしたらなんと無重力状態!
これはびっくりしました。(まだまだスクリプト初心者なもので^^;)
さてノートカードを見ると…


「オブジェクト名前」
* Spacewalker(無重力ボール)

「機能及び操作方法を教えてください」
* まずボール発生器をrezします。それにタッチすると無重力ボールがrezされますのでそのボールに座ります。座ると浮き上がり何かにぶつかるまで上昇を続け、衝突後は空中を漂い続けます。座っている間は手持ちのアニメを使いながら(例えばダンス)漂うこともできます。

「このオブジェクトの主な関数を教えてください」
* llForceMouselook, llSetStatus, llSetBuoyancy, llApplyImpulse, llStartAnimation, llStopAnimation

llSetStatusで物理属性を付けて、llSetBuoyancyで重力の影響を消して、座ったらllApplyImpulseで打ち上げるというのがほぼ全てです。llForceMouselookで強制的にマウスルックに切り替えて3D酔いを誘発するようにしてます。


う~む、これは中級者レベルなのか、上級者レベルなのか。。。
とりあえず驚きでした。こんなのつくれたらいいなぁ。  

Posted by KIREINA RESORT at 11:30Comments(0)スクリプト

2007年10月24日

不思議な球体

TERRA Zehetbauerです。

以前ご紹介したパーティクルラボのあるTeal SIMの洞窟でこんな球体を見つけました。



パーティクルのかたまりですね。なんとも凝っていてきれいです。

パーティクルといえば先日暖炉の火を頼まれてただいまきれいな火を研究中です。







うしろでなに踊ってるんだ!というつっこみには明日にでもお答えします(^^;

これらはパーティクルを使った火ですね。
一枚目の火に関しては火の粉をパーティクルで、炎を板状のぷりむにテクスをはってアニメーションしてますね。
それはそれできれいですが炎のテクスの連射ショットを用意しないとできません。
どうやって入手するかな。

さて、明日からいよいよコンテンツマーケット開催です。
お時間のある方、RLで会いたい!という方(いないか^^;)
ぜひお越しくださいませ。
  

Posted by KIREINA RESORT at 19:30Comments(0)スクリプト

2007年10月24日

LSL コンベンションその1

TERRA Zehetbauerです。

LSLコンベンションを徘徊しています。
みるところがおおくて大変です。

今回はホビーのブースを見てきました。



…わかりやすい看板です(^^;



足元に板があります。解説のノートカードによると、

入室(店にはいる等)、退室(店から出る等)でメッセージが切り替わるマットです。
 このマットの場合、入るときは
「アバター名. Welcome to LSL convention Japan -2007-」というメッセージが出ます。
 出るときは「Thank you.」というメッセージが出ます。

 セーブ機能がついています。
 オブジェクト編集画面でdescriptionの窓に文字列を記入します。
 その後マットをタッチまたは右クリックででるパイメニューでsaveを選択する事によって、
 メッセージの「Welcome to~」以下の部分を変更する事が出来ます。

 何も記入しなかった場合は自動的に「our shop.」という文字列が設定され
「アバター名. Welcome to our shop.」というメッセージになります。

「このオブジェクトの主な関数を教えてください」

 セーブとロードに使用llSetObjectDesc、llGetObjectDesc

 メッセージの判別に使用llDetectedVel、llRot2Fwd、llGetRot


非常に親切で、勉強になります。
でも、この関数ははじめて聞いたもので調べないとわかりません><





中に入ると目の前にピアノが。。。
早速弾いてみることに(^^)
このノートカードは次のようなものです。

Piano

「機能及び操作方法を教えてください」

右クリック=> Playを選んで座るとメニューがダイアログで表示されます。
メニューからPLAYを選ぶと曲のリストがダイアログで表示されます。
曲を選ぶと数秒後に演奏が始まります。
スピーカーをonにするとスピーカーからも音が出ます。

「このオブジェクトの主な関数を教えてください」

llTriggerSound,llPreloadSound
llSetTimerEvent
llStartAnimation,llStopAnimation,
llRequestPermissions
llListen,llListenControl,llListenRemove,
llWhisper,llDialog
llParticleSystem




**llPreloadSoundはサウンドファイルを事前に読み込む関数です。

**llTriggerSoundはllPlaySoundと違って再生が終わる前に連続で再生することが出来ます。
llSetSoundQueueing,llStopSoundは無効となります。



サウンド系の関数の王道の関数llTriggerSoundを使ってます。
実際の実行状態を確認できるのでわかりやすいですね。


この調子で行くとこのシリーズは相当続きそうです^^;
でわまた次回  

Posted by KIREINA RESORT at 11:30Comments(0)スクリプト

2007年10月23日

超高層エレベーター

TERRA Zehetbauerです。

SOLAの島でエレベータに苦戦してますが、そこにきてなんと!



なんですか~@@
この超高層ビル!

…どうしよう。。。

Listen使って呼びたくてもシャウトしたって100mじゃん。
これ200m以上あるし><。

乗り変え方式にするかな~。
それともTPつかっちゃうかな~SITTARGETで。
でもな~せっかくMOVETOTARGETでどうにかしようとしてるのにくやしいな。
とちゅうでバトンタッチさせるアイディア考えるかな??

くそ~、負けるもんか><
  

Posted by KIREINA RESORT at 19:30Comments(0)スクリプト

2007年10月22日

LSL convention Japan2007

TERRA Zehetbauerです。

20日よりLSL convention Japan2007が始まりました。
で、早速いってみました。



いってみたら開会式になぜか参加してしまいました。



いろいろなスクリプトが展示されていたり、交流会があるそうです。
ということでぜひ勉強にと思いいったのですが、いろいろあってとても全部は見れそうにありません。
1週間続くそうなのでちょっとづつみていこうと思います。


さて、この日は交流会があるとのことで参加してみました。



こちらでは乗り物系のスクリプトの話題で盛り上がっていました。
正直レベルの高いスクリプターの方ばかりで聞く一方でしたが、いろいろと勉強にはなりました。
乗り物系では30プリムのかべがあるそうでそんなの本にも載ってないネタでした。


さて、もうひとつ初心者向けの交流会があったので参加したのですが…





なんと!あのマカプのMizさんが司会を務めていらっしゃいました!
ここぞとばかり話題を持ちかけて(EVネタですが)いろいろと皆さんからお話を伺うことができました。
参加してとてもよかったです。


ステートをむやみに使わずに構成する話もあり、なるほどと思う次第でした。
特にLionasさんからのアドバイスはとても参考になりました。

http://lcs.slmame.com/e53228.html

今週は毎日コンベンションに顔を出さなくてはw


  

Posted by KIREINA RESORT at 11:30Comments(0)スクリプト