Blenderで作ったキャラクターがVRChatで動くまで

Blender

バージョン:Blender 3.4
Unityバージョン:2019.4.31f1(VCC対応)
VRChat:ランクがNew User以上であること
今回やってみたことと、苦戦したところ、次回に使えそうなところをメモしていきます。
※キャラクターモデリングの詳細については書いていません。これはBlnderで作ったキャラがVRChatで動くまでの大体の流れのメモです。参考動画を貼るのでそちらをご覧ください

※2024年5月 BlenderからVRChatにアバターをアップロードする手順を書きましたのでこちらも参考にしてみてください。

キャラクター(アバター)を作る

人型のモデリングは実質3~4回目…?になりますかね。今回サブディビジョンサーフェスを初めて使った作業だったのでポリゴン数がすごいことになってます。
今回参考にした動画はこんな感じです。

・顔
VRoidのモデルをもとに、顔をリトポするのが一番きれいにできるかなー
私が作った時はまだなかったのですが、この人の動画で人型のモデリングの動画を出してるので次回は参考に作ってみたいと思います!

・体
これは女性の体の作り方ですが、ベースはこの人の動画で、胸を作らずこのやり方で作ってみました。
手足は別の人です。足の指まで作らない場合はこの動画のやり方でいいと思います。
肘、膝、肩、乳首は小崎さんのやり方で作りました。

・手と足
これは手のベースは夏森さん。足の指や手の関節部分など細かいところは小咲さんの動画を参考にして作りました。今回は男の手だからあんま気にならないですが、あんまり指を膨らませすぎるとごつくなるので次作る時は気を付けようと思います。

・瞳、口の中
口の中(歯と舌)はこの人の動画を参考に作りました。目は球体眼球なので小咲さんの動画のやり方でやりました。
結局睫毛は誰の動画が作りやすいのかわからないまま…
顔から目の周りの面を分離して形を整えて何とか目に合わせるって感じですかね(いまだに苦戦します)

・髪の毛
これも小崎さんのカーブを使ったやり方が一番楽ですね。個人的に。
ハーフで作る場合、裏面が見える部分(面の向きで見たときに赤くなる部分)があるとVRChat上で透明になってしまうので、裏面が見えるな?って所はフルで作りました。
裏面が見えるからソリッド化を使おうとするとウェイトペイントの時苦労します。というかソリッド化は基本使わないほうがいいっぽいですね…
毛先は完全につぶさないように少し大き目に縮小すること。じゃないとUV展開とウェイトペイントの時に苦戦します。

・服~ボーン配置からウェイトペイント、テクスチャまで
服を作る⇒ボーンを配置する⇒ウェイトペイントを塗っていく⇒UV展開からテクスチャまで設定は基本小咲さんの動画で作りました。part7~12まで参考にしています。
今回サブディビジョンサーフェスを使ったのでウェイトペイントがめっちゃ重かったです…でも適応はまだせず、そのまま作業しました。適応するのはおそらく顔以外はFBXで出力する前ですね。
あと髪の毛は、1本1本ウェイトを塗っていくのが大変なので、ここで髪の毛だけ先にシームをマークとUV展開だけしてからある程度髪を統合しました。
つまり40本くらいあった髪の毛を揺らすボーンの数に合わせて10本くらいにまとめてからウェイトペイントを開始しています。
今回はショートヘアですし、後ろ髪は揺れなくてもいいかなと思ってボーンも入れてません。
靴だけはふさこさんのスニーカーをベースにブーツを作ってみました。

・シェイプキーを作る

これ何故か顔のミラーが上手く適応さてていなかったのか左右で同じ動きができず、目も口も片方ずつ一つ一つ頂点を動かして作りました…
作り方としてはこの人の動画速度を0.25にしてみて作りました。
睫毛はプロポーショナル編集で、編集モードで接続のみにチェックを入れるとまつ毛だけ動くっぽいので、大体の形を作ってから頂点を一つ一つ動かして形を作りましたね。
表情は通常のVRCHatのリップシンクは小咲さんの動画を参考に、あとはMMDモーフ一覧と無料モデルのハオラン君のBlenderファイルを見て自分が使いたい表情を真似して作りました。
ウェイトペイントの参考にもさせてもらいましたハオランくんはここで無料ダウンロードできます。

