2008年07月15日
ポーズボール 位置&フローティングテキストについて
こんにちは。初心者ですがよろしくお願いします。
①ポーズボールから座った状態のアバターの位置(距離)の変更方法を教えてください。
ポーズボールを購入したのですが、(スクリプトがいじれる)
ボールにsitすると、アバターがかなり上の方に座ってしまうので
椅子などにセッティングすると ボールが椅子に隠れて見えず、
クリックできなくなってしまうので、
ボールよりも下に座るように 位置を変更したいのですが
どのタグをいじったらいいのでしょうか?
②おなじくポーズボールのフローティングテキストの変更、表示方法を教えてください。
ポーズボールに何も文字が無いので不便なので。
①ポーズボールから座った状態のアバターの位置(距離)の変更方法を教えてください。
ポーズボールを購入したのですが、(スクリプトがいじれる)
ボールにsitすると、アバターがかなり上の方に座ってしまうので
椅子などにセッティングすると ボールが椅子に隠れて見えず、
クリックできなくなってしまうので、
ボールよりも下に座るように 位置を変更したいのですが
どのタグをいじったらいいのでしょうか?
②おなじくポーズボールのフローティングテキストの変更、表示方法を教えてください。
ポーズボールに何も文字が無いので不便なので。
この記事へのトラックバックURL
http://oshiete.slmame.com/t306231


ポーズボールについてですが、まずアバターの座る位置は、
llSitTarget(相対位置, 相対回転値)
という関数で指定します。
プリムに対して相対的な位置と回転値を指定します。
スクリプトで関数を記述している部分に値を直接記述しているか、変数を使っているかわかりませんが、高さを調節したいのであればZ値(<>で囲まれた3つの数値の3番目)を変更してください。
次にフローティングテキストの表示方法ですが、
llSetText(表示テキスト, 表示色, 表示透過度)
で設定します。
常にフローティングテキストを表示したいのであればdefaultステートのstate_entry内に記述しておきます。
ただし、常に表示しているとアバターが座っているときも表示されてしまうので、ちょっと邪魔になります。
そんな時は実際に「座った/立った」イベント内でフローティングテキストを設定し直せばよいわけです。ちなみに消したいときは文字列無し("")で設定しなければなりません。
「座った/立った」イベントはchangedというイベントで、一般的には
changed(integer change)
{
if(change & CHANGED_LINK) // リンクの変更があった場合
{
avatar_key = llAvatarOnSitTarget(); // シットしているアバターのキーを取得
if(avatar_key == NULL_KEY) // 取得したキーがNULL_KEYの場合は立った
{
立ったときの処理;
}
else // NULL_KEYでない場合は座った
{
座ったときの処理;
}
}
}
のような記述になっていると思いますので、「座った/立った」処理の時にフローティングテキストの非表示/表示を切り替えればよいと思います。
おかげさまで座る位置変えられました(*^。^*)うれしー♪
フローティングテキストはまだ苦戦中ですが
もうちょっとがんばってみます!
本当にありがとうございました!!!
ささぴさん お名前間違えてしまいました><
大変失礼しました。。
フローティングテキストは、最初からスクリプトを書くのであれば、
---------------------------------------------------
default{
state_entry(){
llSetText("Sit here!",<0,0,0>,1.0);
}
}
---------------------------------------------------
などと書けば出てきます。
既存のスクリプトに追加するのなら、state_entry()の{}カッコ内に、
llSetText("Sit here!", <0, 0, 0>, 1.0);
を追加するか、あるいは上の内容だけを書いたスクリプト(のファイル)をオブジェクトに追加しても良いと思います。
因みにこの例では、
「Sit here!」 というテキストを、
「<0,0,0>」 という色(黒色)で、
「1.0」 の透明度(不透明)の文字で表示させます。
色は三原色(RGB)を用いた表現です。<赤, 緑, 青>のそれぞれの原色の強さを0~1で記します。
具体的にいくつか例を挙げると以下のような感じです。
数値を微調整して好みの色にできます。
<0, 0, 0> →黒
<0.5, 0.5, 0.5> →グレー
<1, 0, 0> → 赤
<0, 1, 0> → 緑
<0, 0, 1> → 青
<1, 1, 0> → 黄
<0, 1, 1> → 水色(シアン)
<1, 1, 1> → 白
透明度は、0.0(完全に透明)~1.0(不透明)を指定します。
0.5を指定して半透明にしたり、0.0で見えなくしたり、という具合になります。
参考にさせていただきます(*^_^*)