この記事は、Blenderで自作のアバターを作ってVRChatにアップロードして実際に遊んでみる!というシリーズの第3回、リギング・ウェイトペイント編になります。主にアバター作成として、Blenderでのリギング・ウェイトペイントなどの作業をしていきます。
右図の猫アバターのような簡単なキャラクターを作っていきます。いきなり人間キャラクターは難しいので、アバターアップロードの全体の流れを把握するためにシンプルなキャラクターを作っています。

第1回目:VRChatとは?から必要なソフトインストールまでは以下の記事に書いています。↓
第2回目:モデリング・テクスチャは以下の記事に書いています。↓
アバターを作成する作業手順
- モデリング
- UV展開
- テクスチャ
- リギング
- ウェイトペイント
- モデルの書き出し
今回の記事は④⑤⑥です。リギングではアバターに必要なボーンをつけていきます。ウェイトペイントは普通に作業するだけなので理解している方は読み飛ばしても大丈夫です。
リギング、ウェイトペイントの操作についてはあまり細かく書いておりません。(ものすごく長くなってしまうので…)
第一回でも書いていますが、基礎的な操作は右動画や、他のチュートリアルなど見て勉強してみてください。Blender操作についてはある程度知ってる方向けです。
↑今回の記事を書くにあたり参考にさせていただいてる部分がかなりありますので、一回アップロード以外の部分をやってみるとわかりやすくなると思います。
リギングについて
VRChatで使用されているリグの型は
- Humanoid(人型用)
- Generic(動物、人型以外の物体用)
の2種類があります。今回は動物キャラクターですが二足歩行していますので、Humanoidを使っていきます。大半の人がHumanoidを使って人物やキャラクターアバターを作っています。
必要なボーン
VRChatアバターのHumanoidに必要なボーンは右図の緑色のボーンです。名前もこのようにつけていきます。(若干名前が違っても似たような名前ならUnityがそれなりに読み取ってくれるようです)
灰色で名前を書いたのはオプショナルなボーンで必須ではないですが、首や肩などあった方がいいので今回つけていくボーンです。
今回つけるボーン(緑色は必須)

リギング
0からボーンを作っていきます。
Shift + AでArmature > Single Bone を出します
オブジェクトデータプロパティでViewport Display > In Frontにチェックをするとボーンが見やすくなります。

ボーンのペアレントの関係

ボーンは太い方がHead、細い方をTailといいます。
TailからEでさらにボーンを生やしていくと、生えてきたボーンは、元あったボーン(親ボーン)のChild(子)となります。
この関係をペアレント関係といい、かなり重要になってきます。この関係がおかしいとうまくアバターが動かなくなります。
例えば、下に各ボーンの名前があるので見てほしいんですが、Neck, ShoulderボーンはどちらもChestボーンのTailから生やしてください。
HipsとUpperLegの間にある削除するボーンはHipsのTailから生やしてください。

今選択しているボーンが、親ボーンのTailなのか、子ボーンのHeadなのかわからなくなったら、画面左上にボーンの名前が出ますので確認してください。
最初のボーンを股のあたりにもってきて編集モードで小さくします。以下のような感じでボーンをEでTailから次々に生やしていきます。必ずEで生やしてつなげてください(ペアレント関係を正しく設定するため)。ボーンは横や上からも見て、身体の真ん中あたりを通るように調整します。

足の膝や手のひじ部分は少し「く」の字や逆「く」の字になるように曲げておきましょう。また、おへそのあたりから伸びているつなぎのボーンはXで消しておいてください。
気を付けるポイント:真ん中を通るボーンはX軸の0の位置から外れないようにしてください。
気を付けるポイント2:Hips, Spine, Chest, Neck, Headのボーンは曲げない方がいいです。垂直にまっすぐ立ててください。(図ではSpineが少し曲がっていますが、曲げるとVRChatで猫背になります。)また、人間を作る場合は、Hipsのボーンのスタート地点はUpperLegの位置より少し高めにしてください。
ボーンに名前をつけます。ボーンプロパティで右図のように名前をつけてください。


Auto-Name Left/Right(自動ネーム:左右)
左右両方につけるボーン(肩から手まで、足についているボーン)を選択して、右クリックでNames > Auto-Name Left/Rightをクリックします。
名前にHand.Lなど、LやRを自動でつけてくれます。

Symmetrize(対称化)
次も同様に左右両方につけたいボーンを選択して右クリック > Symmetrizeをクリックします。
もう片方の側にもボーンを作ってくれます。自動的にL/Rなどの左右の名前もつけてくれます。

これでボーンを全て生成し、リグを作ることができました。

