アバター軽量化(最適化)たのしいよ!
これを言いたいがためにネタ不足で記事を出しては非公開にしてたブログを再起動しました
普段は別の界隈でぷかぷか漂ってる、VKet前後に浮上してはフレと遊ぶくらいのDesktop/Quest単機勢です
ようやくVCCを導入したら革命が一個や二個じゃないくらい起きてたのでびっくりしました
※この記事は『VCC/ALCOM』や『Modular Avatar』や『lilToon』等を導入してる人向けのメモです
・そもそも軽量化(最適化)ってなんのためにするの?
ここは各人によって意見が分かれるとこですが、個人的には
「使ってないBoneやテクスチャや不可視メッシュがあったら「もったいないな~」てならない?」
と言った気持ちで友人に「これやっとくといいよ」と勧めてます
あと、イベント(改変集会系)や友人との集まり(ゲームワールド中心)に行く機会の多さもきっかけかも
と言う訳で、今回は「非使用Boneやテクスチャや不可視メッシュがあったらもったいない!」精神でお送りします
・初級編前提ツール
『AAO: Avatar Optimizer』
だいたいがここに入ってます
『lilAvatarUtils』
VCC経由で『lilToon』を入れるとおまけで付いてくるはずのツール
ポリゴン数とかBone数とかテクスチャの大きさとか色々可視化されます
この二つを主軸に【初級編】を始めますが、補足編として
VCC経由で『AAO: Avatar Optimizer』を入れるとおまけで付いてくるであろう
『anatawa12’s gist pack for Unity』の中に内包されている『Actual Performance Window』を使うと
ビルドされる度に軽量化度合が可視化されてもっと楽しくなるかもしれません
タブのTools/ツールから『anatawa12's gist selector』を起動→『Actual Performance Window』を選択→Apply Changesクリックで有効化されます
・初級編:『AAO Trace And Optimize』を入れよう
わからない時はこれをアバターのプレハブにコンポーネントを入れるだけでいいです
非使用状態のBoneやメッシュやシェイプキーを省いてくれる優れもの
なんかもう色々をオートマチックにざっくりやってくれる。最高ですね
・初級編:『lilAvatarUtils』でテクスチャサイズを変更しよう
初級編では「テクスチャ」の項目のみに触れます
よくわからない時は解像度のとこが「4096」になってるテクスチャを「2048」にして
圧縮品質を「High Quality」にすればいいです(High Qualityにしなくていいテクスチャもある)
さらに個人の主観強めで細かく区分けすると
顔、服全体等の大きいテクスチャ:2048
細かいノーマルマップ:2048(High Quality)
小さいアクセやマテリアル:512
マスク(細かくなければ):256
それ以外:1024
と言った風に分けてます
自分は胴体の肌部分も2048にしてますが、そこは好みによる所かなぁ
・初級編:『AAO Remove Mesh By BlendShape』で不可視メッシュを消そう
大抵のアバターには備わっていると思われる「素体貫通防止シェイプキー」
あれって素体を絞るだけなので、実際はポリゴン数は削減されてないんですよね確か……
このツールは対象にしたいメッシュにコンポーネントを入れると、素体貫通防止シェイプキーの対応箇所を消してくれる優れもの
今までの素体絞りと近い要領で使えると思うので、オススメです
・中級編追加前提ツール
『TexTransTool』
元データに触らずテクスチャを導入できるツール
……なのだが、筆者は後述の『TTT AtlasTexture』しか使っていない
(外部ソフト経由でテクスチャ変える事に慣れてしまったのである)
・中級編:『Merge Skinned Mesh』でメッシュ統合してみよう
確かに『AAO Trace And Optimize』にもメッシュ統合はあります
しかし、これから「これとこれ統合して欲しいなぁ」と思う瞬間が生まれるだろう
そんな時、役立つのが『Merge Skinned Mesh』なのです
とりあえずBody(顔メッシュ)以外をばーっと選んで統合すると良いです
マテリアルも自動で統合してくれるし、シェイプキーも被り防止自動リネーム機能(ON/OFF選択可)がある
しかもアクセでたまに見る(筆者比)静的メッシュも統合してくれる最強ツールです
私はこれのおかげでMD_Nail復帰しました
(基本はネイルテクスチャ勢なのでネイルテクスチャも増えて欲しい……)
何度でも言いますが、『AAO Trace And Optimize』にもメッシュ統合機能はあるので
「かゆいとこに手が届かない!」て時に活用するのをオススメします
・中級編:『TTT AtlasTexture』で使用テクスチャ(マテリアル含む)を統合しよう
前提
『lilToon』で色味を変えているマテリアルは『lilToon』の最適化の項目にある「全て焼き込み」を使うのをオススメします
マテリアルの参照テクスチャが変わるので、マテリアル複製してから焼き込みするといいかも
アバターのデフォルト衣装の一部(インナーや髪飾りや靴)を使っている時
前髪と後髪で別々のアセットを使っている時
「使われてない不可視のテクスチャ」が大半を占めてしまう事があります
『TTT AtlasTexture』は作業データのマテリアルやメッシュのUVに手を加えず
使用テクスチャのみを統合(アトラス化)してくれる優れもの!
ちなみに、ノーマルマップを使用しているマテリアルには現状適用出来ないらしいので
元々ノーマルマップがなかったり、「ノーマルマップあってもなくても変わらないな……」て時に使うのがオススメです
また、マテリアルも統合される(影とかライトとかが同じ質感になる)のでそこも注意
(前髪と後髪で別々のアセットを使っている時はむしろありがたい)
この先は危険だ 大変危険
(ここからは筆者のアドリブと、アトラス化しないなら使わなくて良いツールが含まれています)
大抵の方は中級編までやれば概ねの目的は果たせていると思われるのですが
イベントだと稀に「Poor~Mediumに抑えないとな……」となる時があると思います
あるいは「ポリゴン数だけベリプだと敗北感があるんだよね」と謎の負けず嫌いを発揮する時もあると思います
そう言った時、個人的に愛用しているツールをまとめました
筆者はQuest対応まだやれてないのでそこに関してはノータッチです。すまない
・上級編追加前提ツール
『Meshia Mesh Simplification』
元データに手を加えずにメッシュをゴリゴリ減らしてくれます。すごい!
先程紹介した『lilToon』や『lilAvatarUtils』にVCC経由導入にて同梱されている『lilNDMFMeshSimplifier』とは別
こっちの方がなんとなく服のメッシュ削減等に強い気がします
UIは『lilNDMFMeshSimplifier』とだいたい似たような感じなので
触った事ある人なら、なんとなくとっつきやすいかもしれない
『MeshDeleterWithTexture beta』(番外編かも)
こっちは『AAO Remove Mesh By Mask』と『TTTAtlasTexture』を併用していなければ使わなくていいです
併用している場合、アトラス化した時に『Remove Mesh By Mask』で消した位置がずれる事があり
そう言った時はこのツールで直接削れたメッシュを複製してもらった方が早いです(筆者の感想です)
一応このツールもメッシュ複製するだけなので、元データに影響は無いはず
・上級編:『Meshia Mesh Simplifier』でポリゴン数を減らそう
アバタープレハブ内のポリゴン数減らしたいメッシュ(顔以外推奨)に『Meshia Mesh Simplifier』コンポーネントを付けて
最初はValueの数値が「0.5」(50%の状態)になりますが、破綻してる時は数値を「0.7」前後にしてプレビューで様子を見ましょう
オプションのとこは超級者向け(筆者も説明不可)なので省きます
ちなみに、アトラス化しない箇所のメッシュ統合前提の裏技として
メッシュ複製して『AAO Remove Mesh By Mask』で破綻しやすいとことしにくいとこを分けてそれぞれを減らす
……と言う事も出来なくもないですが、たぶんもっと効率の良い方法がたくさんあると思われます
・おまけ:『AAO Merge Bone』でPBコンポーネント入り親Boneの中にある揺らしたくない子Boneを揺らさなくできる方法
題名が長くなってしまった
髪とかで基本アホ毛と後髪だけ揺らしたい人なのですごく困ってた時期がありました
基本PhysBoneコンポーネントは揺らしたいボーンにそのまま入れる事が多いと思うのですが
たまに「PhysBoneコンポーネントの入ってる親Bone(head等)の中に入ってるあまり揺らしたくない子Boneが混ざっている」アセットを見かける事もあり
筆者は考え抜いた果てに『AAO Merge Bone』を揺らしたくない子ボーンのコンポーネントに入れる事で解決しました
正直それにしか使った事が無いので無知です
たぶんもっと効率の良い方法がたくさんあると思われます(再放送)
筆者の愛用してるツールをざっくりと初級、中級、上級と段階ごとに紹介してみました
見た目に大きく影響されない不可視ゾーンにひと工夫をするだけで「なんかいい感じ」になるので
気になった方は是非やってみてください
他にもAAOさんの方でシェイプキーをいじるツール等がありますが、筆者はいずれも手を出せてないです
様々なツールを作ってくださっている方々に感謝の気持ち
以上がVCC環境改変初心者の備忘録でしたが、またどこかの海でお会いしましょう!