macgchatの日記

こんにちは.macgchatと書いて抹茶と読んでください.

【Unity】あまなつちゃんにメイド服を着せよう【VRChat】【あまなつ】【着せ替え】

こんばんは.
VRChatでアイデンティティを保つためにやらなばならないこと.

そう.お着替え ですよね!

 

というわけで,あまなつちゃんにメイド服を着せるための方法を,備忘録がてらにご紹介.

 

※想定している読者(すべて当てはまる方)
 ・Unity初心者
 ・VRChat SDKと聞いてピンとくる方
 ・アバターを1つでもVRChatにアップロードしている方

 

×想定していない読者(1つでも当てはまる方)
 ・Unityの天才
 ・VRChat SDKと聞いてピンとこない方
 ・アバターを1つもVRChatにアップロードしていない方

 

では本編どうぞ.

======================

1. 下準備

下準備として,
・VRChat SDK
・DynamicBone(ほしい人は)
・AvatarTools(あまなつちゃん着せ替えのための推奨ツールです)
あまなつ のUnity Package

以上をインポートしておいてください.

 

2. アバターの上に服をかぶせる

あまなつちゃんをprojectウィンドウからhierarchyの上にドラッグアンドドロップします.

f:id:macgchat:20210409204711p:plain

 

するとsceneにあまなつちゃんが現れます.かわいいですね.

f:id:macgchat:20210409204929p:plain

私の普段使いのアバターですので,textureを一部改変しています.ゴメンネ.

 

今回,あまなつちゃんに着せる服をインポートします.

sugary-boutique.booth.pm

今回は同作者様のメイド服をインポートします.
購入し解凍すると,Maid-costume.unitypackage というやたら長い拡張子のファイルがあるので,
これをprojectウインドウのアセットの上にでもドロップします.

f:id:macgchat:20210409205704p:plain

 

すると下記画像の階層に

f:id:macgchat:20210409210207p:plain
Maid-costumeというprefabができるので,これを
hierarchyのあまなつちゃんの上にドロップしましょう.

f:id:macgchat:20210409210348p:plain

 

f:id:macgchat:20210409210502p:plain
ドロップしました.
するとあまなつちゃんがもともとの服と,メイド服をダブって着ている状態になります.

ここで,もともとのワンピースは不要ですので,消してしまいましょう.
hierarchyから下記のものを見つけて削除してしまいます.

f:id:macgchat:20210409210744p:plain
このwearというのが,デフォルトで着ているワンピースですね.

ここで意気揚々とdeleteとか押すんですが,このままだとこのようにUnityから怒られます.

f:id:macgchat:20210409211028p:plain
prefabの構成物を現在消せない状態ですよ.という叱られが発生しているわけです.
要は,Amazonで買った荷物を,段ボールを開梱せずに中身だけ捨てようとしている状態です.
ですので,この段ボールであるprefabをunpackしてやる必要があります.

 

現在青色になっているあまなつちゃんのトップprefabを右クリックして,
Unpack Prefab Completely を選択します.

f:id:macgchat:20210409211459p:plain

 

すると,あまなつちゃんのトップprefabが青から灰色に変わります.

f:id:macgchat:20210409211532p:plain


ここで再びwearをクリックして,delete等で削除しましょう.

f:id:macgchat:20210409211723p:plain

f:id:macgchat:20210409211813p:plain

 

このメイド服の場合,
Ribbon_wear, shoes, socks もダブりとなるので削除します.

f:id:macgchat:20210409212410p:plain

 

f:id:macgchat:20210409212452p:plain

はい.するとあまなつちゃんのうえにメイド服が乗りました.かわいいですね.
しかしこのままだと,服があまなつちゃんと連動して動きません.
服のボーンの割り当てをあまなつちゃんのボーンと一致させる必要があります.

 

f:id:macgchat:20210409212616p:plain
試しに右足を出させてみましたが,見事に生足だけ出てますね.
次項からこれを調整していきます.

 

3. ボーン結合の前準備

