Adsense

2008年5月6日火曜日

セカンドライフのアニメーションを操る その1(かな)

ASUKA の雷神に設置させてもらっている MLDU (Massive Dance Link Unit) を作ったことで、Secondlife 内の「アニメーション」や「ダンス」、動きはないけど仕組みとしては一緒の「ポーズ」などをスクリプトで扱う方法をそこそこ理解できるようになってきました。

Free のダンスもいろいろありますが、Sine Wave や Animazoo、OWENIMATIONS といったアニメーション専門店で素敵なポーズやダンスを見て思わず買ってしまった、、、なんて経験がある方も多いのではないでしょうか。

このアニメーションを使うために AO (Animation Override) ユニットを配付しているショップもありますが、英語での説明だったり、コンテンツフォルダに保存したアニメーションを名前順に同じ時間間隔で再生するといった単機能だったりして使用勝手が、、、と思われている方もいると思います。

そこで(どこで??笑)アニメーションを扱う方法についてこれまで私が経験したことをちょっとまとめてみようと思いました。はい、急に思い立ちました(笑

アニメーション操作のファースト・ステップ 「ジェスチャ」

フルパーミッション(コピー可、プレゼント可、修正可)のダンス、アニメーション、ポーズならばジェスチャ作成してカスタマイズするのが一番でしょう。マクロ(?)みたいな感じですが、スクリプトを書くよりはものすごく簡単に、アニメーション、サウンド、チャットの組み合わせをひとつのジェスチャの中に登録することが可能です。時間を指定して次の動作に移ったり、同時にアクションを開始したり、、、とアイディア次第ではかなり凝ったことができます。ビルトイン・アニメーションも使えますので、たとえばビルトイン・アニメーションを流用した「クチパク」などはスクリプトを組まなくてもジェスチャ登録することで作成することが可能です。「あ」とか「い」といった母音の発音の口の形に近いジェスチャを作って Shift+F5, F6, F7 とかに登録しておき、それらをタイミングよく連打すると話しているように見えます。

アニメーションには実行時の優先順位というのがあり、同時に複数のアニメーションが動くと、高いものが優先されて動きます。また、複数のアニメーションを同時に動かすと、アニメーション指定が重なっていない「部分」などは複合して動きます。クチパクなんかも優先順位の同じビルトイン・アニメーションを複合させると思いもよらない表情をみせてくれることがあります。

以下の「お」という発音のクチパク・ジェスチャの例では「Open Mouth」というアニメーションと「Kiss」のアニメーションを同時に動かして、0.2秒後にそれらを止める、という Steps を登録したものです。
 1

すると、、、ちょっと間抜けですが、以下のような顔になります(笑
0
これ、Kiss アニメーションの目と Open Mouth のクチが組み合わさっているんですよね。
[Wait] を追加して [アニメーションが完了するまで] のチェックをはずした状態で明示的に再生秒数を指定して、その直後にアニメーションを停止(STOP)させるステップをいれると最初の「0.2秒だけ」アニメーション(それも複合)を再生することが可能になるわけです。
ジェスチャの基本については以下を参考にしてください。

http://help.secondlife.com/jp/avatar/gestures.php

思えば1年くらい前にはこのジェスチャくらいしかアニメーションを操る方法を知らなかったんですよねぇ。。。フリーなものしか持ってなかった、、、というのもありますが。
残念ながら、ショップのダンスなどはコピー不可になっているものがほとんどですから、このジェスチャ機能は使えないわけです。
そこでスクリプトによる操作、制御、、、というのが出てくるわけですが、私がはじめてスクリプトを使って「アニメーション操作」を意識したのはクラフターズカップの「チャットキーボード コンテスト」でした。

って、、、長くなったので次回に続く、、、、かな?(笑