
ミリしら3Dモデリング
はじめに
タイトル通り一ミリもわからない状態からBlenderをつかって3Dモデリングを始めてみて、初めての3Dキャラクターモデルを踊らせるところまでで得た反省と次やりたいことの備忘録。
noteの使い方も全くわからない。しかしそれはおいおい覚えたり考えていけばいいと思うので、ただ文字と画像を並べていく。
できたもの

こうして静止画で見てみるとそこそこ見れないものでもないと自画自賛したり。
「色を付けて、Blender内で一定の角度から見ると」という条件下で、だが。

袖のメッシュがおかしくなっていたり、口周りに変なシワができてしまっていたり。

横合いから見ると顔がぺたっとしていたり。胸のサイズも体の上に服を作っていった結果肥大化してひどいことに。手指も妙に長細かったりして気にし始めるとキリがない。
結果Fantom工房様が公開しているVRM Live Viewerで踊らせてみると、顔のシワ目立ったり角度によって見れたものではなくなってしまった。
いきさつ
3Dモデリングに手を出したきっかけはふとした思いつき。
なんとなく「自分で作った3Dモデルで簡単なゲームとか作れたらいいな」と思ったので、Blenderをインストールして3Dモデリングを始めた。
まず最初は操作を覚えなければということでYouTubeで初心者向けの動画をみながらモデル制作。
デフォルメされたりんごやショートケーキなどの簡単なものからモデリング、シェーディング、レンダリングとしていった。
6個ほど小物を作って満足したのでキャラクターモデリングに挑戦開始。
夢中になってモデリングしていたこと、細かい記録をつけていなかった結果どれくらい時間がかかったかわからないがある程度形になったかなと思いスクリーンショットを保存したのがこれ。

ここまでで30時間ほどはかかってしまった。基本的にチュートリアルのまま作っていったので概ね形は整っているが、髪や胸などチュートリアルから外れたものを作るのが手探りだったため作業時間が増える。
しかも後で髪も胸も全て作り直して更に十数時間を費やす。

衣装も基本的な作り方以外はチュートリアルから外れてしまったので試行錯誤の繰り返し。体の完成からここまでもおよそ30時間以上。
ここまで作っておいて、体の造形が気に入らず調整、それに合わせて服を調整、また体の造形が気に入らず……ということを繰り返し更に十数時間を費やす。
挙げ句の果てに何も考えずサブディビジョンサーフェスやミラーモディファイアを適用してしまい、適用したならしたでモデリングは終了とすべきだったのに造形が気持ち悪くて調整、調整、調整。
最終的にバックアップから体のモデルを持ってきて移植。合わせて上着やホットパンツ、ブーツ、後頭部、ポニーテールを作り直し。
一度やった作業で、こうしたいという見通しもあったのでこれにはそれほど時間がかからなかった記憶だけど追加で十時間ほど使ったと思う。
次の工程に進むたびにこうしておけばよかった、というのがたくさん出てきてしまったり、先の工程に何があるのか理解していなかった。(チュートリアル動画を制作してくださった方は躓かないよう一度に全てではなく一つずつ制作を進めながら丁寧に解説してくれていた)
そうして数十時間を費やしてようやく調整にはキリがないということに気がつく。
よく完璧ではなく完成を目指せというけれどまさにそうだと思った。
そこからチュートリアルを見てマテリアルの設定をし、UV展開。これも衣装の部分は当然ながらどうシームを入れればいいかなど解説してくれるはずもないのでやたらめったらに切り刻む。
結果どれがなんのメッシュかわからない状態でテクスチャの作成に。
ここでもテクスチャに模様などを描き込んでから衣装は衣装の、体は体のテクスチャでそれぞれ一枚に設定しようと思ってUV展開図を作り直す。
そしてテクスチャを描き込んで……というのを三回ほど繰り返した。

