Site search
2008年6月12日木曜日
ポーズボールのスクリプト
今回は簡単なポーズボールのスクリプトです。ボールは座ったときに透明になってフローティングテキストが消えるようにします。それ以外はポーズの入った椅子とほぼ同じですね^^
アバターが座ったときに、プリムにアニメーション制御の許可を与えるためにllRequestPermissionsを使わないといけないので、その分はちょっと複雑になります。
アニメーションはビューアーに組み込まれているものから選んで使用しましたが、これってあまり他人に見られたくないポーズですねw
コンテンツにアニメーションを入れて使うときはそのアニメーション名にします。
組み込まれてるアニメーション一覧
http://wiki.secondlife.com/wiki/Internal_Animations/ja
座る位置は<0,0,0>,ZERO_ROTATIONにしてしまうと動きません。少しでも位置をずらしてください。
// ポーズボール
string anim="falldown"; // アニメーション名
string text="sit"; // フローティングテキスト
default
{
state_entry()
{
llSetText(text,<1,1,1>,1.0); // フローティングテキスト表示
llSetSitText(text); // パイメニューのsit
llSitTarget(<0,0,0.01>,ZERO_ROTATION); // 座る位置
}
changed(integer change)
{
if (change & CHANGED_LINK)
{
key agent=llAvatarOnSitTarget();
if (agent)
{
llRequestPermissions(agent,PERMISSION_TRIGGER_ANIMATION);
}
else
{
// 立ち上がったときの処理
llSetText(text,<1,1,1>,1.0); // フローティングテキスト表示
llSetAlpha(1.0,ALL_SIDES); // プリムを不透明に
llStopAnimation(anim); // アニメーション停止
}
}
}
run_time_permissions(integer perm)
{
if (perm & PERMISSION_TRIGGER_ANIMATION)
{
// 座ったときの処理
llStopAnimation("sit"); // デフォルトのアニメーションsitを停止
llStartAnimation(anim); // ポーズさせるアニメーションを実行
llSetText("",<1,1,1>,1.0); // フローティングテキスト消去
llSetAlpha(0.0,ALL_SIDES); // プリムを透明に
}
}
}
アバターが立ち上がったときにllStopAnimation使いますが、無くても大丈夫みたいです。ホントに必要なのかよくわからないです^^;;
アバターが座ったときに、プリムにアニメーション制御の許可を与えるためにllRequestPermissionsを使わないといけないので、その分はちょっと複雑になります。
アニメーションはビューアーに組み込まれているものから選んで使用しましたが、これってあまり他人に見られたくないポーズですねw
コンテンツにアニメーションを入れて使うときはそのアニメーション名にします。
組み込まれてるアニメーション一覧
http://wiki.secondlife.com/wiki/Internal_Animations/ja
座る位置は<0,0,0>,ZERO_ROTATIONにしてしまうと動きません。少しでも位置をずらしてください。
// ポーズボール
string anim="falldown"; // アニメーション名
string text="sit"; // フローティングテキスト
default
{
state_entry()
{
llSetText(text,<1,1,1>,1.0); // フローティングテキスト表示
llSetSitText(text); // パイメニューのsit
llSitTarget(<0,0,0.01>,ZERO_ROTATION); // 座る位置
}
changed(integer change)
{
if (change & CHANGED_LINK)
{
key agent=llAvatarOnSitTarget();
if (agent)
{
llRequestPermissions(agent,PERMISSION_TRIGGER_ANIMATION);
}
else
{
// 立ち上がったときの処理
llSetText(text,<1,1,1>,1.0); // フローティングテキスト表示
llSetAlpha(1.0,ALL_SIDES); // プリムを不透明に
llStopAnimation(anim); // アニメーション停止
}
}
}
run_time_permissions(integer perm)
{
if (perm & PERMISSION_TRIGGER_ANIMATION)
{
// 座ったときの処理
llStopAnimation("sit"); // デフォルトのアニメーションsitを停止
llStartAnimation(anim); // ポーズさせるアニメーションを実行
llSetText("",<1,1,1>,1.0); // フローティングテキスト消去
llSetAlpha(0.0,ALL_SIDES); // プリムを透明に
}
}
}
アバターが立ち上がったときにllStopAnimation使いますが、無くても大丈夫みたいです。ホントに必要なのかよくわからないです^^;;
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