2018 年 11 月 15 日、セカンドライフ公式ビュアー バージョン 6.0.0が公開されました。
Downloads | Second Life
Release Notes/Second Life Release/6.0.0.520636 - Second Life Wiki
一年間のベータ期間を経て、今回のバージョンで正式に Animesh がセカンドライフに導入されました。
Animesh is Here!
Join the Project Animesh Beta - New Support for Animating Mesh Objects
Animesh は、アバター以外のメッシュオブジェクトでもボーンアニメーションを出来るようにする仕組みのことです。
正式には「Animated Mesh」という名称ですが、愛称的な呼び方として公式にも“Animesh”(アニメッシュ)と呼ばれています。
Animesh では、アバターの Bento の技術がそのまま Rez 可能なメッシュオブジェクトに導入されました。
|
Animeshオブジェクトでボーンを表示した状態 |
これにより、メッシュオブジェクトをアバターのように自由自在にボーンアニメーションさせることが出来るようになりました。
一つの Animesh のメッシュオブジェクトには、アバター1体分の Bento スケルトンが入っています。
このボーンを使って、メッシュオブジェクトをアバターのように自由自在に動かすことが出来ます。
アニメーションは、アバター用に作成されたアニメーションをそのまま流用することが出来ます。
Animesh は Bento スケルトンを持っていますが、動かすものは人型の形状でなくても問題はありません。
|
尻尾のボーンを使って動く板をBlenderで作成 |
|
アップロードしたRigged MeshをAnimeshに設定すると、
Rezしたオブジェクトがアニメーションの通りに動き出します。 |
ディズニーアニメのように、SIM に置かれた箒や木々、家などがダンスをするようなアニメーションを作ることも出来ます。
もちろんそれら用に、専用のアニメーションを作ることも出来ます。
これってすごいと思いませんか?^^
オブジェクトをアニメーションさせたい場合は、これまでは下記のような方法が行われていました。
- テクスチャーをアニメーションさせる
- 動く部分をパーツ分けして、スクリプトでそれぞれの位置や角度を変えることでアニメーションさせる
- スカルプテッドプリムで、スカルプ用のテクスチャーを切り替えることでアニメーションさせる
- アニメーションのフレーム数分のメッシュオブジェクトを用意して、各オブジェクトの透明度を切り替えることでアニメーションさせる
これらの方法では、動きのパターンを全てあらかじめ作成しておく必要がありました。
一度動きを作ってしまった後に“動きを変えたい!”といったことが発生してしまった場合は、今まではそれまで作っていた動きのパターンを全部作り直すといった手間が掛かってしまっていました。
また、メッシュを切り替えてアニメーションを表現する方法では、本来一つの形だけでよかったはずのメッシュのデータが、アニメーションの数ぶんだけ必要になってしまうため、データ量が増加してしまって読込みが遅くなってしまったり、描画の負荷が高くなってしまうという大きな欠点もありました。
Animesh は、これらの問題をある程度解決してくれます^^/
Rigged Mesh として作られたオブジェクトであれば、下記の方法で Animesh にすることが出来ます。
- Rigged Mesh を作成する
- オブジェクトの編集ウィンドウの「特徴」タブにある「Animated Mesh」の項目を有効にする
- オブジェクトのコンテンツタブにアニメーションを入れる
- コンテンツタブでスクリプトを作成し、llStartObjectAnimation でアニメーションを再生する
アニメーションと簡単なスクリプトが必要になりますが、これだけで Rigged Mesh をボーンアニメーションで動かすことが出来るようになります。
通常のプリムや Rigged Mesh でないメッシュオブジェクトで Animated Mesh の項目にチェックを入れても、Animesh としては動作しません。
Animesh として動作するのは、Rigged Mesh 用に作られたオブジェクトのみです。
Animesh はボーンアニメーションで描画を行いますので、ビュアーではそれなりの描画の負荷がかかります。
分かりやすく言えば、Animesh 一個につきアバターが一体増えたような感じの負荷が掛かる感じです。
そのため、Animesh 用に作成するメッシュオブジェクトでは、描画の負荷がなるべく掛からないような作り方が求められています。
その制限が下記のものです。
- Animesh 1オブジェクトにつき 10 万ポリゴン以下
- ランドインパクトの計算は、Animesh 独自の方式
- アバターに装着出来る数は、ベーシックアカウントのユーザーは 1 個のみ。プレミアムアカウントのユーザーは 2 個まで。
Animesh のランドインパクトの計算は、下記の方法で行われています。
Animesh オブジェクトのランドインパクト=Animesh 設定(15 固定)+モデルのポリゴン数に応じた加算
モデルのポリゴン数に応じた加算は、下記のようになっています。
- 1000 ポリゴン毎にランドインパクト 1.5 加算
- 最高 LOD のポリゴン数は 10 万ポリゴンが上限
- LOD 毎に、上の LOD の半分のポリゴン数までは加算無し。ポリゴン数が半分の値を越えると、越えたポリゴン数に応じたランドインパクトをペナルティとして加算
たとえば1万ポリゴンのメッシュオブジェクトを Animesh にする場合、
- 最高 LOD:10000
- 中 LOD のオブジェクトのポリゴン数は 5000 が上限、それ以上の場合はペナルティ加算
- 低 LOD のオブジェクトのポリゴン数は 2500 が上限、それ以上の場合はペナルティ加算
- 最低 LOD のオブジェクトのポリゴン数は 1250 が上限、それ以上の場合はペナルティ加算
となります。
ここで LOD でのペナルティーが無い場合は、
15 + ((10000 / 1000) * 1.5) = 30 ランドインパクト(オブジェクトのウェイトでの「ダウンロード」の値)
となります。
オブジェクトのウェイトでの物理効果やサーバーがこの値よりも低い場合は、メッシュオブジェクトのランドインパクトはこの値になります。
各 LOD 毎にペナルティーが発生した場合は、この値にペナルティ分のランドインパクトがさらに加算されます。
Animesh 設定を有効にした際に加算される“ランドインパクト 15”という数字は、通常のメッシュオブジェクトに単純に 15 が加算されるわけではありません。
たとえば、Bento 用の
サンプルファイルのモデルでは、Animesh にした場合のランドインパクトの変化は下記のようになります。
|
angel |
|
human female |
(いずれもデフォルト設定でアップロードした場合の値です)
単純に 15 が加算されているわけでは無いというのが、この内容から分かると思います。
通常のオブジェクトとは計算方法が違いますので、この辺間違えないようにしてください。
Animesh のベータ版の初期の頃は、Animesh を有効にすると 200 プリムが一律加算されていましたが、この仕様は現在はありません。
その頃の印象で、“Animesh は使えないほどすごくランドインパクトが高いもの!”というイメージの方もいらっしゃると思いますが、今は大幅に緩和されています。
普通のメッシュオブジェクトに少しランドインパクトが加算されるだけで、メッシュオブジェクトをボーンアニメーションで自由に動かせるようになりますので、うまく使えばすごく効果的なものになると思います^^
Animesh は、アバターに装着することも出来ます。
|
アバターにAnimeshオブジェクトを装着した状態 |
Animesh オブジェクトを装着すると、アバターのボーンの先に Animesh の Bento ボーンが接続された形になります。
|
アバターの手のボーンにAnimeshのボーンが接続されている状態 |
Animesh の Bento ボーンは、アバターのものとは完全に独立して動きます。
アバターの Bento ボーンでは、同じボーンを利用するオブジェクトを二つ装着するとアニメーションが干渉してしまうことがありましたが、Animesh を使うとそういったことは起きなくなります。
アバターのアニメーションとは完全に独立してオブジェクトを動かすことが出来るというのも、Animesh の特徴です。
Bento ボーンをフル活用した Animesh のペットや衣装を身に着けることも出来ますので、こちらもうまく使えばこれまで以上に表現の幅が広がってくると思います。
“Animesh はアバター並に描画の負荷が掛かる”という話をしましたが、それが分かりやすいように、ビュアーのパフォーマンスツールの「アバターの複雑さ情報の表示」の項目で Animesh の描画の負荷も見れるようになっています。
|
Animesh オブジェクトでも「アバターの複雑さ情報」が表示されます。
名前の表示が無い点がアバターとの違いです。 |
|
「アバターの複雑さ情報」は、Animesh オブジェクト個別に表示されます。
Animesh オブジェクトをたくさん Rez するとこんな風になります。 |
また、「アバターの複雑さ情報の表示」の項目では、公式ビュアーでもオブジェクトのポリゴン数が表示されるようになりました。
VisTris | 現在の LOD で実際に表示されているポリゴン数 |
EstMaxTris | 最高 LOD の推定ポリゴン数(上限として考慮される値) |
ポリゴン数が多いと描画の負荷が高いというのは以前お話しましたが、公式ビュアーでもそれが数値ではっきり見えるようになりましたので、今後はますますその辺を意識した物づくりが必要になってくると思います。
Animesh 用としては、下記の LSL が追加されています。
これにより、Animesh の基本的なアニメーションの制御が可能です。
アニメーションを動的に切り替えるということももちろん出来ます。
Animesh オブジェクトが編集可能であれば、AO のようにユーザーがキャラクターのアニメーションを自由に入れ替えるということも実現可能です。
これも Animesh の大きな特徴の一つです。
Animesh はセカンドライフの新機能ですので、対応したビュアーで無いと見ることが出来ません。
各ビュアーでの現在の対応状況は、下記の通りです。
| ○ | 6.0.0で対応 |
| × | |
| ○ | 3.3.0で対応 |
| × | |
| ○ | 1.26.22.0で対応 |
| × | 現在開発中の次期バージョンで対応予定 |
| ○ | 6.0.0で対応 |
| × | |
| × | |
| ○ | 2.9.24で対応 |
| × | |
2018 年 12 月 5 日現在
セカンドライフで広く使われている Firestorm では、まだ Animesh を見ることは出来ません。
Animesh 未対応のビュアーでは、Animesh オブジェクトを見ると、
Rez されたもの | 作った時のメッシュの状態(キャラクターなら T ポーズなど)で表示されます。 |
装着したもの | Animesh オブジェクトは通常の Rigged Mesh オブジェクトとして表示されます。Bento ボーンの内容が Animesh のボーンで上書きされますので、内容によってはアバターの形が崩れてしまいます。 |
という形で表示されます。
場合によってはグチャグチャに表示されていまいますので、サードパーティービュアーが対応するまではたくさんの人が利用するもの向けに作るのは避けた方がいいと思います。
この辺は、メッシュや Bento が導入された頃と同じ感じですね。
Firestorm が対応してからが本番だと思いますが、物づくりをされる方や新しもの好きな方は、対応しているビュアーで試してみてください。
アバター以外のものも、3D ソフトだけでようやく自由な動きが作れるようになりました。
アイデア次第で無限の可能性があるものだと思いますので、ぜひ活用してみてください!^^/