シュガリーブティックのページを見ると,着せ替え時の注意点が公開されています.

f:id:macgchat:20210409212930p:plain


これに従って,あまなつちゃんの skirt_rootを削除します.
階層はhierarchyを参照してください.
なお,あまなつちゃんのトップprefabをunpackしておく必要があります.
unpackしていないとこの操作ができないか,skirt_rootを消した瞬間にモデルが崩壊するので気づくことができます.

f:id:macgchat:20210409213049p:plain

 

f:id:macgchat:20210409213253p:plain
skirt_rootを消しました.
ここまで意図した操作となっていれば,モデルは図のようなままでしょう.
服のprefabを消しても,服のボーンは残ったままとなります.この操作では不要な元のスカートのボーンを削除しました.
この操作は必ず行う必要があります.

 

4. Avatar Tools / Avatar Assembler によるボーン結合

いよいよ服とあまなつちゃん素体のボーンを結合していきます.
手でもできる作業ですが,今回は作者様推奨のAvatar Tools を使用します.
f:id:macgchat:20210409213759p:plain
上図のところから起動します.

 

起動したら,それぞれ対応する場所にhierarchyからドロップしてください.
f:id:macgchat:20210409222311p:plain
(Base object に素体,Combine object にメイド服)

f:id:macgchat:20210409214141p:plain
check を押すといろいろ警告が出ますが,Assemble! を押下してしまいましょう.

すると,Unity原点にボーンが結合されたモデルが出現します.

f:id:macgchat:20210409214317p:plain


どう変わったのか,それぞれに片足を上げさせてみましょう.

f:id:macgchat:20210409214646p:plain
奥(赤色)がボーン結合前のモデル,
手前(青色)が結合後のモデルです.
どうですか? ちゃんとソックスを履いていますね.かわいいですね.

ただし,使用したツールの特性上,もともとの服のprefabも保持されているので,削除します.
削除の前にこの画面で,消す対象のprefabを特定しておきます.

おもむろに,上がっていない右足の靴下部分をクリックします.

f:id:macgchat:20210409215021p:plain
すると,Maid-Costume内のKnee-socksがハイライトされましたので,Costume, Knee-socks, shoesが残されたprefabであることがわかりました.

ゲームプレイ状態から抜け出して,先ほどのものを削除します.

f:id:macgchat:20210409215344p:plain

 

f:id:macgchat:20210409215529p:plain
ボーン,dynamicbone, dynamicbone-coliderが機能していることがわかります.

 

5. メッシュ結合

最後にメッシュを結合します.
「突然え?何?」って思われるかもしれませんが,わからないうちはこれを脳死でやっておいてください.アバターが軽くなって自分も周りの人もハッピーピーーーになります.

VRChatに持ち込めるメッシュは,動かないものをレンダリングする静的メッシュレンダラーと,動くことで伸び縮みするものをレンダリングする動的メッシュレンダラーがあります.
特に動的メッシュレンダラーはとても重いとされているため,1つにまとめるべきだと考えられています.

現在,このあまなつちゃんのモデルには,元のモデルのメッシュと,メイド服のメッシュが混在している状態ですので,アップロードする前に1つにまとめてみんなハッピーにしてやろうという算段です.

 

先ほどと同様にAvarat ToolsのなかのSkinned Mesh Combiner を起動します.すぐ終わりますのでやっておきましょう.

f:id:macgchat:20210409220401p:plain


Target Object の欄に,先ほどのボーン結合で生成されたトップprefabをドロップします.
そしてCombine! を押下すると,Unity原点にメッシュが結合されたモデルが複製されます.

f:id:macgchat:20210409222404p:plain

f:id:macgchat:20210409220801p:plain

 

以上!
おつかれさまでした.


後はこのモデルを煮るなり焼くなり好きにしてOKです.
VRChatにそのままアップロードでき,服も体に追従して動くはずです.
このままVRMに変換することだってできます.

メイド服に付属の,ヘッドドレスのつけ方などは,要望があれば追記しようと思います.

 

参考資料