見出し画像

第4回【まるっと大公開!VRChatアバター『藤守』ができるまで!リギング~完成編】

こんにちは!
この記事はVRChatアバター『藤守』を作る記事の第4回です。
まだ過去の記事を見ていない方は、先にそちらを見てからのほうが楽しめると思います!↓↓↓
第1回【まるっと大公開!VRChatアバター『藤守』ができるまで!デザイン編】
第2回【まるっと大公開!VRChatアバター『藤守』ができるまで!モデリング編
第3回【まるっと大公開!VRChatアバター『藤守』ができるまで!テクスチャリング編】


前回は3Dモデルのテクスチャを描きました!

今回は3Dモデルを動かせるようにしていきます!
そして、VRChatでアバターとして使えるようにセットアップしていきます!

今回でいよいよ最終回です。よろしくお願いします!

2023年5月、スキニング

「スキニング」とは3Dモデルにボーン(骨)を入れて、動かせるようにする作業です。

まずは全身のボーンを作ります。
1から作るのは面倒なので、過去の3Dモデルから流用しました。

VRChatでアバターとして使うためには、ボーンの構造を「Humanoid」と同じにしてあげる必要があります。
「Humanoid」はVRChatで使われている人の骨格の共通規格で、これと同じような構造でボーンを組み立てることで、歩いたり、手を振ったりといった動作ができるようになります。

実際の骨の位置をイメージしながら、3Dモデルの中にボーンを埋め込んでいきます。

基本的な骨格が出来たら、今度はケモ耳や尻尾など、人間にはないパーツも作ります。

アバターとして使う時にこういった人外要素があると、

「あっ……わたし、もう人間じゃないんだ……!」

という気持ちになって、とても興奮しますね!
……興奮するんですよ?

髪の毛やヒモなど、揺れ物にもボーンを入れます。
数が多くなるほど単純にデータが重くなるので、できるだけ少ないボーンで動くようにします。
ただし、今までの経験で「ボーンの数が少なすぎて全然きれいに動かない!」といったことが多々あったので、今回はあまり出し惜しみしないように気を付けました。

最終的にボーンの数は約300本になりました。
VRChatのアバターとしては多い方であまり良くないですが、後から追加するのも大変なので、仕方なくこのまま進めることにします。

全身のボーンを入れ終わったら、「ウェイトペイント」をします。
「ウェイトペイント」とは、「どのポリゴンがどのボーンに対し、どれだけ影響を受けて動くか」を設定する作業です。

ウェイトペイントでは、3Dモデルの各ポリゴンに対して影響を与える「ウェイト(重み)」を設定します。

ウェイトは0から1までの値で表され、0に近いほど影響が低く、1に近いほど影響が高いです。

上の画像はそれを視覚的に表したものです。
青が0で赤が1、その間はグラデーションになっています。

ウェイトを設定するためには各ポリゴンをペンでなぞったり、ぼかしツールでぼかしたりします。
人によってはそういったツールは使わずに、数値を手入力することも。

ウェイトを適切に設定することで、人体のような滑らかな動きが可能になります!

個人的にはこの「ウェイトペイント」がアバター製作の中で最も難しい工程です。

わたしは今まで何度もやっていますが、完全に納得のいく設定が出来たことは一度もありません。

ウェイトはポリゴン1つ1つに設定するため、最終的にウェイトが均等にならず、滑らかな変形ができないことがあります。
特に、肩回りや腰回りなど、曲がりやすい箇所や複数のボーンが交差する箇所では、ウェイトの設定が複雑化し、難しさが増します。
それと単純に、全身のボーン全てに対応するウェイトを設定するという作業量の多さも辛いです。

できればやりたくない工程ですが、やらなければ3Dモデルが動かないので、歯を食いしばってやります。

こうして、スキニングが終わりました!
色んなポーズをとらせて遊びながら、おかしなところが無いか確認します。

とりあえず大丈夫そうなので、次のステップに進みます!

2023年5月、シェイプキー作成

シェイプキーというのは、ポリゴンの位置の変更を記録しておける機能です
これを使って表情を作ります。

まずはVRChatで喋るときに使うシェイプキーを作ります。
分かりやすく言うなら「口パク」です。

ボーンで顎を動かした後に、口周りのポリゴンを動かして口の形を作ります。

必要な口パクは全部で15種類!
口の形は海外の発音をもとにしているため、日本人にはあまり馴染みのない発音もあります。
全てを作るのは大変ですが、「あ」や「い」などの基本的な形を作ってから、それをコピーして形を変えることで、効率的に作ることが出来ます!

