はじめに:ヒロが伝えたい「最適化」の大切さ
こんにちは!VRChat沼住人のヒロです。
みなさんは、せっかくこだわって改変したお気に入りのアバターが、
「Very Poor」ってだけでモバイル勢に見えなかった…なんて経験ありませんか?
僕の相棒ラスクも、改変しすぎて一時は超重アバター認定されちゃいました(笑)
でも、ちゃんと最適化すれば大丈夫!
見た目はそのまま、中身はスリムに生まれ変わらせて、
フレンドに優しい推しアバターにしちゃいましょう。
この記事では、僕が何度も失敗しながら覚えたコツを、
全部まとめてわかりやすくお届けします!
一緒にラスクで試してみましょう!
アバターランクと軽量化
VRChatのアバターには、「パフォーマンスランク」という名前の成績表みたいなものがついてます。
Excellent → Good → Medium → Poor → Very Poor の順に負荷が低いんですね。
クオリティの高い改変ほど、「Very Poor」になりがち…。
そうなると、モバイルユーザーには透明人間に見えちゃうし、
イベントで「重いアバターは控えてください」って言われるのも納得です。
だからこそ最適化が大事なんです!
ラスクも「Very Poor」から「Good」に昇格させた時、
フレンドに「軽くなったね!」って褒められて、
めちゃくちゃ嬉しかったなぁ。
Avatar Optimizerを導入しよう
さて、最適化のお供といえば「Avatar Optimizer」。
これはヒロ的に、VRChat改変ツール界の革命児だと思ってます!
Avatar Optimizer
https://booth.pm/ja/items/4885109
導入方法は二つあります。ひとつは、上記サイトからDLして、VCC(VRChat Creator Companion)を起動して、
プロジェクトに追加する方法です。
ここで、VCCって何ぞや?って方は、僕の別記事『VCCって何なの?』を先に読んでみてください。
迷子にならずに進めるはずです!
ただ、僕がお勧めしたいのは、VCCに追加する方法です。
VCCに追加する方法
まずは、VCC(VRChat Creator Companion)を最新版にアップデートしてください。古いバージョンのままだと、後々不具合が出てしまうかもしれませんので、最新のものを使うことをお勧めします。

次に、以下のURLを開きましょう:
https://vpm.anatawa12.com/add-repo
これを開くと、VCCが自動的に立ち上がります。

VCCが起動したら、その指示に従ってレポジトリを追加してください。追加する際に、「レポジトリが既に追加済みです」と表示されることがありますが、その場合はエラーとして無視してOKです。(VCC 2.1.1時点)
最後に、VCCの画面から「AvatarOptimizer」を追加しましょう。これで、VRChatアバターの最適化が簡単にできるようになりますよ!
AvatarOptimizerに入っているもの
AvatarOptimizerは様々な機能があります。以下に表示されているものにそれぞれの機能があります。

全部の機能を使うわけではなく、とりあえず一番簡単で便利な 「AAO Trace And Optimize」
を利用することにします。
AAO Trace And Optimizeを一発設定!
https://vpm.anatawa12.com/avatar-optimizer/ja/docs/reference/trace-and-optimize
ヒロが一番推してる機能がこれ!
「AAO Trace And Optimize」さえ付ければ、
不要なBlendShape、PhysBone、ボーンなどが
いい感じにまとめられて最適化されます。
左端のラスクのルートを選んで、

(写真はシアンになります。ご了承ください)
右下端にあるInspectorの一番下にある「Add Component」ボタンをクリックすると
AvatorOptimaizerからいくか もしくは

「AAO Trace And Optimize」を検索して追加。

以上!これだけ!あとはVRChatにアップロードする時に自動でやってくれます。
Actual Performance Windowで軽量化チェック
どのくらい軽くなったかって、気になりますよね。
そこで役立つのが「Actual Performance Window」。
https://vpm.anatawa12.com/gists/ja/docs/reference/actual-performance-window/
最適化前と後を比べて、どのくらいPCに優しくなったかが一目でわかります!
ヒロは必ずビフォーアフターを見比べて、
ラスクのダイエット成功をニヤニヤ眺めてます(笑)
といっても、最適化したからといって、必ずしも軽量になっているとは限りません。
最適化=軽量化ではないのです。軽量化の近道は、余分な部分の処理です。
Remove Mesh By BlendShapeで隠れ部分を処理
https://vpm.anatawa12.com/avatar-optimizer/ja/docs/reference/remove-mesh-by-blendshape
BlendShapeを指定すると、それによって動かされる頂点やポリゴンを削除できるのが、Remove Mesh By BlendShapeです。服で隠れた見えない部分のメッシュを指定して削除すると、見た目に影響しないまま、描画やBlendShapeの負荷を減らして軽量化できます。

「AAO Remove Mesh By BlendShape」を使えば、
ただ小さくするんじゃなくて、指定した無駄なポリゴンを完全に削除できます!
やり方はカンタン!
不要部分のオブジェクトを選んで
「Add Component」で「AAO Remove Mesh By BlendShape」を追加。
あとはプレビューを見ながらチェックを入れればOK!
Remove Mesh By Maskで細かい調整も自由自在

https://vpm.anatawa12.com/avatar-optimizer/ja/docs/reference/remove-mesh-by-mask
「ここだけ消したい…!」って時に便利なのが
「AAO Remove Mesh By Mask」。
ラスクのアホ毛だけピンポイントで消す、
なんてのも余裕です!
マスクテクスチャエディターで消したい部分を塗りつぶすだけ。
プレビューもリアルタイムだから失敗なし!
Remove Mesh in Boxで広範囲を一気にカット
https://vpm.anatawa12.com/avatar-optimizer/ja/docs/reference/remove-mesh-by-box
大きなパーツをズバッと切るなら、
「Remove Mesh in Box」の出番です!

箱の形で消す範囲を決めて、
内側か外側かを選ぶだけ。
ラスクのカーディガンの袖を外して半袖化するのもお手の物です。
数値で細かく調整もできるから、
ヒロみたいな不器用さんでも安心ですよ(笑)
PhysBoneをまとめて負荷を下げよう
最後はPhysBoneの最適化!
同じ設定の揺れパーツが複数ある場合、
「AAO Merge PhysBone」で1つにまとめて負荷を減らせます。

https://vpm.anatawa12.com/avatar-optimizer/ja/docs/reference/merge-physbone
ただし、まとめると左右の耳を別々に掴むとかはできなくなるので、
そこだけ注意!
ラスクも耳をまとめて、イベント用軽量バージョンを作ってます。
これでフレンドのPCも安心♪
別プラットフォームに持ち出すときは、Manual Bakeで手動で最適化
Avatar Optimizerの便利ポイントは、
普段は自動で最適化してくれることなんですが、
VRMエクスポートとかで別プラットフォームに持ち出すときは、
手動で「Manual Bake」が必要です!
やり方は超シンプル。
ラスクのルートを選んだら、Tools > MDM Framework > Manual bake avatar
をクリック!

すると、「ラスク(Optimized)」がポンッと増えてます。
これをエクスポートすれば完璧!
無駄な重さが消えた、最適化ラスクの完成です。
まとめ:ラスクとヒロと最適化、これで完璧!
ここまでお疲れさまでした!
これであなたのアバターも、
見た目そのままでフレンドに優しいエコアバターに変身です。
僕も最初は全部手探りで苦労しました…。
だからこそ、この記事が役に立てば嬉しいです!