みなさんは、アバターの軽量化やっていますか?
例えば、購入した衣装に着せ替える時、普通はアバターが最初から着ていたデフォルト衣装を非表示にしますよね?
でもこの状態では衣装が見えなくなっただけで、使っていないメッシュやボーン、ブレンドシェイプ、コンポーネントなどはアバターの中に残ったままなんです。
そのままでも問題なく使えるのですが、こういった余計なデータがたくさん残っていると、見た目以上にアバターが重くなってしまいます。
そのまま軽量化をせずに重いアバターがたくさん集まってしまうと、イベントの進行や参加者のPCに大きな負荷が掛かってしまうこともあります。

そんな時に活躍してくれるのが、anatawa12さんが制作した「Avatar Optimizer」というアバター軽量化ツールです!
こちらは、アバターにコンポーネントを一つ追加するだけで、使っていないメッシュやボーン、ブレンドシェイプ、PhysBoneなどをビルド時に自動で軽量化してくれるツールです!
元のアバターを直接変更しないので、専門的な知識がなくても手軽に使えるのが嬉しいところですね!
自分では効果を感じにくい部分ですが、イベントやフレンドさんの負担を減らせる『やさしいアバター』になれるのも嬉しいところです!

一人ひとりがアバターの軽量化に対する意識を高めることで、長い目で見ればVRChat全体のパフォーマンスの向上にも繋がると思います!
スポンサーリンク
実際の導入手順
では、実際にAvatar Optimizerを導入する手順を見ていきましょう。
Avatar Optimizerは、アバターのルートに「AAO Trace And Optimize」コンポーネントを追加するだけで、以下のような最適化を自動で行ってくれます!
- 使用していないBlendShape(シェイプキー)の固定・削除・統合
- 使われていないオブジェクトやPhysBone、コンポーネントなどの削除
- アニメーションやPhysBoneで動かないボーンの統合
- 分けておく必要のないメッシュの統合
- PhysBoneやAnimator Controllerの構造を最適化
- 対応しているマテリアルのテクスチャを最適化

まずは、BOOTHの商品ページまたは公式マニュアルから「Avatar Optimizer」を導入します。
UnityPackageから直接インポートする方法もありますが、今後のアップデートや別のプロジェクトへの導入を考えるなら、VCCに公式リポジトリを追加して管理する方法がおすすめです。詳しい手順はBOOTHの商品説明欄や公式マニュアルから確認できます。
ツールのインポートが完了したら、軽量化したいアバターの「Inspector」から『Add Component』を選び、「AAO Trace And Optimize」を選択します。
すると、コンポーネントの設定項目が表示されます。初めて使う場合は、基本的にデフォルトのままでOKです。
あとは普段通りにアバターをアップロードするだけで、ビルド時に自動的に最適化が適用されます。
とにかく、手軽で扱いやすいのが嬉しいポイントですね!
詳しい使い方やチュートリアルが知りたい方は、制作者様からマニュアルが用意されていますので、以下のリンクからご参照ください。

アバターにコンポーネントを一つ追加するだけで、超手軽にアバターの軽量化ができちゃうんです!
スポンサーリンク
実際にどれくらい変わったのか?
では、実際にVRChatに入ってみてアバターパフォーマンスをチェックしてみます。




アバター容量は、Avatar Optimizer適用前が『46.11MB』のところを、適用後には『35.15MB』となり『10.96MB』の削減に成功しました!
上の画像ではボーンやPhysBoneを可視化しているのですが、Avatar Optimizerの適用前ではデフォルト衣装のボーンが残っているのがわかります。しかし、適用後ではそのボーンやPhysBoneの残骸が綺麗になくなり、余分なデータがしっかりと削減されていました。
他にも、テクスチャーメモリが約120MB、ボーン数が約200個、マテリアル数が約20個、PhysBoneが約100個の削減に成功しており、ポリゴン数に至ってはメッシュが削減されたことで約14.5万ポリゴンのダイエットに成功しています。
逆に使用していないデータがあるだけで、これほどまでにアバターが重くなるのは驚きです…。
これを全部手作業でやるのはかなり大変なので、コンポーネントを一つ追加するだけでここまで軽くできるのは本当に助かります!
私は拡張ツールの「Face Emo」「Light Limit Changer」「VRCLens」「EyePointer」「lilycalInventory」なども一緒に使っていますが、今のところ不具合は起きていません。特別な理由がなければ、かなりオススメしやすいツールだと思います!
さらなる軽量化を目指したい方にオススメする『AAOコンポーネント』
ここまでは「AAO Trace And Optimize」を使った手軽な軽量化をご紹介しましたが、「もう少しアバターを軽くしたい!」という方は、以下のコンポーネントも一緒に使ってみてください!
AAO Max Texture Size

