アバターの着せ替え手順紹介

アバターの着せ替え手順を紹介したいと思います
アバターというとVRMやVRChat向けなどいろいろあると思いますが、今回はどんなアバターにも使える汎用的な手法を紹介したいと思います
その分少しハードルは高いかも…

モデルはSUZURIさんの墨澄(スミスミ)ちゃんと

https://suzuri.jp/surisurikun/digital_products/53046?srsltid=AfmBOopg_itR2FitDycSTh7Qdd_83xhDGPyG5z_hA5nztOeqj06PWxEP

3BONさんのTech Mesh (for Female avatar)をお借りしました

https://booth.pm/ja/items/5848688

スミスミちゃんにこのズボンを履かせてみましょう

1. FBXで書き出します

用意したモデルたちをUnityで読み込みます
Unityには公式でFBX Exporterが用意されているのでこちらを利用します(Autodesk FBX SDKを利用しているのでそこそこ信頼性は高いです

2. 3dsMAXで読み込みます

3dsMAXかよ!!!と突っ込まれそうですが、Blenderでも何でも他のDCCツールでも構いません
残念ながら私が慣れ親しんだツールが3dsMAXだったというだけです…

とりあえず読み込んでみます
もちろんサイズは全然合いません

とりあえず難しいことは考えずにFFDで形を合わせていきます
いったんスキンウェイトのことは忘れましょう

ぐにょっと
股の高さも合わないのでこれも合わせます

足部分も
便利ですねFFD

これが終わったらスキニングです
スキンウェイトは元のものを維持しながらBoneを入れ子にしたりして、衣装とアバターを一体化する方法もありますが、Boneの位置が合わなかったりしてどんな形状のものでも好きに移植できるというわけではないので今回は汎用性の高いスキンのつけなおしを選んでいます
ちょっぴり面倒ですがね

3dsMAXにはSkinWrapという機能があります
既存のスキンを持ったオブジェクトを参照していい感じに補完して、スキンウェイトを設定してくれるというものです
今回はこれを「面変形」に設定し、参照先に元のスミスミちゃんのメッシュを割り当てました

これだけで動画のようにそれっぽく動きます
意外と簡単にできそうな気がしませんか?

最後はうまくいってない部分をちょちょっと修正します
修正するときにはあらかじめ足を折り曲げるようなアニメーションキーを設定しておくと便利です
折り曲げた状態を見ながらスキンウェイトを調整できます

さぁ調整していきましょう
SkinWrapをSkinに変換します

ウェイトツールを選び

「エンベロープを編集」→「頂点」にチェック

Boneを右のListから選択し、ウェイトを設定していきます

3dsMAXには他のDCCツール同様、ミラー機能もありますので片側だけ調整できたらさっと移植することもできます
「ミラー閾値」でどのくらいずれている頂点でも同一とみなすか設定できます

一通りスキンウェイトを調整して
Unityへエクスポートして、マテリアルをアサインしなおしたら…

可愛くてちょっとパンクなスミスミちゃんの完成です