以下の内容はhttps://kxn4t.hatenablog.com/entry/2023/12/05/200641より取得しました。


【AAO: Avatar Optimizer】できる範囲でやるアバター最適化

Avatar Optimizer(AAO)が普及するにつれ、最適化やらないといけないなと思ってるんだけどどうやればいいのかよくわかんなくて…という声を聞く機会が増えてきた気がします。

自分の中でのアバター最適化で気をつけてるポイントとやってることがだいたい固まってきたので、参考になればと思いまとめてみます。

Blenderを使うなどしてもっとやれることはありますが、Unity上で簡単にできる範囲でしかやっていません。
継続して取り組めないとつらいので…。

✅この記事のポイント

必ずやる:AAO Trace And Optimizeをつける、1アバター1衣装、使わないメッシュはEditorOnly

効果大:lilAvatarUtilsでテクスチャ解像度を見直す

余裕があれば:見えない部分のメッシュ削除、TexTransTool、Merge Skinned Mesh

記事メンテ日:2026/01/28

※執筆時点のバージョン

  • VRC SDK:3.7.5
  • lilAvatarUtils:2.0.0
  • liltoon:1.8.5
  • Avatar Optimizer:1.8.6

📝この記事について

本記事はVery Poorを脱却することは目的にしていません。

日常的な改変の中で最適化すべきポイントを知り、Very Poorの中でもさらに重たいアバターが少しでも減ることを目的としています。

Very Poorを脱出することを目的とする場合、Avatar Optimizerを導入するだけではできません。Very Poorとなっている要因に対し、適切なツールを適切な箇所で考えて使う必要があります。

銀の弾丸はないです。地道にやっていきましょう。

パフォーマンスランクで気をつけるポイント

ご存知の方も多いと思いますが、VRChatにはパフォーマンスランクというものがあります。

creators.vrchat.com

この中でも個人的に気にしてる指標としては以下があります(2026年1月現在)。これらはCPUやGPUに負荷をかける主な原因となり、かつ簡単に改善することができるためです。

GPU負荷に関わる指標

  • テクスチャメモリ
  • 非圧縮サイズ

テクスチャメモリ、非圧縮サイズはGPUのVRAMの使用率に直結します。VRAMが枯渇した場合、FPSが著しく低下し、最悪の場合VRChat自体が落ちるなど、動作的に一番厳しい状態になります。

後述するVRAM使用量の制限設定によりVRAM上にロードされずにブロックすることができるようになったため、対処自体はできるようになりました。しかし逆に言えば、重たいアバターはブロックされて見てもらえなくなるということでもあります。
せっかく作り込んだアバターを見てもらうためにも、テクスチャサイズの最適化は重要です。

VRChatにおいて、VRAMが非常に重要であるというのはちもろぐさんの検証からも確認できます。

chimolog.co

CPU負荷に関わる指標

  • スキンドメッシュ数
  • マテリアルスロット数
  • PhysBoneコンポーネント数
  • ボーン数

最近はVRAMが潤沢なGPUが増えてきたこともあり、自分の体感だとGPUよりCPUがボトルネックになることが多くなってきました。
(最近CPUをRyzen 9950X3Dにしたんですが、FPSが相当伸びました。)

特にスキンドメッシュ数とマテリアルスロット数はドローコール(描画命令の回数)に影響し、CPU負荷に直結します。これらが多いとGPUの性能に余裕があってもFPSが出なくなることがあります。

後述するAAO Trace And Optimizeを使えばメッシュの統合やマテリアルの整理を自動でやってくれるので、とにかくTrace And Optimizeをつけておくことが大事です。


これらの指標はこれから記述するポイントをやっていくことで、比較的簡単にPoor以下に持っていくことができます。

ポリゴン等でVery Poorのままだったとしても、実際の負荷を確実に下げることができるため、やらないよりはやったほうが周りのフレンドや関わる方々のためになります。

何やってもどうせVery Poorだからな~ってなったとしても、必ずテクスチャメモリだけは気にするようにしましょう。

目標値の目安

  • テクスチャメモリ:100MB以下が理想、150MB死守
  • ダウンロードサイズ:35MB以下