「AAO Max Texture Size」は、指定したオブジェクトと、その子に使われているテクスチャの最大サイズをまとめて制限できるコンポーネントです。
例えば、衣装のルートに追加して最大サイズを2048に設定すれば、その衣装に使われている4Kテクスチャをまとめて小さくできます。元のテクスチャ設定を直接変更せず、ビルド時に反映されるのが扱いやすいところですね!
Mipmapが無効になっていたり、Crunch圧縮が使われていたりすると適用されない場合があります。警告が出た時は、テクスチャのImport Settingsを確認してみてください。
AAO Remove Mesh By Mask
「AAO Remove Mesh By Mask」は、マスクで指定した範囲のポリゴンを削除できるコンポーネントです。
衣装で完全に隠れる胴体や脚をマスクで指定して削除することで、見た目を変えずにポリゴン数やBlendShapeの負荷を減らせます。
ただし、削除する範囲が広すぎると、ポーズを取った時に素体が欠けて見えることがあります。Unity上で腕や脚を動かしながら確認しておきましょう。

まずは「Trace And Optimize」だけで試してみて、もう少し軽くしたい時に追加コンポーネントを使うくらいで大丈夫です!
さらに軽量化したい方は、一枚ずつテクスチャ解像度を調整しよう!
もっと効果的にアバターを軽くしたい!という方は、一枚ずつテクスチャの解像度を下げたり圧縮設定を見直すのがおすすめです。
特に高解像度(4Kなど)のテクスチャは綺麗に見える反面、VRChat上での読み込み時間の増加やアバター容量の肥大化、VRAMへの負荷を大きくしてしまう原因にもなります。
そこで活躍するのが、liltoonに付属されている「lilAvatarUtils」です。
このツールを使うことで、アバターに使用されているテクスチャの解像度や圧縮品質を一括で変更したり、不要な設定をクリーンアップすることができます。
使用方法
lilAvatarUtils を起動するには、liltoon導入後にUnityメニューから [Tools] → [lilAvatarUtils]で起動できます。

アバターを指定するとこのような画面になるので、解像度を変更したいテクスチャを選択して、最大解像度を変更します。
上の場合だと、Shinano_hair 1.pngが[最大解像度 4096 px]、メモリサイズ 10.7MBとかなり容量を食ってしまっているので、最大解像度を2048 pxに変更してみます。

テクスチャの最大解像度を [2048 px] に変更することで、メモリサイズが 2.7MB まで減少し、約8MBの削減 に成功しました。
このように、サイズの大きいテクスチャを一つずつ調整していきます。最後に「適用」をクリックして変更を反映しておきましょう。
コツとしては、メモリ使用量が大きいテクスチャから順に解像度を下げていくことで、効率よくアバターを軽量化することができます。
ただし、解像度を下げすぎると細かなディテールが損なわれる可能性もあるため、Unity上で見た目を確認しながら気にならない範囲で調整していくのがおすすめです。

私としては、顔や髪などの目立つ部分は解像度高めでもOK。
逆にあまり目の届かない衣装の細かい部分や、MatCapなどの反射テクスチャは解像度を512pxくらいまで落としても見た目ではほぼ分からないのでおすすめです!
このあたりは、自分の納得できる見た目との兼ね合いで決めていくと良いでしょう。
また、解像度を下げすぎてブロックノイズやざらつきが気になる場合は、解像度を戻す前に圧縮品質を「Normal Quality → High Quality」 に変更してみてください。
これだけでもテクスチャの滑らかさが改善されることが多く、見た目を保ったまま軽量化できるケースも多くあります。


こちらは先程とは別のアバターですが、全体的にテクスチャの最大解像度を下げて未使用のメッシュを削除した結果、ダウンロードサイズは61MB → 49MB、テクスチャサイズは430MB → 231MBに削減することに成功!
マテリアルのクリーンアップで不要なテクスチャを削除する

マテリアル内に使っていないテクスチャやマスクの設定が残っていると、その分アバターの容量が増えてしまうことがあります。lilAvatarUtilsの[ツール] → [マテリアルのクリーンアップ]を実行することで、現在使われていない設定をまとめて削除できます。
設定を戻したい場合に備えて、実行前にバックアップを取っておくと安心です!
アバターを軽くしても重い時はPC設定やスペックも確認しよう
AAOで軽量化しても、大人数のイベントや重いワールドでは、どうしても重くなることがあります。
そんな時は、表示人数やセーフティ設定、PCのメモリやグラフィックボードも確認してみてください。PCの選び方は以下の記事で詳しく紹介しています!









































うわっ…私のアバター、重すぎ…?