takeda_san’s blog

KotlinとVRを頑張っていく方向。

VRChat用のモデルをイチからつくろう

Blender+UnityでVRChat用の3Dモデルを作ったときのメモです。
本当にイチから初めてVRChatにアップロードするまで書いたページってあんまりなぁということで参考になりましたらこれ幸い。

f:id:takeda_san:20180520194305p:plain

まだまだ、不具合沢山の状態ですが、作成したblenderファイルはコチラ。

github.com

作業もくじ

  1. Blender入門編
  2. キャラクターモデリング入門編
  3. 自作モデルをつくるぞ
  4. VRChatにアップロードするぞ

Blender入門編

期間:1週間ぐらい
いままで、3DモデリングなんぞをやったことがないのでキャラクターうんぬんよりBlenderの使い方を覚えなければならない。
起動していきなりこんなボタンがいっぱいあるツールを入門書なしでつかえるかー!ということで本を購入。
f:id:takeda_san:20180520170301p:plain

Blender 3DCG モデリング・マスター
Blender 3DCG モデリング・マスターという本、丁寧すぎるぐらいにBlenderでよく使うであろう各操作を解説している。
ステップに沿ってモデリングをしていくうちに各テクニックが身についていくので、最初の一冊にはオススメです。

キャラクターモデリング入門編

期間:1か月ぐらい
Blender """"完全に理解した""" のでさっそくキャラクターモデリングをしていきます。
キャラクターモデリングの手順の習得のために、また入門書を買う。
(コイツいつも入門してんな)

Blender標準テクニック ローポリキャラクター制作で学ぶ3DCG | デザイン関連の雑誌・書籍を出版するMdNのWebサイト - MdN Design Interactive -
Blender標準テクニック ローポリキャラクター制作で学ぶ3DCG(以下、入門書)という本、本単品だけだと手順が飛び飛びだったり
次の工程の仕込みがこっそりされていてやり直しになったりと、ちょっと不便という印象。
だけれども、オマケとして各工程の.blenderファイルとyoutubeで作業中の動画があるので、それと組み合わせると容易に進められます。
(試行錯誤することでツールに慣れようという意図があるのかも)

以下、チャプターごとの感想。

CHAPTER1~2

  • よく使うショートカットとか、便利な設定の話はかなり参考になった
  • 各種用語の解説が薄いので、先に一冊やっといてよかった(ラティス変換が説明もなく急に出てくる)
  • CHAPTER2の最初の一枚絵から顔の輪郭取るやつ、お絵描きうまい人だと髪の毛を外すとこの辺がおでこ、みたいなのが分かるんだろうけど、私にはこの時点でつらい
  • 絵にないところを想像で頂点打つのがほんとつらいので、漫画のかきかたみたいなサイトを見て、ノートにいくつか練習してから再トライした
  • Unityの勉強をしていたはずでしたが、今はその一環で漫画の練習をしています
  • 絵のガイドすらなくなる後頭部の成形とか、線では表現されてない毛の流れを意識する髪の成形など後半になるにつれて、工程のスパルタ具合が加速していく
  • 途中からお家にあるフィギュアをなめまわすように観察して、やってなんとか完成(これが非常に捗った)

CHAPTER3

  • 開始数ページで全身が完成しているんですがこれは…
  • またフィギュアをなめまわすように観察して体を作成
  • メカっぽいパーツの作成は結構楽かも
  • ここまででモデルが大体完成なんだけど、モデリングにはお気に入りのフィギュアが必要ということが分かった

自作モデルをつくるぞ

期間:2か月ぐらい
なんかお勉強にも飽きてきたので、入門書の写経は中断。
モデルを作成しながら必要になったら参照するようにする。

まずは元の絵

入門書のときは横からみた姿をモデリングするのに苦労したので今回は

  • 正面
  • 後ろ姿

の3枚をちゃんと書いてモデリングをしていく。

だが、そもそも絵がドヘタなので、それをカバーする方法を考えなければならない。
saiというツールでお絵描きしました。

  • またフィギュアなめまわすように観察して全身を描いて、趣味のパーツをあとから付け足すという多分アカン方法で全体像を決める
  • 色塗りはWebサイトの配色見本を見ながら、自分のイメージと合うようにやっていく
  • 正面の絵を清書して、さらにそれを下絵にして後ろ姿を作成する
  • 真横の絵はBlender標準テクニックのモデルを参考にしつつ頑張って書く(横顔と正面の鼻のあたりの整合性がむず過ぎる)
  • なんか散々3Dモデルとフィギュアを眺めていたせいか、絵が少し上達している気がする

完成図
f:id:takeda_san:20180520172145p:plain

おー、かわいいかわいい。
色を塗ったら角がタケノコにしか見えなくなった。

ただひたすらにモデリング

入門書と同じ手順で顔と全身を作る。
この辺りは一度やったことなので、結構スイスイ行きました。

途中経過
f:id:takeda_san:20180520175233p:plain

まぁまぁの再現度ではないかと。

ボーンを入れる

ここは入門書から外れて、手探りです。
入門書にもボーンの入れ方は書いてあるのですが、VRChatで使う場合Humanoidリグという規格のようなものに従う必要があります。
この規格に沿ってボーンを入れることによってVRChat側でモデルをうまいこと動かしてくれるようです。

このHumanoidリグを自分で作るのもアリなのですが、偉大な先人の方が作ってアップされているものがあるので、ありがたく使いましょう。

Humanoid bone for VRchat - BowlRoll

これを先ほど作ったモデルに適用します。
ダウンロードしてきたblenderファイルと自分のモデルを開いておきます。