次はVRChatで瞬きをするときに使うシェイプキーを作ります。
また、上を見上げたときに下瞼が少し上がるシェイプキーも作ります。細かいから作らない人もいる。

瞬きを作るときは、勢いあまって額の骨まで下げてしまわないように気を付けます。
また、上瞼を下げるだけでなく、下瞼も上げることで自然な印象になります。

これでVRChatで使う基本的なシェイプキーが完成しました!
これとは別に表情用のシェイプキーを作ります。

まずは「口」から。
なぜ口だけなのかというと、シェイプキーは複数組み合わせることが可能なので、目や口、眉といったパーツごとに作っておくと、後で組み合わせて様々な表情を作れるからです!

ちょっと嫌がっているような口。
こういった口は意外と汎用性が高いです。

ベロ出しも作ってみました。
少し変な表情があるとアクセントになって面白いでしょう!

次は「目」。瞬きは基本です。
先ほど作った瞬きと似ていますが、形が全く同じシェイプキーは自動的に消されてしまうので、少しだけ形を変えています。
とはいえ、本当に微細な違いなので、肉眼ではわからないです。

これは先ほどのシェイプキーの値を変更したものです。
シェイプキーの値は0~1の間で強さを調整できるので、中間の値だとこのような半目だってできちゃいます!

お遊びとして、瞳孔をヤモリっぽくするシェイプキーも作ってみました。
使いどころが微妙かもしれませんが、例えば先ほどの「舌ペロ」と組み合わせれば、「獲物を狙うハンターの顔つき」を作れるかもしれません!

最後に「眉」。
シェイプキーは強さは後から調整できるので、やや大げさに作っておくといいです。

それに前回、ただの板で眉を作ったおかげで、変形がかなりしやすかったです。

困った感じの眉。かわいいですね。

さて!これにて3Dモデル製作のすべての工程が終了しました!
ポージングをして、表情も決めたら、カメラとライトを配置して、きれいな写真を撮りましょう。

改めてご覧いただきましょう。これが3Dモデル「藤守」です!!

いかがでしょうか!!

時間はかかってしまいましたが、わたしの「こだわり」はちゃんと表現できていて安心しました……!
あぁ……、こうやってキレイな画で見ると涙が出るくらい嬉しいです。

いやぁ、本当に、この画を拝むためにどれだけ歩いてきたか……。

「今日はお寿司でも取りますか~~!!」

だめです。まだ終わっていません。

最後の試練「VRChatにアップロードする作業」が始まります。


そして、それは結構やることが多いです。

2023年6月、アバターのセットアップとアップロード

もう終わらせてくれ~~!!(切実)

「Unity」というゲームエンジンを使ってアバターをアップロードしていきます。

いいですか!ゲームエンジンですよ!?
これは本来「ゲームを開発するためのソフト」です!
「VRChatにアバターをアップロードするためのソフト」じゃないんです。

VRChatに暮らしている皆は普通に
「え~このアバターまじかわいい~!ブイチャ(VRChat)にアップロードしよ!」
ってやっていますが、やっていることはゲーム開発と同じです。

本当に怖いよ、この界隈!

Humanoid設定

Humanoidはスキニングの工程でも少し触れましたね。
Humanoidは人の骨格の共通規格です。
これを設定しないと、VRで手を振ったり、頭を動かしたりといった人間の動きができません。

やることは簡単。
Humanoidの骨格に対応したボーンをそれぞれ割り当てるだけです。
そもそも、ボーンの名前が適切なら自動で割り当てられます!

マテリアル設定

藤守の見え方を決める作業です。
この設定次第でリアルテイストにもアニメテイストにもなります。
今回はリアル過ぎず、アニメ過ぎずといった質感を目指しました。

ただ、VRChatではアニメテイストなアバターが大多数を占めているので、藤守みたいな質感のアバターは浮いてしまいがちです。
ちょっと辛いです……。

Physbone設定

「Physbone」というのは、VRChatで揺れ物を表現するための技術です。

尻尾や髪の毛などのボーンにPhysboneを設定すれば、自分の動きに合わせて物理演算でゆらゆらと揺れるようになります!

また、Physboneは「ボーンの回転の制限」も設定できます。
羽織などは内側に回転してしまうと身体にめり込んでしまうので、外側にしか回転しないように設定しました。

この「めり込み対策」はいつも色々な方法で試していました。
以前はコライダー(当たり判定)を設定したり、特定の範囲内からボーンが出ないようにしたり、試行錯誤していたのですが……その結果がこれです。

例のあれ

……まあ、ここまで酷いことは滅多に無いですが、それでも今までの方法だと問題が発生することは避けられなかったため、今回は安定した確実な方法をとりました。

