VRchatで3Dアバター作りを1から自作したくても、初めてだとどのようにVRchatアバターを作り進めたら良いか分からず、途方に暮れてしまいますよね。
私は最近オリジナル3DモデルのVRchatアバターを1から全て自分で作ったのでその経験から、初めてVRchatアバターを作る場合どのように作り進めていったら良いか、大きく6ステップに分けて自分の作り方をまとめてみました。
大雑把な工程は、まずVRchatに自作アバターをアップロードしてみるためできるだけ作業を簡単にした簡易アバターの作成を第一目標にして、それをアップデートして理想のアバターにしていこうという工程になります。
私も初めてVRchatアバターを作ったときは完成までの作り方のイメージがつかめず手探りで、情報がなかなか整理できず途中何度も挫折してしまいそうになりました。
この記事では以前の私のような初めてVRchatアバターを作る方でも,、完成までのイメージを持ちやすいように個別の事項については簡単に説明するにとどめ、VRchatアバターの作り方の全体像と作業の流れをイメージしやすいことを目的に書いていきます。
個別の事項については先人達が丁寧に解説してくださっているので、オススメのURLを貼っていきます。そちらも訪問しつつ読み進めてみてください。
初めてVRchatのアバターを作る方には人型アバターの作業の流れが分かり、完成まで進めやすくなると思います。
購入アバターを改変される方にもVRchatのアバター理解の参考になると思います。
VRchatアバターの作り方は人によってずいぶん違うと思いますが、自分の視点をお役に立てていただければ幸いです。
(この記事はより分かりやすくするため、アップデートする可能性があります。またこの記事は商品PRを含みます。)
- この記事ではどんなVRchatアバターの作成を目指すのか。
- VRchatアバターの作り方のイメージをしてみる。
- 初めてのVRchatアバターの作り方を大きく6つの作業ステップに分けました。
- ■まずは簡易的な人型アバターのアップロードを目指す、ステップ1~3まで詳しく見てみます。
- ■人型アバターをアップデート、ステップ4~6を詳しく見てみます。
- 【ステップ4】人型アバターの3Dモデルをアップデートしていく
- 【ステップ5】VRchatの機能で髪などを揺らし、音声に合わせて口が動くようにする。
- 【ステップ6】 表情変化システムをVRchatアバターに追加する。
この記事ではどんなVRchatアバターの作成を目指すのか。

私は最近VRchatのアバターを、既存のアバター改変ではなく1から自作しました。
そのアバターはこちらのワールドで試着できます。

自分専用のアバターを作成したい場合、vroidやその他アバター作成ツールでアバターを制作する選択肢もあると思いますが今回は使用しません。vroidで作りたい場合はこちらなど書籍があるようです。
本記事ではどんなアバターを目指すのか、以下に箇条書きしてみます。
- vroidなどのアバター制作ツールを使用しない。
- VRchatで歩行などの主な動作をしたときに正常に動作すること。(基本操作ができる)
- アバターの主要な部位の動きに合わせて、髪などの部位が揺れること(シュミレーションができる)
- 自分が発音する音声で、アバターの口が対応して動くこと(会話機能が搭載されている)
- 無表情だと味気ないので、表情変化ができること(表情豊かな表現ができる)
- モジュールアバターなどのプラグインを極力使わない(極力どの作業環境でも再現できる)
このような目標で、上動画のような動きができるVRchatアバターの作り方をまとめていきます。
こちらのアバターは私のBOOTHの販売ページで販売しており、もし気になったら買っていただけると嬉しいです。
このアバターを作った経験をもとに書いているので、購入していただけるとこの記事も読みやすくなるはずです。

VRchatアバターの作り方のイメージをしてみる。
WEB情報などを調べてみると、モデリングやアバター改変の仕方など個別の詳しい説明は見つかったのですがVRchatアバターを作ったことがなかったので、最初は0からのVRchatアバターの作り方の全体像や作業の流れがなかなかイメージできませんでした。
この記事では、そのような状態で手探りのまま進めるのではなく、初めてでもVRchatアバターの作り方の全体像と作業の流れのイメージを持ってVRchatアバターの作成を進められることを目的にしています。
作業の流れが分かっていれば最初からモデルを作り込んでunityに読み込む方法で問題ないと思うのですが、VRchatアバターの作成が初めてなら最初にVRchatへのアップロードを先に経験してからモデルを作り込んでいくのが良いと思っています。
VRchatアバター作り方の構想①全体像の構造
まずは何から手をつけていったら良いか分からないと思うので、いったん大雑把にVRchatアバターの作り方をとらえてみます。

