飛行船アバターを作ったきっかけは、写真の初期アバターです。
人格なしのアカウントのつもりだったので、どうせなら、とまったく人に見えないのを選んだわけですが(ほかに動物やロボット、車型もありました)、人型でも初期アバターに不満がでてくるように、他人の作った姿のままでいるのは抵抗あったので、自分で作り直しました。
アダルト商品取り扱いなので、ちょっとワイルド風味に海賊ぽいマークをつけて、その流れで人型の服装も海賊コスプレなわけです。
(商品の飛行船は、海賊マークなしです。)
アバターのアニメーションも自前のに変えました。
といっても、ふわふわ高さを変えたりする程度ですが、手足のない飛行船に細かいアニメーションは必要ないので都合よいです。
下のスクリプトは、アニメーションを自分のに変更する、つまりAO(アニメーションオーバーライド)ですね。
default {LSLポータルのllGetAnimation()のところに組込アニメーションの説明と簡単なAOのサンプルがあります。
attach(key id) {
if (id) { // 装着されたらアニメーション変更の許可を依頼
llRequestPermissions(id, PERMISSION_TRIGGER_ANIMATION);
Id = id;
}
else { // とり外されたら今のアニメーションを止める
if (Anim) llStopAnimation(Anim);
llResetScript();
}
}
run_time_permissions(integer perm) { // 継続的に
if (perm & PERMISSION_TRIGGER_ANIMATION) llSetTimerEvent(0.2);
}
timer() {
string anim = llGetAnimation(Id); // 再生中のアニメーションを調べる
if (anim == "Walking") anim = "walk"; // 組込アニメーションを自分のに変更
else if (anim == "Running" || anim == "Flying") anim = "fly";
else anim = "hover";
if (Anim == anim) return; // 前と同じなら 戻る
if (Anim) llStopAnimation(Anim); // 前のアニメーションを止める
llStartAnimation(anim); // 新しいアニメーションを始める
Anim = anim;
}
}
http://wiki.secondlife.com/wiki/LlGetAnimation/ja