
[VRChat]Unityによるはじめてのアバター着せ替え②~着せ替え編~
はじめに
この記事は、こちらの記事の続きとなります。
まだご覧になられていない場合は、この記事で使用するツール類のインストール方法などが記載されていますのでざっと目を通す程度でもいいのでご覧ください(この記事ではインストール方法については触れていません)。
なお、この記事ではアバター改変に関する専門用語が用いられています。 できるだけ図などで示していますがどうしてもわからないという方は検索して調べてみてください。
使用環境
この記事は以下の環境での内容となります。
OS: Windows11
Unity: 2022.3.22f1
VRChat SDK: 3.6.1
VCC、Unityの表示はダークモードを使用しています。
またUnityのウィンドウ構成および配置はカスタムしているのでデフォルトのものとは異なります。 記事の通りにする必要はありませんのでお好みで構いません。
また、Unityは英語表記を用いています。
改変内容
今回は、以下の内容で改変します。
①アバター
おちびチャンズのライムちゃんをアバターにします。
こちらにはオリジナルアバターのライムちゃんが必要です。
②髪
③衣装
①のアバターに②の髪、③の衣装を着せます。
改変の大まかな流れ
今回紹介する改変の大まかな流れは以下の感じです。
D&Dとはドラッグ&ドロップのことを指します。
①ライト調整
②アバターをHierarchyにD&D(Sceneじゃない点に注意)
③Modular Avatar - MA Mesh Settings 追加
④Avatar Optimizer - AAO Trace & Optimize 追加
⑤髪をHirarchyにD&D
⑥髪にModular Avatar - MA Bone Proxy 追加&設定
⑦髪のSize、Position、色調整
⑧衣装をHierarchyにD&D
⑨衣装にModular Avatar - Setup outfit
⑩衣装の位置合わせ
⑪見た目の確認・調整
⑫EXメニューなどの調整
⑬テスト(必要に応じて修正⇔テスト)
⑭アップロード
使用するツール、シェーダー
Modular Avatar
liltoon
Floor Adjuster
Avatar Optimizer
AV3Emulator
Gesture Manager
これらすべてVCC対応版があるので、そちらをインストールしてプロジェクトにインポートします。

購入したアバターや髪、衣装のインポート

購入してダウンロードした後、解凍したデータにある ~.unitypackage ファイルをファイルメニューから
[Assets] → [Import Package] → [Custom Package…]
を選択してインポートします。

アバター、髪、衣装をインポートしてください。
この時注意する点は、髪や衣装のダウンロード時にマテリアルデータが別になっている場合があります。
これもダウンロード、インポートしないと色が正しく表示されなくなります。
インポートが無事に出来たら [Project]タブの Assets のところにデータがあると思います。
Consoleタブ(ウィンドウ)は常に確認しましょう
今後何かの作業を行ったときは、必ず [Console]タブを確認する癖をつけておいてください。
[Console]タブが表示されていない方は、ファイルメニューの
[Window] - [Panels] - Console
を選択して常に見えるようにしておいてください。
[Console]タブ(ウィンドウ)は、作業・操作などのログが表示されます。その中で特に重要になってくるのがエラーログです。
[Console]タブの右上の方にある八角形の!の部分をクリックすると、エラーログだけを表示させることができます。
タブの中の Clear を押すとログを一旦リセットしますので、エラーが起きているときはまたエラーが表示されます。 エラーが起きている場合は、翻訳アプリなどを使用して全然かまわないので、どんなエラーが起きているのかを確認して対処しましょう。
これを後回しにすると、その時に生じたエラーが原因で連鎖的に他のエラーを発生させていってしまい、その結果エラーログがとんでもない量になってしまいます。

改変作業
①Unityの光の調整
Unityを開いたときのデフォルト設定では、実は光の色や角度などが微妙にずれています。 ここで合わせたとしてもVRChat上では光の当たり具合や光そのものに色味があったりと見え方が若干変わってしまいますが、やはり白ベースで色味を調整しておきたいところです。
[Hierarchy]タブにある Directional Light を選択して、[Inspector]タブにある Color をクリック。
カラーパレットウィンドウが表示されるので、〇を動かすかRGBの数字を255にして白くします。
白くしたらカラーパレットウィンドウは閉じてください。

次にライトの向きを調整します。
そのまま[Hierarchy]タブで Directional Light を選択した状態で [Inspector]タブにある Rotation の Y の値を -30 から 180 に数値を変更します。