作業順序は、黄色→ピンク→紫を経て、青のVRchatにアバターをアップロードします。
VRchatアバターを作成しアップロードするにはunityが必須です。
その他にblenderなどの3Dソフトが必要になってきます。
(黄色領域)
3Dモデルを用意し、骨を入れスキニングしてキャラを動かせるようにすること、表情や口の動きを用意すること等、アバター作りに必要な要素を3Dソフトなどを用いて用意します。
(ピンクの領域)
そうして用意した物をunityに読み込んで、自分のコントローラーやボディのジェスチャーに従ってアニメーションしたり用意した表情に適切に切り替えたりできるようにすること、髪などの骨をシュミレーションで揺らしたりマイク音声に合わせて口が動くようにしたりして、VRchatのアバターを組み上げていきます。
(紫領域)
VRchat SDKはVRchatアバターを作る際必須のソフトです、unityで起動しunity内の作業としてunity領域の中に入れました。後述するVRChat Creator Companionからunityごと立ち上げるのが楽です。
VRchatアバターを組み上げ終わったら、VRchatにアップロードします。
販売アバターではこれらが全て組みあがっていてすぐにVRchatにアップロードできるものが多いと思います。私のアバターもunitypackageを読み込んだこちらのデータが、すぐにアップロード可能な状態のデータです。

大雑把に書きましたが、実はオリジナル3Dモデルを用意するだけでも一苦労です。
いきなりモデルを作り込み、髪などを揺らすことを想定して細部まで骨を入れ、シェイプキーを用意して…
とスムーズに作り進めるのは難しいですし、挫折もしやすいのではないかと思います。
なのでまずは人型のアバターをアップロードしてVRchatを歩く、ということを大きな目標にして、VRchatに自作のアバターを存在させることを目指します。
いったん人型のアップロードができれば、姿かたちはどうであれ自作のアバターでVRchatを遊ぶことができます。そのアバターをアップデートしていく形でオリジナル3Dモデルを作り込むのが気兼ねなく自キャラに心血を注ぐことができるのではないでしょうか。

VRchatアバター作り方の構想②まず人型アバターのアップロードを目指す。
先ほどの全体像の図から人型アバターのアップロードのための工程を考えてみます。
私がBOOTHで販売している「サラ」のモデルはVRchatに人型アバターをアップロードする最低限以上の要素が入っているアバターですので、いったん分かりやすいようにモデルを簡略化してブロックで表してみます。(用意できるなら素体レベルでも良いかもしれません。)

先ほどの全体図も人型アバターのアップロードのための工程を残して簡略化してみます。

工程を簡略化したのでやることが減り、だいぶすっきりしたと思います。
こんな感じに人型アバターをVRchatにアップロード出来ることを第一目標にします。

VRchatアバター作り方の構想③アップロードした人型アバターをアップデートしていく。
人型アバターをVRchatにアップロードしたら、モデルをアップデートしていき自分好みのアバターを作成していきます。
この方法であれば一度VRchatにアップロードしているので、
人型アバターの条件満たしてオリジナル3Dモデルの作り込みに心血を注ぐことができます。
髪を揺らしたり、口を動かすのも一度VRchatにモデルをアップロード出来てから追加していきます。
ブロックモデルから素体モデルへモデル更新、素体モデルを元にして服や髪、装飾品を作っていくとスムーズではないでしょうか。



初めてのVRchatアバターの作り方を大きく6つの作業ステップに分けました。
ここまでのVRchatアバターの作り方の構想を実際の作業に落とし込んでみます。
以下の6つの作業ステップにまとめてみました。
ステップ1~3が人型アバターのアップロードを目標とした工程です。ステップ4~6で人型アバターをアップデートし、髪揺らしや口パク、表情変化を搭載していきます。
- 作業環境づくり
VRchatのアバターを作る際はblenderやmayaなどの3Dソフトや、unityを用意するだけでは不十分でVRchatアカウントのステータスや、unityにVRchatの作業環境を作ることが必要です。
最初に用意してしまいます。 - 簡易的な人型アバターのアップロード用にデータを用意する。
ブロックのような簡単なモデルで良いので(もちろんちゃんと作り込んだモデルでもOK)人型アバターをVRchatにアップロードすることを目指します。モデリングをするときは完全に自由に作って良いわけではなく、後述しますが大きな点ではunityのHumanoidに適用できるように作成します。 - 用意したデータをunityで組み上げて人型アバターのアップロードをする。
unityにデータを移してVRchatにアップロードし、VRchat内を歩き回ってみます。
何度も更新することになると思うので、アップロードまでの流れを把握してしまいます。 - アップロードした人型アバターをアップデートしていく
VRchatで人型アバターをアップロードすることができたので、簡略化していたモデルをアップデートしていきましょう。 - VRchatの機能で髪などを揺らし、音声に合わせて口が動くようにする。
髪揺れやマイク音声に合わせて動く口などは、VRchatの作用環境を用意した段階で専用機能が使えるので設定します。 - unityで作った表情変化システムをVRchatアバターのアニメーションに追加する。
表情変化のシステムは少々手間がかかりますが、是非追加しておきたい機能です。
VRchatアバター作業で主に覚えておきたい、unityの作業画面
5つに分けた各ステップの具体的な説明に入る前に簡単にunityの作業画面のUIについて触れます。
(初めはなんでもそうですが…)unityは初めてという方にはなかなか困惑するUIだと思います。(特にprojectの仕様)ですが簡易的な人型アバターのアップロードでは多くのunityの機能を必要としませんのでじっくり慣れながら取り組むと良いと思います。

