2015年07月01日
テクスチェンジのHUDについて
スクリプトの基本的な構造は理解した!というレベルではありますが、ヘアオブジェクトのテクスチェンジHUDを作りたいと思っております。
現段階では
HUDのボタン(例えば茶髪切り替え用)を押したとき、ヘアオブジェクトの子プリムすべて(親プリムには常にショップロゴが貼ってある状態)を1つの茶髪用のテクスに替えることができました。
次のステップとして、
同じくボタンを押したとき、子プリムの中のでも"このプリムにはAのテクス"、"この部分のプリムにはBのテクス"というように
複数のテクスをそれぞれ対応するプリムへと結びつけたいですがなかなか上手くいきません。
HUD側でチャンネルの設定と、llsayで数パターンのテクスをUUIDで送信してます。
ヘアオブジェクト側でチャンネルを合わせてllListenで受信してオーナーかの確認をするところまではできているのですが、
そのあとがどうもおかしいようで「Syntax error」となってしまいます。
自分の中で考えているのはテクスAを貼りたいプリム名をprim1,テクスBを貼りたいプリム名をprim2にして
演算子の判定を使ってそれぞれのプリムのテクスを変更できるのでは?と思ったのですが....(以下詳細)
integer channel=◯◯◯◯◯◯◯;
default
{
state_entry()
{
llListen(channel,"",NULL_KEY,"");
}
listen(integer channel, string name, key id, string msg)
{
if (llGetOwner() == llGetOwnerKey(id))
{
if(llGetLinkName(i) == "prim1") && (msg == "テクスAのUUID"){llSetTexture(llGetSubString(msg,0,-1),ALL_SIDES);}
else if(llGetLinkName(i)=="prim2") && (msg == "テクスBのUUID"){llSetTexture(llGetSubString(msg,0,-1),ALL_SIDES);}
}
}
}
ちなみにこの形でいくと、替えたいヘアカラーのボタンを増やしていくときにelse if文を書き足すことになってしまい数十種類のカラーセットの場合など限界があると思うのですが、もっといい方法があるのでしょうか?
その際テクスはインベントリに入れるのではなくUUID型で使用したいのと、ヘアオブジェクト側は親プリムのみにスクリプトを入れるようにしたいです。
どなたか教えていただけるとありがたいです。
よろしくお願いします><
現段階では
HUDのボタン(例えば茶髪切り替え用)を押したとき、ヘアオブジェクトの子プリムすべて(親プリムには常にショップロゴが貼ってある状態)を1つの茶髪用のテクスに替えることができました。
次のステップとして、
同じくボタンを押したとき、子プリムの中のでも"このプリムにはAのテクス"、"この部分のプリムにはBのテクス"というように
複数のテクスをそれぞれ対応するプリムへと結びつけたいですがなかなか上手くいきません。
HUD側でチャンネルの設定と、llsayで数パターンのテクスをUUIDで送信してます。
ヘアオブジェクト側でチャンネルを合わせてllListenで受信してオーナーかの確認をするところまではできているのですが、
そのあとがどうもおかしいようで「Syntax error」となってしまいます。
自分の中で考えているのはテクスAを貼りたいプリム名をprim1,テクスBを貼りたいプリム名をprim2にして
演算子の判定を使ってそれぞれのプリムのテクスを変更できるのでは?と思ったのですが....(以下詳細)
integer channel=◯◯◯◯◯◯◯;
default
{
state_entry()
{
llListen(channel,"",NULL_KEY,"");
}
listen(integer channel, string name, key id, string msg)
{
if (llGetOwner() == llGetOwnerKey(id))
{
if(llGetLinkName(i) == "prim1") && (msg == "テクスAのUUID"){llSetTexture(llGetSubString(msg,0,-1),ALL_SIDES);}
else if(llGetLinkName(i)=="prim2") && (msg == "テクスBのUUID"){llSetTexture(llGetSubString(msg,0,-1),ALL_SIDES);}
}
}
}
ちなみにこの形でいくと、替えたいヘアカラーのボタンを増やしていくときにelse if文を書き足すことになってしまい数十種類のカラーセットの場合など限界があると思うのですが、もっといい方法があるのでしょうか?
その際テクスはインベントリに入れるのではなくUUID型で使用したいのと、ヘアオブジェクト側は親プリムのみにスクリプトを入れるようにしたいです。
どなたか教えていただけるとありがたいです。
よろしくお願いします><
2014年11月29日
モール用のプリムカウンターを探しています
モール用に設置していたプリムカウンターが、動かなくなり、
販売していたお店も無くなっているため、困っています。
こちらのお店のプリムカウンターでした。
http://gokurakurei.slmame.com/e1065584.html
いろいろと探してみましたが、今まで使っていたようなものを
見つけられません。
モールやひろい区画でのプリム数を、設置している方に
お伝えできるようなプリムカウンターをご存じではないでしょうか。
今まで使っていたものは次の①~⑤ような仕様でした。
①モール全体の区画を区切らなくていい。
②事前にノートカードに名前を登録した人が
オブジェクトをクリックすると何プリム利用しているかわかる。
例 「yamada hanako,98/140」 (←140プリム中98プリム使っているということ)
③②の通知は、その人だけにわかるようにチャットに表示される。
③ノートカードへの登録は10人くらいまでできる。
④日本語の説明書付き
SIMへの負荷も少なく、その人だけが分かるのですごく重宝して
いました。
「1つの区画の中で、誰が何プリム置いてるか、置いてる人自身が
分かる」というだけでも構いません。
そのような商品やスクリプトをご存じの方がいましたら、
教えてください。よろしくお願いします。
販売していたお店も無くなっているため、困っています。
こちらのお店のプリムカウンターでした。
http://gokurakurei.slmame.com/e1065584.html
いろいろと探してみましたが、今まで使っていたようなものを
見つけられません。
モールやひろい区画でのプリム数を、設置している方に
お伝えできるようなプリムカウンターをご存じではないでしょうか。
今まで使っていたものは次の①~⑤ような仕様でした。
①モール全体の区画を区切らなくていい。
②事前にノートカードに名前を登録した人が
オブジェクトをクリックすると何プリム利用しているかわかる。
例 「yamada hanako,98/140」 (←140プリム中98プリム使っているということ)
③②の通知は、その人だけにわかるようにチャットに表示される。
③ノートカードへの登録は10人くらいまでできる。
④日本語の説明書付き
SIMへの負荷も少なく、その人だけが分かるのですごく重宝して
いました。
「1つの区画の中で、誰が何プリム置いてるか、置いてる人自身が
分かる」というだけでも構いません。
そのような商品やスクリプトをご存じの方がいましたら、
教えてください。よろしくお願いします。
2014年08月24日
連続するアニメーションの処理
こんにちは。連続して異なるアニメーションを組み込んだ場合の処理がうまくできずに困っています。おわかりになる方がおりましたら教えてください。
llStopAnimation("sit");
llStartAnimation("anime1");
llSleep(0.5);
llStopAnimation("anime1");
llStartAnimation("anime2");
llSleep(0.5);
llStopAnimation("anime2");
llStartAnimation("anime3");
たとえば上記のようなアニメを組み込んだオブジェクトをrezしてsitしたアバターを動作させたとき最初の動作の時だけなのですがanime1からanime2, あるいは anime2からanime3に動作がかわる間に余計な動作が一瞬挟まってしまうのです。2回目以降に同じ動作をさせたときには発生しないのですが・・・、なにか元の位置に戻って立つような動作を最初だけしてしまいます。QAvimatorを使って作成したアニメです。ループをさせているアニメです。どなたか同じような現象をご存知の方、解決方法をご存知のかたおられましたら教えてください。
llStopAnimation("sit");
llStartAnimation("anime1");
llSleep(0.5);
llStopAnimation("anime1");
llStartAnimation("anime2");
llSleep(0.5);
llStopAnimation("anime2");
llStartAnimation("anime3");
たとえば上記のようなアニメを組み込んだオブジェクトをrezしてsitしたアバターを動作させたとき最初の動作の時だけなのですがanime1からanime2, あるいは anime2からanime3に動作がかわる間に余計な動作が一瞬挟まってしまうのです。2回目以降に同じ動作をさせたときには発生しないのですが・・・、なにか元の位置に戻って立つような動作を最初だけしてしまいます。QAvimatorを使って作成したアニメです。ループをさせているアニメです。どなたか同じような現象をご存知の方、解決方法をご存知のかたおられましたら教えてください。