今回は、アニメーションオーバーライドのスクリプトを紹介します。アニメーションオーバー
ライドとは、アバターの基本アニメーションをユーザが作成したオリジナルのアニメーションで
置き換えてしまう技術です。単純に訳すと、"アニメーションの重ね処理"とでもなるんでしょう
か。略してAOとも呼ばれてます。
ここで少し基本アニメーションについて説明します。基本アニメーションとは、リンデンラボ社
がシステム内部で最初から用意しているデフォルトのアニメーションのことを指します。通常ア
バターはこれらの基本アニメーションを状況に応じて、自動的に実行しています。立つ、歩く、
座る、飛ぶ等のしぐさは、すべてこの基本アニメーションが元になっています。基本アニメーシ
ョンは、システム側でもともと用意されているアニメーションですので、アニメーションファイルは
存在しません。ちなみにスクリプトを使用してこの基本アニメーションを実行したい場合は、単純
にllStartAnimation()コマンドで、基本アニメーション名称を指定してあげればOKです。
(コンテンツ内にアニメーションファイルを配置する必要はありません)
例えば、基本アニメーションの"座る"を実行するには、以下のように命令します。
llStartAnimation("sit");
(この中で、"sit"というのが座る動作の基本アニメーション名称になります。)
この基本アニメーションは、全部で135種類用意されています。基本アニメーションのリストは、
以下のページで確認可能です。
Internal Animations(wiki.secondlife.com)
リストをご覧いただければわかると思いますが、"立つ"という動作だけでも5種類のアニメーシ
ョンが用意されています。アバターを立たせてじっと見ていればわかりますが、アバターは定期
的にポーズを微妙に変化させています。これはこの複数のstanding用のアニメーションを交互に
実行しているからです。こうすることによりアバターのしぐさがより自然になります。
さてちょっと話題がずれてしまいましたが、AOの話に戻ります。AOは、前述でも書きましたが、
この基本アニメーションをユーザが作成したオリジナルのアニメーションで置き換えてしまうも
のです。そうすることによりアバターが、立つ、歩く、座るといった基本動作を実行したとき、基本
アニメーションではなくオリジナルのアニメーションが実行されることになります。もしどこかでとて
もセクシーな歩き方をしている女性アバターを見かけたとしたら、それはこのAOの技術を利用して
いますw。
仕組みとしては、timerとllGetAnimationコマンドを利用して、アバターのアニメーション状態を
監視し、その状態に応じてオリジナルアニメーションで置き換えてあげます。
続きを読む
Posted by Zero2000 Kidd at
01:02
│
Comments(0)
│
リンデンスクリプトTips