2008年07月04日
あにめ再生、複数SITとパーミッションの記憶保持とLSL
まず、不要な、ほかのアニメを停止する、 再生したアニメは、きちんと停止する。
アニメーション対象者の実行中のアニメーションを調べて、まずはそれらを停止しましょう。
なぜかと言うと、座ったときにはデフォルトであっても「座るポーズ」のアニメーションが実行されているはずです。
また、AO(アニメーションオーバーライド)のアタッチメントを付けている人などは、座ったときにデフォルト以外の
個人でお気に入りのアニメーションをすでに実行している可能性があります。
アニメーションの優先順位が低いと、ほかのポーズのほうが優先され、意図した通りのポーズで座ってくれない場合もあります。
☆☆☆★★☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
セカンドライフとしての注意・複数SITとあにめ再生
あにめ・ポーズは誰か? アバター1人しか管理・記憶できません、スクリプトファイル1つで 1人になります
対策)1プリムに、1スクリプトファイル、アバター1人管理
対策)同じプリムに、複数のスクリプトファイル、アバター複数の管理、
対策)ダンスボールなど タッチしたアバターを記憶、状態を記憶する仕組みを準備する、
タッチした人のパーミッションを毎回・取得するなどの方法が考えられます、
1プリム=1シットの基本機能の拡張を検討する方法
★1プリムでも、複数のSITしているアバターを確認できます、
★1プリムでも、特定のアバターを指定と確認できます、
アバターの確認・特定が実施できたら、あたらしいアバターのKEYを、
1スクリプトファイル、アバター1人管理分を獲得します。 アバターのKEYを保持し、アバターへのアニメ作業は、
このファイルに実施してもらいます。
UNSITしたアバターを発見したら、 アバターのKEYを保持しているスクリプトファイルを、開放、KEY==NULL_KEYにもどします
★実例・紹介・ARRSHUさんの作品
1PRIMにこだわった 造型作品ですね^^b
でもイスですからちゃんと 座れて、アニメも切り替えたり 位置調整も実施しています、
http://arrshu.slmame.com/e256968.html
こちらは2人まででアニメを管理してます、
MAIN:アバターのSIT・UNSIT・タッチなどの判定をします
SUB_1:アバター1人目のあにめパーミッションを保持するスクリプト
SUB_2:アバター2人目のあにめパーミッションを保持するスクリプト
という構成にしました。
別途、HUDの機能もちょと大変でしたね^^ 記事は、またいつか^^b
新作品では、間隔で並べる計算を実施するものを、追加して組み込んであります^^
http://arrshu.slmame.com/e291584.html
こちらは4人まででアニメを管理してます、
SIT位置、並べたりする機能の作品ですね^^
あにめパーミッションを保持するスクリプトは4人分です。
☆☆☆★★☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
アニメ再生と、アバターの位置調整<X,Y,Z>について
デフォルトは"sit”あにめ
★基本:llSitTargetの位置にSITします、
アニメ再生だけの場合は、アバターの現在の位置=腰の位置あたりになるようです
(アニメを再生中は、上空に移動したりできますが、アバターは現在のSIT位置に固定しているままです)
★ポーズ・ボールは位置が分かりやすい便利なツールですが、そこに固定という感じになります、
オブジェクトプリムにプリムllSitTargetを、相対座標で設定することができます。
SITTARGET関数は、シットする前に設定・できる値です、SITTARGET、後で移動させる関数ではありません、
★アバターのシット判定と特定することで、シットした後でも、アバターを移動・位置調整できます
シットによりテレポートはSITTARGETで300mほど移動・実施できますが、
リンクによる作業では、移動は、(オブジェクトのサイズ、リンクする距離制限の範囲に限定されたりします)
相対的な座標系の実施、
現在LOCAL座標系のROT回転は バグがあるので実施できないようです、しかし対応策が公開されているようなので
組み込むことが可能です、 しかし将来どのようにバグを修正するのかは?
以下・基本をあげときます^^ 勝手に推薦^^b MAKAPU紹介です
アニメーション対象者の実行中のアニメーションを調べて、まずはそれらを停止しましょう。
なぜかと言うと、座ったときにはデフォルトであっても「座るポーズ」のアニメーションが実行されているはずです。
また、AO(アニメーションオーバーライド)のアタッチメントを付けている人などは、座ったときにデフォルト以外の
個人でお気に入りのアニメーションをすでに実行している可能性があります。
アニメーションの優先順位が低いと、ほかのポーズのほうが優先され、意図した通りのポーズで座ってくれない場合もあります。
☆☆☆★★☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
セカンドライフとしての注意・複数SITとあにめ再生
あにめ・ポーズは誰か? アバター1人しか管理・記憶できません、スクリプトファイル1つで 1人になります
対策)1プリムに、1スクリプトファイル、アバター1人管理
対策)同じプリムに、複数のスクリプトファイル、アバター複数の管理、
対策)ダンスボールなど タッチしたアバターを記憶、状態を記憶する仕組みを準備する、
タッチした人のパーミッションを毎回・取得するなどの方法が考えられます、
1プリム=1シットの基本機能の拡張を検討する方法
★1プリムでも、複数のSITしているアバターを確認できます、
★1プリムでも、特定のアバターを指定と確認できます、
アバターの確認・特定が実施できたら、あたらしいアバターのKEYを、
1スクリプトファイル、アバター1人管理分を獲得します。 アバターのKEYを保持し、アバターへのアニメ作業は、
このファイルに実施してもらいます。
UNSITしたアバターを発見したら、 アバターのKEYを保持しているスクリプトファイルを、開放、KEY==NULL_KEYにもどします
★実例・紹介・ARRSHUさんの作品
1PRIMにこだわった 造型作品ですね^^b
でもイスですからちゃんと 座れて、アニメも切り替えたり 位置調整も実施しています、
http://arrshu.slmame.com/e256968.html
こちらは2人まででアニメを管理してます、
MAIN:アバターのSIT・UNSIT・タッチなどの判定をします
SUB_1:アバター1人目のあにめパーミッションを保持するスクリプト
SUB_2:アバター2人目のあにめパーミッションを保持するスクリプト
という構成にしました。
別途、HUDの機能もちょと大変でしたね^^ 記事は、またいつか^^b
新作品では、間隔で並べる計算を実施するものを、追加して組み込んであります^^
http://arrshu.slmame.com/e291584.html
こちらは4人まででアニメを管理してます、
SIT位置、並べたりする機能の作品ですね^^
あにめパーミッションを保持するスクリプトは4人分です。
☆☆☆★★☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
アニメ再生と、アバターの位置調整<X,Y,Z>について
デフォルトは"sit”あにめ
★基本:llSitTargetの位置にSITします、
アニメ再生だけの場合は、アバターの現在の位置=腰の位置あたりになるようです
(アニメを再生中は、上空に移動したりできますが、アバターは現在のSIT位置に固定しているままです)
★ポーズ・ボールは位置が分かりやすい便利なツールですが、そこに固定という感じになります、
オブジェクトプリムにプリムllSitTargetを、相対座標で設定することができます。
SITTARGET関数は、シットする前に設定・できる値です、SITTARGET、後で移動させる関数ではありません、
★アバターのシット判定と特定することで、シットした後でも、アバターを移動・位置調整できます
シットによりテレポートはSITTARGETで300mほど移動・実施できますが、
リンクによる作業では、移動は、(オブジェクトのサイズ、リンクする距離制限の範囲に限定されたりします)
相対的な座標系の実施、
現在LOCAL座標系のROT回転は バグがあるので実施できないようです、しかし対応策が公開されているようなので
組み込むことが可能です、 しかし将来どのようにバグを修正するのかは?
以下・基本をあげときます^^ 勝手に推薦^^b MAKAPU紹介です
★★★☆アニメさせよう(スクリプト初級第十三回)☆★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
http://miz.slmame.com/e2514.html
アニメーションスクリプトでもパーミッションと格闘することになりますので
この関数には「誰を」アニメーションさせるかの指定がないのです。
llRequestPermissions(key agent, integer perm)
key型引数agentには、パーミッションを取得する相手のUUIDを指定します。
permは取得するパーミッションの種類です。
EX) llRequestPermissions(llDetectedKey(0), PERMISSION_TRIGGER_ANIMATION);
list llGetAnimationList(key id)
idにはアバターのUUIDを指定します。
返ってくるlistは、実行中のアニメーションのUUID一覧です。
key llGetPermissionsKey();
引数はありません。無条件に「現在パーミッションを取得しているアバターのUUID」が返ります。
★★★☆ポーズボール(スクリプト初級第十四回)☆★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
http://miz.slmame.com/e2814.html
これらのボールは、アバターが座ったときに特定のアニメーションを実行するものです。
key llAvatarOnSitTarget()
この関数はオブジェクトの上に座っているアバターのUUIDを返します。
誰も座っていない場合はNULL_KEYが返ってきます。 1人しか判定できません。
http://miz.slmame.com/e2514.html
アニメーションスクリプトでもパーミッションと格闘することになりますので
この関数には「誰を」アニメーションさせるかの指定がないのです。
llRequestPermissions(key agent, integer perm)
key型引数agentには、パーミッションを取得する相手のUUIDを指定します。
permは取得するパーミッションの種類です。
EX) llRequestPermissions(llDetectedKey(0), PERMISSION_TRIGGER_ANIMATION);
list llGetAnimationList(key id)
idにはアバターのUUIDを指定します。
返ってくるlistは、実行中のアニメーションのUUID一覧です。
key llGetPermissionsKey();
引数はありません。無条件に「現在パーミッションを取得しているアバターのUUID」が返ります。
★★★☆ポーズボール(スクリプト初級第十四回)☆★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
http://miz.slmame.com/e2814.html
これらのボールは、アバターが座ったときに特定のアニメーションを実行するものです。
key llAvatarOnSitTarget()
この関数はオブジェクトの上に座っているアバターのUUIDを返します。
誰も座っていない場合はNULL_KEYが返ってきます。 1人しか判定できません。
この記事へのトラックバックURL
http://windia.slmame.com/t294706



