最近作ったアバター (その3)
イワシちゃんは私にはかわいすぎた——
今年の2月頃からずっとイワシちゃんアバターを改変して使っていたのですが、「アスタリスクの花言葉」のワールド制作も終わってひと段落ついたのでふたたび自作アバターに戻りました。今でこそ高クオリティなアバターは巷に溢れてはいますが、やっぱり性癖を100%詰め込んだ自分固有のアバターを使いたいと思ったので気づいたら完成していました。
過去に作ったアバターについては簡単な紹介記事を書いていたのですが(その1とその2)、今ではVRChat界隈全体でアバター制作・販売の知見が恐ろしい速度でたまりつつあり、モデリングほぼ初心者の私がわざわざ書くようなノウハウ的なものもないと思うので、ここには日記的なものを書いておきます。
このアバターができるまで
Twitterには何度かポストしていたのですが、実は過去にも節目節目でフルボディトラッキング対応アバターを作ろうとしていました。しかし、だいたいが「作ってみたはいいもののなにかかわいくない」「スキニングの際にどう頑張ってもモデルが崩壊する」ことでモチベーションが下がって没になっていました。
違和感バリバリで草(前に作ったモデルの胴体をくっつけただけ) pic.twitter.com/6pz9k7qKRB
— ヨツミフレーム@9/13「アスタリスクの花言葉」公開 (@y23586) September 16, 2018
— ヨツミフレーム@9/13「アスタリスクの花言葉」公開 (@y23586) May 11, 2019
なので、今回は「絶対に見た目のクオリティがある程度保証される」「絶対にスキニング(ウェイト設定)に失敗しない」ことを念頭に作業工程を見直して制作しました。
アバターデザイン
お絵描き担当のヨツミさんに依頼して描いてもらったのが上のものになります。私は絵がド下手なので、全身絵はおろか顔自体さえ手描きで描くのは困難なのですが、ジト目への愛だけはあったのでなんとかここまで頑張りました。下半分は耳のモチーフを狐1からうさぎに変更しようとして描いたものですが、最終的にはいつものピンとした耳に統一したため没になりました。
これをデジタル絵担当のヨツミさんに直して下絵にしたものがこちらです。この絵自体はイワシちゃんの素体1の輪郭に頭と服装を書き足したものになります。当初は黒でビシッと決めようとしていたのですがビシッと決まらなかったので白にしました。スカートが透けているのは趣味です1。
話が若干前後しますが、このアバターは私が過去に作ったゲーム・作品・アバターの意匠をできるだけ詰め込んだような形になっています。
実際、私が中学生の時に作ったゲーム1とかを元ネタとして出されてもなんだという感はありますが、自由に作って使い捨てられるアバターだからこそ「人に歴史あり」を表現したいと思ったので。
作業工程の工夫
アバターを制作したことのある人は全員例外なく理解していると思いますが、アバター制作は修羅の道で、モデルが破綻することにビクビクしながら数々の工程をこなしていく必要があります。私の場合は特にアバターの販売等をしようというわけではなく、「私らしいアバターをそれなりの工数で作る」ということに重点を置いていたので、以下のような手を使ってなんとか各工程を安定してこなすことを目標にしました。
なお、下記の手法はTwitterで流れてくるモデリングお得情報を流し読みしつつ自分なりにやってみたものなので、なんらかのオリジナリティを主張するものではありません。
素体を使う
胴体の制作については見た目における重要度に対して工数が多すぎるので、素直に改変OKなライセンスのアバターであるニアナちゃんを使用しました。改変を前提とした素体アバターの販売例はいくつかあるのですが、私の場合は事前にVRChatでの動作を確かめてから使用する素体を決めたかったため、Publicアバターとしても採用されているニアナちゃんにしました。
無調整のアバターは体になじまない(ボーンの長さやVRデバイスのトラッキング方法の差異によって身体の各位置が実際の身体とうまく一致しない)ことが多く、ニアナちゃんも例外ではなかったため、トラッキング適性と己の趣味に従ってプロポーションの調整を行いました。 過去にイワシちゃんで同じようなことをした際のツイートは以下のような感じです。
イワシちゃん、自分(物理)よりもはるかにスタイルが良いので、フルトラ的適性を上げるために脚を短くすると割とちんちくりんになる pic.twitter.com/anBhNARLof
— ヨツミフレーム@9/13「アスタリスクの花言葉」公開 (@y23586) February 19, 2019
下絵を使いまわす
頭部は以下の手順で作成しました。
- Blenderの下絵機能で下絵を表示する
- UV球を気合でこねくりまわして正面から平行投影した時の輪郭を一致させる
- 側面の輪郭をいい感じにする
- 下絵をテクスチャとして貼りつけて調子を見る
- テクスチャ作業
2. についてはベースがUV球なので特に目の周囲がいろいろとヤバいことになっているのですが、輪郭だけを合わせて目と口を切り開いていくほうが(私の場合は)安定して作れるのでこの方式にしました。私の好みとしては顔にリアルタイムの影を落とすのが好きではないので、変なアウトラインが出ないように適切にマスクをかけることに注意すれば見かけ上の問題はたぶん発生しないと思います。
ちなみに、口まわりの構造が口を開くことを全く想定していない感じになっているのですが、これは制作当初「どうせあんまりしゃべらないしDead Space2のオーディオログよろしく顔の横に波形でもシュッと出すシェイプキーを作っておけばいいや」と判断していたためで、「歯を見せるピース」のために後から泣く泣く切り開きました。
4. については、2.と3.が完璧にできていればその時点でほしいメッシュは得られているのでわざわざ行う必要性は実際ないのですが、煩雑なテクスチャ作成をする手間をかけずにそれっぽい見かけまで持っていけてモチベーションが稼げるのでおすすめです。
UV展開はしない
UV展開は面倒なのでしません。
といってもしないと完成しないので、「UV展開」→「UV付テクスチャを書き出し」→「テクスチャを加筆」という普通の手順ではなく、「テクスチャを描く」→「テクスチャを書き出す」→「UVをテクスチャに合わせる」という逆の手順をとりました。具体的には、以下のような「なんかいい感じに面付けされている1枚のテクスチャ」を描いて、それに合わせる形でUVを揃えます。これによって、UVを職人芸よろしく1枚に綺麗に収めたりメッシュの編集のたびにUV座標を心配したりする必要もなく、機械的にテクスチャを描いて機械的にUVを合わせていけばいい感じに見えるようになります。
上のテクスチャでは左下の紫色の髪の部分が特に顕著で、下から順に「前面のぱっつん髪」「房1」「房2」「上面部」になります。髪の房は微妙に色相の違うバージョンを2種類用意することでテクスチャの繰り返しを見えにくくしています。とても濃い紺色なので明るさによってはほとんど見えなかったりしますが……
また、顔のテクスチャ(左上)は下絵の肌色の部分を影色の矩形の上にのせてぼかすことで髪や目の周りの影を表現しています。モデリングが終わった時点で正面から見た顔の形状は下絵と完全に一致しているため、これを平行にUVに投影するとテクスチャの影の位置に一致します。
上記の下絵とテクスチャはなぜかAnimate CC(アニメーションが使えるIllustratorみたいなやつ)で作っていて解像度を無限に上げることができるため、下絵をコピーして適当に拡大すればそれがだいたいテクスチャになります。
スキニングはしない
スキニングに関しては自動ウェイトやMixamoを使ってモデルがぐっちゃぐっちゃになった過去のトラウマから敬遠していました。しかし、今回に関してはセットアップ済みの素体を使うことで大幅に簡略化できました。頭はHeadボーンに従わせておけば最低限の動作はできますし、服に関しては素体の一部を複製して法線方向に移動させれば最初から適切なウェイトがついたメッシュを得ることができます。ボーンに対して平行方向に動かしすぎると破綻するので細かい調整が必要なのは確かですが、1からウェイトをつけるよりかはよっぽど作業工数が安定します。
後述するDynamic Bone用のボーンは普通の素体には入っていないため1髪やスカートのボーンは自分で入れる必要がありますが、髪の房一本一本やスカート全体は「片方の端点がHeadかHips 100%」かつ「それ以外の既存のボーンはまったく関与しない」という分かりやすい条件があるので、自動ウェイトを適用したのちにこれを満たすように手でチェックすればなんとかなります。
動かせるものは全部動かす
モデルの完成度をこれ以上上げられないという状態になったとしても、以下の要素を有効にすることで見た目の完成度をさらに上げられます。
- Dynamic Bone:もはや界隈では知らない人がいないアレです。これを有効にすることで体を動かしたときの見た目が圧倒的に柔らかくなります。アバターがかわいくなるなら20ドル(執筆時)なんて安いもんです。
- 両目ボーン1:目のボーンとシェイプキーを適切にセットアップすると目が顔の向き等でそれっぽくアニメーションしたりまばたきするようになります。これは厳密にHMD内の目の挙動を再現しているわけではありませんが、アバターの「生きている感」がでるので有効にしたほうがいいです1。
- フルボディトラッキング:金額的にも物理的にも導入は容易ではないのですが、HMDとコントローラのみの3点トラッキングではどうしても胴体の動きが簡略化されてしまう(常に地面に対して垂直になる)ので、より表現力の高い動きをみせたい場合は導入するといいかもしれません。私の場合は両手ピースをするのが癖になっているのですが、VRChatのどこかしらの仕様で非フルトラでは腋が余計に開くので人前に出るときはほぼ常にトラッカーをつけています。
上記3つを無効・有効にしてピースしてみた動画が以下になります。
検証用にアバターの機能をいろいろON/OFFして動画を撮ってみました。やっぱりDBとアイトラを入れると火力が上がる(?)なぁという印象です。 pic.twitter.com/RnLq5kMsUb
— ヨツミフレーム@9/13「アスタリスクの花言葉」公開 (@y23586) November 10, 2019
Gitをつかう
コンピュータを用いて任意のデジタルデータを作成する際は絶対にバージョン管理を行いましょう。特にモデリングでは破壊的な変更が必要になることが多い1ので、適切にバージョン管理を行うと圧倒的に生産性と安定性が上がります。例えば、「モデル編集時に胴体と頭を別々に編集して書き出し時に統合する」場合にはブランチなりタグなりを切るだけで好きなだけ前の段階に戻ることができます。また、上で書いた製作途中の画像もモデルを一度完成させてから時間を巻き戻して作成したものです。
まとめ
総作業期間は1か月ちょっとくらい、コミット数は120くらいでした(切りすぎ?)。個人的にはいい感じにはできたと思ってるのですが、まだ細かいギミック(顔アクセサリが動いたりとか光学迷彩とか) は載せていないので、ちまちま改良しつつ当面の間はイワシちゃんと平行して運用する感じになると思います。