VRChat始めてから2か月で覚えたこと書いておくやつ【Blender3.0編】

はじめに

Blenderを始めて今日(4月5日)で2か月が経ち、フレンドも20人を超えました。1か月でした。感謝
プレイ時間は191時間で毎日3~4時間くらいという感じですが、
体感では作業時間がほとんどなので、この時間で何を覚えたのか(※1)このnoteにメモとして残しつつ、これから始める人にも役に立てばいいなぁ(※2)という感じで書いてます

※1 著者はマジのガチのUnity&Blender初心者なので3割くらい信じて、5割くらい疑って、残り2割くらいは間違っている(or無駄な工程)だと思っておいてください

※2 多分モデル改変より先にやることあります。イベント参加したりとか

Blenderでモデルの改変

Boothなどで手に入れたモデルをそのまま使うのもいいと思いますが、VirtualRealityとして存分に楽しむには着替えもしたいし、気分によっては髪の毛の色も変えたいし、ネイルだって楽しみたい。なんなら眼鏡は体の一部だからつけなきゃ落ち着かない、とモデルを変えたい人は多いと思います。

(正直、VRC始めてすぐにやるようなことではないので、イベントとか参加して友達作ったほうがいいと思います。)
(そもそも課金するんじゃなければフレンド増やしてコミュニケーションをとらないとアバターのアップロードもできないので)

今回も、多分私がVRCで今後も長くお世話になるであろう、小宮寝子さんが販売されているQuest対応済VRChat想定モデル くみょう(角猫)ちゃんで進めていきます……ちっぱい可愛い
が、ちょっとこの子特殊なので、不要な操作もあります。

その0 バックアップは必ず取っておきましょう。

自動バックアップ機能を利用してもいいと思いますし、Gitなどバージョン管理ツールを利用するのもいいと思います。

その1 FBX→Blenderへのインポート

FBXファイルをBlenderで編集するためにはblendファイルへと変換しないといけないのですが、難しいことは何もなく『ファイル>インポート>FBX(.fbx)』と進むだけでインポート設定に進めます。
肝心のインポート設定ですが基本的には『アーマチュア>子を強制的に接続』にチェックを入れて『FBXでインポート』ボタンを押せば完了です。

ダウンロードしたモデルにFBXファイルがない、という場合は(おそらく)同梱されている説明書に従ってunityにデータを持っていき、unityのprojectファイルからFBXファイルをコピーしましょう。

その2 改変の準備

※正直、どれもどの程度の改変を行うかによりますが、後々のことを考えるとやって損はないと思います

0.Blenderでのくみょうちゃん改変に必要な準備


元の制作ソフト→FBX→Blenderという変換によって階層構造が変わってしまったのか、修正が必要になったのですが、こちらはくみょうちゃん特有&ほかに説明してくださって方がいるので、くみょうちゃんを改変する方は以下を必ず確認してください。感謝。

くみょうちゃんのウェイトをBlenderに持ち込む

1.テクスチャを割り当てる

最初からテクスチャが当たっているケースもありますが、モデルが白かったり黒かったりする場合はテクスチャを割り当てましょう。
プロパティウィンドウからマテリアルプロパティを開き、マテリアルを割り当てていきます

赤いビーチバレーボールみたいなマークを押すと上のような表示になりますマテリアルプロパティっていきなり言われても分からんよね

【マテリアルプロパティ>サーフェス>ベースカラー】と進むと、画像では『Diffuse Texture.002』となっている部分が現在マテリアルに割り当てられているテクスチャ(.pngとか)なので、この横のファイルマークを押して同梱されているテクスチャを設定します。
また、色がやたら白っぽい、という場合は色空間以下の数値をすべて0にし、放射を白→黒に変更すると色が濃くなると思います

2.ボーンとウェイトの調整

ボーンの親子構造や向き、ウェイトはUnityにもっていったときに非常に大事になる可能性が高いので、最初にある程度調整してしまいましょう。
くみょうちゃんの場合、構築の際の事情か名前の前に「mixamorig」というprefixが付いていたので、【メニューバーの編集>名前を一括変換】で消しました。
(消さなければいけないわけではありませんが、目当てのボーンが探しにくいので)