②アバターをHierarchyへドラッグ&ドロップ(D&D)
ここからいよいよアバターの改変を行っていきます。
まず、親となるアバターのPrefabを [Project]タブの Assets にあるアバターデータから[Hierarchy] にD&Dします。

間違いやすい例として、Prefabデータを [Scene] にD&Dしてしまう場合がありますが、この場合はPrefabデータ編集モードといって、[Scene] の背景が青くなります。
この状態ではアバターの改変を進めることもできませんし、アップロードもできません。
PrefabデータとはUnity用に編集された3Dモデルのことで、よく間違われる例としては FBXフォルダにある3DモデルをD&Dしてしまうことです。
アイコンの形が凹になっているものがFBX、立方体になっているものがPrefabです。

③アバタールートにMA Mesh Settingsを追加
②のアバターはデフォルトの状態で、髪や衣装を着た状態のものです。
衣装や髪などを変更しない場合はそのままアップロードできますので試しにアップロード出来るかどうか確認してみてもいいかもしれません。
(VRC SDKのContent ManagerからアップロードしたアバターをDeleteすることができます)
今回の記事では髪や服を着せ替えます。
これから着せ替えていく髪や服にはアバター側で設定されている光の設定が含まれていません。
その結果、そのままの状態で着せ替えてVRChatにアップロードすると、顔と服や髪の明るさが違ってしまっている場合があります。
これはアバターには光を受け取る基準点があって、それに対してアバターの明るさを表示する(今はイメージとして受け止めておいてください)という具合に、ある基準点が設定されています。
以前であれば一つ一つ自分で設定したり、自動設定ツールなどをBoothで探してきて導入したりしていたのですが、今はModular Avatarの機能を使用することで簡単に設定できます。
まず [Hierarchy] タブから元々の衣装のゲームオブジェクト(パーツ)を選択すると、[Inspector]タブの中に Root Bone と Anchor Override という項目があります。

ここの設定をスクショするなり覚えるなりしておいてください。
これが基準点として設定されているものになります。
それではアバタールート(アバターの一番上)を選択して [Inspector] の一番下にある Add Component をクリックしてください。 そこから
Modular Avatar → MA Mesh Settings
と選択してComponentを追加してください。

これがこのアバターの基準点となりますので、このアバターに紐づいた(くっついた)髪や衣装もこれを基準とすることができます。
このままでは基準点はまだ設定できていないので、元々の衣装で設定されていたアバターの基準点を移植します。
MA Mesh Settings の Anchor Override Mode、Bounds Override Mode をそれぞれ Set に変更して、元々の衣装の Anchor Override、Root Boneを設定します。

④アバタールートにAAO Trace&Optimize追加
一部で「何はともあれひとまずこれを入れよう」と言われているのがこれです。 特に今回のように衣装を着せ替えたり、複数の衣装の一部分を使って1つ(1人)のアバターにしたときなどに効力を発揮するのがこのツールで、いわゆるアバター最適化を自動で行ってくれます。
アバタールートを選択した状態で[Inspector]タブの一番下にある
Add Component を選択して、
Avatar Optimizer → AAO Trace And Optimize
を選択して追加します。

特に設定を変更したりする必要はなく、このままで大丈夫です。
詳しく知りたい方はマニュアルが公開されていますので検索して読んでみてください。
⑤親子関係について
髪や衣装をアバターにD&Dするときに気を付けることは、親子関係にすることです。
親子関係とは、「このアバターにこの髪を着せる」、「このアバターにこの衣装を着せる」などという場合の「このアバター」というのが親で、「髪」や「衣装」が子になります。
[Hierarchy]タブを見てアバタールート(親)に対してArmatureやBlouse、Bodyなどが子になります。
また、Armatureを親としてHipsが子、Hipsを親としてSkirt_Root、Spineなどが子になります。
フォルダの階層をイメージしていただくと想像しやすいかもしれません。

⑥髪をアバタールートにD&Dする
次に髪を着せていきます。
⑤で紹介したように、アバターと親子関係になるように [Projent]タブの
Assets にある髪のPrefabを[Hierarchy]のアバタールートにD&Dします。


髪を着せ替えるので元々の髪を非表示(非適用)にしていきます。
このアバターの髪は「Hair」と書かれているオブジェクトなので(アバターによって違うかもしれません)これらを非表示、非適用にしていきます。
Unity(Hierarchy)では、Windowsのエクスプローラーと同様に複数選択がShiftやCtrlを押しながら選択できます。