unityのUIは右上からテンプレートのレイアウトに切り替えが可能です。
各ウィンドウを自分で移動させて自分好みのレイアウトにすることもできます。
要らないウィンドウはクローズして消すことができます。

VRchatの人型アバターのアップロードまでにScene、Hierarchy、Project、Inspectorのウィンドウをよく見ることになると思います。

ProjectはUnityプロジェクトを保存しているフォルダと連動しており、unityに読み込んだデータ等もこちらに表示されます。
フォルダと連動しているので、こちらで読み込んだデータはフォルダ内にも存在します。Projectでデリートしたデータはフォルダからも削除されます。
そのためProject内のデータは削除したデータの復活などやり直しができません。
Projectウィンドウ内は他ソフトの感覚でコマンドZが使えないので注意です。

SceneはProject内のデータの一つとして保存されます、VRchatアバター作成では読み込んだデータを組み上げる場として活用します。
HierarchyはScene内のオブジェクトの構成要素です。Projectと違いフォルダと連動などしていないので、Hierarchyは他ソフトと同じコマンドZでやり直しができます。

Inspectorはオブジェクトの詳細情報を表示します。情報の編集やコンポーネントを取り付けて新しい機能を持たせることができます。オブジェクトに対する設定と確認をほとんどInspectorから編集できます。
Inspectorで確認できオブジェクトに取り付けるコンポーネントは公式リファレンスでは、「さまざまなコンポーネントを使用して、ゲームオブジェクトを変更したり機能を追加したりできます。」と書いてあります。
VRchatアバターの作成においては、選択したhierarchyのゲームオブジェクトに機能を追加できるものと考えて良いと思います。

VRchatの作業環境を作った段階でVRchatオリジナルのコンポーネントを取り付ける(アタッチ)ことができるようになっています。
(InspectorのAdd Compornentを押して、VRCと検索すると多くのVRchatコンポーネントが検索できる)
アバターアップロード、VRchatで髪を揺らすなどでVRchatオリジナルのコンポーネントをアタッチして使うことになります。
いったんこのくらい覚えておけば、VRchatアバターを作成してVRchatにアップロードすることができると思います。
より詳しく知りたい方はこちらのURLが参考になります。
■まずは簡易的な人型アバターのアップロードを目指す、ステップ1~3まで詳しく見てみます。

まずは、この簡略化された図で簡易的な人型アバターのアップロードを目指していきます。
【ステップ1】作業環境づくり
VRchatのユーザーランクを上げておく

VRchatでは自作アバターをアップロードするためにトラストランクを最初のVisitorからNew User以上に上げなければいけません。明確な基準は分かりませんがVRchatにログインしてワールドをいくつもめぐっていれば簡単に満たせます。
もしVRchatにログインして長くなるのにトラストランクがVisitorから上がらない場合、ゲストログインなどVRchatのアカウントで入っていない可能性が一つ上げられます。私はスチームのアカウントでVRchatにログインしていたらしく最初トラストランクが全然上げられませんでした。
いつまでもトラストランクが上がらなくて変だなと思ったらVRchatのアカウントを見直してみてください。
unityをVRchat作業環境用に準備しておく
次にunityでVRchatアバターの制作環境を作ります。unityをインストールしVRChat Creator Companionを使うのが楽です。VRChat Creator Companionからプロジェクトの作成を行えばVRchatアバター作りに適したunityプロジェクトを作ることができます。
こちらの解説記事に従って作業環境を用意してみてください。
【ステップ2】簡易的な人型アバターのアップロード用にデータを用意する。