アバター設定

VRChatでアバターとして使うための基本設定をします。

まずはビューポイント。自分の「視点」がどこにあるかを決めます。
大体、両目の中央に合わせるのがセオリーです。

藤守は鼻が長いですが、自分から自分の顔は見えないようになっているので、視界には影響ありません。

この調子でどんどん設定しちゃいましょう。

次は「リップシンク」の設定をします。
喋るときの口パクです。
先ほど作った15種類のシェイプキーを割り当てればOKです。

その次は「アイルック」の設定です。
目の制御をどうするかの設定です。
目が上下左右に動く可動域をそれぞれ設定します。
あと、目がどれくらいの頻度でキョロキョロしたり、瞬きをするのかを設定します。

最後はアニメーション関係の設定になります。
ですがやることが多いので、次の工程に分けて説明します。

アニメーション設定

VRChatでコミュニケーションをするときに使う「グッジョブ」や「ピース」などのハンドサインと表情を作ります。
また、それらをVR機器のコントローラーのボタンを押すと動くようにします。

まずはハンドサインのアニメーションから作ります。

まだ作っていなかったので、以前のソフトに戻って作業します。

ハンドサインのアニメーションはVRChatが用意してくれているので、必ずしも自分で作る必要はありませんが、自分で作ったほうがきれいに動きます。

ハンドサインの種類は全部で7種類。左右合わせて14種類です。

あと、面白そうなので足のハンドサインも作ってみました。
足の指がワキワキと動くのは人外っぽくていいですね!

足のハンドサインも左右合わせて14種類です。
全部出来たら、これらのアニメーションを書き出してUnityに持っていきます。

Unityに持ってきたら、次は「アニメーションコントローラー」の設定をします。
「アニメーションコントローラー」とは、アニメーションを制御するためのプログラムみたいなものです。

自分で1から作るのは大変かつバグの原因にもなるので、有志の方が製作したひな形から作ります。

所定の場所に先ほど作ったアニメーションを割り当て、動作テストをして正常に動けばOKです!

次は表情のアニメーションを作ります。
先ほど作った表情のシェイプキーを組み合わせて、様々な表情を作ります!

アニメーションを作り終えたら、先ほどと同様にアニメーションコントローラーに割り当てて、正常に動作すれば完成です!


サクッと紹介しちゃいましたが、慣れるまではかなり難しい作業です……。
初心者がウェイトペイントの次につまづくポイントだと私は思います。

アップロード

いよいよ、VRChatにアップロードします!

いくつかエラーや警告が表示されるので、直せるものは直します。

直したいけど諦めるものもあります。
例えば「ポリゴン数が推奨されている数よりも多いですよ!」といった警告は、もう今から直すのは難しいです。
シェイプキーやUVはポリゴンの形を変えると壊れてしまいます。

そうした警告を無視したので、「Very Poor」という判定を頂きました。
これは「VRChatのアバターの中でも最も重い(最適化されていない)」という不名誉な証です。

ですが、テクスチャのサイズを削減したり、ボーンのコライダーを使わなかったり、できる限り最適化をしたので、実際は判定よりも軽いです!信じてください!

そう叫んだところで、人によってはVery Poorのアバターを見えないように設定している人もいるので、アバターの判定を軽くするのは大切なことです。
わたしはいつも守れていないのですが、できるだけ守ったほうがいいでしょう。

エラーと警告をできる限り直したら、アバターの名前を入力したり、サムネイル画像を撮影したりします。
そしてアップロードすると……

VRChatにアバターとして持っていくことが出来ました!!
実際にVRChatの中で動作確認をして、不具合が無いかを確認します。

ですが……1回で上手くいくことは滅多にありません。

すぐに不具合を見つけました。
腕を曲げたとき、腕が袖にめりこんでしまっています。
また、脇の下あたりから作務衣が突き抜けてしまっています。
これらを修正します。

デバッグ

修正するのは主にウェイトです。
袖に腕がめりこむ現象はウェイトの修正で軽減されました!
しかし、作務衣の突き抜けは直りませんでした。
なので、シェイプキーを使って直していきます。

作務衣の脇の下を、少し凹ませたシェイプキーを作りました。
これを羽織を着ているときはONに、羽織を脱いだときはOFFにするようにアニメーションコントローラーを組めば、羽織を着ていても突き抜けることなく、羽織を脱いでもきれいな見た目を維持できるはずです!

そのほか、アニメーションが正常に動かないところを修正して、ついに……!!!

2023年6月、アバター完成!

ついに!!
VRChatアバター「藤守」が完成しました!!!
やったーっ!!!!!!!!