個人的な感覚ですが、テクスチャメモリは150MB死守を目標にして、それ以外はまぁ減ればいいか、位の感覚でやっています。ただ、100MB超えてくると重いなとは思っています。
また、一応ダウンロードサイズも35MBは超えないように調整する努力はしていますが、こっちはあんまり気にしなくていいと思います。

そもそも素体をきっちり最適化していると、服を着せる時点ではあまり頑張ることはありません。

容量制限について

2024年7月16日頃からアバターのダウンロードサイズとVRAM使用量の制限が行われています。

  • ダウンロードサイズの制限:500MB → 200MB
  • VRAM使用量(非圧縮サイズ)の制限:1.2GB → 500MB

VRAM使用量(非圧縮サイズ)はメッシュ等も含めアバター全体での使用量になります。

また、制限に先駆けてダウンロードサイズ同様にアバターのVRAM使用量(非圧縮サイズ)での表示制限が可能になり、VRAM上にロードされることなく負荷軽減ができるようになりました。

ask.vrchat.com

SDK3.7.0で容量を超えているアバターはアップロードすらできなくなりました。2024年11月1日以降、すでにアップロード済みのアバターにおいても使用できなくなっています。ちゃんとダイエットしましょう!

2025年8月8日頃からテクスチャメモリの値がアニメーションを考慮した値になりました。

いままでのテクスチャメモリの計算はアニメーションによるマテリアル変更等でのテクスチャ使用は換算されていませんでしたが、このアップデートですべての使用テクスチャが計算に含まれるようになりました。

基本編

まずは特別なツールを使わなくてもできる基本的なことから。

ボーンを統合できるツールで衣装を着せる

Modular AvatarやAvatarToolsなど、衣装のボーンをアバター側に統合できるツールで衣装を着せることで、ボーン数の増加を抑えることができます。

modular-avatar.nadena.dev

Modular Avatarを使った衣装着せ替えについては以前まとめた記事があるので、よかったら参考にしてみてください。

kxn4t.hatenablog.com

1アバター1衣装にする

1つのアバターに複数の衣装を入れず、1アバター1衣装にするだけでテクスチャメモリやボーン、PhysBoneなどの負荷を下げることができます。

昔は複数衣装を入れてるのが当たり前だったらしいですが、その時代を自分は知らないので全部1アバター1衣装でやっています。なんならアニメーションを組むのがめんどくさくて、衣装の色違いやパーツ違いで別アバターにしてたりします…(これは単にめんどくさがり)。

使わないメッシュはEditorOnlyにする

使わないメッシュをDisabledにしただけだとアップロードされちゃいます。
EditorOnlyタグにすることで、VRChat上にアップロードするときに含まれなくなります。

後述するAvatar OptimizerでもDisabledなメッシュやオブジェクトは消してくれますが、アバター素体側の服などは明示的にEditorOnlyにするのがおすすめです。アバター自体に服の切り替えアニメーションが組み込まれていることが多く、FXレイヤーで参照されたままだとAvatar Optimizerでは消されないためです。

ショートカットキーで楽にEditorOnlyにできる君も作ったので、よかったら使ってみてください。
他にもいろんな便利ツールが入っています。

kanameliser.booth.pm

lilAvatarUtils編

lilAvatarUtilsは、アバターに含まれるテクスチャやマテリアルなどの一覧表示、セーフティー発動時の見た目の確認、不要なアセットやプロパティの削除などができる便利なツールです。

github.com

ここではポイントを絞って説明するので、より詳しい内容が知りたい方はlilさんの記事を参考にしてください。

qiita.com

インストール方法

lilToonをVCC経由でインストールしている場合はすでにリポジトリが追加されているので、Manage Projectからそのまま追加できます。

まだリポジトリを追加していない場合は、以下のページからリポジトリを追加してください。
余談ですが、VPMリポジトリがあるのであれば、VCCで管理・インストールするようにしましょう。

github.com

テクスチャの解像度を下げる

アバター最適化において、一番やっておきたいことです。

テクスチャの解像度を下げることでテクスチャメモリを減らすことができ、ダウンロードサイズも小さくなります。
lilAvatarUtilsを使ってテクスチャメモリを減らしていきましょう。

lilAvatarUtilsは[Tools]→[lilAvatarUtils]から開くことができます。

ジンゴさんのマヌカちゃんを見てみましょう。何もしていない場合のテクスチャメモリは40MBです。