また、Unityでアニメーションを作成する際にボーンにゆがみがあると、本来の関節とは異なる動きをするのでボーンの向きを確認します。
まず、【オブジェクトデータプロパティ>ビューポート設定>最前面&座標軸】にチェックを入れてボーンのXYZ軸が視認できるようにしましょう。
この時X軸ないしZ軸が可動域に対して水平方向に向いていれば問題ありませんが、例えば指の曲がる方向に対して斜めを向いていたりする場合は回転させて修正しましょう。

ウェイトについては軽く頂点グループを流し見て、全然関係ないところが青以外の色になっていないかだけ確認するくらいで大丈夫です
また、ウェイトペイントを編集する場合は右上の蝶のようなマークを押して
【頂点グループをミラー反転】にチェックを入れておくと、Leftxxxx/Rightxxxxのように左右で対応している頂点グループに同じウェイトが設定されています(多分メッシュ自体も左右対称である必要があります)

【よりこだわる場合】
ボーンの関節部分(球体部分)が本来の関節の位置にない場合、アニメーション作成時にずれる原因となるので、球体位置と、必要に応じてウェイトペイントを修正しましょう。
ただ、ウェイトペイントまで修正する場合は後述の、【体を線対象にする】までやってからのほうが楽です。
ここは気になり始めた時に直すでも問題ないです。

3.素体(全裸)を抽出する

モデルにもよりますが、素体と服が一つのオブジェクトになっているモデルも見かけます。
特にVRC向けモデルですと、もともと全裸での利用は想定されていないので下着なんかは肌と同一オブジェクトになっていることも珍しくないのではないかと思います。
ですが、例えば
『水着を着たい』とか『バーチャルだろうと下着は毎日変えたい』という方もいらっしゃるかと思います。
(筆者も曜日毎に自動でぱんつが変わるようにするか悩みました)
そういう場合は一度モデルを全裸にしなければなりません。

さて、剥き方ですが簡単です。
まずはオブジェクトモードで身体部分のオブジェクトを選択します。
くみょうちゃんの場合、一部の服が身体と同一オブジェクトになっているので、服の部分を選択してはがしていきます。

ちなみに、同一オブジェクトと言っても内部では身体と服部分が分かれているので、メッシュを作り直すというような作業は不要です。
(イメージ的にはオブジェクトっていう圧縮ファイルの中に体メッシュと服メッシュが入ってる感じ?)

服の選択の仕方ですが、編集モードで服の部分にカーソルを当てて【L】を押すと、カーソル位置のメッシュのひと固まりが選択されるので、それを服のパーツがすべて選択されるまで繰り返して、最後に【P>選択】をすると身体オブジェクトから服が分離し、身体.001オブジェクトにまとまります。
ここで分離させた服と、もともと分かれていた服を結合したい場合は、Shiftを押しながら結合したいオブジェクトを選択し【CTRL+J】でまとめることができます。
著者は、マフラー、袖、服の3オブジェクトに分割しています。

同様の手順で、髪の毛と耳も身体から分割します

4.身体を線対象にする

やらなくてもいいことですが、やっておくと後々の苦労が減ります。
というか、全力で自アバターを愛する場合は必須です。
自作アバターを作る際も服などが作りやすくなるので覚えておくといいかと思います。

さて、分離させた体のメッシュを編集モードで見ると、三角形のポリゴンの集合体でできていることがわかると思います。

この1枚1枚をポリゴンという……であってるはず

で、さらによく見ると斜め線の入り方が左右対称じゃないことがわかると思います。
遠目に見るとシルエットは左右対称だから問題ないじゃん、と思うかもしれませんが、身体の凹凸が微妙に変わってきてしまうので、肌に密着する薄い服(水着など)を作る際に、右側はきれいに肌を覆っているのに、左側は肌が布を突き抜けてしまう、ということが起こるのです。

