VRoidモデルをVRChatでアバターとして追加する方法は?
ボーンのエラーを消す方法は項目を訂正するだけって本当?
アバターの設定の各項目の意味は目の位置や立ち方って本当?
こんな疑問に答えます。
本記事の内容
VRChatの魅力は、自分の姿を好きなアバター(3Dモデル)に設定できるところですよね。
可愛い女の子やイケメンにもなれます。
オリジナルのアバターをアップロードする作業はちょっとだけ複雑で長いです。
どこかで間違えているとエラーになって成功しなかったりして大変です。
間違えやすいポイントも含めて解説していきます。
僕はVRoidで漫画が作れるiPhoneアプリComicamを開発して公開中、自作の3Dモデルは400DL以上、VRChatは2018年8月からHTC Viveで利用中。
そんな僕が解説していきます。
作業環境
VRChat 2018.3.2p1
Unity 5.6.3p1
VRoid Studio Win/Mac版 v0.2.12
Windows 10 / Mac OSX High Sierra 10.13.6
VRoidモデルをVRChatにアップロードする準備作業
VRChatに自作アバターにアップロードするには、以下の準備作業が必要です。
アバターのアップロード許可の権利を得る
友達申請する/されるなどのプレイ経験ポイントが貯まると解禁されます。
こちらの記事で解説しました。
» 【VRChat】アバターのアップロード制限を短い時間で解除する方法
Unityのインストール(バージョン2つ使い分けが理想)
Unityは指定バージョン5.6.3p1をインストールします。
現在はUnity 2017.4.15f1へ指定バージョンが変更になりました。
» https://unity3d.com/get-unity/download/archive
最新バージョンも使用頻度が高いので、Unity Hubでの両立がオススメです。
» https://unity3d.com/get-unity/download
Unity Hubの使い方はこちらで解説しています。
» Unityの複数のバージョンを同時に使う方法【Unity Hub】
VRChatSDKを導入する
VRChatの開発には専用のSDK(ソフトウェア開発キット)が必要です。
ダウンロードに5分くらいかかるので、準備しておくのがオススメです。
» 【VRChat】ワールド作成のためにSDKを導入する作業の解説【Unity】
VRoidモデルを作成する
VRoid Studioでモデルを作成すると、簡単で便利です。
3Dモデル全般がアップ可能ですが、この記事ではVRoidモデルを使います。
このブログではVRoidの作り方について徹底解説しています。
» VRoidの完全マップ【入門・基礎・中級・上級を徹底解説】
Cats Blender PluginでVRMをVRChat専用のFBXに変換しておく
2019年現在ではCats Blender Pluginという便利なBlenderのプラグインが存在します。
ボタンを押すだけでVRMをVRChat用に変換できるのでこちらを使用していくのがおすすめです。
» Cats Blender Pluginの使い方【1ボタンで最適化・詳細設定も可能】
(2019.05.09追記)
Cats Blender Pluginを使えば、この記事のRig・ボーン・シェーダー・ポリゴンの設定は必要ないです。
VRoidモデルをFBXファイルに変換する
Cats Blender Pluginを使用すれば自動でFBXが生成されます。
BlenderなしでUniVRM(Unity向けVRM標準実装)を導入しFBX Exporterで変換する方法はこちらの記事で解説しています。
» VroidモデルをCLIP STUDIOにインポートする方法【VRM/FBX】
VRoidモデルのファイルをインポートする

用意したモデルのファイルを、Unityにドラックしてインポートします。
準備作業でFBXに変換しておいたファイルです。
マテリアルはVRMファイルから持ってくる必要がありますが、Cats Blender Pluginを使えば簡単に準備できます。
» VRChatのアバターのマテリアルを解説【統合して1つにします】
モデルのRig設定をする