解像度を変更したいテクスチャの最大解像度の値を変更して、適用をクリックすれば変更できます。
こんな感じでテクスチャサイズを変更していきます。

どこを下げるか

4Kテクスチャは不要で全部2K以下でいいという人もいますが、自分の場合は要所要所で4Kテクスチャも使いつつ納得できる落とし所を見つけています。

基本的な方針としては以下のような感じです。

  • 容量を割く:顔まわり、バストアップで目立つ部分
  • 解像度を下げる:足元、鞄などの装飾品
  • 極端に下げてOK(256~512):Matcap、マスク用テクスチャ(細かい模様がないもの)

髪の毛や顔まわりのテクスチャ(特に暖色系)は解像度を下げるとグラデーションが気になることがあります。その場合、QualityをHigh Qualityにすると良くなることが多いです。ただし、High Qualityはビルド時の圧縮が効きにくくなるので、ダウンロードサイズが大きくなることがあります。

Matcapやマスク用のテクスチャは小さくしても問題がない場合が多いです。
細かい模様をマスクテクスチャで描いているものは下げづらいですが、直線や曲線で大雑把に囲っているだけのようなテクスチャは256〜512くらいまで極端に下げても大丈夫です。

これは個人の感覚ですが、各メインテクスチャのサイズはこんな感じでざっくり落としちゃうことが多いです。

  • 上着やスカートなどメインになりうるものは2K
    • ワンピースなどで面積が大きい場合は4Kも視野
  • ニーソは1K~2K
  • 靴は512~1K
  • その他装飾品は512~1K
解像度を下げても容量が減らないとき

解像度を下げても容量が減らないときは、フォーマットがAutomaticになっていないかもしれません。テクスチャを選択し、InspectorからFormatをAutomaticに変更しましょう。

それでも減らないときはPC用の設定でオーバーライドされているかもしれません。PCのタブを選択し、オーバーライドのチェックを外しましょう。

使ってないテクスチャが残ってないかチェック

一覧で見ていると、たまに色が違うテクスチャが残っていたりします。色のバリエーションが複数用意されているマテリアルの輪郭線とかで残りがちです。すべて同じ色のテクスチャにするなどして、不要なテクスチャは取り除きましょう。

また、マテリアルで使っていないプロパティ(発光や光沢設定など)にテクスチャが割り当てられている場合も、不要なテクスチャが残って容量が無駄に大きくなっていることがあります。

マテリアルのクリーンアップ

lilAvatarUtilsの[ツール]→[マテリアルのクリーンアップ]で不要な設定をすべて削除できます。クリーンアップすると、チェックが外れてオフになっている設定はすべて初期値に戻るので、そこだけ注意してください。

自動でクリーンアップする

毎回手動でやるのは面倒なので、ビルド時に自動で実行させるのがおすすめです。

アバターのルートにlilycalInventoryのLI MaterialOptimizerコンポーネントをつけておくと、非破壊で自動的にやってくれます。光沢設定とかオフにしてるけど後で使うかもしれないし残しておきたいな…ってときも残したままにできるので便利です。

lilxyzw.github.io

(番外編)明るさがアバターと衣装で合ってるかチェック

アバター最適化とはちょっと違いますが、lilAvatarUtilsのLightingタブからアバターと衣装の明るさが合ってるかどうかも確認できます。

明るさについてはまとめた記事を書いたので、そちらも参考にしてください。

kxn4t.hatenablog.com

明るさがおかしい場合

lilToonの場合は[ライティング・明るさ設定]の下限と上限を素体側と合わせましょう。

おすすめの設定方法

明るさを揃えるには以下の2つを設定するのがおすすめです:

  • マテリアルの明るさを揃える:Light Limit Changer for MAで設定
  • 明るさの基準(Bounds, Root Bone, Anchor Override)を揃える:MA Mesh Settingsをアバタールートに設定

azukimochi.github.io

Light Limit Changer for MAは非破壊でビルド時に明るさを揃えてくれるため、Prefab Variantのルートに適用しておけば明るさのチェックを毎回する必要がなくなります。Exメニューからアバターの明るさを変更できたりもして便利です。

MA Mesh Settingsについては以前の記事で紹介しています。