やっとここまで来れました!!!
このときの達成感は半端じゃないです!!!
何と言ったって、今までの努力が報われる瞬間ですから!!!

でも、私は「アバター製作者」なので、この後も商品をまとめたり、利用規約を書いたり、ショップページを作ったり、いろいろやることがあるのですが……それはアバター製作とはそれてしまうので省略します。

第4回まとめ

まじでこういう顔にもなる

このnoteシリーズではVRChatアバター「藤守」がどのように製作されたのかを紹介しました。

製作期間、約1年。長かった……いや、長くなってしまった……。
ここまで付き合ってくれた皆さんもありがとうございます!

自分のこだわりや頑張り、そしてアバター製作の魅力をたくさん伝えることができました!

アバター製作はやることが多く、時間のかかるものです。
ですが、その分の達成感は凄まじく、素晴らしい体験になります!

もしこれがきっかけでVRChatを始める人が増えたり、アバター製作に興味を持ってくれる人がいたらとても嬉しいです!!

それでは、またいつかお会いしましょう!ばいちゃ!!















わたしにとってアバター製作とは

ごめんなさい。最初に謝っておきます。
書くかどうか本当に悩んだのですが、やはり最後に少しだけ、私の本心を話させてください。
ネガティブな内容が多いですが、わたしの本心を伝えなければ、アバター製作の魅力を全て伝えることができないのです!!


実は、わたしはもう、アバター製作をこれで最後にしようと思っていました。

かつてわたしはアバター製作のおかげでVRChatのクリエイターのグループと仲良くなり、彼らから3DCGの基礎を教えてもらったので、専門学校をやめました。
しかしその後すぐに仲が悪くなり、自分からグループを抜ける以外の選択肢を失いました。

専門学校中退で、無職で、引きこもり。
ひとりぼっち。
そんな状態で続けるアバター製作は正直、辛かったです。

そして、自分の頑張りに反比例するように成果も出なくなっていきました。

「早く成果を出さなくちゃ!!」
「人気にならなきゃ!!」
「もう学生じゃないんだぞ!!」

そんな気持ちばかりでいると攻撃的になってしまい、ファンの気持ちを蔑ろにするような言動をしてしまうこともありました。
ついには一人のファンがアンチになってしまい、私の人格について長文で批判する始末。当然の報いですが、辛かったです。

そうやって失敗続きでいるうちに、自分がどうしてアバター製作をしていたのか、何が楽しくてアバター製作なんてしていたのか、分からなくなりました。

だから、次のアバター製作で最後にすることにしました。
それが「藤守」です。

「どうせ最後だから、自分の出せる力を全て出そう。」
「どうせ最後だから、時間をかけてこだわりを追求しよう。」
「どうせ最後だから、頑張って人に話しかけてアピールしよう。」

そうしてVRChatに初めて藤守を持って行った日。
約一年ぶりのログイン。
そしたら、どうでしょうか……

「製作、頑張ってくださいね!」

「藤守くん、過去一で性癖に刺さってます!」

「質感えっぐ!!!!」

「こだわりしか感じないんだよなぁ!」

「うわ!顔が良すぎる!」

「明日を楽しみに生きれる理由が出来た!」

待っていたのは、皆さんからのたくさんの温かい言葉と出迎えでした。

そして、一人のお友達からはファンアートまで頂きました。
まだアバターが販売されてすらいないのに、です。

わたしは正直驚きました。
「1年ぶりのログイン。だれも私のことなんて覚えていない。」
そう思っていたからです。


……わたしはずっと忘れていたことを思い出しました。

それは成果を出すことよりもずっと大切なものです。
大切なもののはずなのに、心が弱ると見えなくなるものです。
大人になると、忙しすぎて気づけなくなるものです。

わたしはそれを「藤守」の製作を通し、他人を通して見える自分自身と向き合うことで、初めて気づきました。

この経験はわたしにとって大切な宝物です。



さて、「わたしにとってアバター製作とは」一体何でしょう?

好きなことです。でも嫌いなことでもあります。
楽しいことです。でも辛いことでもあります。
熱中できることです。でも「何やってんだわたし!」って思います。

複雑な感情です。とても一言では表しきれません。

ですがひとつ、確かに言えるのは、

「これからもアバター製作を続けようと思います」

ということだけです。

ここまで読んでくれた皆様、本当にありがとうございました。
わたしを応援してくれた皆様、本当にありがとうございました。

これからは気合を入れ直して頑張りますので、よろしくお願いいたします。
そして「藤守」をよろしくお願いいたします。


いいなと思ったら応援しよう!