両方点の位置関係は同じでも、線の入り方によって左は谷折りに、右は山折りになっている
(わかりにくいけどなってるの)

なので、これを防ぐために左半身をバッサリ消し、右半身をミラーリングします。

まずは編集モードに移動した後で、右上の【3Dビューのシェーディング】でワイヤーフレーム表示にし、テンキーの【1】もしくは右上のコンパスの【Y or -Y】を押し、正面(背面)向きにします。

この状態で中心線に沿って左半分を範囲選択、【Deleteキー>頂点】で削除します。
この時、中心を消してしまわないように気を付けましょう。ざっくりと半分を消した後に中心近くは拡大して削除するといいです。

今度は、オブジェクトモードに変えてからプロパティウィンドウのスパナのマークを押してモディファイアプロパティを開き、
【モディファイアを追加>ミラー】
【ミラーオブジェクト>顔_通常(ミラーリングされたメッシュがぴったりくっつくものを選ぶ)】
【マージ>0.5m】
を選択後、カメラマークの右側のボタンでメニューを開き【適用】を押せば左右対称の体の完成です。

分かりやすくするために「Armature」モディファイアを消してますが、
作業するときは消さないでください

ちなみに、各メッシュに設定されているウェイトペイントも反映されるので、ウェイトペイント設定しなおしということにはならないはずです。
(ボーン名/頂点グループ名がLeftArm/RightArmのように左右が対応してない場合、ウェイトペイント消えるかも・・・?先にボーン名は変えておきましょう)

メッシュが多すぎるとデータが重くなることもあるようなので、作業を終えたら、髪の毛などは再び身体オブジェクトと結合してもいいかもしれません

ここまでやればアバター改変の準備が整ったといっていいでしょう。
おそらく、右と左で破綻具合が異なる、というようなことは起こらなくなるかと思います。
(多分ここまでで2時間くらいかかるかな?)

その3 モデル改変

1.右目、左目にボーンを追加

さて、改変の準備が済んだところで、実際に改変をしていきましょう。
実はくみょうちゃん、Avatar3.0以前のアバターのため、Avatar3.0の機能を使い倒そうと思うとこちらで対応する必要があります。
(そのうち公式で対応していただけるかもしれませんが……)

この作業を行うことで、娑婆っている人のほうに目を向けるようになる……らしいんですけど、自分がどこ見てるかわからないので実際のところどうなのかは分かりません。
ただ、何もなくても周りをきょろきょろするので小動物的な可愛さを身に着けられます。

まずは右目にボーンを入れます
入れ方ですが、まずオブジェクトモードで適当なボーンを選択し、編集モードへ変更、【左上の追加>キーボーン】を選択すると、Armature内リストの最下部にBoneという名前でボーンが追加されるので、これをダブルクリックし、「RightEye」へと名前を変えます。
そして、とがったほうが上を向いた状態のまま、下側の球が右目の瞳孔の後ろに来るように移動させましょう。

移動が終わったら、RightEyeボーンを選択した状態で【Shift+D→Enter】とすると同じ場所に「RightEye.001」ボーンが複製されるので「LeftEye」へと名前を変えて、左目の後ろに移動させます。
この時、ボーンプロパティ(骨のマーク)を開いて【トランスフォーム>ヘッドX、テールX】の数値にマイナスを付ける(負の値にする)と綺麗に左右対称になります

今度はウェイトの設定です。
これによってボーンの動きに応じて瞳が動くようになります。
この作業ではメッシュにウェイトペイントを施すため、瞳のメッシュが入っている『顔_通常』オブジェクトをオブジェクトモードで選択し、ウェイトペイントモードに移ります。
プロパティウィンドウでオブジェクトデータプロパティ(緑の逆三角形)を開き、頂点グループに+ボタンから「RightEye」「LeftEye」を追加してください。
追加したRightEyeを選択すると顔が真っ青になっていると思うので、その状態で瞳をウェイト1、ハイライトを0.5~0.75くらいで塗りつぶします