ここまでの作業環境が用意出来たら、黄色いエリアの作業を行います。
人型アバターのアップロード優先のため、モデルは更新していく前提で仮モデルとしてポリゴンのブロックを用意(素体レベルは用意しても良いかも)unityで人型アバターとしてアップロードするために骨に基本的な人体構造が必要なので、こちらも更新して追加していく前提で基本的な骨を用意。
ポリゴンブロックと骨をスキニングして人型アバターとしてアップロードできるものを用意します。
ポリゴンブロックのように簡単なモデルなら、一番時間がかかり作業が沼りやすいモデリングとスキニングをいったんスキップできます。
unityのHumanoid適用を前提に、Tポーズにした3Dモデルと骨を用意する
VRchatに人型アバターをアップロードする場合、いくつか条件を整える必要があります。
一番大変になるのがunityのHumanoidに適用させることだと思います。
モデリングやスキニングをする際も、このHumanoidに適用させる前提で用意した方が後々大がかりな修正をしなくて済むので楽になります。

(こういうやつです、難しく見えますが(ハマると難しい…)一度突破できると楽になります。)
unityのHumanoidついて詳しく見てみたい場合はこちらの記事などが参考になります。
- unityドキュメント Rig タブ(unityのドキュメント)
- Unity Humanoid Avatarの解説(VRchatではないが動かす考え方は同じ)
- Mecanim Humanoid の基礎的技術解説(適用させるには必要でないが、より詳しく見たい場合)
unityのHumanoidを適用することで人型アバターとしてアニメーションさせることができるようになります、VRchatに人型アバターで歩き、手を振ったりするためにはこのHumanoidを適用させなければなりません。

適用させるには、3Dモデルに入っている骨のポーズが重要になります。
骨のポーズが両手を横に開き腕を伸ばした左右対称のTポーズであることが重要です。
ポーズが外れていても適用できたり、unityで修正してHumanoidに適用させることもできますが作業が上手くいったりいかなかったりして混乱しやすいので、unityへ読み込む前にTポーズに整えてunityでは修正しないのが無難だと思います。

骨の形をTポーズにする関係で、必然的に3DモデルもTポーズで作成します。

3Dモデル作成のポーズとして腕を斜めに下したAポーズもポピュラーなポーズですが、unityのHumanoidに適用では安定しなかったり手間が増えたりするのでTポーズで作るのが無難です。(適用させるのはできなくはない)
また、左右非対称などの自由なポーズでのモデリングはお勧めしません。
Humanoidを適用させる段階で気付きTポーズに修正するのは骨の折れる作業です。

画像はTポーズでブロックモデルにスキニングしている状態です。この状態でunityにインポートし骨をHumanoidに適用させれば、スキニングされた3Dモデルも動くようになります。

上の画像はunityにインポートしてHumanoidに適用させたモデルをテストで動かしている様子です。
とりあえず左右対称のTポーズで作成するということを覚えておけば、もし実際にHumanoidに適用させる段階でエラーが出たとしても、わずかな修正で済みます。
人型アバターのデータ構造(私の場合)
骨は親の下に子が配置され、親の動きに従って子の位置と回転が追従します。子の動きに親は追従しません。
人型の骨構造にする場合、尻を親にしてに足先、つま先、頭へと親子関係が連なります。
人によって変わりますが、私は人型アバター用の骨をこのような構造と名前にしています。
名前は先ほど紹介したunityのHumanoidに合わせた名前にしています。

Armatureを原点に、hipを起点にして両足と背骨に枝分かれします。背骨を見ていくと両肩と首でまた枝分かれします。両肩は手のひらで各指へと枝分かれします。
骨の名前はunityのHumanoidに準拠、同名左右班別のため左位置にはL_右位置にはR_と名前の上についています。
blenderでの骨とスキニング作業参考

Armatureに上記画像の階層が折りたたまれているため▶ボタンを押して展開すると上記画像のようになります。
骨に3Dモデルがスキニングされているため、骨の階層に3Dモデルが入っていなくても骨の動きに合わせて3Dモデルが動きます。
【ステップ3】用意したデータをunityで組み上げて人型アバターのアップロードをする。

ここからは主にピンクのunityの作業領域になります。
用意したデータをunityに読み込んで人型アバターをアニメーションさせるため、unityのHumanoidを適用させて、VRchatにアップロードします。
FBXでunityにインポートしてHumanoidを適用
FBXという形式に出力してunityで読み込めるデータにします。FBXはアバター制作に必要なデータを保存でき、3Dソフトやゲームエンジン間で互換性のあるデータ形式です。
unityのプロジェクト欄にドラッグ&ドロップや、右クリック→import New Assetでインポートします。

インポートしたFBXファイルを選択するとInspectorにRigを含めたボタンが出るのでRigボタンを押し、Animation Type のトグルからHumanoidを選択した状態で、右下のApplyを押して適用します。
FBXインポートの時点で条件がそろっていればエラーなどは出ずそのまま次の「unityのHierarchyにドロップしてVRC AvatarDescriptorをアタッチ」する作業に移れます。

