まず、ポーズボールという用語がわかっていないと これを見つけることができませんよね。。
僕はこれが大変でした。SLの用語。 SL=セカンドライフ オンライン系には略語した用語がでてきますよね。。
アバターの動き と考えて
ポーズ、アニメ、アニメーション、動作、動き なとこから連想して検索してました。
でも、ボールとつながらないですよね。これは色々なところを旅してみると
ボールがおいてあることに気がつくと思います。
さて、ポーズボールをつくるため 色々とサイトを調べてみました。
あ、最初にいっておきますが、僕はプログラマーではないので、まったくプログラムの知識はありません。。。ので
あしからず・・・。
でも、ポーズボールのプロセスは考えられると思います。
普通に考えると
1、誰かが ボールを触る。
2、触ると アニメーションがはじめる。
3、何かを押すと アニメーションがとまる。
というプロセスが行われているはずです。
ということは別でアニメーションを用意しないといけないのかしら??と思う。
ん 座ったらボールはけしたいなぁと思う。
これは、QAvimator というフリーのアニメーションを使います。
上記の動きをするには LSL でどんな風にかけばいいのでしょうか?
ボールに触る・・・。 これは?
touch_start( )
という呪文をつかうみたいです。
何かのトリガーをひかせないと 駄目みたいですね。
その後に アニメーションを動作させる という 呪文を書くみたいです。
それが これ
llStartAnimation(string anim);
タッチの呪文を詳しくみてみましょう。
しらべると 色々でてきます。
touch_start(integer num_detected)
touch_start(integer detected)
() のなかに いろいろとはいってますが、、。よくわかりません。。
とりあえず、touch_start(integer num_detected) これをひとつとして使うことにします。
あと 呪文についている ll これですが、 きっかけ と 命令 らしいです。
どういう時に? というのが ll これがついていないやつ。
ついているのは命令 呪文と覚えておきます。 参考:http://asuka-n.blogspot.com/2006_09_01_archive.html
touch_start( )
したら・・・・ というきっかけですね。
タッチはわかるのだが、、 いまいち state_entry() がわからない。。
どんな状態のときに動作するのかしら?? これためしてみないとわからないですね。
アバターの画面にうつったとき? 近付いたときかしら。。。
何もしなくても発動する きっかけ なのかしら?? 自動で回転するとか。。。そんな感じなのですかね?
下記はメモです。
-------引用開始----------------
integer hidden = FALSE; // Stores whether the object is visible
default
{
state_entry()
{
llSitTarget(<0,0,1>,<0,0,0,1>); // Set the target one meter above the ground
llSetSitText("Pose!");
}
changed(integer change)
{
if(change & CHANGED_LINK) // If someone has sat on, or "linked," to this prim...
{
key agent = llAvatarOnSitTarget();
if(agent)
{
llStopAnimation("sit");
llStartAnimation("stand");
}
else
{
llStopAnimation("stand");
}
}
}
touch_start(integer total_number)
{
if(hidden)
{
hidden = FALSE;
llSetLinkAlpha(LINK_SET,1,ALL_SIDES);
}
else
{
hidden = TRUE;
llSetLinkAlpha(LINK_SET,0,ALL_SIDES);
}
}
}
-------引用終わり----------