この状態で、[Inspector]タブの一番上にあるチェックボックスをオフにして、その下にある Tag と書かれているドロップダウンをクリックして Editor Only にします。

⑦髪にMA Bone Proxyを追加する
⑥の状態は「乗っかっているだけ」の状態なので、アバターに紐づいていません。
試しにファイルメニューのすぐ下にある三角マーク(プレイボタン)でプレイモードに入ってみてください。

プレイモードに入ると [Game] タブが選択されている状態なので、[Scene]タブをクリックして確認してみると髪が浮いてしまっていることがわかると思います。

これは、アバターの子にはなっていますがアバターと髪が結び付いていない(着せられていない)状態のため、こうなります。
確認出来たらプレイモードから抜けて(プレイボタンをもう一度押す)ください。
髪をアバターに結び付けるためにModular Avatarの機能の一つである
MA Bone Proxy を使います。
[Hierarchy]で髪のルートを選択して [Inspector]タブの一番下にいき
Add Component → Modular Avatar → MA Bone Proxy
を選択します。

このComponentの機能をざっくりイメージで説明すると「どこの子にしますか?」ということを設定するものです。
「どこの子」という設定にはアバターのArmatureを使います。
先ほど非適用にした元々の髪が設定されていたArmatureは、「Head」の子に設定されています。
この親子関係と同じになるようにアバターのArmatureの「Head」を
MA Bone Proxy の Target に入れます。

これでアバターと髪が結びつきました。
プレイモードで確認してみてください。
今度はきちんと付いてそうなので、プレイモードに入ったまま [Hierarchy]タブでアバタールートを選択して[Scene]ウィンドウに表示された矢印をつかんで動かしてみてください。 アバターが動くのに合わせて髪もついてきます。
確認が終わったらプレイモードから抜けてください。
⑧髪の調整
このままの状態では髪から地肌が見えてしまって非常に可哀そうな状態なので、髪の大きさや位置を調整します。
[Hierarchy]タブで髪のルートを選択して[Inspector]タブにある Transform のPositionとScaleを変更していい感じになるように調整します。
なお、[Scene]ウィンドウ上でも移動ボタンや拡大・縮小ボタンで同じことができます。
使い分け的には[Scene]ウィンドウでざっくりと合わせて[Inspector]タブの
Transform で微調整する感じで使うといいと思います。


髪の大きさや位置については調整できました。
このままでもいいのですが、ケモ耳との色の差が気になる方のためにUnity(liltoon)での髪の方の色のを調整方法を紹介します。
この髪は、「Hair」というオブジェクト(メッシュオブジェクト)に髪の形や色などの情報が入っています。
[Hierarchy]タブの髪の子になっている「Hair」を選択すると[Inspector]タブにその情報が表示されます。

①メインカラーのところのアイコンをクリックすると [Project]タブのAssets のところにそのファイル(テクスチャファイル)がクローズアップされます。
②クローズアップされたファイルをコピーします。
選択してCtrl+C→Ctrl+Vでもできますし、Unityではそのファイルやオブ
ジェクトを選択した状態でCtrl+Dでもコピーできます。
③②で作ったコピーファイルを①のところにあるアイコンファイルと入れ替
えます。
これから行う作業はファイルを上書きするので元のファイルはいじらずに
残しておくためです。

[Project]タブ(Assets)でテクスチャファイルを選択したときに [Inspector]タブの内容が変わってしまうのが嫌な場合は、テクスチャファイルを選択する前に[Inspector]タブの上のほうにある鍵マークをクリックするとロックできます。ロックした状態で上の①~③を行っても構いません。

Unity(liltoon)での髪の色の変更は、先ほどクリックしたテクスチャアイコンの右にある「HDR」と書かれたとこをクリックしてカラーパレットを出しても変更できますが、今回は少し明るくしたいだけなのでその下にある「色調補正」のところで調整します。
隠れているかもしれないので「色調補正」と書かれた隣にある三角マークをクリックすると展開されます。

この方法以外にもテクスチャファイルを直接編集する方法などもありますので検索してみてください。
今回は後ろ髪と尻尾の色がだいたい合うように調整しました。

色の調整が終わったら、調整していた「色調補正」の下にある「焼き込み」を押してテクスチャファイルに調整内容を上書きします。