https://kanalia.booth.pm/items/3818504 #booth_pm

で、出来上がったモデルはこんな感じです。
パーツは素体、髪、鉢巻、胸アーマー、上着、インナー、ベルト、ズボン、靴でわけてあります。
MMD用なら見えない部分は削除するのが一般的らしいですが、VRChatで脱がすので中身も残してあります(笑)
完成したモデルはFBXで書き出します。
下絵やライト、カメラなど不要なものは全て削除しておいて、3Dカーソルとボーンの原点が画像の通りになっていることを確認したらファイル→エクスポート→FBXを選びます。

VCCでVRChatにアップロードする

VCCの導入方法は、私の過去の記事、Blenderでキャラクターを作ってVRChatのアバターにしてみた3VCCを準備するのやり方でlilToonまでの準備します。
https://tiny-sparklies.com/20230421-2/#toc2

そしてOpen ProjectでUnityの画面が開けたら、私の場合はlilToonというシェーダーを使っているのでそれを先にインポートします。ほかにもいろいろシェーダーがあるみたいなので、気になる人はBoothで調べてみてください。

・リグを設定
lilToonがインポートできたら小咲さんの動画の「リグの設定」の通りにやります。

・マテリアルを設定
これについては、過去の記事「Blenderでキャラクターを作ってVRChatのアバターにしてみた2マテリアルの設定」の通りにやります。あくまでlilToonならこのやり方って感じですね。

・VRC Avatar Descriptorの設定
小咲さんの動画(25:52)の通りにVRChatの基本設定をしていきます。
瞬きとか、目がきょろきょろ動くのいらないよって人はそのままで設定しなくてもOKです。

・揺れ物の設定
これは…今はPhysboneというものを使うのが一般的らしいです。
でもこの辺は私もよくわかっていなくて、スカートの貫通問題に悩んでいます。
とりあえず揺らしたいと思う部分のボーンに「PhysBone」というものを入れて設定していくんですね。私の場合は髪の毛、鉢巻、服の裾の部分にphysBoneが入っています。
値はハオラン君の髪や裾のボーンの設定を見てそのまま真似しています。他の人が作ったモデルをみて、どんな値を入れればいいのか勉強するのがいいと思います。他の人が作ったモデルをVCCにインポートする方法はこちらの動画が参考になるので、1回ハオラン君をインポートしてみるといいと思います。

Expressions Menuを追加する

これは任意なので、必要なければ小咲さんの動画の通りアバターをアップロードしてください。
でもVRChatで写真を撮る時とかにいくつか表情があった方が楽しいと思うので私は表情を作りました。
小咲さんのやり方ではハンドジェスチャーに表情を割り当ててますが、私は今回Expressionsメニューから選ぶタイプで設定しています。ハンドサインにつけたい人は小咲さんを参考にしてください。

WDなしでExpressionsMenuから表情を変えたい場合はこちらの記事を参考にしてください
https://tiny-sparklies.com/20240420-2/




最初は表情のアニメーションを作ります。これは小咲さんの動画、30:07 アニメーションの設定を参考に作ります。名前がハンドサインの1Firstとかにしていますが、私はわかりやすく「笑顔」とか「悲しい」とかの名前にしています。
表情のアニメーションを作り終えたら、動画の通り、アニメーションコントローラーを作成します。
動画のやり方と同じようにFXと名前をつけてAnimatorタブに移ります。Animatorタブがない人は[Window]→[Animation]→[Animator]を選択して、Animatorウィンドウを開いてください。

動画では最初にAnimatorタブのParameterタブから+ボタンでint型の「GestureLeft」を追加していますが、私はint型で「kao」としています。

そしたらLayersタブに移動して、+ボタンで新しく追加したら任意の名前を付けます。
私は「表情」と名前を付けて、歯車のマークから値を1にします。

