VRChatのアバターをデフォルトの状態ではなく、他人の作った着せ替えセットを使って楽しむこと、ありますよね。
ざっとBOOTHを眺めた感じ、頭以外が販売されていて、それをUnity上で購入済みのアバターの頭と合体させるような方式を取っていることかと思います。
うまいことやればDynamicboneも設定済み、サクッと差し替えて終わり!……なんですが、キッシュちゃんにミーシェちゃん用の服を着せたい!とか、ああいや、もっとマイナーな(失礼)とっても個性的な子にミーシェちゃん用の服を着せたいみたいなときに、頭抱えませんか?
Unity上で作業すると微妙に合わなくて面倒くせぇとか、Unityで調整しようとするとプラグインで黒魔術唱えないといけないとかとか。
ああもうなんでもいいや、俺はBlenderで合体済みのモデルを用意したいんだ!という自分向けのメモです。
お借りしたモデル
- オリジナル3Dモデル「Zero」
- QuQu日帰り温泉プラン(※販売終了)
「NecomaidPremium」での利用を想定している温泉タオルつきモデルを、Zeroちゃんに使いたいというわけです。
どうくっつけるかを考える
頭と身体を接続するにしても、モデルによっていくつかのパターンが考えられるかと思います。今回思い浮かんだのは、
- Zeroちゃんの頭だけを持ってきて身体にくっつける
- Zeroちゃんの素体にタオルだけを持ってきてくっつける
――の2通り。恐らく1番がスタンダードな手段だと思います。2番はウェイトペイントの都合で貫通や思いも寄らないトラブルが発生しかねないので、素体側に特別なこだわり(胸のサイズが~とか)がない限り選ぶことはないかと思います。
ふつーに1番で行きます。
大まかな手順
- 頭を使いたいモデルAと、身体を使いたいモデルBの両方を読み込み
- モデルAを頭だけにする
- モデルBを身体だけにする
- モデルAのボーンをHead以下のみに(それ以外全部削除)
- モデルBのHead以下を削除
- 他に重複するボーンがあれば削除
- オブジェクトモードでの位置調整と、位置調整の確定
- Ctrl + Jで結合
- HeadのボーンをNeckの下に入るようペアレント設定
- モディファイアでボーンの関連付けを再設定
- ポーズモードで動作確認して出力
Blenderでの作業
とりあえずfbxをインポートします。テクスチャが設定されてないかもしれないなど、細かいことは端折ります。
構成を見てみましょう。
Zeroちゃんの側は、各パーツがセパレート済みの素体モデルを読み込んだので、メッシュの分離作業は無しです。シェイプキーとか気遣わないといけないので、可能な限り分離してるデータを使いましょう。
ボーンとメッシュを頭だけにする
今回使用したZeroちゃんのモデルはセパレート済みなので、素体部分のメッシュはアウトライナー側で削除しました。
ボーンの削除は、アウトライナーでArmatureを選択してから編集モードに切り替えます。
頭のボーンはHead以下だけを残して全部消します。
身体側の不要なボーンを削除
次に身体側の重複する不要なボーンを削除します。具体的には、Head一式が不要です。その他にしっぽが不要であるとか、不要であると判断できるものがあれば消しておきましょう。
このあたりで一度、別名保存しておきましょう。
サイズと位置調整
胸の高さなど微妙に違いますが、今回はたまたま首の位置や股下の位置などが一致していたのでほぼ調整無しで結合します。
サイズ変更や移動をする場合は、オブジェクトモードでArmatureと各メッシュを選択して移動を行います。
オブジェクトモードで移動やサイズ調整を行ったら、全てを選択(Aキー)してから「Object→Apply(Ctrl + A)→All Transforms」で変更を確定します。
他のバリエーションの服を持っているなど、身体のサイズが同じ別の服に着せ替える可能性がある場合は、頭の方を移動・調整してください。
できたら別名保存しておきましょう。
ひとまとめにする
オブジェクトモードで頭のArmatureを選択してから身体のArmatureをShiftを押しながらクリックし、Ctrl + Jで結合します。
Headボーンを身体のボーンに繋げる
しかし、このままではボーンが分離していて上手くいきません。
このHeadをNeckの下に持っていきたいわけです。
ああいけない!忘れてました。ボーンのペアレント設定をする前に、Headボーンの位置がズレているのなら編集モードで調整しておきましょう。はい。
位置調整が済んでいることを確認して、編集モードでHeadを選択してからCtrlを押しながらNeckを選択します。選択をしたら「Armature→Make(Ctrl + P)→Keep Offset」でペアレント設定します。
モディファイアでボーンの関連付けを再設定
オブジェクトモードに切り替えて、各メッシュを確認してみます。
緑色のレンチボタンを押すとモディファイアプロパティが表示されます。
上の図では、faceメッシュにはちゃんとArmatureが関連付けされています。
ところが、他のメッシュを確認してみると、赤く表示されているものがあるかと思います。
空欄のObject欄をクリックして、Armatureを選びます。
ポーズモードで身体を動かしたときに、ちゃんと頭も追従していれば大丈夫でしょう。
あとは、必要に応じてメッシュを結合したり、マテリアルを統合したりしてfbxファイルとして出力します。
どハマリポイント紹介
出てくるメニューが違う!ショートカットキーが反応しない!
オブジェクトモードと編集モードで内容が変わってきます。操作している間にころころとモードが変わるので、今どのモードになっているのか常に確認しましょう。
結合するとテクスチャが死ぬ!
UVマップ名は統一されていますか?モデルによって、「UVマップ」や「UVMap」だったりと名称が違う可能性があります。
結合する前に同じ名称にしておきましょう。自分はこれで5万年ぐらい悩んでました。