焼き込みをするときにファイルを保存するようにウィンドウが表示されるので、わかりやすい名前を付けて保存します。
「どうせ保存するなら元のファイルのままでもいいのでは?」と思う方もいるかもしれませんので、調整前にコピーを取るかどうかはお任せします。
⑨衣装をアバタールートにD&D
髪のときと同様に[Project]タブのAssetsから衣装を選択して[Hierarchy]のアバタールートにD&Dします。
ここでもきちんと親子関係になっているかを確認してください。

もし衣装がピンク色になってしまっている場合は、マテリアルデータが別ファイルになっている可能性がありますので、もう一度商品のダウンロードページで確認してダウンロード、インポートしてください。
(衣装ではマテリアルデータが別になっていることがよくあります)
髪の時と同様に元々着ていた衣装を非表示(非適用にします)

[Scene]ウィンドウで確認すると、足が爪楊枝みたいになっていて見えていません。
これは元の衣装を着せたときに調整されたものなのでこれを元に戻します。

[Hierarchy]タブでアバターの体のオブジェクト(このアバターの場合はBody_Base)を選択して[Inspector]タブにある BlendShapes を展開します。

BlendShapesでは、各項目にある数値(スライダー)を調整することによって今回の場合であれば対応している体の一部分を絞っている状態になります。
今回は足が消えてしまっているので
Foot_OFF
Toe_OFF
Knee_OFF_L
で絞られていることがわかるので、それらを0にすることによって足を出します。


足が見えるようになりました。
⑩アバターに衣装を着せる
髪のときと同じく、この状態のままではアバターに衣装がついてきません。
アバターに衣装を着せるために以下の操作をします。
①衣装を選択して右クリック
②Modular Avatar → Setup Outfit を選択
これでアバターと衣装が紐づきました。
髪のときは MA Bone Proxy を追加しましたが、衣装の場合は Setup Outfit を使いました。
ざっくりと説明すると、衣装のようにArmatureの子がHipsであればSetup Outfitが使える場合が多いです。
アクセサリや髪のArmatureの子はHeadやChestになっているので、こういう場合はMA Bone Proxyを使います。
ご興味ある方はModular Avatarのマニュアルや解説記事、動画などをご覧ください。

⑪衣装の位置合わせ
ワンピースは特に問題ないようですが、帽子とサンダルがずれているのでこれを修正します。
髪の時は全体を調整したので髪のルートで調整しましたが、今回の場合は帽子とサンダルという特定のオブジェクトになるので衣装の Armature で行います。
まずは帽子から調整します。
この衣装の帽子は
Armature.1 - Hips - Chest - Neck - Head - Hat
と辿って行った先の「Hat」のところで調整します。

調整する方法は髪のときと同じなので省略します。

あくまで個人の趣味などにもよりますが、今回はアホ毛とケモ耳は非表示にします。
非表示の仕方については元の服などの時と同様に [Hierarchy]タブから該当するオブジェクトを選択して[Inspecto]タブの上のチェックを外し、その下のTag のドロップダウンを Editor Only にします。
今回の髪のモデルでは、アホ毛はBlendShapesで設定するようになっているので髪のオブジェクトのBlendShapesからアホ毛を非表示にします。
またArmatureの方にもアホ毛に該当するオブジェクトがありますが、こちらの場合はボーンは残して Phys Bone を非適用にします。

次にサンダルの位置調整をします。
帽子の時と同じようにサンダルの位置に一番近しい Armature となると、Foot.L、Foot.R がそれになります。

しかし、サンダルの大きさ調整が少々難しいので今回はその親である
LowerLeg.L、LowerLeg.R で調整します。
どこで調整するのが良いかの判断としては、基本的に調整するオブジェクトに一番近い Armature になるのですが、場合によって(今回の場合はサイズ調整の都合)はその親で調整する場合もあります。
ここで1点注意することがあります。
特に胴体に関わるところを調整するときは必ずArmature構成を確認する
ようにしてください。
今回の場合、サンダルを調整するのに LowerLeg を調整するのですが、
その子として ColLeg2.L/R があります。
これはPhys Bone Collider と言って、スカートを足が突き抜ける(貫通といいます)ことを防止するために設定されているものです。