ボーンをコピーして。
f:id:takeda_san:20180520180216p:plain

貼り付け。これだけ
f:id:takeda_san:20180520180255p:plain

あとは自分のモデルの体型に応じてボーンを編集していきましょう。
(あとでまた微調整するので大体でよいと思います)

ウェイトペイント

Humanoidリグに対してウェイトペイントをしていきましょう。
入門書と同じ手順です。
膝、肘、肩のウェイトペイントが激ムズですがポーズモードとウェイトペイントを往復して地道な調整作業です。
服の内側の体部分の塗り残しが起きがちなので、編集モードで頂点の選択->割り当てで塗っていったほうが手戻りが少なかったです。
(この方法だと今度は意図しない部分にウェイトペイントしがちなので都度ポーズモードで確認をお勧めします)

f:id:takeda_san:20180520181034p:plain

VRChatにアップロードするぞ

作成途中ですが、ここまでの作業でVRChatで動きます。
この先の作業に進むと後戻りが難しく致命的なミスが直しずらいので、このあたりでVRChatにアップロードして動作確認をします。

動作確認

Unityのプロジェクトに作ったモデルをインポートして、VRChatのスクリプトを適用してアップロードします。

ここの手順がすごい丁寧でわかりやすいです。
(まだテクスチャペイントしてないので、その手順はスキップしてください)

オリジナルアバターを簡単に作りたい人向けチュートリアル 仕上げ編

このあたりでモデルに不具合があったりすると、シーンにモデルが正しく表示されなかったり、Humanoidの設定ができなかったりします。
そのときはBlenderに戻って修正作業です。
(私の場合はボーンの位置が良くなくてHumanoidリグと認識されてなくてウェイトペイントやり直しました…)

無事アップロードできたらVRChatを起動して動作確認です。
最初はデスクトップモードでの確認をお勧めします。
確認一発目から正しく動く可能性が少なく、VRだと視点がすごい位置にあったり操作不能だったりで混乱します。
(いきなりVRでやって自分の姿を確認するのに10分ほどかかりました…)

うまく動かない箇所があると思うので、Blender~Unity~VRChatの間を行ったり来たりして地道に修正していきます。
期間の半分ぐらいは、ここの修正作業に費やしました。
ポリゴンの追加、削除はこの先修正コストが高くなるので満足いくまで修正。

テクスチャペイント

入門書通りに進めればよいのですが、UV展開が手間暇かかりすぎてつらいのでスマートUV展開で済ましました。
スマートUV展開だと、後々ペイントしやすくUV展開はされませんが、個人で使うものなので細かいアラは見なかったことにします。
最低限作業として、ポリゴンが重なっている部分をずらしておきます。
(この作業すら、ペイント次第でごまかせる気はする)

あとは不自然な部分をひたすらに手作業ペイント。

途中経過
f:id:takeda_san:20180520183559p:plain

テクスチャペイントすると、急にキャラクターらしくなる。

リップシンク

必須ではないのですが、リップシンクを付けます。
リップシンクがあると、アバターとのシンクロ感増します。

基本的には下記の手順通りなのですが、シェイプキーの付け方について詳細な説明がないので補足。
(※入門書と同様に口が開いている、口の中がそれなりに完成している状態を想定しています)

アバターのリップシンクの作成 - VRchat 日本wiki

次の3つだけ作ります。
VRC.v_sil(真顔)/VRC.v_aa(『あ』の口に近い)/VRC.v_TH(『い』の口に近い)

頭の部分のオブジェクトをオブジェクトモードで選択。
ツールタブ(逆三角形のアイコン)のシェイプキー横の+ボタンを押します。
f:id:takeda_san:20180520191317p:plain

追加された、Basisがデフォルト状態になります。
なので通常は口を閉じている状態を設定します。

ついでにもう2回+ボタンを押します。 新しくできたKey 1~2をそれぞれ、VRC.v_aa/VRC.v_THにリネーム。

Basisを真顔になるように頂点を編集します。
上唇部分はあまり動かさず、下唇を上に寄せる感じ。
ちょっと口角が上がるようにしたほうが、かわいいかもしれません。
f:id:takeda_san:20180520191336p:plain

続いて、同じようにVRC.v_aaを作成。 最初の口が開いているデフォルト状態の流用でよいと思います。
f:id:takeda_san:20180520191351p:plain

動作確認はシェイプキーの下の『値』スライダーを動かすと出来ます。
f:id:takeda_san:20180520191407g:plain

VRC.v_THを作成。 いの口なので口が広がるように編集します。
余裕があるなら歯を作って噛んでいる状態にするとリアルかも。
f:id:takeda_san:20180520191428p:plain

最後にBasisをコピーしてVRC.v_silを作成。
Unityに読み込んだ時にこのままだと、なぜかこのシェイプキーが表示されないのでVRC.v_silを編集モードで少しだけ頂点の位置を変更しておきます。
f:id:takeda_san:20180520191443p:plain

あとは、Unityにインポートしなおしてリップシンクを設定します。
こんな感じになると思います。
f:id:takeda_san:20180520191727p:plain

最後に

なんだかんだで三か月以上かかってしまいましたが、無事完成できました。
日々twitterできれーな絵をみてニヤニヤしたり、youtubeでVTuberの動画をみて生きていくきもちを回復していますが、こんなに大変だとは。
あとたまに見る、モデル1か月でつくったったワとか、一晩でやったったワとか、どうなってるんですかね。
才能…ですかね。

※ID:takeda-sanでVRChatやってるので、見かけたら遊んであげてください。