2008年07月22日
優先度4のAOに負けないアニメーション
物作り歴は長いのですが、恥ずかしながら質問をさせていただきます。
アタッチするとアニメーションをするバッグを製作していますが、
優先度4のAOと重なると、バッグのアニメーションが打ち消されてしまうことがあります。
この問題を解決するために、バッグを装着すると数秒(例えば3秒)おきにバッグのアニメーションを
読み込み直してAOの動きにバッグのアニメーションを上書きすることで、解決できるのかな?
と思いましたが、スクリプトが全然わかりません。
調べましたが全然わかりません・・・
↑のスクリプトがわかる方はお手数をおかけしてしまいますが、スクリプトをお教え頂きたいと思います。
上記の解決法以外にも問題を解決できる手段がありましたら、そちらも教えてください。
よろしくおねがいします。。。。
この記事へのトラックバックURL
http://oshiete.slmame.com/t313196


お望みのスクリプトですが(関連する部分のみ書きます)、
適当な場所で
llSetTimerEvent(3.0); // 3.0秒でタイマー起動
を設定し、タイマーイベントを記述する
timer()
{
llStartAnimation("ANIME"); // アニメーション開始
}
これで3秒おきにアニメーションしますが、根本的な問題の解決にはなりません。
AOによって打ち消されるのは、AOが定期的にアバターの状態の変化を取得し、その状態に対応したアニメーションをその都度起動しているからです。
ですので、自分のアニメーションを起動して動いたとしても、アバターが動けばAOのアニメーションに戻ってしまうでしょう。
AOとバッグのスクリプトでアニメーションを起動し続けるのは意味無いですよね。
そのバッグのアニメーションをして欲しいなら、AOを外してもらうしかないと思います。
もしくはアニメーションをバッグと一緒に配布して、AOに組み込んでもらうとか・・・。
あたしもバッグやさんしているので同じ事悩み続けています。
ささびさんのおっしゃっている通りだとおもいます。
私もタイマーを使って再度アニメを実行するようにしています。
負荷の事も考えて5秒間隔にしています。
けれどやっぱりAOのアニメには勝てません。
Sit時のアニメや、何かが起きてバッグアニメが停止
してしまった場合などはこのタイマーで解決しました。
Sit時のアニメは勝てないものもありました。
AOの場合はバッグにあわせたAO用のアニメを作ってAOの
中のアニメと入れ替えてもらうしかないのかもしれません。
スクリプトには詳しくないのですが、
AOの仕組みを理解して作り直せば
バッグを優先にしたりできるのかな?とか思ってます。
AOによってはバッグのアニメの具合が良かったり
するので。
何か良い方法見つけたら書き込みしますね^^
お互いバッグ作り頑張りましょう( ´∀`)
さっそく回答をしていただきありがとうございます。
やはり立つ→歩くなど、別の動作に移ると動きが上書きされてしまいますね。
教えていただいたスクリプトで試してみたいのですが、
今つかっているものに追記しても上手く動作してくれません・・・
スクリプトに関しては全くの素人なので、どこのどのように追記していいか
わからないので、お教えいただけたら嬉しいです。
>のあさん
回答ありがとうございます。
わたしはバッグ屋さんではないですけど、同じところで悩んでいるのですね。
市販されているAOの優先度が全て3以下ならば問題ないのですが、
優先度4のAOも売られているので、AOに動きを上書きされて、
バッグをブンブン振り回してしまいます・・・
バッグ用のAOを用意すれば問題ないですけど、
そうすると、都度AOを読み込まないといけないので、
気軽にバッグを使えないのかな?って思います。
予想ですけど、AOのスクリプトはタイマーで一定時間毎にアバターの状態を取得する関数(llGetAgentInfo)で、今アバターがどうなっているのかをチェックし、それに対応したアニメーションをスタートさせています。
タイマーの間隔が短ければ短いほど「反応」がよくなるわけです。
また、私はAOを使っていないのでアバターの動作に対する反応の早さは体感していないのですが、他の人の動きを見る限りでは、アバターの動作にほぼリアルタイムでアニメーションが動いていると思います。
ということは、AOはかなり短い時間でタイマーを使っていると推測できます。
それに対して3秒とか5秒で対抗しても、きっと勝ち目はありません。
また、本来のAOの使用目的を考えてください。
アバターの通常の動作のアニメーションを、ユーザー好みのアニメーションにしてしまうというのがAO装着の大きな理由です。
そのユーザーの意志に反して(?)別にアニメーションをAOのアニメーションよりも常に優先させたいというのは、商品の仕様としてどうなのかと思います。
仮にタイマーでバッグのアニメーションを何度もスタートしたとしても、AOを装着している限りAOのアニメーションとバッグのアニメーションが比較的短い間に交互に入れ替わったら、装着した人はアニメーションの不具合だと思いませんか?
商品としてバッグをより楽しんでもらうためのアニメーションだと思いますので、「バッグ用のアニメーションが入っていますので、より楽しみたい方はご面倒でもAOを外してください」と注意書きをした方がよいのではないでしょうか。
コメントありがとうございます。
↑に書いた方法はあくまでも優先度4のAOとバッグ用のアニメーションを
同時に使用できる案のひとつとしてあげただけなので、
「絶対にその方法を使用しなければならない」という事ではありません。
実際にそのスクリプトを組んで優先度4のAOと同時に
使用した事が無いので、実際にどのような動きになるかわかっていません。
試してみてダメだったら、別のアイデアを考えてみます。
また、バッグのアニメーションといっても、右手を下向きに固定するだけの
シンプルなものなので、右手以外の部分はフリーの状態なので、
右手以外はセットしてあるAOの動きをしてくれると思います。
確かに「AOを切って使用してください」でしたら問題は解決しますが、
わたし自身がAOを使いながら、アニメーション入りのバッグを使いたい
と思っているから商品にも反映をさせたいのです。
AOつけたまま、アニメつきの傘とかかばんとかつけると、
手だけ持ってるスタイルのアニメを実行させ、
次のAOの動作で打ち消されたときに、
すかさず本人がタッチすればまた同じ持ってるアニメになったり。
これって出来ないことじゃないよね?
でも実際スクリプト自体は詳しくないので、
スクリプト自体はわかりませんが。
なんか、自分でタイマー教えておいて矛盾してますね?
どうしたんですか?
AOを楽しんでいる方はバッグと同時に使いたいという人多いのです。
しかし、AOとアタッチのアニメの相性は良くないのは皆しっています。
AOのアニメをムリヤリねじ伏せてバッグのアニメ動かすんだ!
なんて誰も言っていません。
バッグにアニメ入れて販売している方はAOとの事に付いて
注意書きを殆どの人がしてますね。
なにか、あなた勘違いしてませんか?
お気に入りのAOで歩いたりしながら素敵なバッグを
素敵なポーズで持ちたいって思うのがおかしいですか?
ちなみにtimer0.1秒でも試したけどAOには勝てません。
自分がこう思ったからこうだ! と発言せず
相手のが何を求めてるのか理解してコメントしてほしいです。
何様ですか? って言われてしまいますよ?
矛盾してましたか?
最初にタイマーの設定を書きましたけど、それではAOとの共存は出来ませんというような内容で書いていると思いますし、後に書いたものでもAOはとにかくアニメーションを開始しまくっているので、他のアニメーションを動かす余地はないという内容で書いているつもりですけど、矛盾してますか?
タイマーのスクリプト(部分ですけど)を書いたのも、アタッチするオブジェクトに組み込んだとしても、AOを装着している限り、その方法では無理がある事が理解できると思って書いたまでです。
質問者のくりおねさんは、わざわざ「優先度4のAOに負けない」と書いていらっしゃいますから、優先度とアニメーションの部分だけ動くものに関して理解していらっしゃると思っていますし、その上でオブジェクトのアニメーションを優先させたいと書かれているのですから、「優先度3のアニメーションを自作してね」とか「該当部分のアニメーションの無いものをAOに入れてね」は回答になってないですし、やはりAOが動いてれば無理なんじゃないのということです。
AOを装着している状態で、他の装着したオブジェクトのアニメーションと「相性は良くないのは皆しっている」ことで、アニメーション入りのオブジェクトを販売している人は「注意書きを殆どの人がしている」のであれば、「AOと素敵なポーズの共存」を思うのは自由ですが難しいという事も理解出来るのではないでしょうか。
直接この記事には関係ないですが、別のコメントでは「空気読めない」と言われ、今度は「何様ですか?」と言われても、自分の知っていること、思っていること(思いこみかもしれませんが)以外は書きようがないですし、よかれと思ってコメントしてもへこむようなことを言われてると、そんなトゲトゲしい書き方だったかと反省し、もうコメントするのは辞めようと思った次第です。
たまたまコメントを読んだときに虫の居所が悪かったりして解釈まで悪い方へ向かったりするのでしょうか。
自分でいろいろ調べたりインワールドで試行錯誤してそれでも行き詰ってしまったときに、ここで助けられることがままあります。
教える側の人も教えることによってまた何か新しい発見があったりもしますよね。
自分のコメントが勘違いだったりして、そのあと別の人のコメントでその間違いを指摘してもらったりすることで学ぶこともありますよね。
コメントしづらい雰囲気をつくらないでくれませんか。
こういう展開がつづくとお互いの利益を損ねます。
どうかみなさんお願いいたします。
どうしてここでトゲのある発言をなさるのでしょうか。
矛盾するとかしないとか? 問題ではなく^^
いろいろな考え方を そのとき思った^^b くらいでお願いします。
正解だけが、存在するとは限りません、 アイデアはヒント 意見交換ですから、 間違いもあるでしょう。 間違いを指摘するのは、 注意と配慮が必要です。
>なにか、あなた勘違いしてませんか?
>相手のが何を求めてるのか理解してコメントしてほしいです。
>何様ですか? って言われてしまいますよ?
理解して? もそれぞれの受け止めかたで さまざまかもしれません^^;
いろいろな アイデアや考え方があるので、 うまく利用してください
本来のAOの使用目的を考えてください。というのは 本来のAOに バッグを持つあにめを組み込めば 商品開発と提供ができるので そのほうが一般てきなことであると 考えることができるのでは?
複数あにめ 再生も AOに組み込むことは 修正と追加をすることで可能です
あにめ自体を独自に作成提供すること、入れ替えも 可能です、
あにめ製作をしないので、お店で販売している人の意見があるともっと 良くわかるのですが、 販売して 稼いでいる人は 教えたくないと思う気持ちもあるので^^ むずかしいとこかも知れませんね^^
コメントしてあげることないんじゃないですか?
お互い?片方だけだと思いますけど?
あなたのような※がどうなんだって話でしょww
コメントありがとうございます。
クリックをしてアニメーションを動かすのは面白いアイデアですね。
たぶん実現することはできると思います。
でも、立ち→歩く(クリック) 立ちポーズが切り替わる(クリック)
って、動作が変化するたびにクリックしなければいけないのは
ちょっと非現実的かなと思います。
>あれ?さん
コメントありがとうございます。
こちらも説明足らずなので、わたしの質問の全てを理解した上で
共感を持って欲しいとは思っていません。
気をつかってコメントをして頂いたのはすごい嬉しいですけど、
ささぴさんのコメントをネガティブに捕らえていないので大丈夫です。
でも、AOとバッグを同時に使いたいっていうところは同じ事を
思っている人は多いのかな?って思うと頑張らないといけないですね^^;
>ささぴさん
ささぴさんが考えた結論をしっかりと説明して頂いているのはよくわかります。
ただ、結論が温いものでは無かっただけなので、
それはわたしが受け止めなければならない事だと思います。
コメントを頂いたことは嬉しいと思いますので、コメントを辞めようなどとは
思わないでください。
きっと助けられている人もたくさんいると思います。
あにめーしょん AOの仕組み スクリプトの参考になりそうなものです。
http://miz.slmame.com/e14668.html#llGetAgentInfo
http://miz.slmame.com/e14668.html#llGetAnimation
http://miz.slmame.com/e14668.html#llGetAnimationList
http://wiki.secondlife.com/wiki/Internal_Animations/ja
http://www.lslwiki.net/lslwiki/wakka.php?wakka=animation
AOオブジェクトとAO HUDとの共存、ほんとうに実現できたら素敵ですよね。
ですが、ご質問の「優先度4のAOに負けないアニメーション」は、ささぴさんが仰っている通り、現在のSLでは実現が難しい(自分が知る限りの正攻法では不可能)と思います;
優先度4に勝てる優先度のアニメはありませんし、それを上書きするためには、後からアニメを実行する必要があります。
常に動作にあわせたアニメを上書きし続けるHUDを装着している場合は、上記のように「後から再生してアニメを上書き」も出来ないわけです。
根本的な解決にはなりませんが、バッグと一緒に専用のAO HUDを配布して、バッグを綺麗に持ち歩きたい方にはそれを普段のHUDの代わりにつけてもらうというのはいかがでしょうか。
ポーズだけではなく、各種アニメーションを自作することになりますが、「綺麗に歩きたい」と「素敵なバックを優雅に持ち歩きたい」という願望を同時にかなえてあげることは出来そうな気がします・・・。
その場合、タッチかまたはアタッチ判定などで「バッグを持っている」「持っていない」を判断してアニメを切り替える仕組みが必要になりそうですね。
元々のご質問の答えにはなりませんが、参考になりましたら嬉しいです^^