画像のようにHumanoidが上手く適用できないと、エラーが出ます。三角の黄色警告は無視をしていてもアップロードできますが、赤マークの警告はそのままではVRchatにアップロードできないので解決する必要があります。
骨の位置がおかしい、骨の登録が上手くいっていないなどが多いです。
エラーの理由は表示されます。
画像はFBXデータに骨が入っていない状態で適用しようとしたのが理由です。

Configureを押してHumanoidの設定をすることができます。
Mappingの他にMuscles & Settingsの項目もありますがVRchatアバターの最低限の作成には設定不要です。
Mappingもunityインポート前に骨が適切に配置されていればエラーの確認等目を軽く通すだけで済みます。

モデルの骨が右の図と連動しています。HumanoidをApplyを押して適用した段階で自動的に各部の骨が登録されます。骨が登録から外れるとエラーになります。適切な骨が登録されていない場合自分で登録しなおすことができます。

骨の位置がTポーズの適切な位置から逸脱するとエラーになります。
Tポーズにしたつもりでもエラーが出ることがあります、エラーはこの画面で修正することが可能ですが、unityインポート前のモデルも何度もアップデートしていくことになるので、blenderなどの3Dソフト作業の段階でFBXインポート→Humanoid適用したときに修正が必要ない状態にしておくのが作業的に楽になると思います。
unityのHierarchyにドロップしてVRC AvatarDescriptorをアタッチ

Humanoidでエラーを解消出来たらHierarchyにドロップしてVRC AvatarDescriptorをアタッチします。
InspectorからVRC AvatarDescriptorを展開し、View positionでアバターの目線の位置を調整したらアップロードの準備は完了です。
準備ができたらVRchat SDKのウィンドウからVRchatへアップロードします。
初回はVRchatアカウントでのログインが求められます。

おそらくエラーがまだ残っていますが、Auto Fixのボタンを押すことで自動修正してくれます。
Selectに関してはそのままで大丈夫です。
エラーの詳細はこちらを参照してみてください。
- How to fix “VRCAvatarDescriptor is required to build VRChat SDK Content”
- 【VRChat】アバターアップロード時のオプションやエラー等について解説
VRchat SDKのウィンドウをチェックして名前、とサムネイルを決定します。
アップロードの設定をプライベートになっているかは必ず確認してください。
(サンプルアバターなど他の人に等しくアバターを着用してもらいたい場合にはプライベートではなくパブリックにします。)
アップロードできる状態になると、ビルドボタンが明るくなるのでこちらからアップロードができます。
アップロードしたアバターはIDで管理されます。同じIDでアバターをアップロードすると更新され、違うIDで更新すると別アバターとしてアップロードされます。
VRchat世界を歩いてみる、ここまででも最低限自作アバターでVRchatは遊べる
アップロード出来たらVRchat世界を歩いてみましょう。
アバターはまだ、ブロックで仮のものだったり、素体で裸だったりすると思うのでむやみにウロウロせず、インバイトインスタンスに入ってプライベートで動いてみましょう。
Humanoidに必要な骨が適用されているので、すでに人型アバターの動きはできるようになっているはずです。
デスクトップモードならEXメニューからエモートで手を振ってみたり、VRゴーグルがあるならハンドトラッキングしてみたり…。
初めてVRchatアバターをアップロードすると何とも言えない楽しさが湧き上がってくるはずです。
ここまででひとまず区切りがつけられたのではないでしょうか?
次からはモデルをアップデートしていきましょう、自分好みのアバターを自作して操作するのは販売アバターを着用するのとは一味違った大きな感動を得られること間違いなしです!

■人型アバターをアップデート、ステップ4~6を詳しく見てみます。

アップロードした人型アバターをアップデートしていくにあたって、ブロックモデルの考え方から通常アバターへ考え方を戻していきます。

全体図もVRchatへのアップロードを目的にした簡略化したものから、VRchatアバターの作り方の全体像をへ戻します。
簡易的なモデルでVRchatへアバターをアップロードしていたので。モデルをアップデートしつつ髪やシェイプキーなどを用意して、設定していきます。
データの更新について
何度もunity前の作業に戻ることになると思うので、unityにインポートしたFBXはHumanoidに適用した後、すでにHierarchyにある更新前のアバターのprefabにドロップして更新します。
この方法であれば、更新したデータのコンポーネントをアタッチしている骨の改装や名前が変わらなければ、すでにHierarchyで組み上げたコンポーネントなどを保ったまま更新することができます。

【ステップ4】人型アバターの3Dモデルをアップデートしていく