あとは小咲さんの動画の38分当たりから説明している通り、右クリックでCreate State⇒Emptyで作って、作った表情のアニメーションを配置して、上の画像の通りに表情の数だけAnyStateとつなげます。
そして動画では矢印の設定をGestureLeft Equals 1 みたいに設定していますが、私はさっき作ったkaoでkao Equals 1と設定しています。
他の表情の矢印も同じように、その表情の数だけkao Equals 2、kao Equals 3と設定していきます。

ここまでできたらメニューから表情を選択するボタンを作ります。

アバターをクリックして、VRC Avatar Descriptorの設定をしたと思うので、Expssionの三角のところを開いてParametersを選択します。私はGoLocoのパラメーターとメニューをベースに作っていますが、何も入っていない場合は右の丸いマークからVRCのExpssion Parameterを選べばいいと思います。
指定してそのParameterクリックすると、ここにありますよと教えてくれるのでその箱のアイコンをクリックします。

私のパラメーターはすでにいろいろ入っちゃってますが、ここにさっき指定した値と同じものを追加します。Addからここでは「kao」のint型を追加します。デフォルトの値は0でsavedとsyncedにチェックを入れておきます。


あとはメニューを追加していきます。
アバターをクリックして、VRC Avatar Descriptorの設定をしたと思うので、Expssionの三角のところを開いてMenuを選択します。何も入っていない場合は右の丸いマークからVRCのExpssion Menuを選べばいいと思います。
指定してそのMenuクリックすると、このメニューはここにありますよと教えてくれるのでその箱のアイコンをクリックします。

私の場合すでにいろいろ入っちゃってますが「Add Control」からメニューを追加して
Nameはわかりやすく私なら「表情」とiconはなしでもOKです。
TypeをSub menuにします。ここで、新しくMenuを作っておきます。
同じメニューが入ってる場所で右クリック⇒Create⇒VRChat⇒Avatars⇒Expssion Menuで新しく箱を追加します。私は表情メニューと名付けました。
その作った「表情メニュー」をさっきのSub Menuに入れます。

作った方の「表情メニュー」のアイコンをクリックして、Add Controlから表情の数だけメニューを追加していきます。
さっきAnimatorタブでkao Equals 1とかkao Equals 2とか設定しましたね?
ここにそれと同じものを追加していくのです。
Nameは自分のわかりやすいものを。たとえば驚く顔がkao Equals 6に設定してあるのならこんな感じで設定します。

表情分の設定ができたらGestureManagerで動作確認をします。
上にToolsというバーがない場合は、VCCの画面から今自分が編集しているプロジェクトの「Manage Project」をクリックして「Gesture Manager」を+ボタンで追加して下さい。
それでもToolsバーが見つからない場合は一回SaveしてUnityを閉じてからもう一度開いてみてください。

上のメニューのTools⇒Gesture Manaher~というのを選んでHierarchyに追加されたら再生ボタンを押します。そこでExprettionメニューが出たら追加した表情のメニューが正常に動いているかどうか確認してみましょう。

最後に

キャラクターを作って動かすまでで重要なのがやっぱり「妥協」だと思います。
とにかくあまりだらだらと時間をかけずに完成まで持っていっちゃうこと!理想は3か月くらいで完成させるのがいいみたいです。Unity側の設定は含めない3Dモデルだけの作成時間はってことですね。
絵もそうですが完璧を目指しちゃうと結局完成しなかったりしますよね?
今回私が作ったモデルもおかしいところはいっぱいあります。近くで見ると顔が汚かったり微妙にかっこよくなかったり、大きく動いたり座ると色々貫通したり、肩回りや股関節周りの動きがやっぱりちょっと不自然だったりと…不満な所はいっぱいあります。
でも遠くから見れば…というか他の人から見ればよっぽどの凄腕の3Dモデラーの方でもない限りそこまで気にならないと思います。
とりあえず完成させて、自分で作ったアバターを着て、キャラクターが動いてるところを見て楽しみましょう!

この記事を共有(シェア)したい場合はこちらのボタンからどうぞ!

コメント

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.