アバター改変時に服を消さずEditorOnly設定のススメ
今回の記事もVRChatやっててUnityさっぱりわからんけど
アバターのアップロードや着せ替えはなんとか出来る
と言う身内向けの記事になります。
記事の目的
アバターの着替えした後の非表示のオブジェクトを含んだ場合の
アップロードされるビルドデータの削減と
ヒエラルキーからデータを削除しないため
後で組み合わせ変更の時にデータの使い回し出来る
と言う知識の共有です。
「VRChatでlilAvatarUtilsを使ってアバターのVRAM使用量を減らすススメ 」
を書いた後に
初心者だと知らない知識ではとEditorOnlyタグの事を思いつき書きました。
記事の内容を知ってる人も多いと思いますが
Unityさっぱりわからん初心者向けです。
本文内で出てるアバター情報の詳細の見方は
こちらの記事を参照してください。
1.服などをインスペクターのチェックを外し非アクティブにしただけの状態の説明
こちらが服アクセなどを全部装備した状態で
アバターをアップロードした状態のファイルサイズなどになります。
薄着にするだけなので着替えと言い切れませんが
アクセサリーやコートを非アクティブ状態。
インスペクターのチェックを外して着てない状態にします。
このままVRC SDKからビルドしてアップロードすると
単にコートやアクセを非表示にしただけなので
非表示になったデータも含まれてアップロードされてます。
左側の服は替わっているのに
DOWNLOAD SIZEやTEXTURE MEMORYの値は変わっていません。
これは時々誰かがやってる上着を脱いだり着たり
アイテムや看板を取り出す表示オンオフ可能状態です。
非表示設定だけでも処理的には軽くはなってるはずですが
やはりDOWNLOAD SIZEやTEXTURE MEMORYに含まれたままなので
使わない無駄なデータが含まれている状態です。
そこで邪魔なデータを削除するために
アバターのPrefabを解凍(Unpack)して
ヒエラルキーから不要な服データを削除する人も多いと思います。
今回はPrefabは解凍(Unpack)しない違うやり方を説明します。
2.Unityのタグ設定で要らない物をビルドデータから外す
操作は凄く簡単でアップロードするデータに含めなたくないオブジェクトを
画像のようにインスペクターの名前のすぐ下のタグの部分を
EditorOnlyに変更します。
これはビルドする時にヒエラルキーにオブジェクトが設置されていても
その設定のタグのオブジェクトは対象に含まず
無視してビルドすると言う設定になります。
この時、表示非表示のチェックは外して
オブジェクトが非表示になってる方が好ましいです。
EditorOnlyにするとUnity上では表示されていてもビルドデータに含まれず
ゲーム内にはないし呼び出せなくて混乱します、非表示にしましょう。
・Mesh_RGN_AcceTail
・Mesh_RGN_Coat
・Mesh_RGN_HeadPhone
・Mesh_RGN_NeckRing
・Mesh_RGN_Ribbon
・Mesh_RGN_UnderWear
・Mesh_RGN_WristRing
を非表示かつEditorOnlyにしました。
この状態でビルドしアップロードしてみます。
DOWNLOAD SIZEが22.37MBから16.99MBに
TEXTURE MEMORYが109.30MBから90.64MBに
POLYGONS、SKINNED MESHES、MATERIAL SLOTSも減ってます。
ぱっと見変わらないのですが色々変わるのと
DOWNLOAD SIZEによる表示の足切り回避には地味に効くので
EditorOnlyタグ設定はお勧めです。
3.その他のメリット
この記事を書いたのはデータのスリム化もあるのですが
他にもboothで別の服や靴を買って着せ替えた場合に
この買った服は標準の服や靴と組み合わせで合うのでは?となった時に
Prefab解凍からのデータ削除では
もう一度0からPrefabを弄らないとならないのに対して
このEditorOnlyと非表示を使った場合は
EditorOnlyタグをUntaggedタグに戻して
オブジェクトの表示をチェックするだけで元通りなので
やり直しが効くと言う事です。
滅多にないと思いますが自分はあったので書いておきます。
またワールド作成で季節のオブジェクト(今なら笹の木)を置いて
一定期間撤去する時にEditorOnly設定すればヒエラルキーに残したままでも
アップロードデータから外せるのでまた来年使う時に作業が楽です。
知ってると希に役立つ感じの知識なので試してみてください。
それでは、楽しいVRChatライフを
この記事が気に入ったらサポートをしてみませんか?