更新日時 

2025/03/13

2025/03/15追記

 

初めに 

VRChatをプレイしてると「自分のアバターの服も変えたいなぁ」と思ったことはありませんか?

「UnityでBlend Shapesを設定したのにアップロードしたらなぜか適応されてない!」のように困ったことはありませんか?

そんな人向けの記事です。

 

 

アバターに対応した服の着せ替えを行うという想定です。

 

想定する読者 

VRChatを始めたばかりでUnityがあまりわからない人

アバターの着せ替えをしたい人

 

環境 

Unity2022.3.22f1

VRChat Creator Companion(以下VCC)

使用アバター:INABA

使用衣装:バレンタインドレスKnitDress

使用ツール:ModularAvatar

 

注意点 

  • バックアップは必ず取ること
    • 例:Unityにて Assets > Export VPM as Unity Package(これでunitypackageが作成されます)

 

何か起きてもブログの作者は責任を取りませんのでご了承ください。

 

実装方法 

 

  1.ModularAvatarをUnityに追加する

追加の方法はこちらの記事を参考にしてください。

 

 

 

  2.Modular Avatarを用いて服を着せる

INABAのデフォルトの服はこんな感じです

 

デフォルトの服を消します。

Hierarchyを見るとアバターの直下にshoesやjacketといった項目が見えますね。

これがデフォルトの服です。

左クリックで選択してDeleteで消していきます。

衣装によっては下着などが付属していないものがあったりするのでその場合は消さずにとっておきましょう。

今回、使用するValentineDressは下着が付属しているのですべて消します。

 

次にアバターのファイル直下に着せたい服のPrefabを配置します。

配置するとこのようなファイル構造になると思います。

 

Hierarchyにある服のPrefabを右クリックしてメニューを開きます。

Modular Avatarにカーソルを合わせ、その中のSetup Outfitをクリックしてください。

これでアバターの動きに服が追従するようになります。

 

次に着せた服をクリックし、InspectorのMA Mesh SettingsにあるAnchor Overrideという項目を見てください。

デフォルトだと「Anchor Target(Transform)」となっていると思います。

このままアップロードをすると自分の視点だと服を着ているのに相手の視点だと裸に見えてしまいます。

 

なのでAnchor overrideをルートボーンと同じ設定「Hips(Transform)」にします。

Hipsはアバターのファイルの下

アバター名 > Amature > Hips

にあります。これをドラッグ&ドロップで設定してあげましょう。

 

 

ValentineDressはこの設定を行う必要がないのですがついでに紹介します。

INABAのように胸の大きさを設定できるアバター向けです。

アバタの胸を大きくしたらそれに付随して服自体も大きくならないと露出してしまいます。

なのでアバターの胸の大きさと服の大きさがシンクロするようにします。

KnitDressを例に用います。

服の胸に当たる部分を選択し、Inspectorを開きます。

KnitDressの場合はKDtopです。

 

InspectorのAdd Componentをクリック

 

するとどのComponentを追加するかメニューが開くので

Modular Avatar > MA Blendshape sync を選択

 

するとこのような画面が出てきます。

「どのメッシュに合わせてこの服が大きくなればいいのか」を設定するために+を押します。

 

+を押すとこのような画面になります。

INABAの場合、胸に関するBlend Shapesはこの二つなので、これらを左クリックし、追加します。

 

追加するとこのようになります。

これでアバターの胸の大きさに合わせて服が変化するようになりました。

このKnitDressのように服にBlend Shapesが設定されているものもあれば無いものもあるので注意が必要です。

 

ValentineDressの話に戻ります。

これで「着せ替え終了」といいたいところですがSceneに視線を移し、アバターを見ると足が靴からはみ出てますね。

これからアバター側のBlend Shapesを調整してちゃんと靴を着せていきます。

この時点で服をちゃんと着せられている方はそのままアップロードして大丈夫です。

 

アバター側のBlend Shapes設定 

 

まずはHierarchyにあるアバターの体のファイルを左クリックしてInspectorを開いてください。

INABAの場合bodyallですね。

 

Inspectorを開きBlendShapesを左クリックします。

 

Blend Shapesを開くと様々な項目が表示されます。

これらの値を調整していきます。

 

どの項目に調整が必要なのかは服の商品ページやDLしたファイルの中に記されているのでそれを見ながら値を調整しましょう。

バレンタインドレスの場合こんな感じに設定します。

 

設定後アバターを見てみるとこんな感じです。

先ほどとは違い、靴をちゃんと履かせることができてますね。

 

 

FXレイヤーの設定 

 

INABAはデフォルトの服でアップロードされることが想定されています。

なのでこのままアップロードすると、デフォルトで設定されていたBlend Shapesが適用された状態になってしまいます

(先ほどの例だと足が靴からはみ出てしまう)。

これはFXレイヤーで設定されているアニメーションが原因なのでそれを回避するやり方を二つ紹介します。

 

①アバターに設定されているFXレイヤーを無効化

②影響を与えていると思われるアニメーションの無効化

 

  ①アバターに設定されているFXレイヤーを無効化

 

*この時点で一応バックアップを取っておいてください

注意:

FXレイヤーはアバターにデフォルトで設定されている表情や衣装や小物の出し入れ、胸の大きさの設定などに使われます。

なので以下の作業をするとデフォルトで設定されているものが使えなくなる可能性があります。

今回は、デフォルトの服を削除するという工程を経ているので「FXレイヤーを無効化しても問題ないだろう」という認識のもとこの記事を書いています。

表情に関しましてはFaceEmoというツールを用いれば普段通り表情を使用することができるので問題ないと考えています。

以下作業工程です。

 

 

アバターのファイルを左クリックし、Inspectorを開きます

 

このボタンを押し、FXレイヤーを無効化してください

 

これで終了です。

アバターをアップロードしてください。

何らかの不具合が起こった場合に備えてFXが設定されているファイル名を覚えておくと再び設定するときに役立ちます。

 

 

  ②影響を与えていると思われるアニメーションの無効化

 

*念のためバックアップを取っておくといいと思います。

 

アバターのファイルを左クリックし、Inspectorを開きます。

 

FXにセットされているファイルをダブルクリック。

INABAの場合「inaba_vrc_fx」。

 

するとAnimatorが開きます。

Layersタブをクリックしてください。

 

スクロールするといろいろな項目が表示されていることがわかると思います。

 

例としてSleevesを設定してみます。

INABAが着ているデフォルトの服の場合、長い袖があるのですがその袖を着せるために、デフォルトで腕がとても細く設定されています。

着せたい服は袖が無い服なので腕を細くする設定は要らなくなります。

調整したいLayerを選択し「Active」を左クリックしInspectorを開いてください

 

インスペクターを見るとmotionが設定されていることがわかると思います。

これをnoneに変えてください。

 

設定されているファイル名の右隣に〇があります。

それを左クリックして「none」と検索し「None」が出てきたら左クリックしましょう。

 

 

他の項目についても同じように設定するとできると思います。

設定が終わったらアバターをアップロードしてみましょう。

 

 

あとがき 

 

個人的には①の方法がおすすめです。

デフォルトで設定されている表情や小物の出し入れができなくなる可能性があるという欠点はありますが、②のやり方のように一個一個設定するのは面倒だと思ってしまいます。

それに加え表情や小物の出し入れは、FaceEmoAvatarMenuCreator for Modular Avatarを使用すると楽に設定ができます。

AvatarMenuCreator for Modular Avatarについての記事は今後書こうかなと考えています。