通っている大学にVRChatで授業をする先生がいて、ぜひVRChatで受講したいと思いvrモデルを作った。
実はVRChatのアカウントを持っていないので、まだ動かせてない。 早く動かしたい。
キャラクターのモデリングはBibiさんの動画、 キャラクターをVRモデルとして使用する方法については 禅さんの動画を参考にしました。
困ったこと
複数オブジェクトからなるモデルの扱い方がわからん
禅さんの動画では全てのパーツを一つのオブジェクトにまとめているのですが、今回私が作成したモデルはモデルが複数のオブジェクトにまたがっています(目や鼻、縄の部分)。
このためテクスチャペインティングの手間は減らせたのですが、ボディ以外のパーツをどうやってボディに連動させるかを考える必要が生じ、かなり苦しみました。
はじめSurface Deformモディファイアという、オブジェクトを他のオブジェクトに密着して移動させる機能(下着などをアバターのボディに追随させるために使用する)を使って顔のパーツを顔面に貼り付けようと試たのですが、結局unityにエクスポートした際に剥がれてしまい、この方法は断念しました。 モディファイアの扱い方がよくわからなかったということもあります。
結局は顔のパーツもボディと同様アーマチュアの子要素にして、Headボーンに完全に追従させることにしました。頭が回転してもパーツが破綻することなくついてくるようになりました。
Blender→Unityで、ボーンの設定がうまく反映されない
BlenderからUnityに持ってきたfbxファイルで、Rigをヒューマノイド型で設定しようとしたところ、
File 'myVRM' has an invalid Avatar Rig Configuration. Missing or invalid transform: Required human bone 'LeftHand' not found UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)
というエラーが出てきて、この解決に時間がかかった。 結果的には
ヒエラルキーから該当するボーンを当てはめるだけ
で直った。
【Blender】【Unity】Blenderでボーンを入れてUnityで使う - めーぷるのおもちゃばこ ↑参考になった記事
このエラーは「ボーンの命名が誤っているために起こる」と解説する記事が多かったが、ボーンの命名に関係なく、Unity内で手動で割り当てられるようになっている(上の記事を参照)ので、このエラーが出てもわざわざBlenderでボーンの名前を修正する必要はなさそう。
ちなみに、はじめLeftHandに該当するボーンの名前はHand_Lとしていて、エラーが出た後Blender上でHand.Lに変更して再び試したが、エラーは解消されなかった。
わからなかったこと
モディファイアなんもわからん
適用する順番とか、Applyすると元に戻せないとか、色々あって結局モディファイアがよくわからなかった。今後に期待。
モディファイアを使う時に頂点グループやシェイプキーといった概念もでてきたが、これらも同様によくわからなかった。
ちゃんとドキュメント読もう
出力の仕方がわからん
禅さんの動画で、Blenderでファイルをexportする前にスケールを1に設定するように、という指示があり、やってみようとしたが、主にBody以外のパーツで、「Apply -> Scale」とするとオブジェクトの大きさが変わってしまって困った。結局、こちらのツイート
Blender→unityのFBXはデフォだとスケール100倍になってしまうので、Blenderから出力時に「!実験的機能!トランスフォーム適用」にチェックを入れる。
— しふじん (@shjl141) 2021年3月22日
また、「スケールを適用」は「すべてFBX」とする
前方は-Z、上はY
の通りにすることで、スケールをいじらずに乗り切った。
また、FBXファイルについても謎が深まった。UV用の画像を一緒にエクスポートできたりできなかったりする。
Blenderのfbxを何も考えずにunityに持ってきて、scaleが100になったり、オブジェクトが変な方向に向いたりするのは経験したことがあるが、どこかで「Blender → Unity」で必要な設定をまとめて理解しておきたい。
UnityChanToonShaderよくわからん
使う分には困らない程度に、よくわからん。
機能がとてもたくさんあるので、おおまかに全体を把握したくなった。
そもそも、VRChatのモデルのマテリアルにこのシェーダーが必須というわけではないよね...? VRCで使えるシェーダーと使えないシェーダー、みたいなのがあったりするのだろうか?
VRChat SDK よくわからん
なんとなく使った。VRChat用のアバターは新規登録する場合は必ずUnityのVRChat SDKを経由しないといけない、という認識で合ってるのだろうか... 自分で調べた範囲では、vroidスタジオでアバターを作ってる人も、一旦Unityを経由させてることが多かった(使用するパッケージは違う)。
fbxファイルやvrmファイルについて理解が深まれば、もう少しunityで何をやってるのか、その編集は必須なのかが分かりそうな気がする。
今後やりたいこと
ウェイトペイント
blenderのウェイトペイントをM1 macbook Air(メモリ8GB)でやろうとすると、途中から動作が重くなった。数秒遅れるだけでなく、ほとんど描画されなくなり、使い物にならなかった。
編集モードで頂点ごとにウェイトを設定していくことでなんとかなったが、ウェイトペイント楽しそうなのでやってみたい。GPU購入の機運が上がった。
テクスチャペイント
ペンタブを持っていないのでかなり苦しい。今回は耳と口のみをマウスでペイントしたが、それでも苦しかった。たくさんモデリングするようになったら買うべきかも。
(追記:iPadをwindows/macに接続して液タブとして使う方法があるらしい。それで代用できるかも)
尻尾・耳を動かしたい
今は尻尾や耳が動かないので、これらも今後動かせるようにしたい。
リップシンクや目の切り替えなどもやりたい。
しっぽの炎をかっこよくしたい
尻尾の先についてる炎を動かしてみたい、光らせてみたい。 透過などを駆使して、元キャラクターのように火の玉のような表現に挑戦したい。
VR機器が欲しい
VR機器もってない。
VRChatはヘッドセットなしでもつかえるらしいけど、せっかくならヘッドセットでやってみたい。
まとめ
VRChatで使用できる(未検証)モデルを作った。
結構かわいくつくれて嬉しい。
今後もっと魅力的なモデルにしていきたい。
読んでいただきありがとうございました。