すでにHumanoidにすぐに適用できVRchatにアップロードできるデータが用意できているので、ベースの骨を崩さない状態でモデリングを追加していけばどんな複雑なモデルもアップロードすることができるはずです。
私のアバター「サラ」は素体の状態(頭と体)の状態から、髪、服、装飾品が追加されています。

素体のモデル(Body(頭)、body1(体))の他が追加されたモデルです。
3Dモデルが追加されたので骨も髪の毛関係や装飾品関係が追加されています。

モデルをアップデートしていく際の注意点
3Dモデルをアップデートしていくときは次のような点に気を付けながらモデリングやテクスチャリング、スキニングを更新していくと良いと思います。
- 進め方や作業方法に大きな決まりはない
- 骨のTポーズを崩さない
- VRchatのアバター評価は軽いほうがもちろん良い
- 頭はシェイプキーの関係で別にしておいた方が良い、ただし作品による。
- 表現は棲み分けをする(過激な表現やR18表現など)
- 権利を侵害しない
クオリティは青天井
unityのHumanoidに適用でき、人の迷惑にならないように努めれば、モデリングとスキニングは作者の自由なところであり、こだわりポイントであり、命を削り多くの時間をかけることになるポイントかと思います。
ここでは詳しく解説しませんので、参考URL等を貼ります。
モデリングとスキン二ングはいくらでも青天井でこだわれますしやり方も千差万別です。
解説もyoutubeなどに多くありますし、ユーデミーなど有料講座もあります。
VRchatのアバターのために学校に通うほどではないと思いますが、デジハリなどもあります。
VRchatに限らず自分に合ったやり方を見つけ根気良く続けてみてください。
- 【完全版】blender初心者はコレさえ見ればUV展開できます【お題:フグ】(blender操作に慣れつつ、テクスチャまで履修できるのでコンパクトに作る経験を積みやすいと思う)
- モデリング初心者のVTuberが自力で3D化する動画【Blender】(ヘアピンまみれさんというなんでも高水準でモノづくりしているVtuberの動画、モデリング~スキニングまでイメージつかむにはとても見やすい、が私含め初見ひと月で人型アバターを作れる人は多くないのでそこだけは注意!(何倍も時間かかるのが普通))
- 【Blender 2.9 Tutorial】キャラクターモデリング解説 #1 -Character Modeling Tutorial #1(上の動画内で紹介されていた人のモデリング解説動画)
- 【第2回】ワニでもできる!モデリングforVRChat – モデリング(記事を書いていて終わりぐらいに見つけた動画、この人の動画だけでもVRchatアバターは十分かもしれない…記事の存在意義が…)
- 【Blender4.2】初めてのオリジナルアバター作り【Unity】(VRM用だがVRMとVRchatアバターは途中まで一緒、ユデミーはよく80~90%割り引かれてるので買うタイミングは気を付ける)
モデルの購入や制作してもらう等、すべてを自力で用意しないパターン
3Dモデルを1から自分で用意しないという選択肢も取れると思いますし、購入パーツを自分のオリジナル3Dモデルと合わせて作成していく方法もあります。
その際は特に権利に注意して利用規約などをしっかり確認しましょう。改造が可能なのか商用として販売するアバターに組み込んで良いのかなど自分の目的沿って利用可能なのか判断してください。
パーツを購入するとしたらやはりBOOTHになるでしょうか。
3Dモデルのパートを依頼するという選択肢もあると思います。
指示を出すことになるので、3Dモデリングの経験はあったほうが良いでしょう。
一度Humanoidに適用できた骨のデータをFBXなどで渡してモデリングやスキにングをしてもらった方が話が早いかもしれません。
依頼して作成してもらう場合も、権利関係はしっかり話し合っておく必要があると思います。後々トラブルにならないようしっかり決めておきましょう。
他にもコミュニケーションをしっかり行い、お金の流れを待たせたりせずスムーズに行って双方の信頼関係を崩さないように努めてください。
依頼するとしたらスキマ等で依頼募集していると思います。
個人的な希望
あくまで私個人の希望なのですべてのアバター作成者がそうだと思わないでいただきたいと前置きをします。
私のアバターはアバターそのままや素体そのまま抜き出して転売のような形で販売したり配布するのは許可できないのですが、素体に合う形で衣装などを作っていただけたら、とても嬉しいです!商用にしてBOOTHなどで販売していただいて構いません。
【ステップ5】VRchatの機能で髪などを揺らし、音声に合わせて口が動くようにする。

