VRChatにVRMを持ち込む方法とやらかし備忘録(※ほぼ自分用)
タイトル通り、ボクがいつもVRChatへVroid studioで作成したVRM形式のモデルをアップする際に行ってる工程やあれこれを備忘録として記載しておきます。
※毎回躓いて調べながら作業してしまってる自分へのメモとしての側面が強いです。又、今後unityのバージョンが上がったり環境の変化が起こるとこれらの情報が古くなってしまう恐れもあるため、その点注意してください。(2025年1月)
まず、ボク自身この白柿マイナルさんの記事に大変助けられているので大まかにはこちらの記事を読んでいれば一通り問題ありません。感謝…!!!
ざっくり前提知識として
・VCCを導入している
・VRChatのトラストレベルが「New(ブルー)」に達している
・Vroid studioからVRMを書き出す程度に扱える
という点についてはクリアしている物として記載しておきますので、もしそれらがわからない場合上記の記事を参照してくださると優しく解説してくださっています。
unityに上げる前に意識しないといけない諸々
作業をする前に大事な事として、これから編集するデータを格納しているフォルダやファイルをすべて英語表記にし、スペースや記号などを入れないという事。
ホント3Dナンモワカランマンなのでフォルダを「【unity作業用】」だったりファイル名を「20250113 モデル名 夏服」などの表記で整理してしまっていたのですが、どれだけunity上で正確に作業したとしてもこの時点で詰んでしまってました。どうやらスペースも入れない方が良いみたい。
なのでざっくりとでも「012345ModelNameSummer」などで表記しておかないとunityに読み込んだ際に日本語が文字化けして書き出す際などに上手く処理してくれないようでした。
こういう3Dツール用のデータのほか、ドライブの中にはイラストや動画編集や販売物の管理や料理系の写真整理などとにかく扱うファイルが多いのでなるべくファイル整理キッチリやりたいという固定観念が邪魔してた感じ。
なのでVCCを開いた時にCreate New Projectで新規に作業する際は「D:\unity\model」などにフォルダが生成されるようにし、モデル名などもなるべく英語表記にするように管理しています。(英語わかんないよ~!)
これ、3Dやってる人からすると基礎の基礎の基礎の基礎だと思う。
unityの自動保存設定を切る
ナンモワカランマンなので変な設定をした状態で作業を進めてしまい、詰めに詰めた改変等が壊れた状態になって保存されてしまってイチからやり直しになったりしたので自動保存設定をオフにしておくと安心です。
自動保存については詳しくはわからないけど昔設定してみた感じ、Preferebcesのここら辺が怪しいかも。逆に自分で保存する癖を付けないといけないのも忘れずに。
Vroid studio上での設定に注意
前にClusterにテクスチャ解像度を落とさずにVRMを上げる方法を上げているのですが、この件も今回絡んできました。
ざっくり説明すると、Clusterにアップする際かつてはマテリアル数を制限しないといけなかったけど現在はポン出しでも大丈夫になってたという内容。
気にならなければそのままでも良いけど衣装のテクスチャがかなりぼやけてしまっていたため、なるべくClusterに対応するように設定していた「マテリアル数を制限していないVRMファイル」が手元にあったんですね。
先ほども言った通り扱うファイルがとにかく多くなるのでなるべく統一したいという固定観念があるので、ClusterとVRChatで扱うVRMも同じものを引用しようとしてしまったのですが、VRMをunityからVRChat想定にコンバートする際にはマテリアル数を設定しないといけないっぽいのです。
なのでunity上で何度も正確に作業したとしても、何かエラーが出てしまうという症状のループに陥ってしまってました。しかもファイルが日本語表記というダブルパンチ。
解決策として、VRChat用にVroid studioで書き出す際にはマテリアル数を8などに制限した物を用意してください。
VRCで表情が破綻するのを防ぐ
一度経験して度忘れしてしまっていたのですが、Vroid studio上で感情による表情設定をする際に「口を開いた状態の表情」を指定して書き出したVRMは、VRCの音声認識での口パクとの兼ね合いでめちゃくちゃ口が開いてしまうのです。
何を言ってるのかというと、こんな感じで「楽しい」の感情の時に自動で口が開いた表情にしてしまっていると…
VRCで何か発言した際に「楽しい」+「口の動き」で口角がめちゃ開いてしまうのです。
なのでVroid studio上で感情のパラメータを設定する際は口元はなるべく動かさず「目元や眉毛だけ」を意識すると表情の破綻が無く良いかもしれません。
※「あいうえお」の口角設定については音声認識による動きが綺麗に反映されるので、そちらは好きなように形を整えてください。
そもそももとはと言えばVRM自体がVRChat想定されていなく、有識者によりVRCコンバーターが開発されているからこそこういう細かな不具合が起きやすいのかも。
unityでVRMをVRC用にコンバートしていこう!(個人的な設定)
…という、3D系のツールたまにしか使わないマン特有の素人丸出し不具合を連発しまくってますがやっとここまで来ました。ここまで来るまでにだいぶ苦労したのでそういう意味での備忘録もといメモなんですよね…。
ここからは大まかには冒頭で紹介したマイナルさんの記事を参照してもらえたら間違いないのですが、細かな部分で思った事など踏まえつつ簡略化してざっくり紹介。
①VCCでprojectを作成する際に「VRM Converter for VRChat」と、任意で「liltoon」を入れてOpen project。
②unityの下にあるAssets欄にVRMをドラッグ&ドロップ
③読み込まれたVRMファイルの「アバター名.prefab」をHierarchyにドラッグ&ドロップ
④Historyにあるアバターを選択した状態で「Duplicate and Convert for VRChat」を開く
⑤肩の高さを「0.01」に設定して複製して変換。保存するかどうかのウィンドウが出てくるので保存。「変換が完了しました」のウィンドウが出たら「OK」を押す。
VRMをVRChatに持ち込んだ際によくある撫で肩問題がこの「肩の高さ」をここで設定することで解消されますが、キャラクターの印象もだいぶ変わるので何度かVRChatに書き出して試してみて自分に合ったパラメータ数を見つけ出してもいいかもしれません。個人的に0だと撫で肩すぎて0.02だといかり肩すぎる印象でした。
フルトラ機材の装着位置や男性か女性モデルでもだいぶ感じが変わってくるので自分に合った物を定めてください。
変換されたら元データを非表示にし、(VRChat)と表記されたほうを選択。
⑥Inspectorの視線や目の位置などをいじっていく。
HierarchyのRootを選択し、positionのZ軸を「0.05」に設定。VR上での腕の動きをここで良い感じにしてくれるみたい。
Hierarchyのアバターを選択して、Viewの「View position」のeditを押す。すると真ん中のscene画面上に灰色の丸い玉が出てXYZ方面に移動できるようになるので、アバターの眉間辺りに半分が出てくるように移動させる。(大体Z軸の青の矢印だけつまんで動かせばいけます。)
ここでVRゴーグルを被った際に映像がアバターのどこから見えてるのかを設定できます。
そのままinspectorを下にスクロールして、GeneralのEye movementsの下のバーを真ん中あたりまで動かし、confident側まで動かす。
Rotation Straightの数値をそれぞれ調整する。ここではアバターが何かのオブジェクトなどに反応して視線が追尾したりするように設定でき、その視線の動きを微調整出来るのですが、ぎょろぎょろと乱視するような挙動になりがちなのでボクは全部ゼロにしてたりします。「写真を撮る時など流し目にしたい」とかが無い限り、ちょっとノイズになるかなと思ってます。調整するのであれば大体4辺りが良いらしいとの事。
アバターのshaderを変更したい場合(任意)
アバターの影や光の表現を変えたい場合は、scene上のモデルを選択してinspector下のBlend Sharpsにあるマテリアルをいじっていきます。
この辺はいじらずそのままでもOKですが、VRMを扱う際にどうしてもVroid感が残るのでアバター品質をワンランク上げたい人向け。事前にlilToonをVCCに入れておく事を忘れずに。
それぞれマテリアルのshaderの欄からlilToonを選び、描画モードをカットアウト、Cull Mode(描画面)を両面を描画に変更します。
shaderの欄がHidden/lilToonCutoutの表示になればOK。
…これ、めんどくさいのですがマテリアル全部手動で変えてください。
肌や顔だけでもlilToonに変えるとだいぶVroid感が無くなります。
ついにVRChatに書き出し!
書き出す準備が出来たら、上部のメニューにある「VRChat SDK」からShow control panelを選ぶとウィンドウが表示されるのでそれらを設定していきます。
※最初はVRChatのログイン記入を要求されるのでパスワードなど打ち込んでログインしてください。
あとはアバターの名前を記入したり、説明文を書いたり、サムネイルを選択したりしてbuildするだけ!
上手く進むとこんな感じでアップロードが進みます。
あとはVRChatに入ってみて確認!!!!!
アップロード完了!!!!
アバターに破綻が無いかチェックしつつ、細かな部分を調整したりして上げ直しするとか、問題無ければunityの方でも編集データをsaveしておきましょう!
やったね!
そんな感じでざっくりと自分用に備忘録として書いてみました。頭の中に入ってるうちに書いておかないと長く期間空くと忘れちゃうんですよね。
3Dやunityに強い先人たちの記事があるのでそちらの方が正確性が高いと思いますが、大まかにはこのようにすれば一先ずVRM形式のアバターもVRChatへ持って行くことが出来ます!やったね!
その他、unity上で様々な改変だったり衣装を切り替えるギミック(アニメーション)を仕込んだりもすることも出来ます。Boothなどで販売されてるアイテムなんかも頑張れば仕込めたり。
でも個人的にはVRMで仕上げてるアバターの衣装はVroid studioで個別に書き出し、単一でアップした方がいいかなと思っています。というのも、アバターに色々と仕込むとそれだけ重くなってしまうので、みんなと集まった時にインスタンスが重くなってしまう事もあるので。一人で配信するなら切り替えしやすいという利点もあると思いますが、それにしてもunity上での作業負担も多いし、だとすれば一連の工程を覚えているうちに個別で一つ一つアップしちゃった方が返って楽といった感じ。
そして、このVRMを変換してVRChatに持って行くという流れをしっておくと、Boothに販売されてるアバターのアップロードや改変が結構簡単な事にも気づき始めます。VRMをVRCに持って行くのってunityを扱う上で逆に小難しい事してるんですよねえ。
他にはVTuber目線としては、将来的にフルスクラッチの高品質なモデルも良いけど今はVroidで我慢…という意見もあってこの工程に辿り着く方もいると思いますが、逆にフルスクラッチのオリジナル3Dモデルを扱うとなるとこれ以上に難しい工程を踏まないといけなくなったり、権利関係でVRSNSを行き来する際にクリエイター様との許可取りで手間取ったりと小回りが利かない点も多々あるため、逆にVroidの方が自由度が高くなるという現象も起こったりするので、わからないなりにも覚えておくと後々便利かも…!?
という感じで備忘録的に記事を書いてみましたが、もしVRMを何とかVRChatに持ち込もうと思ってる方にも何かしら為になれたなら幸いです!