ばーちゃるなれっじ Unityのエラー、アバター改変、イベントを検索 アプリで開く
‹ 戻る#アバター

Avatar Optimizer(AAO)入門 非破壊でアバターを軽くする

「パフォーマンスランクを上げたいが、メッシュを手で削るのは怖い」。その悩みに対する2026年時点の定番回答が Avatar Optimizer(通称 AAO)です。anatawa12 氏が開発する無料・オープンソースの Unity ツールで、Play モードに入るときとビルド時にだけ最適化を適用し、元のプレハブやメッシュには手を付けません。この記事では公式ドキュメント(2026年9月10日確認、バージョン 1.9.18)をもとに、最初の一歩と、次に手を出すべきコンポーネント、つまずきやすい点を整理します。

非破壊とは何が違うのか

Avatar Optimizer の使い分け Trace and Optimize と手動コンポーネント

従来の軽量化は、メッシュを結合したりポリゴンを削除したりした「別のモデル」を作って保存する方法でした。これは元に戻せず、衣装を1着足すたびにやり直しになります。AAO はコンポーネントをアバターに付けておくだけで、アップロードの瞬間に最適化された複製が作られます。シーン上のアバターはそのままなので、コンポーネントを外せば何もなかったことになります。この仕組みは NDMF(Non-Destructive Modular Framework)の上で動いており、Modular Avatar と同じ考え方です。

インストール

公式が案内する方法は、VPM リポジトリを ALCOM(推奨)または VCC に追加してから、プロジェクトにパッケージを追加する手順です。

1. https://vpm.anatawa12.com/add-repo を開き、リポジトリを ALCOM / VCC に追加
2. 対象プロジェクトの「Manage Project」から Avatar Optimizer を追加
3. Unity を開き、パッケージが読み込まれたことを確認

ほかにインストーラー UnityPackage を使う方法や、vrc-get/VPM CLI を使う方法も用意されています。VCC の基本操作は「VCC(VRChat Creator Companion)の使い方」を参照してください。ライセンスは MIT です。

引用記事VCC(VRChat Creator Companion)の使い方技術・制作

最初の一歩は Trace and Optimize だけ

公式チュートリアルの最初の手順は「アバターのルートに AAO Trace And Optimize コンポーネントを追加する」だけです。このコンポーネントはアバターのアニメーションを解析し、見た目を変えない範囲で次のような処理を自動で行います。

BlendShape の最適化: アニメーションで使われていない BlendShape を固定・削除・統合してシェイプキーの数を減らす。

未使用オブジェクトの自動削除: アニメーションを走査し、使われない GameObject・コンポーネント・テクスチャを削除する。削除したオブジェクトと対になる PhysBone も自動で切り替える。

PhysBone の最適化: 同一の PhysBone Collider を統合し、不要な Is Animated チェックを外し、挙動が変わらない範囲で複数の PhysBone を統合する。

Animator Controller の最適化: AnyState レイヤーや完全グラフ状のレイヤーを Entry-Exit 構造や BlendTree に変換し、空レイヤーを削除する。

Skinned Mesh Renderer の統合: 不必要に分かれているメッシュをまとめる。

テクスチャの最適化: UV パッキングとサイズ削減で、見た目に影響しない範囲でテクスチャを軽くする。対象は AAO 対応シェーダーを使うマテリアルに限られます。

付けたら、あとは VRCSDK のコントロールパネルから普段どおりアップロードするだけです。まずはこれだけで、どのくらいランクが動くかを見てください。何が効いているかを知るには「アバター軽量化の実践 パフォーマンスランクを上げる順番」が役に立ちます。

引用記事アバター軽量化の実践 パフォーマンスランクを上げる順番アバター

次の一手は Remove Mesh By BlendShape

チュートリアルで2番目に紹介されているのが AAO Remove Mesh By BlendShape です。素体(Body)メッシュに付け、衣装の貫通防止用シェイプキー(服の下の肌を縮めるもの)を選ぶと、そのシェイプキーで隠れる部分のポリゴンを削除します。見た目は変わらないのにポリゴン数が減る、最も分かりやすい効果が出る手順です。必要に応じて許容値(tolerance)を調整します。

それでも足りないときに手動で使うコンポーネントが、Merge Skinned Mesh(メッシュの明示的な統合)、Freeze BlendShape(シェイプキーの固定)、Merge PhysBone/Merge Bone(揺れものとボーンの統合)、Remove Mesh By Box/Mask/UV Tile(範囲やマスクでのメッシュ削除)です。1つ付けるごとにアップロードして効果を確かめる方が、まとめて付けて原因不明の崩れに悩むより速く終わります。

つまずきやすい点

SDK のランク表示は当てにならない: AAO はビルド時に適用されるため、VRCSDK コントロールパネルに表示されるパフォーマンス統計は最適化前の値です。公式は、正確な値を見るには anatawa12 氏の Gist Pack に含まれる「Actual Performance Window」を使うよう案内しています。

Android(Quest)の事前チェックで弾かれることがある: 最適化後なら上限内に収まる場合でも、SDK のビルド前検証が最適化前の値で判定して失敗することがあると公式に注記されています。

結果を目で確かめたいとき: アバターの GameObject を右クリックし、NDM Framework → Manual bake avatar を選ぶと、元のアバターを変更せずに最適化後の複製をシーンに作れます。どこが消えたかを確認するのに便利です。

Trace and Optimize の詳細設定: MMD ワールド互換(MMD 用の BlendShape を残す)や、ゼロサイズポリゴンの削除(一部のシェーダーやアニメーションを壊す可能性あり)といった詳細オプションがあります。既定値で問題が出たときだけ触るのが安全です。

よくある質問

Q. 有料ですか。
A. 無料で、MIT ライセンスのオープンソースです。開発は GitHub 上で行われています。

Q. Modular Avatar と一緒に使えますか。
A. どちらも NDMF 上で動く非破壊ツールで、併用は一般的です。VRCQuestTools の公式手順でも、Android 変換前に AAO Trace And Optimize を付けることが推奨されています。

Q. 見た目が変わってしまいました。
A. まず Trace and Optimize 以外の手動コンポーネントを外し、1つずつ戻して原因を特定してください。それでも直らない場合は、Trace and Optimize の該当オプションを個別にオフにします。

公式情報

Avatar Optimizer 公式ドキュメント(日本語、2026年9月10日確認):
https://vpm.anatawa12.com/avatar-optimizer/ja/

関連記事: 「アバターが灰色に? 表示設定とパフォーマンスランク(Performance Rank)の基本

引用記事アバターが灰色に? 表示設定とパフォーマンスランク(Performance Rank)の基本初心者ガイド