自動でウェイトをつける
リグを組み終わったら、自動でウェイトをつけます。
オブジェクトモードで
- 猫の身体のオブジェクトを選択
- アーマチュア(ボーン)を選択
- Ctrl + Pでペアレントのメニューを出し、With Automatic Weightsを選択します。

※必ずアーマチュア(ボーン)がオレンジになるように選択してください。
これで、自動である程度ウェイトがメッシュに乗るようになりました。ボーンを動かすと、その周囲のメッシュが動くようになります。
きちんとウェイトが乗っているか確認する
自動でウェイトをつけると、大体何か失敗していたりうまくいってないことがあります。
Poseモードにしてボーンを動かしてみると、例えば頭を動かしても、鼻がついてきてくれていません。鼻にウェイトがちゃんと乗っていないようです。
なので、これから自分でうまくいってない箇所をウェイトペイントで直す必要があります。

ウェイトペイント
ウェイトペイントをするときは、
アーマチュアを選択→身体のメッシュを選択して、Weigt Paintモードに移動します。
ボーンをShift + Altで選択すると、そのボーンのウェイトが乗っているメッシュに色がつきます。

鼻にメッシュが乗っていないのでウェイトを乗せます。

明らかにおかしい部分は直せばいいと思いますが、ウェイトペイントは正直めちゃくちゃ難しいです。ボーンの数も少ないし、完璧に良い動きになるように直すのは、初心者の場合は今回はやめた方がいいです。上のように鼻にウェイトペイントが全く乗ってない、ようなときは直すべきですが、足が満足いくように曲がらない、少しめり込んでしまう、等の場合は今回はスルーでいいと思います。
ウェイトペイントをきちんと塗るためには、ボーンやメッシュもきちんと計画的に作ることが必要になってきますし、今回はアバター作りのためにボーンの数にも制限がありますので、完璧に良い動きにすることはあきらめましょう。
シェイプキー
VRChatはマイクでしゃべることができます。そのときに、あ、い、う、え、お、などと発音するときに口の形を変える動きをつけるためにシェイプキーでアニメーションを登録しておきます。
オブジェクトモードで猫の身体のメッシュを選択し、オブジェクトデータプロパティのShape Keysというところの右側にある+のアイコンをクリックします。
Basisというメニューが増えます。
もう一回+のアイコンをクリックするとKeyというメニューが増えますので、その上で左クリックして名前をsound_aに変更しましょう。(あ、と発音したときに動くアニメーションをつけるということです。)

次は、編集モードにして、口元を少し膨らませます。
今回は口を開くことができないので、ちょっと口元を動かしたり、耳を動かしたりしてしゃべってる感じのアニメーションをつけます。(口が開くようにメッシュを作った方は、口を実際「あ」の形に開けるように変形してもらえばOKです。)
形を変形し終わったらオブジェクトモードにします。これでsound_aのシェイプキーができました。

sound_aの下のValueという値を0~1に動かすと、さきほど作った変形アニメーションが実行されます。
動かしてみた場合は、必ず0に戻しておいてください。

同様に、オブジェクトモードで+アイコンをクリックして今度はsound_iのキーを作ります。
編集モードで口を少し横にふくらませて「い」の形を作り、オブジェクトモードに戻ります。

これを繰り返し、a,i,u,e,oの五種類のシェイプキーを作ってみてください。口だけじゃなくて、耳や、動かしたいところを動かしてみて構いません。(頂点を消したり増やしたりはできません。移動、拡縮、回転などならなんでも良いです。)
モデルの書き出し
メッシュの用意ができましたら、モデルを書き出ししていきます。
アバターデータをUnityに持っていく場合はFBX形式でエクスポートします。
File > Export > FBX
を選択します。
※このアバターのBlenderのデータもこまめに保存しておきましょう。

FBXエクスポート設定
FBXエクスポートのウィンドウが開きますので、そこで必要な設定をしていきます。
Object Types
Shiftを押しながら、Camera, Lampを押して除外します。カメラやライトをエクスポートしないための設定です。
Transform > Apply Scalings
FBX Allに変更します
Armature
Add Leaf Bonesのチェックを外す。余計なボーンがつかないようにします。
あとは英字でアバターの名前をつけて、Export FBXを押してエクスポートします。

フォルダにまとめる
アバターのフォルダを作って、そこにテクスチャ画像と、さっきエクスポートしたFBXファイルをまとめましょう。
自分の場合はmunehusaフォルダを作ってそこにいれました。

これでいよいよUnityに持っていくことができます。もう少しなのでアップロードまで頑張りましょう‼
続き↓第4回:アップロード作業を解説している記事になります。






