【VRChat】へっぽこでもできるBlenderを使った雑お着換えガイド
Attention
以下の事項を念頭に置いて本記事をお読みください。
・本記事は、私(うみねこたつ)が普段のお着換えで使用しているノウハウを、実際に操作する手順に沿って解説する形でまとめたものになります
・あくまで主観的なノウハウです。逆に非効率な手順を踏んでいる場合がありますがご容赦ください
・対象読者は「Blender使った着替えをしたいけどよくわかんなくて投げた人」です。超基本的な操作(各モードの説明とか)は省略していますので、Blender初挑戦の人は適宜ググりながら読んでみてください
・偉そうなこと書いてますが、私もよわよわなのでいい感じのノウハウがあれば教えてください…!
はじめに
VRChatの世界に飛び込み、慣れてくるとお着換え欲が出てきますよね。そういった際、大体の人が初めてのお着換えにUnityを使うかと思います。
しかし、服のPrefabを追加することでボーンが増えて複雑になっちゃったりだとか、着せた服の袖の部分だけを調整したいだとか、はたまた衣装のアクセサリーの部分だけ使いたいだとか。Unityでお着換えをしようとすると「我慢できるし対策はあるけどちょっとモヤっとする壁」にぶち当たることがいくつかあります。
そんな時こそBlenderの出番!
…なのですが、当然Blenderは何も考えずに使えるツールというわけではなく、メッシュとかボーンとかウエイトとかウエイトとかウエイトとかのあれこれがわからず挫折してしまう方が多いと思います。
また、やり方を学ぼうにも「VRChat向けアバターに関するBlenderノウハウ」なんてピンポイントな情報がそうそう転がっているはずもなく(ないですよね?)。習得するには頑張ってGoogle先生と修行するか、友人知人のノウハウを秘伝のソースかのように受け継ぐくらいしか手段がないのも大きな要因になっているように思います。
そこで、備忘録的な意味も含めてノウハウを残しておけばきっと役に立つかなー、なんて思った次第です。
本記事では、専用ではない衣装をBlenderで着せることをゴールに、FBXのインポートからエクスポートまでの流れをざっくりと記します。
皆様の一助になりますように。
1. 下準備
3Dモデル
解説にあたり、今回は以下の3Dモデルを使用します。
【注意】
・「あこがれ制服セット-みのり-」は2020年10月22日から11月8日までの限定モデルとなります
・リアアリスちゃんはいいぞ
使用ツール
・Blender v2.80
【注意】
私が使用しているバージョンがv2.80というだけであって、当該バージョンでなければダメというわけではありません。恐らくですが。
2. 新規作成~3Dモデル(fbxファイル)インポート
Blenderを起動し、「全般」を新規作成するといつもの画面が出てきます。
キューブとカメラとライトはいらないので消してしまいましょう。
続いて、今回お着換えするモデルをインポートします。
「ファイル」-「インポート」-「FBX(.fbx)」
で、読み込ませる3Dモデル(FBXファイル)を選択し、インポートします。
大きさも異なっていますし、衣装の方にも体モデルがついていてごちゃっとしてしまっていますね。
ひとまず衣装モデルを非表示にしておきましょう。シーンコレクション(下図)赤枠の目玉マークを推すと非表示にできますので、非表示にしたいボーンとメッシュを選択して非表示にしておきます。
3. 衣装を着る側となる3Dモデル準備
衣装を着せるにあたり、衣装を着る側となる3Dモデル(以下、素体モデル)から必要ない部分を消してしまいましょう。
まず、オブジェクトモード上でシーン内のメッシュを選択して削除していきます。一つのメッシュにまとまってしまっている場合は、対象のメッシュを選択した上でメッシュの編集モードへ移行(Tabキーを使うのがおすすめ)し、削除したい部分を選択し削除していきます。削除の際は透過モードやLキー(連続した頂点を選択)を活用するとスムーズに削除できるかと思います。
今回は服をすべて削除してしまいましょう。一通り削除が終わると、下図のようになるかと思います。
ひんむいちゃってほんとごめんなさい。
続いて、使用しないボーンを削除していきます。
オブジェクトモード上でボーンを選択してボーンの編集モードへ移行し、削除したいボーンを選択して削除していきます。ボーン編集モードでもメッシュの時と同様に透過モードやLキー(連続したボーンを選択)を活用してさくさく消してしまいましょう。
今回はスカートのボーンを使用しないので消してしまいます。
よく見るとスカートのボーンが消えていることが確認できるかと思います。
これで素体モデルの調整は完了です。
4. 衣装側3D側モデル準備
続いて、衣装側の3Dモデル(以下、衣装モデル)も準備します。素体モデル同様に、必要のないメッシュとボーンを削除していってしまいましょう。
一通り済ませたものが下図となります。
今回はメッシュから靴の部分のみを削除しました。また、ボーンは素体モデルに存在していないボーンを残し、その他のボーンをすべて削除しました。
素体モデルに存在するボーンというのは、例えば「L_UpperArm」(左上腕)とか、「Head」(頭)とかです。
またこの時、削除する前に残しておくボーンがどこにつながっているのかをメモを取るなどして覚えておきましょう。今回はリュックサック用のボーン「bag」と「bag2」を残しますので、対象となるボーンの設定を確認し、ペアレントが「Chest」であることを確認しています。
5. 衣装の頂点グループの編集
本題です。ぶっちゃけ、ここだけ覚えてもらえれば十分です。
まずはシーンコレクションから、素体モデルの任意のメッシュ(体の部分がおすすめ)を選択し、頂点グループ一覧をメモるか下図のようにキャプチャしておきましょう。
今回の場合、上下セットの服を着せるので「Body2」(体部分)の頂点グループをキャプチャしています。
続いて、衣装のメッシュ(今回の場合は「seihuku」)を選択し、同様に頂点グループを表示してみましょう。
さて、ここで頂点グループについて私なりの理解をお伝えしますと、頂点グループとは簡単に言うとボーンとメッシュ(のウエイトを塗った個所)を紐づける箱のようなものです。とあるボーンを動かすと、そのボーンと同一の名称を持つ頂点グループ上でウエイトを塗られた部分が動きます。
昨今Booth等で販売されている衣装モデルには、すでに衣装のメッシュに作成された頂点グループに対応するボーンに合わせてウエイトが塗られています。つまり、衣装のメッシュに作成されている頂点グループ名を素体のボーン名称に合わせてあげることで、素体のボーンの動きに合わせて衣装のメッシュが動くようになります。雑ですが、下図のようなイメージです。
頂点グループの名称は、その名称をダブルクリックすることで編集することができます。「L_Shoulder」を「Shoulder.L」に変更するなど、対応する衣装側の頂点グループの名称を素体側のボーン名称に合わせていきましょう。一文字でも違うと追従しませんので、気を付けてください。手作業となるため場合によっては労力がかかりますが、頑張りましょう。
この作業を、今回着せる衣装が持つメッシュすべてに対して行います。
6. ボーンの位置合わせ~ボーン結合
頂点グループ名称のリネームがすべて終わりましたら、ようやく衣装側モデルを素体モデルと合わせていきます。
非表示にしていた素体側のボーンを表示しましょう。
上図のようになりますので、簡単に位置合わせを行います。大体の場合、衣装の腕の部分と素体の腕ボーンが重なるように上下に動かせば良いです。
【注意】
この時点ではメッシュの大きさは変更しないでください。7. でペアレント化した後に行うようにしましょう。
位置合わせが終わったらCtrl+Jキーを押してボーンを結合してしまいます。すると、下図のようにシーンコレクションで素体側のツリー中に衣装のメッシュが加わります。
ボーン結合後、忘れずに衣装側ボーンを素体側ボーンに接続しておきましょう。ボーン編集モードに入り、結合した元衣装側ボーンを選択し、ペアレントに4.で確認したボーンの名称を入力して接続します。
画像は使いまわしです。
7. 衣装メッシュのペアレント化
ボーンの結合が一通り終わったら、続いて衣装側メッシュを素体に紐づける操作を行います。以下の通りに操作して紐づけていきます。
衣装側メッシュ(のうち任意の1つ)を選択→Shiftキーを押したままボーンを選択→右クリックして「ペアレント」-「空のグループで」を選択
これを、結合した衣装側メッシュすべてに対して行っていきます。
ペアレント化が一通り終わった後、ペアレント化を施したメッシュを選択すると、頂点グループが増えていることが確認できます。関係ない頂点グループがあっても混乱してしまうので、消してしまいましょう。下図の赤枠にあるマイナスボタンを押すことで、選択した頂点グループを削除することができます。
8. 衣装メッシュの調整
ここまで終われば、あとは衣装の大きさを調整して素体モデルに合わせるだけです。ここの手法は多岐にわたり、かつググればリファレンスがたくさん出てきますので、そちらを見たほうが早いです。
例えば、プロポーショナル編集とか、メッシュの拡大/縮小(Sキー)とかの技を駆使して良い感じに合わせましょう。こだわりどころなので、好きなだけこだわってください。
そうして調整してできたものが下図となります。リアアリスに着せるにあたり、 衣装全体を体に合わせて縮小→袖の部分のみをメッシュ編集モードでX軸方向にのみ縮小 して調整してみました。
かわいいですね。
【注意】
衣装を拡大/縮小するときは、衣装の各部位の比率(袖の長さに対する丈の長さなど)を変えないようにしましょう。極端に変えてしまうとウエイトペイントとご対面する必要が出てきます。
また、衣装の大きさを調整するために頂点を融解だとか結合だとか、削除といった操作は行わないようにしましょう。それら操作をしてしまうと、衣装によっては動きが破綻してしまったり、後々Unity上でマテリアルを乗せた際に意図しない見た目になってしまう場合があります。
9. 動作確認~微調整
メッシュの調整が終わったら、ポーズモードでちゃんと衣装が追従してくれるか確認しましょう。
人型の衣装を着せるので、(8. にてよほどおかしな調整をしていない限りは)うまい具合に追従していることが確認できるかと思います。
もともと衣装には製作者さんの意図したとおりのウエイトが乗っているので、8. にて素体の比率に合わせて調整してあげるだけでほとんどの場合は上手く行きます。素材の味を活かしましょう。
素体が衣装を貫通してしまう場合は微調整を行う必要があります。この場合、ついにウエイトペイントと向き合う時が来たのだと思って大人しく受け入れましょう。もしくはメッシュを調整することで対策する方法もあります。
本記事ではあくまで「雑に・手軽に」をモットーにしていますので、ここでの詳細な説明は割愛します。もしかしたらそのうち執筆するかもしれません。
なお、今回の場合は微調整を行わずにうまく追従させることができました。ウエイトペイントを見なくて済んだのでとてもはっぴーです。
10. FBXエクスポート~Unityへインポート
お疲れさまでした。9. で破綻がないことを確認したら、BlenderからFBX形式でエクスポートし、Unityへインポートしましょう。
「ファイル」-「エクスポート」-「FBX(.fbx)」
によって作成したモデルをエクスポートします。
【注意】
エクスポートの際、以下のように設定しましょう。
「アーマチュア」を選択して、「リーフボーン追加」のチェックを外す
「メイン」を選択して、「スケール」を「すべてFBX」に、エクスポートの対象として「アーマチュア」と「メッシュ」を選択する(Shiftキーを押しながら複数選択)
これらのエクスポート設定を行わないままFBXをエクスポートしてしまうと、意図せずボーンが追加されてしまったり、Unity上で縮尺が合わなかったりモデルが破綻する場合がありますので、必ず設定するようにしましょう。
以上のエクスポート設定をした上でFBXをエクスポートし、Unityへインポートしてみましょう。
かわいいですね!
おわりに
以上でBlenderによるお着換えは終了です。改めてになりますが、頂点グループとボーンの関係は必ず覚えておきましょう。そうするだけで(後々微調整が必要になる場合もありますが)、イチからウエイトを塗る手間に比べて7~8割程度の労力を削減することができるはずです。
ちなみに私は本記事用の画像を撮影しながら45分程度でUnityまで持っていけました。ウエイトの微調整を行わずに済んだというのもありますが、慣れるとこのくらいでできます。
また冒頭でも触れましたように、本記事では詳細を割愛したり、なぜそうなるかの理由を省いたりしている部分があります。気になる方はご自分で調べてみてください。
最後に、本手法によって得られる効果を箇条書きにして締めくくります。
メリット
・Blenderでのお着換えを(比較的)手軽に行うことができることで、以下の効果が得られる
- ボーンおよびメッシュが削減できる
- Unity上でボーンのツリーが(比較的)複雑にならずに済む
- Unityでは調整できなかった細かい部分の調整を行うことができる
・ウエイトペイントにほとんど触れずにBlenderでのお着換えを行うことができる
デメリット
・それでもUnityだけで行うお着換えに比べ手間がかかる
本記事に関するお問い合わせ、ご指摘、Blenderでお着換えする上でのご相談等々ありましたらTwitterアカウント(@uminekotatsu)へご連絡ください。
初心者に毛が生えた程度の私でよければ一緒に悩みたいと思います。
それでは、良きお着換えライフを!