ハイライトへのウェイトを少し弱めると、瞳とハイライトの動きがずれることで
より反射光っぽくなる……気がする

【頂点グループをミラー反転】にチェックを入れておけばLeftEyeにも同じようにウェイトペイントがミラーリングされているかと思うので、作業は完了です。
(反映されていなければ同じ作業をもう一度行ってください)

2.リップシンク、瞬き用表情シェイプキーの作成

こちらもAvatar3.0に対応するための改変です。
こちらを行うことでいわゆる目パチ、口パクが可能になります。

ブレンドシェイプの作成も非常に簡単で、目のウェイト設定をする際に使った頂点グループの真下にあるシェイプキーから行うことができます。
こちらにキー名を入力し、【キーを選択>キー名横の数字を100】にした状態で、編集モードから顔のメッシュを変形させることで表情を作っていくことができます。
作るものがたくさんあるのですが、詳しく書いてあるページがあるので、紹介にとどめます。

VRChat avatar3.0の表情設定レシピ!

3.下腹部の破綻を抑えるウェイトの調整とAbdomenボーンの追加

布の伸縮性などを再現するのは難しいため、足や腕を大きく動かすとどうしても肌が服を突き抜けることがあります。
例えばくみょうちゃんの場合ですと足を大きく上げると、お尻~下腹部で崩れが起きます。

製作者の予想より動くと崩れてしまう

こちら対応方法はいくつかあるのですが、今回は
1.ズボンのウェイトを弱めて貫通しないようにする
2.ヘソ~下腹部にかけて伸びるAbdomenボーンを追加して、任意で下腹部を変形できるようにする
という方針で作業しました。
が、ウェイト調整もボーンの追加も既に上で触れた内容なので割愛します。

対応後はかなり崩れが目立たなくなりました
(Unity側での制御も必要になりますが)

4.ぱんt水着を作ろう

じつはくみょうちゃん、前張りは貼っているもののノーパンなので防御力がこころもとなく……もとい、服のまま温泉とか海に入るのもなんだかなぁ、と思ったので下着兼水着を作っていきます。

今までよりも難易度が一つ上がる……ように見えて今までに使った機能でほとんどのことができます。
まずはオブジェクトモードで身体を選択し、編集モードに入ります。
そして面選択モードで左右どちらかの側で大体のぱんつの形をとりましょう

この状態で【Shift+D(複製)】→【P>選択(分割)】を行うことで、選択部分がコピーされた新しいオブジェクトができます。
さらにモディファイアからミラーを追加し、マテリアルで黒っぽいベースカラーを設定しましょう。

ブーメランパンツ感はありますが、それっぽい形になりました。
さらにここから【シュリンクラップ】モディファイアを以下の設定で追加します

シュリンクラップによって、複製元の身体オブジェクトから各ポリゴンを外側に向けて移動し、ソリッド化で厚みを持たせることができました。
後は好きな形に調整すればパンツの完成です。

ウェイトも、複製元の頂点グループを引き継いでいるので、設定は不要ですが、関係ないもの(今回なら腕や指先、頭など)は消してしまいましょう。

まだまだいじっていく予定ですが、こんな形になりました。
身体を完全に線対象にしたので、ミラーモディファイアでミラーリングするだけで破綻しにくいと思います。

その4 Blender→FBXにエクスポート

ここまで来たら、あとはUnityで読み込めるようにFBXファイルに戻すだけです。
【ファイル>エクスポート>FBX(.fbx)】で書き出し設定を行いましょう。
変更が必要なのは三か所です
【オブジェクトタイプ>アーマチュア/メッシュ】
shift押しながらクリックで複数選択できます
【トランスフォーム>スケールを適用>すべてFBX】
【アーマチュア>リーフボーンを追加(チェックを外す)】
これでUnityで読み込む準備ができました!

自撮りは楽しいかもしれない

それでは皆さん、よきVRChatライフを!!
次回はみんな大好きUnity編を書くと思います
(主に今回作ったものをどう設定していくのかって話になります)


この記事が気に入ったらサポートをしてみませんか?