ゼロから始めるスクリプト(その2)

Jamaica

2008年02月20日 19:31


さて、今日はいよいよポーズをとらせるためのスクリプトをポーズボールに入れていきます。

この前FG三姉妹の写真を撮るときにつかったポーズボールがありますのでその中身をみながら、どんなスクリプトを使っているのか解説したいと思います。

この前お話したようにスクリプトはポーズボールのオブジェクトのコンテンツというところに入っています。
ここにはスクリプト以外にアバターにつけさせるポーズのアニメーションも入っています。
あとよく見ると何かテクスチャーも入っていますね。これについては後で解説いたします。



実際にここに入っているスクリプトを以下に書き出してみます。
一番手っ取り早いのは下のスクリプトをそのままコピーペーストして使うのが簡単です。
このとき一番上の string SET_TEXT="Arin Pose" のArin Poseを自分の好きな文字に入れ替えれば、その文字をポーズボールの上に表示させることができます。

string SET_TEXT="Arin Pose";
vector POSITION=;
list rgb;
string animation;

default
{
state_entry()
{
llSetText(SET_TEXT,,1);
llSitTarget(POSITION, ZERO_ROTATION);
llSetAlpha(1.0, ALL_SIDES);
}
changed(integer change)
{
if (change & CHANGED_LINK)
{

if (llAvatarOnSitTarget() != NULL_KEY)
{
llRequestPermissions(llAvatarOnSitTarget(), PERMISSION_TRIGGER_ANIMATION);
}
else
{
integer perm=llGetPermissions();
if ((perm & PERMISSION_TRIGGER_ANIMATION) && llStringLength(animation)>0)
llStopAnimation(animation);
animation="";llSetText(SET_TEXT,,1);
llSetAlpha(1.0, ALL_SIDES);
}
}
}
run_time_permissions(integer perm)
{
if (perm & PERMISSION_TRIGGER_ANIMATION)
{
llStopAnimation("sit");
animation=llGetInventoryName(INVENTORY_ANIMATION,0);
llStartAnimation(animation);
llSetText("",,0);
llSetAlpha(0.0, ALL_SIDES);
}
  }
}

こうしてコピーペーストして作ったスクリプトはしっかりと保存しておきましょう。

実際にポーズのアニメーションとスクリプトをボールの中に入れて(あとテクスチャーをボールに貼った場合はボールに貼ったのと同じテクスチャーをスクリプトやアニメーションと一緒にコンテンツの中に入れます。)、これで終了です。

さて、ポーズボールに座ってみましょう。 あれれ?足が床につきささってしまっています。



ポーズボールの位置が悪いようです。ボールを右クリックして編集の状態にしてからボールに座ると、矢印が出たままになりますので、ボールの位置を動かして調整することが可能です。



はい、できました^^



今回は、とりあえず深く考えずに既にあるスクリプトをボールに入れてみました。
次回以降はスクリプトをすこしずつ見ながら解説をしていきたいと思います。
文字が多くなりそうですけど、なるべく分かり易くすこしずつやっていきます。お付き合いください。
スクリプト