親子関係の親側を移動させると、子もそれに連動して移動します。
つまり、子の位置は親の位置に対してどういう位置にあるのか、で設定されているので、親の位置が移動すれば子の位置も親との位置関係を保ったままそれに応じて移動するのです。
つまり今回の場合は、LowerLegを移動させるとその子であるColLeg2も位置関係を保ったまま移動してしまうため、その結果、衣装の制作者さんが意図したスカートの貫通防止処理の内容が変わる、ということになります。
これは避けたいので、調整内容としては
①LowerLegでサンダルの大きさやサイズを合わせる
②サンダルとColliderの位置関係が元の状態になるようにColliderを調整する
という作業になります。
はじめて改変をする方にとってはちょっと難易度が高いので今回の場合は足元ですので妥協する、というのも一つの手です。
では実際に調整します。
サンダルの位置や大きさについては髪や帽子のときと同じなので結果だけ紹介します。

サンダルを調整したことによって、下側のColliderの位置が変わって(上側のColliderと重なっている部分が増えて)います。
Phys Bone Collider を調整してサンダルとの位置関係を戻します。

Phy Bone Collider の調整は、設定されているオブジェクトを[Hierarchy]で選択して、[Inspector]タブにある VRC Phys Bone Collider (Script) の項目にある数値を調整します。

調整した結果はこのようになりました。
ほぼ元の位置関係に近いと思います。

⑫アバターと服の胸のBlendShapesの調整を連動させる
この衣装は帽子、ワンピース、サンダルという3つのオブジェクト(メッシュオブジェクト)で構成されていますが、この内のワンピースにBlendShapesが設定されています。

このBlensShapesを調整するとワンピースの胸の大きさが変わります。
一方、アバターの身体の方にも胸のBlendShapesが設定されています。

これらは連動しておらず、たとえばワンピース側の胸の大きさをSmallにしている状態で身体の胸の大きさをbigにする(大きくする)と服を貫通してしまいます。
身体の胸の大きさを大きくしたときに服の胸の大きさも連動するように設定することで貫通防止処理を行います。
[Hierarchy]タブからワンピースを選択して、[Inspector]タブの一番したからAdd Componentを選択します。
Modular Avatar - MA Blendshape Sync
を選択します。

MA Blendshape Syncが追加されたら、Meshの欄にある+マークを押します。するとアバターに設定されているBlendShapesが選択できるウィンドウがひょうじされるので、今回の場合はアバターの胸の大小を調整するBlendShapes(Breasts_big、Breasts_small)をそれぞれWクリックして選択します。

これでアバター胴体と服のBlendShapesが連動しました。
ためしに、アバター素体側のBlendShapesで胸を大きくて見ます。

するとワンピース側のBlendShapesもそれに連動して大きくなっています。

限度はありますが、これでアバターの胸のサイズとワンピーースの胸のサイズ設定が連動しました。
⑬床との距離調整
このアバターのダウンロードファイルの中に
「Unitypackage導入前にFloor Adjusterを入れてください!」
という注釈があります。
商品ページにもそのツールのリンクが貼られています。
これはどういうことかというと、このアバターはオリジナルアバターのおちびちゃんバージョンとして販売されており、先ほどのサンダルと足の位置関係からお気づきの方もいるかもしれませんが、床(地面)から浮いています。 端的に言うと、足が短いのです!
そのため、そのままVRChatにアップロードすると常に床(地面)から浮いた状態で動き回ることになります。
これを調整するツールとして指定されているのが Floor Adjuster です。
このツール以外にも床(地面)との距離を調整するツールがありますが、ここ最近こちらのツールがよく使われていると思います。
理由としてはやはりVCC版があるためアップデート管理がしやすい、ということが挙げられると思います。
ちなみに unitypackage版 を使う場合は都度最新版をチェックしにいかないといけないので、VCC版があるのならそちらを使用した方が楽です。
それではFloor Adjusterでの調整を行っていきます。
Floor Adjusterの適用は、[Hirarchy]タブでアバターの Armatureルート を選択して Add Component を押して虫眼鏡マーク(検索欄)に「floor」を入力するとリストに表示されますので、これを選択します。

床との調整の仕方は[Inspector]タブにある Floor Adjuster (Script) の Height の数値を直接入力しても良いですし、[Scene]ウィンドウの右上にあるGizmoをONにして白い床のような□枠が表示されますので、そこから伸びている↑を動かして調整しても良いです。

⑭EXメニューの編集
VRChatではEXメニューが使えますが、Unity上でもそのメニューの確認が行えます。
ファイルメニューから
Tools - Avatars 3.0 Emulator - Enable
と選択してください。