これまで触れてこなかった髪を揺らすPhysBoneと口を動かすリップシンクについて言及します。
PhysBoneは体の動きに合わせて、VRchatのシュミレーションで揺らすので、揺らしたい部分に新たに骨を追加してスキンウェイトしておきます。
慣れたら初めから、骨を作っていても大丈夫ですが簡単なモデルをアップロードしていた場合、3Dソフトに戻り髪などの揺れるもの(揺れ物)の骨とスキンウェイトと次に説明するマイクの音声に合わせて口が動くシステム、リップシンク用のシェイプキーを新たに用意します。
リップシンク用のシェイプキー
シェイプキーを設定すると、3Dモデルの変形を登録できスライダで変形具合を調節できます。

V.aaなど既定の名前を入れておくと自動でVRC AvatarDescriptorに登録することができます。
VRC AvatarDescriptorのLipSyinc欄に登録されることで、マイク音声に合わせて口が動くようになります。

- VRChat向けアバターのリップシンク作成方法&Unityでの設定方法
- ■blender系
- Blenderでシェイプキーを使用してオブジェクトを変形させてみよう
- 【Blender2.9】シェイプキーを使って表情や特殊な表現をマスターしよう
- Blenderでキャラクターモデル制作!01 | あいうえお等のシェイプキー ~初級から中級者向けチュートリアル〜
- プレタコンポジッタで解る!⑤Blendshapeと表情改変
- ■maya系
- Start@Maya〜Maya で 3DCG をはじめよう〜 20. リギング ブレンドシェイプ
シェイプキーを設定する際はベースモデルを決め切りたい
シェイプキーはベースモデルの変化に弱いので、シェイプキー設定の段階でベースモデル(今回は頭に当たる)を決め切りたいところです。
現状では必要ないですが、のちの表情変化を見越して必要なパーツも詰め込んでおくのが良いかと思います。
表情変化でハート目やバッテン目にしたい場合、おそらくは目のモデルだけでは足らないので私の場合はパーツを普段頭の中に隠しておき表情変化の時にパーツを出し入れするようにしています。

揺れるシュミレーションのためのPhysBone

髪などの揺れるものは主にPhysBoneというVRchatのunityコンポーネントで追加します。
主に髪の毛や装飾品に追加することになると思います、これらは主にHumanoidで適用される体の動きに合わせて揺れるものなので、揺れ物と呼ばれます。
スカートはクロスコンポーネントというものを使うこともありますが、「サラ」ではコンポーネントの種類を増やしたくなかったので(種類を増やすとその分VRchat自体のアップデートで挙動が変化してしまうかもしれない対象が増えてしまうから。)スカートもPhysBoneを適用して表現しています。
PhysBoneはこちらのURLが機能解説を網羅していてとても頼りになります。
私のアバターでは特にLimitsとForcesのPullとSpringのパラメーターを調整することが多かったです。
例えばMaxAngleで髪が動きすぎるのを制限したりしています。
一通り設定し終わったら、unityの再生ボタンを押して確認することができます。

【ステップ6】 表情変化システムをVRchatアバターに追加する。

今まででVRチャットでの行動ができるようになり、しゃべることができるようになりました。髪が揺れて、自分の音声に対応して口が動くようになったことでだいぶVRチャットのアバターらしくなったのではないでしょうか?
でもやはり笑ったり泣いたり、表情変化がないとさみしいですよね。
なので最後に表情変化を追加して初めてのVRchatアバターの作り方として一区切りつけたいと思います。
どのような表情変化方法を採用するか
表情変化をさせる方法はいくつかあると思いますが、ハンドサイン(手のジェスチャー)に対応して表情も登録した表情に変化するものがメジャーなようなのでこちらを搭載します。
VRチャットには初期状態で7つのハンドサインが搭載されています。
私の作成したアバター「サラ」も手の動きに対応して、表情が変化するようになっています。

ハンドサインによる表情変化が上手くいかなかったら
表情変化を設定する方法は今までの工程と比べやや難しいので、表情変化が上手くいかない場合、こちらのプラグインを使うという選択肢もあります。
最終目標としてはプラグインを使わないのが今回の記事の目標ですが、ハンドサインによる表情変化も実際に搭載してみないとどんな感じか分かりずらいのでプラグインで経験を積むのもありです。
ハンドサインによる表情変化はVRchatアバターにどうすれば搭載できるか
ハンドサインによる表情変化を追加するためunityの以下の要素を追加で覚えます。
- アニメーションクリップ
- AnimatorController
ハンドサインのジェスチャーをスイッチにしてそれぞれ対応したアニメーションが流れるようにします。

unityではこのアニメーション切り替え構造を上画像のAnimatorControllerで管理し、流れるアニメーションをアニメーションクリップで作成します。

アニメーションクリップではその表情の時どのシェイプキーがどの程度変化するかを設定します。
上記のAnimatorControllerに登録します。
画像のAnimatorControllerは1から自分で作ることもできますが、VRchatのvrc_AvatarV3HandsLayerというAnimatorControllerをコピーしてきて使うのが良いです。