そしてやっとモデルとテクスチャの完成。ここまでで100時間超。
ここからこのモデルを動かすためのボーンをいれて関連付けていくリギングとスキニングに。
ここからは比較的スムーズで、ほぼほぼチュートリアル通りにすすめて行けたので数時間程度。
問題はその後。
チュートリアルで作ったアーマチュアはIKやFK用のボーンや設定を多く追加したBlender内でアニメーションや3DCG画像のレンダリングをするのに適したものだった。
一通りの作業を終えてみて振り返ると別にこれを調整したもので良かったのだが、当時は外部ソフトで踊る3Dモデル制作を目指していた。
なのでまずUnityに持ち込んで動かせるボーンを調べ始め、一度割り当てたウェイトを全部削除し、ほとんど同じ構成のボーンを一括で追加してくれるアドオンをいれ、ボーンの入れ替え、スキニングのし直しをした。
BlenderにVRM出力できるようにするアドオンをいれ、UnityをダウンロードしてUnityでVRM入力できるようにするアセットをインポートし。
Unity上でSpringBoneの設定とテストをして、どういったボーンが必要なのか考え、Blenderに戻ってボーンを追加してスキニング、VRM出力してUnityでSpringBoneの設定、またBlenderに戻ってボーンの追加、スキニング……。
目が滑る。各単語がゲシュタルト崩壊。
手探りでやっていったので工程を行ったり来たりするのはしょうがないにしろ、最終的にはBlenderに最初に追加したVRM出力できるアドオンでSpringBoneの設定までできてしまったのでやっぱりそれまでの作業は経験値としての価値を除いてほぼ無駄に。
そうしてスキニング、SpringBoneの設定まで終えた時点でおそらく160時間以上。
最後に瞬きやリップシンク用の表情をシェイプキーで作って完成。フェイスリグ(ソフトのほうではない)を作成していなかったので頂点をひっぱってこね回して一つずつ。これは8時間ほどで作り終える。
そうしてようやくVRM Live Viewerに3Dモデルをほうりこんで踊らせて、その低クオリティに若干テンションを下げるなどをすることになった。
反省点としてはまとめると次の3つ。
工程を行き来しすぎ
やりたいことが不透明だった
情報の新旧がごちゃまぜだった
まず1の工程を行き来しすぎというのはそのまま。いくらなんでも作ってから作り直しが多すぎた。
ワークフローを理解していなかったということと、2のやりたいことが不透明だったことによるので、次の3Dモデリングのときは改善ができると思う。
2のやりたいことが不透明だったというのは、このモデルを最終的にどのソフトで動かすのかというのがふわふわしていたということ。
最初はMMDとかVRchatに出力できたらいいなあくらいに考えていたが、いざ出力というところまできてMMDもVRM Live ViewerもVRchatも全部形式が違うということを知る。
ちゃんと勉強していないのではっきりとしたことはわかっていないがそれぞれモデルの流用はある程度できると思うけど、最初からVRM Live Viewerで踊らせることに目的を絞っていたらわざわざテクスチャを一枚にし直したりしなくてよかったかなと。
3の情報の新旧は2に絡んで、MMD向けのモデル制作が2014年とかの情報、VRMは当然だけど規格自体が新しいのもあって2020年とか。VRchatも歴史が長いので古い情報と最新の情報とが混在してしまっていた。
問題なのはそれらをごっちゃに認識してモデル制作にあたっていたということ。
結果ローポリというにはポリゴン数が多いしポリゴン数の割にはクオリティが低いという支離滅裂な感じに。
サブディビジョンサーフェスを適応してからポリゴン数を減らすためにデシメートモディファイアを当てたり手動で頂点や辺を溶解しまくったのがはちゃめちゃに無駄だった。そのせいでUV展開もめちゃくちゃだった。
その過程でトポロジーを綺麗することの大切さやサブディビジョンの要否、辺のクリースなどの理解をし始めたと思うので完全に無駄とは思わないがいらん作業をしまくっていたのは事実。
上記3点を踏まえ、次のモデル制作では、何で動かすのかをしっかり絞り、それに応じたオブジェクトの構成だったりマテリアルを考えていって、できるだけスムーズに制作できるようワークフローを決めてそれにそって行ければと思った。
ということで次はこういったワークフローで作っていってみようと思う。
モデリング⇢大雑把なシェーディング⇢UV展開⇢リギング⇢スキニング⇢シェイプキー作成⇢細かなテクスチャーの書き込み⇢最終的なシェーディング⇢完成!
各工程で一度出力してみて、違和感が許容範囲か確かめながら進むことで工程の前後を行き来するという無駄をなくしたい。
多く作業したほうが最終的に上達するかもしれないけど1体のモデルを完璧にしていくより同じ作業量で多くのモデルを完成させたほうが役に立つ。はず。
Blenderでやる必要あったの?
VRMで出力するならVRoidで作ればよかったじゃないと。
結論としてその通りだし、Blenderでやってよかったとも思う。
VRoidも少しだけ触ったことがあって、ほぼほぼデフォルトのモデルをちょっといじっただけのVRMを1体だけ作っていた。
VRoidについてその程度しか知識がないくせに比較してみると、今回時間の掛かったモデリングやリギング、スキニング、SpringBoneの設定がほぼ何もせずに完成度の高い状態で出力できるVRoidはすごかったというのがわかる。
それでもBlenderでやってよかったと素直に思えるのは、VRoidで作れる以上の3Dモデルを作ろうと思うと、結局Blenderや他のペインターやソフトで編集しなくてはいけないので、VRoidを活用するにしろBlenderを使ってできることを増やしていくのは無駄ではないと思ったから。
結論
自分の当面の大目的が「自分で作った3Dモデルで簡単なゲームとか作れたらいいな」なのでVRoidだけではできないだろうとわかっていたのでBlenderでモデリングしてよかったなと思う。
というところで次のモデリングを始めよう。