みなさんは、アバターの軽量化をやっていますか??
例えば、購入した衣装をアバターに着せ替えた場合、通常はアバターが本来着ていたデフォルトの衣装を非表示にするかと思いますが、そのままでは衣装データが「非表示」となっただけで、アバター内部には未使用のメッシュやボーン、ブレンドシェイプやコンポーネントなどの設定が残ってしまうんですよね…。
そのままでも別に問題なくアバター自体は表示されるわけですが、このような使用しない残存データが残っていると、本来表示されているアバターよりも多くのデータが必要となってしまい、アバターが重くなる原因となります。
もちろん、表示している衣装やアクセサリーだけを参照して使っていない余計なボーンやコンポーネントを削除するのが一番いいんですけど、これを一から手作業でやるとなるとかなり手間が掛かりますし、結局はそのまま騙し騙しでアバターを使っているという方も多いのではないでしょうか?
このように、重いアバターがイベント等で一斉に集まってしまうと、いくらワールド自体が軽くとも、アバターによってインスタンス自体が重くなってしまい、イベントの進行やPCのパフォーマンスに大きな影響が出る原因になる可能性もあります。
そんな時に活躍してくれるのが、anatawa12さんが制作した「Avatar Optimizer」というアバター軽量化ツールです!
こちらは、Modular Avatar(以下、MA)に対応した非破壊性を持っており、専門的な知識がなくてもアバターにコンポーネントを一つ追加するだけで、未使用のメッシュやボーン、ブレンドシェイプ、PhysBone、スクリプトなど、アバターをビルドする際に自動的に最適化(軽量化)してくれる画期的なツールとなっています!
これらの作業を手動で行うと相当な時間や労力がかかるため、こういった面倒なアバターの軽量化をワンタッチで行ってくれるのは本当に助かるんですよね…!
自分ではあまり効果を実感しにくいかもしれませんが、アバターを軽量化することでいつも応援している集会イベントの負荷軽減やパフォーマンスの向上にも貢献できる他、一緒に遊んでくれるフレンドさんや訪れてきてくれる方にも負担を掛けない『やさしいアバター』になれるため、そういった意味でも相手を思いやるモラルに添った素敵なツールだと言えますね!
一人ひとりがアバターの軽量化に対する意識を高めることで、長い目で見ればVRChat全体のパフォーマンスの向上にも繋がると思います!
実際の導入手順
ここからは、実際にAvatar Optimizerを導入する手順を見ていきましょう。
Avatar Optimizerは、アバターのルートに「AAO Trace And Optimize
」コンポーネントを追加するだけで、以下のような最適化を自動で行ってくれます!
- 使用していないBlendShape(シェイプキー)の削除
- 使われていないPhysBone等の削除
- アニメーション、PhysBoneで揺れないボーンの統合
まずは、BOOTHから「Avatar Optimizer」をダウンロードして、同梱されているUnityPackageからプロジェクトにインポートします。
あとは、VCCにリポジトリを追加してツールを追加することもできるので、ツールのアップデートや別のプロジェクトでも利用したい場合は、BOOTHの商品説明欄にある手順を参照してVCCにも追加しておくのがオススメです。
ツールのインポートが完了したら、軽量化したいアバターの「Inspector」から『Add Component』を選び、「AAO Trace And Optimize」を選択します。
すると、コンポーネントの設定項目が表示されるので、必要なものにチェックを入れておきます。(基本的にはデフォルトのままでOK)
あとは普段通りにアバターをアップロードするだけで、ビルド時に自動的に最適化が適用されます。
とにかく、手軽で扱いやすいのがGOODですね!
詳しい使い方やチュートリアルが知りたい方は、制作者様からマニュアルが用意されていますので、以下のリンクからご参照ください。
アバターにコンポーネントを一つ追加するだけで、超手軽にアバターの軽量化ができちゃうんです!
実際にどれくらい変わったのか?
では、実際にVRChatに入ってみてアバターパフォーマンスをチェックしてみます。
アバター容量は、Avatar Optimizer適用前が『46.11MB』のところを、適用後には『35.15MB』となり『10.96MB』の削減に成功しました!
上の画像ではボーンやPhysBoneを可視化しているのですが、Avatar Optimizerの適用前ではデフォルト衣装のボーンが残っているのがわかります。しかし、適用後ではそのボーンやPhysBoneの残骸が綺麗になくなり、余分なデータがしっかりと削減されていました。
他にも、テクスチャーメモリが約120MB、ボーン数が約200個、マテリアル数が約20個、PhysBoneが約100個の削減に成功しており、ポリゴン数に至ってはメッシュが削減されたことで約14.5万ポリゴンのダイエットに成功しています。
逆に使用していないデータがあるだけで、ここまでアバターが重くなるのは驚きです…。
これを一つ一つ手作業でやっていくことを考えると、相当大変な作業になると思いますし、Avatar Optimizerを利用することで、専門的な知識がない方でもコンポーネントを一つ追加するだけで、これだけ手軽にアバターを軽量化できるのはすごく嬉しいですね!
私は他にも「Face Emo」「Light Limit Changer」「VRCLens」「EyePointer」「Radial Inventory System」などのツールも併用しているのですが、今のところ不具合なども起こっておらず快適に動作しているため、特別な理由がない限りは万人にオススメできるツールだと思います!
また、先程の文中でも触れましたが、アバターを軽量化する意識を一人ひとりが持つことで、いつも参加しているイベントや、一緒に遊んでくれているフレンドさんへの負荷軽減につながり、それがいずれはVRChat全体のパフォーマンス向上に繋がると思います。
ぜひ、このようなツールを駆使しながら、みんなでより良いVRChatの世界を作り上げていきたいですね!
うわっ…私のアバター、重すぎ…?