インスペクタ(右サイドメニュー)のRigのタブで、モデルのRig設定をしていきます。
アニメーションタイプをヒューマノイドに設定にして、Configureを押すだけです。
一応、各項目の詳細について書きます。
Rigとは
ボーンを動かす設定全般のことです。
ヒューマノイドの場合、骨と筋肉の設定のことです。
Animation Typeとは
動かし方の種類です。
レガシー(Unity ver3.x以前のタイプ)、ジェネリック(人間以外)、ヒューマノイド(人型)から選べます。
Humanoidを選びましょう。
Avatar Definition(アバター定義)
定義ごと設定を他ファイルから持ってくるのが可能です。
「このモデルから作成」「他のアバターからコピー」から選べます。
今回は「このモデルから作成」を選択し「Configure」(設定)を押して設定画面に入ります。
VRoidでは独自に編集しないとエラーになる部分があるからです。
Optimize Game Object(ゲームオブジェクトの最適化)
最適化をチェックしない方がちゃんと動きました。
SkinnedMeshRenderers(スキンメッシュのレンダー設定)をUnity内部のものを利用することで最適化できます。
» 参考:Rog tab(https://docs.unity3d.com/Manual/FBXImporter-Rig.html)
そもそもアニメーションシステムとは、Unity内でキャラを動かすのに関わる一連のシステムのことを指します。
時には通称メカニム(Mecanim)とも呼ばれます。
ボーンの設定や、スクリプトによる制御、タイムライン編集など、多岐に渡る高機能システム。
https://docs.unity3d.com/Manual/AnimationOverview.htmlを参考
ボーンの設定(アバターマッピング)

「Configure」(設定)を押すと、このようなボーン設定の画面に入ります。
ボーン設定は基本は自動です
基本的に自動で設定されます。
ただ、そのままだとVRoidモデルでは胸の部分でエラーが出てしまいますので直します。
UPPER CHESTのエラー
![]()
「Humanoid RigのUPPER CHESTの部分で、IKの問題が発生します」 と書いてあります。
UPPER CHEST設定の訂正
(Chest)J_Bip_C_Chest → J_Bip_C_UpperChest
(Upper Ches)J_Bip_C_UpperChest → None(なし)
と変更すると上手くいくようです。
すみません、上記報告読んだらUpperChestにマッピングしたら逆に問題起きるみたいに書いてたのでVRChat向けにChestが正しくマッピングされるのを追加しました。私の方ではVRChat検証してないので正常動作するかは不明ですw https://t.co/ytAHFSkv55
— まじかる☆しげぽん@VRoid (@m_sigepon) 2018年2月2日
» 参考:https://steamcommunity.com/app/438100/discussions/1/1621726179586545632/
» 参考:https://docs.unity3d.com/Manual/ConfiguringtheAvatar.html
これでApplyしてDoneで、ボーンの設定を完了します。
モデルのシーンへの配置を設定する
モデルをシーン、もしくは左サイドバー(Hierarchy)にドラックします。
この時の配置の設定についてです。
アバターの配置
アバターの位置は(0,0,0,) の座標、つまり真ん中に配置します。
アバターがまっすぐ立っていないときは、回転などして直します。
(正面を向かせる、っていうことですね)
アバターのサイズ

こういうことかな…(0,0,0,)
アバターのサイズは、小さすぎも大きすぎもアウトです。
1x1x1mから、5x5x5mの間に収めます。
Avatar Descriptor(アバター情報)を設定する
Avatar Descriptor(アバターの情報)を設定していきます。
これはVRChatのSDK内にあります。
Avatar Descriptorウィンドウを出す

モデルを選択して、右サイドバーの「Add Component」から、メニューを辿っていきます。
結構、深いところにあります。

Scriptsを選択

VRSDK2を選択
VRC_AVatar Descriptorありました
初めはこのように表示されています。
「Auto Detect(自動判別)」のボタンを押すと、下のように変化します。

Avatar Descriptor(アバターの情報)の詳細

VRC_AvatarDescriptor
https://docs.vrchat.com/docs/vrc_avatardescriptor
こちらのリンクを参照に説明します。
View Position(目の位置)
目の位置です。
見え方に関わるので大事ですね。
目の間の位置が最適とのことです。
VRoidの目の位置はこれで最適なのか研究中です。
Default Animation Set(デフォルトアニメーションセット)
男女を選びます。
これは、リアクションのアニメ動作を、男性女性どちらのタイプを使うかということだと思います。
Custom Standing Anims/ Custom Sitting Anims(カスタムアニメ立ち、座り)
立っているとき、座っているときの状態をカスタムできるようです。
AnimatorOverrideControllerを設定して、カスタムアニメーションを設定します。
Assets > VRCSDK > Examples > Sample Assets > Animation
Scale IPD(瞳孔間距離)
IPDとは瞳孔間距離のこと。
ONにして、瞳孔間距離をアバターに合わせるべきだという意味だと思います。
Lip Sync(リップシンク)
4つのタイプからリップシンクシステムを選べます。
セットアップが簡単なので公式の資料の一部ではJaw Flap Bone (ジョーフラップボーン)の使用がオススメされています。
リップシンクもCatsプラグインを使えば一瞬です。
こちらで解説しています。
» VRChatのリップシンクを解説【ボタン押すだけで簡単に動かせます】
シェーダーの設定
VRoidモデルをインポートしたままでは、目の周りが黒くパンダのようになってしまいます。
これを直すために、シェーダーを設定していきます。
シェーダーとは
シェイダーは小さなスクリプトです
各ピクセルの色を計算するための数学的計算、アルゴリズムを含む照明の入力と、マテリアル設定に基づいてレンダリングを行います。
https://docs.unity3d.com/Manual/Shaders.htmlより引用
シェーダーの設定ウィンドウを表示

左サイドバーでパーツを選択すると、右下にシェーダーが表示されます。
顔のパーツを透明のシェーダーに変更


顔の下5つを、元から入ってた透明シェーダーに変えたら、いい感じになりました。
他のパーツもアニメ風のシェーダーにする


アセットストアで検索して「Toony Colors Free」がアニメ風で無料で評判もいいので使ってみた
他のパーツのシェーダーも変えてみました。
シェーダーはVRChatに持っていくのを考えると標準的なものを使うのがおすすめです。
推奨のシェーダー情報が更新されました
VRChat側でもGPU負荷の面で最適化されているシェーダーの例が記述がされるようになりました。
» 参考:Avoid expensive shaders(VRChat公式)
VRMの推奨するMToonシェーダーも、日本のアニメ的表現をするシェーダーとしてdowangoのサイトでも紹介されています。
こちらの記事に詳しく書きました。
» VRoidのUnityでのテクスチャ設定方法【項目の意味も解説】
Cats Blender Pluginを使えばマテリアルは1つに統合されるのでシェーダーの設定も簡単で、そのままでもアップロード可能です。
» VRChatのアバターのマテリアルを解説【統合して1つにします】
ポリゴン数の設定

ポリゴン数が多すぎると、エラーになります。
19014では、警告が出ました。
(アップロードは成功)
マックスは20000ポリゴン
You cant. 20k max.
avatar polygon limit
https://steamcommunity.com/app/438100/discussions/0/1635237606658429888/より引用
こちらのコミュニティの書き込みによると、マックスが20000とのことです。
2000-5000あたりが理想とも、書かれていますね。
今回は、とりあえず19000でもアップロードは成功しましたが…ギリギリだとアップロード失敗率も上がる気がしてます。
Simplygonでポリゴン数を減らす方法についてはこちらに書きました。
» VRoidをローポリ化するSimplygonの使い方を徹底解説【簡単5分】
(追記)
ポリゴンの規定も変更されました。
Cats Blender Pluginでのポリゴン最適化も含めてこちらの記事に書いています。
» Cats Blender Pluginの使い方【1ボタンで最適化・詳細設定も可能】
アップロード
ここまでできたらアップロードしていきます。
VEChat SDKにサインイン

VEChat SDK>Settingからサインインします。
ユーザーネームとパスワードを入れます。
Publish設定

ここに、Publishの設定があります。
これによりアップロードの許可に違いがあるのか研究中です。
(テストアップロードの場合はチェック外してもいいのかもしれません)
Build Control Panelからビルドを押す

New Avatarの設定項目を埋める

アバターの名前、説明文、警告項目チェック(もしあれば)、公開/非公開を埋めます。
規約に同意して、アップロードを押します。
アバタープロフィールのサムネ画像の設定

サムネ画像はVRCCamの項目で詳細設定が可能です。
アップロードされるのを待つ

わりと時間かかります、10分くらいかな。2019年5月現在は10秒くらいです。

完了すると、このメッセージが出ます。
まだ成功したとは限らないようです。
Manage Uploaded Contents

Manage Uploaded Contentsを開くと、すでにアップしたアバターが並びます。
アバターの管理ができます。
ここにアバターがきちんと表示されていても、VRChatでは反映されていなかったりします。
(研究中)
VRChatに入り確認

VRChatに入り、Avatarメニューに入り、自分のアバターがあれば成功です。
規定よりもポリゴンやマテリアルが多いとエラーになりやすいので注意しましょう。
エラーメッセージに注目です。
エラーになる原因と対策
これで一発で上手くいけばいいんですが…なかなか成功しませんでした。
わかる限りで、エラーになる原因と対策を書いていきます。
足がない、頭がないなどのエラー

FBXファイルのみで、VRMファイルをアップロードしないとこうなると思います。
Descriptionがないというエラー
![]()
Avatar Descriptorの設定をしないとこうなります。
アングルが180度じゃない警告

これはエラーではなく、警告で無視しても大丈夫なようです。
アングルの設定が0度になっているのを、180に直せということです。
後ろ向きのまま、前後が逆だったかな
参考:Creating Your First Avatar (VRChat公式)(https://docs.vrchat.com/docs/creating-your-first-avatar)
Model import workflows (Unity公式)(https://docs.unity3d.com/Manual/ImportingModelFiles.html)
というわけで今回は以上です。
VRoidモデルをVRChatでアバターとして追加するには、ボーンの設定とポリゴン数の設定が手間取るポイントだなと思いました。
Unityの操作に慣れるのも大事だなと思います。