すると、[Hierarchy]タブに Avatars 3.0 Emulator Control というものが追加されますので、これを選択してプレイモードに入ってください。

すると[Inspector]タブに Radial Menu として、VRChat内でEXメニューを開いた状態のものが表示されます(全てが同じではありません)。
余談ですが、今回は VCC の Manage Package で Gesture Manager と AV3Emulator の両方をインポートして、Avatar 3.0 Emulator を使用しましたが、Gesture Manager だけをインポートした場合でも同様の確認はできます。 むしろ、Gesture Manager が無いと[Inspector]タブに Radial Menu が表示されないので、Radial Menu の確認だけでしたら Gesture Manager だけで良いです。
しかし、他の確認、たとえばAFKモードの確認や、手の動作による表情確認などを行う場合は、Gesture Manager よりも Avatar 3.0 Emulator の方が精度が良いと言われています。
なので、今回は両方インポートしました。
確認作業に戻ります。
Radial Menuから、Expressions を選択します。

このアバターに設定されているExpressionsメニューが表示されます。
アバターによってこの内容が変わります。
そういう意味でも何も着せ替えたりしない、購入したままの状態でVRChatにアップロードしてEXメニューなどを確認しておくと理解が早いと思います。
Radial Menu の Kemono を選択します。

これはVRChat内でケモ耳や尻尾の表示をON/OFFさせるものですが
今回、ケモ耳は表示させないようにしましたし、尻尾も常時ONさせるつもりなので、このメニューは使いません。
一つ戻って、次に Costume を選択すると元々の衣装の表示をON/OFFさせるメニューが表示されます。

こちらもすでに着替えているので使いません。
このように、VRChat内のEXメニューで元の衣装の表示(ON)/非表示(OFF)を切り替えられるような場合、その対象がないとアバターがうまく表示されなかったり、おかしな動きになったりすることがたまにあるので、使わないメニューを整理しておきます。
プレイモードを抜けてください。
[Hierarchy]タブでアバタールートをクリックすると[Inspector]タブに
VRC Avatar Descriptor (Script) という項目があります。
こちらの Playback Layers と Expressions という項目を展開してください。

ここに設定されているファイルを確認していきます。
まずは Playable Layers の Gesture と書かれているところのファイルをクリックします。
すると[Project]タブに該当するファイルがクローズアップされるのでこれをクリックします。
すると[Animator]ウィンドウが表示されます。 表示されない方は
Window - Animation - Animator
と選択すると表示されます。

Gestureで設定されている内容は、手の動きに対してどのような処理を行うのかが設定されています(アバターによっては他にも設定されているものがある場合があります)。
今回は手の動きについては特に変えていないので、ここはこのままで良いので編集しません。
[Hierarchy]タブからアバタールートを選択します。
次は FX と書かれているファイルを選択して、[Project]タブでクローズアップされたファイルをクリックします。
今度は使わないメニュー項目があります。

髪のテクスチャファイルをコピーしたときと同じように、[Project]タブのAssetsでファイルを選択してCtrl+Dでコピーして、コピーしたファイルと入れ替えます。

[Project]タブのAssetsにあるコピーしたファイルを選択して[Animator]ウィンドウの使わないメニュー項目を選択します。
選択した項目の右側にある歯車マークをクリックして表示されたウィンドウにある Weight を 0 にします。

これを使わない項目すべてに行います。
Weightを0にすると、その項目のバー表示が薄くなります。

[Hierarchy]タブのアバタールートを選択して、今度は Expression の Menu のファイル(ExMenu)を選択します。
今度は[Inspector]タブにその設定内容が表示されます。

先ほど Radial Menu のところで表示されていた、Kemono と Costume がありますので、これも使いませんので処理します。
このファイル(Chibi_Lime_EXMenu)をコピーして入れ替えたファイルを編集します。
編集する項目を展開して、右にある Delete を押します。
1度 Delete してしまうと元に戻せなくなるので、コピーしたファイルを編集します。

[Hierarchy]タブからアバタールートを選択して Expressions にある Parameters のファイルをクリックします。
[Project]タブの Assets のところにクローズアップされたファイルをクリックします。
すると[Inspector]タブに内容が表示されます。

こちらにも使わない項目がありますので、このファイルをコピーして入れ替えてから編集します。
使わない項目を選択すると、グレーアウトされていた Delete が表示されるので Delete します。