【初心者向け全部盛り】Prefab Variantで管理しつつModular Avatarで衣装の着せ替えをやってみよう - 一年中こたつ出てる

⚠️lilToonのFix lightingについて

lilToonではアバタールートを右クリック→[liltoon]→[Fix lighting]でも明るさを一律に揃えられますが、Bounds, Root Bone, Anchor Overrideも変更されてしまうため、個人的にはおすすめしていません。

(番外編)セーフティに引っかかってるときの見え方チェック

LightingタブのSafety Onにチェックを入れることで、Safetyに引っかかってるときの見え方をチェックできます。Transparentを使っているときはだいたいおかしくなります。

おかしい場合は、Custom Safety Fallbackにチェックを入れてShader Typeを設定しましょう。

どれを設定するといいのかは体系的にあるわけではなく、極論見た目が近いものを選ぶということになるみたいです。

creators.vrchat.com

どのShader Typeを設定すればいい?

現時点ではToonStandardに設定するのがおすすめです。

VRCSDK3.8.1で追加されたToonStandardはlilToonに近い質感表現ができるようになっており、多彩な表現が可能です。Unlitにすると表示はされますが、ライティングの影響を受けないため暗いところでも明るくなってしまいます。

VRChat内で確認する

2024/3/27のアップデートにて、VRChat内でもフォールバックシェーダーの見え方が確認できるようになりました。メニューボタン長押しで開ける丸いアクションメニューから、Options→Avatar→Fallback Shadersをオンにすると確認できます。

Avatar Optimizer編

非破壊でアバターを最適化できるツールです。簡単にアバターの最適化ができ、メッシュの貫通もサクッと直せるので、もう手放せないツールになっています。

vpm.anatawa12.com

Actual Performance Window

Avatar Optimizerはビルド時に動作するため、SDKのパフォーマンスランク表示が当てにならなくなります。 Actual Performance Windowを一緒に入れておくと、ビルド後の実際のパフォーマンスランクを確認できるのでおすすめです。

vpm.anatawa12.com

Actual Performance Windowを使うには、別途anatawa12’s gist pack for Unityを導入し、機能を有効にする必要があります。

vpm.anatawa12.com

vpm.anatawa12.com

とにかく簡単に最適化する

Trace And Optimizeコンポーネントをつけるだけです。

とにかくこのコンポーネントをつけましょう。

アバターのルートオブジェクトに追加するだけで、以下の最適化を自動で行ってくれます:

  • 使われていないオブジェクトやボーンの削除
  • BlendShapeの固定・削除
  • メッシュの自動マージ(1.7.0~)
  • アニメーターの最適化(1.7.0~、Unity2022限定)
  • テクスチャの最適化(1.8.0~)

(anatawa12さんいわく、テクスチャの最適化機能はテクスチャの半分の面積が使われていない場合有効になるとのことです)

とにかくこのコンポーネントをつけましょう。

vpm.anatawa12.com

Prefab Variantで管理している場合、ルートのVariantに適用してしまうのがおすすめです。

Trace And Optimizeをつけておくだけで、スキンドメッシュ数やマテリアルスロット数などのパフォーマンスランクが向上します。パフォーマンスランクが向上しなくとも、確実に負荷軽減につながるので、つけておくに越したことがないです。
何かしらのギミックがうまく動かなくなった場合はバグなので報告してください。報告がないと直せるものも直せません…。

Trace and Optimizeは「見た目に絶対に影響させてはならない」という前提の下で、かなり慎重に作られています。 そのため、見た目に影響が出たり、何らかのギミックが機能しなくなったりといった問題が発生した場合はすべて、例外なくAAOのバグとなります。 従って、問題が起きた際は報告していただければ、出来る限り修正いたします。

見た目や動作に影響がない範囲で最適化を行うように細心の注意を持って作られているため、一部のメッシュは自動での統合対象外となる場合があります。さらなる最適化を行いたい場合は、後述するMerge Skinned Meshコンポーネントを使いましょう。

⚠️MAリアクティブコンポーネントとの相性

現時点では、Modular AvatarのリアクティブコンポーネントとAAO Trace And Optimizeには相性問題があります。