ここにありますが、これをコピーしてきて改造し、VRC AvatarDescriptorのFXレイヤーでハンドサインが反応するようにVRチャットのアバターを一部上書きします。

リップシンクを作った時と同じやり方で表情変化用のシェイプキーを作ります。
直接笑顔、泣き顔など変化させたものを作っても良いですが、その他の表情を追加したいときに柔軟性に欠けそこそこ労力がかかるので顔の各パーツに分けてシェイプキーを作っておくことで、それぞれの変化具合をアニメーションクリップでコントロールして様々な表情を作り変化させやすくなります。
私は顔のパーツを、眉、目、口に分けて表情変化用のシェイプキーを作っています。

私のアバター「サラ」も表情づくりのためのシェイプが用意されていますので、購入していただいた方はぜひアニメーションクリップで新規表情も試してみてください。
作ったアニメーションを各ジェスチャーに対応させてAnimatorControllerを作り、これをアバターのFXに対応させます。
アップロードしてハンドサインを確認してみます。
私のVRchatアバターの作り方に付き合っていただきありがとうございました。
ここまで私のやり方にお付き合いいただきありがとうございました。
もう一度この記事の最初に設定した、どんなアバターを目指すのかの要件リストとそれぞれどのように対応したかを見てみます。
- vroidなどのアバター制作ツールを使用しない。→vroidなどを使わない
- VRchatで歩行などの主な動作をしたときに正常に動作すること。(unityのHumanoidに適用させる)
- アバターの主要な部位の動きに合わせて、髪などの部位が揺れること(PhysBoneを揺れ物にアタッチする)
- 自分が発音する音声で、アバターの口が対応して動くこと(リップシンク用のシェイプキーを用意して、VRC AvatarDescriptorに登録する)
- 無表情だと味気ないので、表情変化ができること(表情変化のシェイプキーを用意し、AnimatorControllerで管理する)
- モジュールアバターなどのプラグインを極力使わない(全てプラグインなしで実現できる)
ここまで作業を進めてくることで、最初に設定したVRチャットアバターの目標を満たして、VRchatアバターが作成できたのではないでしょうか。
もう、VRチャットで自由な体を手に入れたので、後は気の向くままにブラッシュアップするだけです。また一度ここまで作り切れば、次にアバターを作りたいと思った時かける労力は一段と減るはずです。
今回の進め方について、自分のペースを大切に
アバター作りはおそらく長丁場になると思うので、(学業や仕事と並行作業になるでしょうし)モチベーション維持が大事だと思います。
今回のように流れを確認して、期間を区切って目標を設定しステップを確認しながら進めていけば、VRchatアバターを作り進めている実感もわきやすいと思います。
極端なことを言えば、作業を進める時間さえかければ牛歩であれいつかは完成するはずです。
3Dのようなデジタル作業の良いところは作業を積み上げやすいところだと思います。そのためにバックアップはしっかり取りデータ損失は気を付けてください。
また、作業の中で一番心血を注ぐことになるのはモデリングとスキンウェイトになると思います。
一番こだわりどころでもあると思います。
youtubeで本気で○○日やった結果みたいな動画も多いような気がしますが参考にとどめ、自分と比べないほうが無難だと思います。(スピード勝負しない)
持久走を走るように自分のペースを気にしながらやっていくと良いと思います。
そのお供になれる記事になっていたら光栄です。
まとめ

今回書いた内容をもう一度大雑把にまとめます。
- VRchatで歩行などの主な動作をしたときに正常に動作すること。
- アバターの主要な部位の動きに合わせて、髪などの部位が揺れること
- 自分が発音する音声で、アバターの口が対応して動くこと
- 無表情だと味気ないので、表情変化ができること
- モジュールアバターなどのプラグインを極力使わない
この目標に向かってまずはVRchatに人型アバターをアップロードし、それをアップデートしていく形で制作していくことにしました。
人型アップデートでネックになると思われるのはHumanoidです。
これを上手く適用させるため、Tポーズでモデルを用意します。
VRchatにアバターをアップロード出来たら、モデルをブラッシュアップしていきます。
揺れ物をPhysBoneで揺らし、シェイプキーを用意してリップシンクできるようにします。
最後に、ハンドサインに表情変化を対応させて、私のVRchatアバターの作り方は終わりです。
あとは好きなようにブラッシュアップを重ねるだけです。
私の作成したアバター「サラ」も
要件を満たした後、ブラッシュアップしたり追加機能で衣装チェンジなどしています。
この記事でも引き合いに出していました、良かったら買っていただけると嬉しいです。

今回の私の経験をお役に立てていただけたなら幸いです。