他にもアバターに設定されているファイル(BaseやAction)が
VRC Avatar Descriptor にある場合はすべて確認して必要に応じて編集してください。
⑮見た目の調整・アニメーションを使ったテスト
髪・衣装の着せ替えは一通り終了しましたが、アップロードする前にいろいろな角度から見て着せ替えた後に貫通、消し忘れ(表示しないものが表示さている)などがないかを確認しましょう。
特に問題がなければアニメーションをつかって実際に動いたときに貫通などがないかを確認しましょう。
アニメーションのインポート方法は、.unitypackage がある場合は、髪や服などと同じようにファイルメニューから
Asstets - Import Package - Custom Package…
と選択して、ファイル選択ウィンドウで .unitypackage を選択すればインポートできます。
そうでない場合、Animation ファイルしかない場合は、[Project]タブから Assets を選択して Assets 内で右クリックして、Create - Folder と選択して空のフォルダを作成します。

作ったフォルダの名前を適当に決めて(今回は Animation_File としました)それをWクリックするとフォルダが開きますので、ダウンロード&解凍したアニメーションファイルがあるところをエクスプローラーから開いて作ったフォルダ(Animation_File)にD&Dします。

アニメーションファイルが準備できたらプレイモード(上の方にある三角ボタンを押す)に入ります。
プレイモードに入ると[Game]ウィンドウが表示されますが、視点をいろいろ変えたいので[Scene]タブをクリックします。

この状態で先ほどインポートしたアニメーションファイルを[Hirarchy]タブのアバタールートにD&Dするとアバターが動きます。
アニメーションが動かない方は、一度プレイモードから抜けて
Avatar 3.0 Emulator Controlを削除してからもう一度プレイモードに入ってアニメーションが動作するか確認してみてください。

[Scene]ウィンドウでいろいろ視点を変えながら、
・髪が貫通していないか
・衣装が体にきちんとついてきているか
・衣装側の貫通(見えないはずの肌が見えていないか)がないか
などを確認します。
上手く着せれていない場合は、プレイモードから戻って髪や服の位置、体のBlendShapesなどを調整して修正します。
1つのアニメーションで確認するのではなく、いろいろなアニメーションで確認すると良いでしょう。
⑯VRChat SDKでの確認
VRChat SDK Control Panel を開いてログインしてください。
ログインできましたら、 Builder タブを押してください。
アップロードしたときのアバターの名前を決めたらすぐ下にある Visibility を見てください。

基本的にここは Private としてください。
Private と Public という選択肢がありますが、Public とすると、誰でもそのアバターを使用することができてしまいます。
商品ページに 「Publicで使用してください」 と書かれていることがありますが、ここのことを言っています。
次にサムネイルを設定したら Validations という欄をみてください。

赤い八角形の!や黄色い三角の!、赤い二重丸の!やただの二重丸などが見えます。
この中で赤い八角形の!があるとアップロードできません。
つまりこれはエラーがある、という意味です。
ちなみに黄色い!は警告で、赤い二重丸の!やただの二重丸はパフォーマンスランクの状態を表示しています。
エラーとなっている八角形の!に注目します。
その横に Auto Fix というボタンがありますが、安易に押さないでください。
翻訳しても全然構わないのでそのエラー内容を確認してください。
中には Auto Fix を押してしまってアバターが破壊される場合があります。
内容をよく読んで、わからない場合はネットで検索するなりして対処するようにしてください。
今回の場合は、mipmapテクスチャ関連のエラー ということなので、これは Auto Fix しても良いエラーです。
エラーが直ったら一番下のチェックボックスにチェックを入れるとグレーアウトされていた Build & Publish というボタンがクリック可能な状態になります。

一旦その上にある Build & Test で仮アップロードしてVRChat内で確認してからBuild &Publish するようにしましょう。
Unity上では大丈夫だったのにVRChatでは何かおかしい、というケースがたまにあります。
無事に Build & Publish できたら改変終了です。
お疲れさまでした。
まとめ
なかなかのボリュームだったと思いますがいかがだったでしょうか。
最後に繰り返しになってしまいますが改変する際のポイントは
・利用規約を守る
・Unity作業はこまめにセーブする
(履歴を追えるように保存するとなお良いです)
・Consoleは常に確認してエラーが起きたらその場で対処する
(エラーが起きても慌てず内容を確認する)
・何かを追加・変更したらテストする
という感じです。
この記事がみなさんのお役に少しでも立てたのなら幸いです。
それではみなさん、楽しいVRChat Lifeを!