MAのObject ToggleやShape Changer、Material Setterなどのリアクティブコンポーネントを使うと、対象のメッシュがTrace And Optimizeで統合されなくなります。MA側で生成されるアニメーションの構造上、AAOが統合対象として判断できないためです。

普段使いならそこまで気にしなくていいですが、イベント等で最適化を意識する場合は、リアクティブコンポーネントの使用範囲に気をつけるか、AvatarMenuCreatorなどアニメーションベースでの実装を検討してください。

詳しくはリアクティブコンポーネントの記事を参照してください。

メッシュを統合する

Merge Skinned Meshコンポーネントを使うと、複数のメッシュを1つにまとめてスキンドメッシュ数やマテリアルスロット数を減らせます。

vpm.anatawa12.com

💡1.8.0以降はTrace And Optimizeでほぼ自動化

1.8.0以降はほとんどのメッシュが自動でマージされるようになったため、アニメーションによるオンオフ操作を行わないのであれば、このコンポーネントを使わなくても十分な最適化が行われます。

テンプレートとなる素体用アバターの準備や、さらなる最適化を行いたい場合に使いましょう。

注意点

なんでも統合していいというわけではなく、顔のメッシュを統合してしまうと逆に負荷が増えてしまうため、顔だけは統合しないようにする必要があります。
Unity2022にて負荷増大の問題が解決したため、今は統合しても問題なくなりました。Unity2019を使用する場合のみ、引き続き気をつける必要があります。

また、マージ後のメッシュのBoundsやRoot bone、Anchor Overrideは個別で設定する必要があるため、MA Mesh Settingsで設定してあげるのがよいです。

【初心者向け全部盛り】Prefab Variantで管理しつつModular Avatarで衣装の着せ替えをやってみよう - 一年中こたつ出てる

統合したとしても統合前のオブジェクトに対してのマテリアルの変更やBlendShapeの変更は追従してくれるため、色変更やシェイプキーの変更アニメーションを組むのは今まで通りやれば問題ありません。

ただし、メッシュのオンオフに関するアニメーションだけは追従してくれません

全部統合したらアニメーションで服のオンオフができなくなった!使い物にならん!みたいなのをちょくちょく見るんですが、オンオフしたい単位でまとめて、まとめたオブジェクトをオンオフするアニメーションを組めばうまく動きます。

例:オンオフしたい単位でまとめる

サフィーちゃんを例に、カーディガンは単体で、靴と靴下はまとめてオンオフしたい場合の設定を見てみましょう。

空のオブジェクトを作成し、それぞれにAAO Merge Skinned Meshコンポーネントを追加して、メッシュのあるオブジェクトを要素に追加していきます。どうせなら身体とかも合体させちゃうかということで_Othersオブジェクトにまとめてみました。

あとは、カーディガンはSailorLoliRe.Cardiganオブジェクトを、靴と靴下は_Socks_Shoesオブジェクトをオンオフするアニメーションを組めばOKです。

✅1.8.0以降はオンオフアニメーションも自動統合

1.8.0より、個々のオブジェクトのオンオフアニメーションがすでにある場合、自動的にアニメーションを統合してくれるようになりました。新しくオンオフアニメーションを作る必要がなくなりました。

服で見えない素体部分のメッシュを削除する

服で隠れて見えなくなるところのポリゴンを削除することで、負荷を軽減できます。貫通対策としてシェイプキーで絞ることが多いと思いますが、絞る代わりにポリゴン自体を消してしまいましょう。

用途に応じて以下のコンポーネントを使い分けます。

Remove Mesh By BlendShape

いままでは絞っていただけのシェイプキーでポリゴン自体を削除できます。一番よく使うコンポーネントです。

vpm.anatawa12.com

消したいところがあるオブジェクトにAAO Remove Mesh By BlendShapeコンポーネントを追加し、消したいシェイプキーにチェックを入れるだけです。

💡MAのShape Changerでも同じことができる

MAのリアクティブコンポーネントであるShape ChangerをDeleteモードで使うと、同じ効果が得られます。衣装のオンオフに連動してシュリンクさせたい場合はShape Changerが便利です。

詳しくはリアクティブコンポーネントの記事を参照してください。

Remove Mesh in Box

ボックスで囲んだ範囲のポリゴンを削除できます。シェイプキーがない部分を消したいときに便利です。

vpm.anatawa12.com

例えば、サフィーちゃんはアホ毛を消すシェイプキーがないので、帽子をかぶると貫通してしまいます。アホ毛をボックスで囲んであげれば簡単に消せます。

このように複数のボックスで囲むこともできます。

Remove Mesh By Mask

マスクテクスチャで指定した範囲のポリゴンを削除できます。
1.7.0で追加されました。

vpm.anatawa12.com

1.7.1にてマスクテクスチャを作成する機能も追加されました。リアルタイムでプレビューしながら消したいところを塗れるので、細かい調整がしやすいです。

Remove Mesh in Boxでは消しづらかった細かなメッシュも、このコンポーネントなら狙ったところだけ非破壊で消せます。
マスクテクスチャを用意することで狙ったメッシュのみを消すことができるようになり、髪のメッシュにひとまとまりになっているツインテールやリボンなども柔軟に消せるようになりました。

Remove Mesh By UV Tile

UVタイルで指定した範囲のポリゴンを削除できます。消したい箇所がマテリアルで完全に分かれている場合に便利です。
1.8.0で追加されました。

vpm.anatawa12.com

例えば、メッシュは1つだけどパーツごとにマテリアルが分かれている服で、タイツだけを消したい場合、

該当のマテリアルスロットの0番のタイルにチェックを入れると、そのマテリアルが設定されている箇所をサクッと消せます。

もともとはPoiyomiやlilToonのUV Tile Discard機能を使用してモデルの一部が隠せるようになっている場合に使用が想定されているコンポーネントですが、このようにマテリアル単位でごそっと消すのにも使えます。

PhysBoneコンポーネントを統合する

Merge PhysBoneコンポーネントを使用することで、同じ設定値のPhysBoneコンポーネントをまとめることができ、コンポーネント数を減らせます。スカートなどで個別にPhysBoneが設定されている場合に有効です。

vpm.anatawa12.com

例えば、スカートのルートボーンではなく、各ボーンに個別に同じ設定値のPhysBoneコンポーネントが設定されている場合、これらをひとつにまとめることができます。

空のオブジェクトを作成し、AAO Merge PhysBoneコンポーネントを追加して、同じ設定値を持つPhysBoneコンポーネントが設定されているオブジェクトを追加していくだけです。

注意点
まとめたPhysBoneコンポーネントは同時に掴むことができない

まとめたPhysBoneコンポーネントでは両手や他人から同時に掴むことができなくなります。
スカート等両手で掴みたい場合は、左右でコンポーネントを分けてマージするなど考慮する必要があります。

ちなみに、スカートを片手ずつだと持てるのに両手で同時に持てないなーってときはスカートのルートボーンで1つのPhysBoneコンポーネントで設定されていることから起きています。

PhysBoneの制限やパフォーマンス

1つのPhysBoneコンポーネントは、一度に256を超えるボーンに対して設定できません。

creators.vrchat.com

超えてしまった場合、アバターのビルドやアップロードに失敗することはないですが、PhysBone自体が動作しなくなり、揺れなくなってしまいます。

また、必ずしも1つにまとめることがパフォーマンス上いいというわけではありません。
複数のコンポーネントを使用すると、スレッドで処理できるためです。

creators.vrchat.com

128を超えるボーンに対して影響する場合は分割を考えましょう。

例で挙げていたスカートは1つ10ボーン×26=260ボーンとなっていました。
そのため、1つにまとめると動作せず、2つに分けても128を超えるので最終的に4つに分けてマージしてみました。
26コンポーネントが4コンポーネントになっただけでも十分です。

こんな感じでやってます

参考までに、自分はこんな感じでやっていますという雑にまとめた図も共有しておきます。

2024/5/22時点ではこんな感じになっています。

自己流なので、他の方のアバターがどうやって管理されてるのか気になります…。

もっと軽量化したい

ここまでの内容でも十分な最適化ができますが、さらに軽量化したい場合に有効なツールを紹介します。

ポリゴンを削りたい

AAOやMA Shape Changerでメッシュを削りきったけど、もうこれ以上削るところがない…となったときは、ポリゴンを削減するツールが有効です。

現時点では、Meshia Mesh Simplificationがおすすめです。

metacul-frontier.com

ndmf-mantis-lod-editorやlilNDMFMeshSimplifierでもポリゴンを削れますが、NDMF動作処理の観点からMeshiaがおすすめです。 lilNDMFMeshSimplifierはすでにメンテナンスが終了しており、Meshiaへの移行が推奨されています。

metacul-frontier.com

ポリゴン数が負荷に占める割合はそこまで多くはないので、ここを頑張るのであればMerge Skinned Meshでメッシュやマテリアルスロット数を減らすか、後述するTexTransToolでマテリアル数を減らしたりするほうが効果は高いです。

テクスチャのムダやマテリアル数を減らしたい

衣装の一部だけを使っている場合(ケモ耳だけ、メガネだけ、上着だけなど)、TexTransToolを使うとテクスチャのムダな部分を省いてテクスチャメモリやマテリアルスロット数を削減できます。

ttt.rs64.net

服を組み合わせて使っている場合は特に有効です。質感を維持しながらテクスチャの解像度を落とすことができます。
アバターのデフォルト衣装だとパンツだけ使うパターンが結構多いと思うんですが、そういったときはTTTを使って減らしておくのがいいですね。

最適化の結果を見ながら調整したい

AAOやMA、Meshia Mesh Simplificationでポリゴンを削ったり、TexTransToolでアトラス化してマテリアル数を削ったりしたとき、どれくらい変化してるか見ながら調整したいことが多いと思います。

そんなときは、自分が作ってるKanameliser Editor Plusを使ってもらえると便利です。
NDMFプレビューのメッシュの状態を表示してくれるので、どれくらい減ってるかがわかりやすいです。

kanameliser.booth.pm

で、何からやったらいいの?

長々と書いてしまいましたが、簡単に始められて効果の高い順にまとめておきます。

基本(必ずやる)

  • 1アバター1衣装にする
  • ボーンを統合できるツールで衣装を着せる
  • 使わないメッシュはEditorOnlyにする
  • Avatar OptimizerのTrace And Optimizeコンポーネントをつける

最低限(これだけでもかなり効果がある)

  • lilAvatarUtilsでテクスチャの解像度を見直す

正直なところ、テクスチャの解像度の見直しは服を着せるときに毎回必ず確認するクセをつけたほうがいいです。

余裕がある人

  • 服で見えない素体部分のメッシュを削除する
  • TexTransToolでテクスチャのムダを省く

もっと余裕がある人

  • Avatar OptimizerのMerge Skinned Meshコンポーネントでさらにメッシュを統合する
  • Avatar OptimizerのMerge PhysBoneコンポーネントでまとめられるPBを統合する
  • Meshia Mesh Simplificationでポリゴンを削る

その他はさらに余裕が出てきてからで良いと思います。まずはできるところからやっていきましょう。

さいごに

さまざまな集会に参加していると、VRAM16GBでも全然足りない集会が多々あります。

いつも一緒に遊んでいるフレンドの中でもスペックが厳しい人がいます。人が増えるたびに重そうに苦しんでいるのを見て、どうせなら気持ちよく一緒に遊びたいなと思うようになりました。

そういった経験から、自分はなるべくアバターの最適化をやるようになりました。どうせならフォールバックアバターではなく、かわいく着飾った自分をもっと見てほしいですしね。

自分もめんどくさがりなので、継続して取り組める程度の最適化しかやっていませんがやらないよりはマシということで、ちょっとでも気にしてくれる人が増えるといいなと思っています。

2024年のアップデートにより、VRAM使用量の制限設定でVRAMにロードされることなく表示制限ができるようになりました。そのため、重たいアバターを使っていると表示されないことが増えていくことでしょう。

頑張って作り込んだアバターを胸を張って見てもらえるよう、今一度最適化をがんばってみませんか?


ワールドアセット「ヌックのある家」

大きすぎず小さすぎず、ほどよいサイズ感。木の温かみを感じられる、こぢんまり居心地のいい空間。
ミラーで仕切ればオープンな空間からプライベートな空間に早変わりするヌックスペース付きです。


関連記事

kxn4t.hatenablog.com

kxn4t.hatenablog.com

kxn4t.hatenablog.com

kxn4t.hatenablog.com

kxn4t.hatenablog.com




以上の内容はhttps://kxn4t.hatenablog.com/entry/2023/12/05/200641より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14