VRChat用アバターをVRM化する!

毎回忘れて調べまわることが多いので、VRChat用に販売されているアバターをVRM化するときの手順とポイントを備忘録として書いておくぞ!(こうやって書いたことすら忘れそうで怖いけど……💦)

必要なもの(2023/04/08時点)

アバター

Boothで購入しています。
注意することは、販売ページに書いてあることをしっかり読むこと。
Unityのバージョンだとか、どんなシェーダーが必要かとか、どんなファイル構成になってるかとか、どのアバターに対応しているかとか。
これをちゃんと見ずに購入すると、あとで困ることになる。
もしほしい情報がない場合は、製作者さんに質問するのが良い。
分からないまま購入して、もしUnityでは使えないアバターだったとしても返金はしてもらえないからね。
でも、どうやってVRMにすればいいかとか、VRChatにアップするにはどうすればいいかとかを製作者さんに聞くのはよろしくないと思うので気を付けよう。
聞いても怒られない質問としては、Unityのバージョンが書いてない、シェーダーに何を使ってるか書いてない、ボーンが入ってるかわからない(そんなことあるかな?)、素体があるかどうかわからないと言ったところかな?
"Scene"や”Prefab”が用意されてると、とりあえず安心。
"FBX"しかないとちょっと不安。

Unity

これがなくては始まりません。
過去のバージョンが必要な場合はここからダウンロードできる。
アバターの多くは"2019.4.X"が多い(と思う)ので、LTS版の"2019.4.X"の一番新しいのをゲットしておく。
といいながら、今うちで入ってるのは"2019.4.31f1"だけど?
次に入れなおすときは新しいのにしよう。

VRChat アバター用SDK

VRChatのマイページのDownloadからダウンロードできる。
んだけど、ダウンロードページの画面構成(?)が時々変わるので、ビビらないようにする。

2023/04/08時点でのダウンロード画面

Dynamic Bone(DB)

Unityの「Asset Store」からインストールするので、WEBページからダウンロードとかは必要ない。
"Unity 2019.4.X"の場合、Asset Storeはひとつのタブで表示されるけど、新しいUnityでは個別のウィンドウになってたと思うのでインストールの仕方はそれぞれのバージョンに合わせて対応する。
どちらもインストールされるものは同じはず。

Unity 2019.4.31f1のAsset Store

ユニティちゃんトゥーンシェーダー2.0

アバターの表面に色を付けたり質感を変えたりしてくれる、マテリア用のあれ。(こういうのなんていうの?)
最近このシェーダーを使ったアバターをVRChatにアップロードしようとすると、数が多いとかなんとかエラーになることがあって使われなくなってきたみたい?
でもまだ現役で使ってるアバターさんもいるし、古いアバターさんは使ってるしで必要になる。
2022年6月14日が最終更新になってるから、ときどきチェックしておけばいい感じかな?

lilToon

アバターの表面に色を付けたり質感を変えたりしてくれる、マテリア用のあれ。
ユニティちゃんトゥーンシェイダー2.0からこちらに変わるアバターさんが多い。
こちらもBoothで無料配布してくださっている。(お小遣い増えたら投げ銭して応援したい)
これも常に最新版をチェックする方が良いっぽい。
Unityの中で最新じゃないよ、みたいな表示が出るときがあるので。
最新バージョンはBoothのダウンロードボタンの所で確認できる。

lilToonのバージョンはここでわかる

UniVRM

アバターにVRM用のボーンを入れたりシェーダーを付けたり、VRMファイルに書き出したりしてくれるツール。
時々バグ修正とかUnityのバージョンアアップに対応とかで更新されてるようなので、新しいアバターをVRMに改変するときとかチェックすると良いと思う。

VRM表情設定するやつ

VRMに出力した後に表情を付けることができるツール。
タイトルがすごく適当に見えるけど、そういう名前だからしょうがない。
Boothで無料配布されてます。
Unityで表情を付ければ要らないんだけど、Unityで毎回ちまちま設定するのは面倒。
このツールは一度設定した内容をCSVファイルに出力しておいて、後で読み込むことができるので、同じ設定を再現したり、他のアバターにコピーして使ったりできるのでとても便利!
というわけで、うちではUnityで表情を付けなくなった。


あると便利なツール

VRM Live Viewer

VRMのアバターを音楽に合わせて踊らせてくれるツール。
Boothで無料で配布されています。
エラーがないかチェックするために使わせていただいてます。
VRM化したアバターの表情や揺れものがちゃんと動くか確認できる。
そもそもこのツールでちゃんと表示できなければ、Beat Saberでもちゃんと動かない。


VRMお人形遊びPC版

VRM化したアバターを好きなポーズと表情で写真撮影できるツール。
Boothで無料で配布されています。
サムネ作ったりするときに便利。

Avatar Network

こちらはツールではないんだけど、欲しいアバターを探したり、アバターに対応した衣装とかアクセサリを探すのに便利なサイト。
更新速いので、新しいアイテムのチェックもこちらでやってます。

パッケージをUnityへのインポートする

ダウンロードしたアセットやアバターをUnityにインポートする方法。
順番としては、各種アセットを入れてから、最後にアバターを入れること。
逆でもいいんだけど、精神的にその方が安心。
Asset StoreからインポートするDyamic Bone以外は、各種アセットもアバターも手順は同じ。

①インポート用のページを開く

UnityのメニューからCutom Package…を選択

②unitypackageファイルを選ぶ

拡張子が"unitypackage"になってるものを選ぶ。
複数ある場合は、どういう違いがあるかをBoothの販売ページや、同梱されている説明書を読むこと。
ちょっと前だと、Dynamic Bone版とPhysBone版が入っていたりしてた。

unitypackageを選んで「開く」

③インポートする

念のため「All」を押してから「Import」を押す。
インストール済みのファイルはチェックがつかないので、チェックがつかなくても気にすることはないと思う。

Importウィンドウ

インポートが成功すると「Project」のタブに入ってる。

インポート成功したらここにある

④アバターのファイルを選ぶ

インポートしたファイルの中に、”Scene”や"Prefab"があればそれを使う。
"FBX"しかないときは、色を自分でつけないといけないのでちょっとハードル高いかも。
どれがどのファイルかは「Project」タブでファイルを選択すると、下にファイル名が出てくるので拡張子を確認する。

FBXファイルを選択した場合

"Scene"の場合
照明とか背景とか画面全体がそのアバターに合わせた設定になってる。
なので、そのSceneに他のアバターを入れると(見た目の)色が変になったりするかもしれない。
同じ製作者さんの違うアバターでも起きる。
Unityのプロジェクトを毎回新しく作るのであればSceneがあると便利だと思うのだけど……。
Beat Saberの照明とは違うから、ゲーム内で同じ色が再現されるかはわからない。
"Prefab"の場合
アバターやアイテムに必要なファイルを全部ひとまとめに固めてくれてある。(と思ってる)
VRChatに上げるなら、何も触らずこのまま上げてしまえれる状態だと思う。
私はいつもここから改変を始める。
"FBX"の場合
シェーダーとかついてるパターンもあるけど、場合によってはついてないこともある。
私にとっては上級者向けのファイルだと思ってる。

左から、FBX、Prefab、Scene

⑤アバターをSceneに表示する

アバターのファイル(FBX、Prefab、Sceneのどれか)を左クリックで掴んだら、「Hierarchy」の何もない所へ落とすだけ。
「Scene」に直接落としても表示はされるんだけど、表示される位置が違う。
Hierarchyに落とすと、X:0, Y:0, Z:0 の位置に表示されるけど、Sceneに落とすと落とした座標に表示される。
アバター単体で使うなら問題ないと思うんだけど、あとでアクセサリを付けたりするときにズレてると位置を合わせるのが難しくなるかもしれない。(やったことない)

アバターをHierarchyに落として表示する

シェーダーの付け替え

VRChatでよく使われているシェーダーの「lilToon」や「ユニティちゃんトゥーンシェーダー2.0」はVRMのシェーダーには使えません。
VRM化に際してVRMで使えるシェーダーに付け替えましょう。
ただし、もともと異なるシェーダーだから、まったく同じ質感は再現できません。「可能な限り近づける」という精神で作りましょう。

①マテリアルを作成する

Unityの「Project」タブでマテリアルを作りたい場所を開き、何もない所で右クリックしてメニューを表示します。
「Create」の「Material」を選択すると、白い何も設定されていないマテリアルが追加されますので、適当に名前を付けます。

マテリアルの追加メニュー

追加したマテリアルの「Shader」を「VRM/MToon」に変更します。
"Standard"の部分をクリックして、"MT"と入れるとリストに出てくると思います。
「MToon (VRM/MToon)」を選びます。

VRM/MToonを選ぶ

②シェーダーを設定する

「VRM/MToon」と「lilToon」の対応はこんな感じです。

VRM/MToonとlilToonの対応イメージ

③マテリアルを付け替える

作ったマテリアルを、アバターの衣装や髪などにドラッグ&ドロップで乗せれば、VRM用のシェーダーで描いたアバターの完成です。

マテリアルを反映する

ボーンの付け替え

Dynamic BoneやPhysBoneから、VRM Spring Boneに変更する手順。
QuQuさんのアバターはボーンやコライダーが少なくて整理されてて、どの子も同じ場所に付いてるから初心者向けでとても良いと個人的に思ってる。
というわけで、QuQuさんのNeco Maidさんで説明していきます。
他のアバターの場合も基本的な操作は同じですが、ボーンやコライダーの位置や数は異なるのでそれぞれに合わせたやり方を見つけてください。

①Boneを見つける

Boneの見つけ方

この手順は慣れてくると必要ありません。(気分ですw)
Sceneの左上にある「Shaded」をクリックして、「Wirefame」を選びます。
Sceneの右上にある「Gizmos」が黒く(OFFの状態に)なっていたらクリックしてグレー(ONの状態)にします。
HierarchyのNecoMaidさんを展開(小さな右向き三角をクリック)して、「Amature.Neco」をクリックします。
すると下図のような画面になります。
水色が全部PhysBone、緑がPhysBone Colliderです。
猫耳、髪、胸のリボン、胸、スカートにPhysBoneがあって、太ももにPhysBone Colliderがありますね。
腕やひざ下には何もありません。
つまり猫耳、髪、胸のリボン、胸、スカートは揺れもので、スカートは太ももによって弾かれる(?)事がわかります。

Neco MaidさんのPhysBoneとPhysBone Collider

水色や緑の表示は、Hierarchyで選択するものによって変わります。
今はNeco Maidさんの一番の元を選択しているので全部表示されていますが、例えば「Neck」を選択すると「Neck」にぶら下がっている髪と猫耳だけが表示されるようになります。

Neckを選択したとき


②VRM Spring Boneを付ける

①Boneを探す

VRM Spring Boneを付ける場所は、基本的にはPhysBoneやDynamic Boneと同じ位置です。
Hierarchyの中で順番にAamatureのアイテムをクリックしていき、PhysBoneやDynamic Boneを見つけます。
例えば「skirt」を選択すると「Inspector」のタブに「VRC Phys Bone (Script)」が表示されます。
アバターによっては「skirt」にはPhysBoneが無くて、ひとつ下の「skirtA」「skirtB」……のそれぞれに個別に付いてる場合もあります。
選択した部分の下の階層にボーンがあるかどうかは、Sceneに水色が表示さるかどうかで分かるので、水色が表示されたけどボーンがない場合はさらに下の階層を探しましょう。

SkirtのPhysBone

②VRM Spring Boneを追加する

PhysBoneやDynamic Boneを見つけたら、Inspectorの「Add Component」をクリックします。
検索用の小窓に「VRM Spring Bone」と入力したら、2つのアイテムが出てくるので「VRM Spring Bone」を選択します。

Add Componentをクリック

③Root Bonesを追加する

「VRM Spring Bone (Script)」が追加されたら、Hierarchyから「skirt」を「Root Bones」の文字の上にドラッグ&ドロップします。
Root Bonesの「Size」にはドロップできないので気を付けてください。

Root Bonesに入れる

すると、Sceneの中に黄色いVRM Spring Boneが表示されます。
(Root Bonesがないと表示されない)
これでVRM化したときに揺れものが揺れるようになりました!

PhysBoneとVRM Spring Boneが表示された状態

④PhysBoneを止める

VRM Spring Boneが追加できたので、PhysBone(またはDynamic Bone)は止めておきます。
見た目邪魔だし、後で動きをチェックするときにどっちのボーンで動いてるかわからなくなりますからね。
ボーンを止めるときはInspectorで「VRC Phys Bone (Script)」の左にあるチェックを外せばOKです。
あとで必要になったらまたONにすれば使えます。

PhysBoneを止める

⑤全てのBoneを付け替える

これでskirtがVRM Spring Boneだけになりました。
これと同じ手順を髪や猫耳や胸でもやっていきましょう。
注意することはRoot Bonesを入れ忘れない!です。これを忘れると動かないですからね。
ちなみにNecoMaidさんの揺れものになってるPhysBoneの位置はこんな感じです。

  • L_ribbon

  • L_ribbonB

  • R_ribbon

  • R_ribbonA

  • sippo

  • skirt

  • Front_Ribbon_L

  • Front_Ribbon_R

VRM Spring BoneになったNecoMaidさん

⑥付け替えないものもある

NecoMaidさんを使ってる人がいたら、もしかすると「あれ?」と思われた人がいるかもしれません。
実は「oshiri_L」「oshiri_R」のPhysBoneはVRM Spring Boneに置き換えていません。この2つは置き換えずに止めてしまいました。
なぜ止めたかというと、私がプレイするBeat Saberでは必要ないからです。
必要な人は追加してくださいね。
これはたぶんQuQuさんの拘り部分ではと思ってるのですが、この2つのPhysBoneの設定を見ると「Immobile Type」が「World (Experimental)」に指定されています。
なんだそりゃ?と思って調べたら、リクルスさんのNoteに解説がありました。(ありがとうございます!)
通常のPhysBoneでは「All Motion」(どんな時も揺れる)を設定しているようですが、「World (Experimental)」を選ぶと「VRモードでリアルに動き回る・立ったりしゃがんだりする」と動くそうです。
(HMDを付けてVRChatに入ったときは揺れるけど、デスクトップモードでは動かないとか?)
VRM Spring Boneにはそういう選択肢はないようですし、それで揺れるのがおしりなのでスカートに隠れて見えない……。
というわけで、Beat Saberで使うには必要なさそうだ、と判断して止めました。

③VRM Spring Bone Colliderを付ける

ここからが大変な作業ですが、慣れてくるといろんなことができる楽しい(?)部分かもしれません。

①Colliderについて説明

BoneとColliderの関係について説明しておかないと、作業だけ説明しても理解しづらいと思うので書いておきます。
あくまでも私の解釈なので、分かってるよって人は飛ばしてOK!

BoneとColliderの関係は2つのボールをイメージすれば思えば簡単だと思います。天井から紐でボールをぶら下げておいて、別のボールを投げてぶつけると弾かれます。
このぶら下げてあるボールがBone、飛んできたボールがColliderだと思ってください。
もしCollider側のボールを投げずに、手でゆっくりとぶら下がってるボールに押し当てていくと、ぶら下がってるボールはくるんと横に逃げて後ろに回ってしまいます。これがいわゆる「スカートの貫通」です。

黄色がBone、赤色がColliderのイメージ

それじゃ貫通させないようにするにはどうするかというと、Collider(上図の赤い方)をとにかく大きくすれば、Bone(上図の黄色い方)は逃げようがないだろう。という対処方法があります。
ただこれはとてもメンドクサイです。
下図のように大きなColliderを付けた場合、前側(画の下側)のボーンは貫通しませんが、後ろ側のボーンは常に弾かれてしまいます。

NecoMaidさんを上から見た図、大きなColliderを付けた場合

これではスカートの後ろ側が全部広がってしまうので、下図のようにBoneひとつひとつに専用のColliderを付けることで動きを制御します。

Colliderに対応したBoneを設定した場合のイメージ

これでスカートの貫通はしなくなると思うのですが、位置、大きさ、どのボーンに対応させるかを考えながらColliderを作るのが大変です。
このメンドクサイのを一発でやってくれるのが、なるるるるなさんのツール
「VRMSkirtTool - スカート貫通しないクソデカコライダー自動設定ツール」
です。(ツールの名前w)

もちろん微調整は必要ですが、自動でもほぼ問題ないんじゃない?って感じに付けてくれるのでとても便利なツールです。
ただ、上記のようなBoneとColliderの関係が分かってないと、どう微調整すればよいのかわからないし、スカート以外にもColliderは必要ですので説明させていただきました。

②VRM Collider Groupを追加する

最初のうちは、PhysBone ColliderやDynamic Bone ColliderをVRM Spring  Bone Colliderで再現する形で追加するのが良いと思います。

NecoMaidさんの場合、スカートをはじくためのColliderは太ももに付いています。
Hierarchyで「L_UpperLeg」を選択すると、Sceneに緑色の円筒形が表示されます。
Inspectorには「VRC Phys Bone Collider (Script)」が表示されます。

NecoMaidさんのCollider

VRM Spring Boneの時と同じように「Add Component」から「VRM Spring Bone Collider Group」を選択すると、VRM Spring Bone Collider Groupが追加されます。

VRM Spring Bone Collider Groupを追加する

「VRM Spring Collider Group」は名前の通りColliderの集まりを作ります。
CollidersのSizeを"1"にすると、Colliderは1つ。"3"にすると3つColliderが発生します。

VRM Spring Collider GroupのSizeの違い

③Phys Bone Colliderを再現する方法

Phys Bone Colliderは円筒形が作れるのですが、困ったことにVRM Spring Bone Colliderは球しか作れません。
そこでVRM Spring Bone Colliderでは複数の球を並べて円筒形を再現することにします。

3つのVRM Spring Bone Collider で円筒形を再現した場合

上図のように3つの球をならべて円筒形を再現しました。
この時に設定したVRM Spring Collider Groupの設定は下図のようになっています。

VRM Srping Bone Collider Group の設定

なんだか細かい数字が並んでいますが、何もかもをゼロから設定する必要はありません。

VRMPhys Bone Colliderから持ってこれる設定

  • Radius(半径):3つのElementのRadiusに同じ値を設定できます。

  • 真ん中のOffset:円筒形の中心位置なので、Posionの値は真ん中のElementに設定できます。

PhysBone Colliderの値をもとに、Element 1の位置を決めて上下にElement 0とElement 2を移動させると、VRM Spring Bone Colliderで円筒形を再現できます。
もっと隙間を小さくしたいときや、円筒形が長いときはCollidersの数を増やして密度を上げればOKです。

④反対の足にコピーする

③で作ったVRM Spring Bone Colliderは左足でしたが、もちろん右足にも必要です。
でも同じものを作るのは面倒なので左足に作ったものを右足にコピーします。

コピーするには「VRM Spring Bone Collider Group (Script)」のタイトルの右端にある縦の点々「:」をクリックして、表示されたメニューから「Copy Component」を選択します。

Copy Component

次に「R_UpperLeg」に移動して、コピーした時と同じように「Transform」か「VRC Phys Bone Collider (Script)」の縦の点々「:」(どちらでもよいが、どんなものにも「Transform」は絶対あるのでわかりやすいかも)をクリックし、「Paste Component As New」をクリックします。

VRM Spring Bone Colliders Groupをペーストして追加する

これで値をそのまま引き継いだVRM Spring Bone Collider Groupが追加されました。
Colliderの位置は太ももの位置から相対的に決まっているので、調整なく鏡写しで配置されます。

コピーされた右足のVRM Spring Bone Collider Group

⑤BoneにColliderの紐づけをする

新しくColliderを追加しましたが、このColliderにぶつかって動くBoneはまだ指定していません。
だから足を動かしてもスカートは全部すり抜けてしまいます。
太ももにぶつかって動くBoneは「skirt」にありますので、「skirt」のVRM Spring Boneの「Collider Groups」に太ももを紐づけします。

Hierarchyで「skirt」を選択してInspectorに表示された「VRM Spring Bone (Script)」の「Collider Groups」の「Size」を"2"に設定します。

すると空っぽのElementが2つできるので、そこにHierarchyから「L_UppderLeg」と「R_UppderLeg」をドラッグ&ドロップでポロリと追加します。
足をクリックしたときに、Inspectorが変わってしまわないように気を付けてください。ドラッグ&ドロップができればInspectorは変わりません。

Collider Groups に追加する

ドラッグ&ドロップが難しい場合は、Elementの箱の右端にある小さい◎をクリックすると選択用のダイアログボックスが出てくるので、そこで選んでも良いです。
下図では同じ名前でたくさん出てきますが、初めての環境だったら1つになってると思います。

ダイアログボックスから選ぶ

⑥Unityのプレイモードで確認する

これでBoneとColliderが紐づけられました。
脚を動かすとスカートが動くことを、プレイモードで確認します。

  1. プレイボタンをクリック。

  2. 「Scene」タブを選んで、「Wirefame」から「Shaded」に戻す。

  3. Hierarchyで「L_UppderLeg」をクリック。

  4. 「Rotate Tool」のアイコンをクリック。

  5. 太ももの所に回転させるための球が出てくる。
    これをぐりぐり動かすと足が動く。

プレイモード画面で確認する方法

プレイモードからエディットモードに戻ると、プレイモードで触ったところは全部元通りに戻るので、好きなように動かしてください。

確認すると、下のように足がスカートを貫通しなくなりました。
もっと足を上げるとボーンが逃げて貫通してしまいますが、ビーセイをプレイしている時に、そんなに足を上げることはないので「良し」とします。

左:BoneとColliderが紐づいてない
右:BoneとColliderが紐づいてる

④揺れ具合を調整する

一言で「揺れもの」と言っても、少しの風で揺れる軽いものや、手で揺さぶらないと動かないものなど、色んな揺れものがあると思います。
そういった「揺れ具合」を調整することができます。

①VRM Spring Boneの設定値

ゲームモードにしてから、各設定値を色々変化させて気持ちよい揺れ具合を見つけましょう。

skirtのVRM Spring Bone (Script) の設定

Stiffness Force(剛性力):デフォルト値=1、最大値=4、最小値=0
値を大きくすると硬くなり、揺らしたときにあまり揺れなくなります。
逆に値を小さくすると、空気にも勝てなくなるので揺れなくなります。

Gravity Power(重力):デフォルト値=0、最大値=1、最小値=0
「Gravity Dir」(後述)で指定した方向へ引っ張られる力。
数値が大きいほどそちらに引かれる。
重力が大きくなると形を維持できなくなる。
浮き上がったまま戻ってこなくなる。
NecoMaidさんのスカートの場合、浮き上がったまま戻ってこなくなると困ると思うかもしれませんが、スカートは「Stiffness Force」の力で元の形に戻ろうとします。
だから重力がゼロでも浮き上がったままになったりはしません。

Gravity Dir(重力の向き):デフォルト値=X:0, Y=-1, Z=0
どちらの方向に引かれて(落ちて)いくかの方向を指定する。
ふつう物は下(足元の方)へ落ちていくと思うので、あんまり使わないように思うけど。アクセサリによっては違う方へ落ちていくものもあるかもしれません。

Drag Force(抵抗力):デフォルト値=0.4、最大値=1、最小値=0
揺れものが揺れた後、どれくらいの勢いで元の形に戻るかを指定する。
数値が大きい場合、すぐに元の位置に戻ってくる。
例えばプラスチックの棒を曲げて手を離すと、すぐにまっすぐな状態に戻るイメージ。(折れてなければw)
数値が小さい場合、戻ろうとする勢いで行き過ぎて、行き過ぎた位置からまた戻ろうとして行き過ぎて……を繰り返すのでプルプル震えたように動く。
ゼリーをお皿の上において、つんつんするとプルプルしてるイメージ。

②よく使う設定値

ドレスのスカートやリボン
NecoMaidさんのスカートやリボンはデフォルト値で可愛く揺れます。
このドレスは形が維持できる素材・デザインのイメージなので、Gravity Powerは"0"にしています。

ネコミミ
ネコミミの揺れ具合は、猫の種類にもよるので揺れるほうが好きな人も多いと思います。
私はピンと立ってるのが好きなので、Stiffness Forceを少し大きくします。


髪はデフォルト値だと揺れすぎるので、Stiffness Forceを少し大きくします。
また髪の毛は重力に引かれて垂れさがった方が良いと思うので、Gravity Powerを少し上げます。
上げすぎると、何もしていないのに髪が垂れ下がってしまうので、良い強さを探して設定します。

③揺れ具合の質感を追及する

NecoMaidさんの場合、髪とネコミミが1つのVRM Spring Boneで設定されているので、髪とネコミミを違う質感にすることができません。
こういう時は、元のPhysBoneの設定を再現せずにオリジナルの設定に変えてしまいます。
具体的には「NEcoHair」のVRM Spring Boneを削除し、その下にぶら下がっている「Front」~「Side_R」までのそれぞれにVRM Spring Boneを追加します。
作業は大変になりますが、質感を得るために頑張りましょう!

⑤Colliderを追加する

なにを原因として揺れるか?

例えば手を髪に当てると髪が揺れると良いな、と思ったりしますが。NecoMaidさんの場合は手を髪に当てても髪が揺れません。
髪にはBoneがあるので、手にColliderがあればできそうです。
というわけで手にColliderを追加して、その追加したColliderと髪のBoneを紐づけてあげると、手で髪を揺らす演出をすることができるようになります。
また手のColliderをSkirtにも紐づければ、手でスカートが揺れる演出もできますね。
でもこういった演出は、Beat Saberではまったくもって不要な要素ですがw

⑥あとは数をこなすだけ!

お疲れさまでした。
ここまでくれば、後は数をこなすだけ!
失敗して壊してしまっても、またPrefabから作り直せば大丈夫です。
2回目はもっと手早くできますよ☆

VRMへの書き出し

UniVRMで書き出しの方法

VRMへの書き出しはHierarchyでアバターのルートを選択した状態にします。

出力したいアバターを選ぶ

次にUnityのメニューから「VRM0」の「Export to VRM 0.x」をクリックします。

Export to VRM 0.xをクリック

Tilte:アバターの名前、Beat Saberならアバター選択画面に表示される。
Version:アバターのバージョン、わかりやすいものを自分で決めて入れる。
Author:製作者の名前、自分で決めて入れる。
を入力して、右下の「Export」をクリック。
VRMファイルの保存先とファイル名を指定してVRMファイルは完成します。

VRM Exporter画面

表情の設定

ここまでの手順では、Unityで表情を設定しませんでした。
表情は「VRM表情設定するやつ」を使います。

「VRM表情設定するやつ」のとりあえずの使い方

ツールを起動したら、作成したVRMファイルをドラッグ&ドロップで画面に落としてあげるとアバターの著作権確認表示が出てきますので、「Load」ボタンをクリックするとアバターが表示されます。

画面右上の「Neutral」をクリックして、表情を付けたい項目を選び、その下にあるブレンドシェイプの値を操作して表情を付けていきます。
最後に右下にある「Export」ボタンでVRMファイルを書き出すのですが。
ボタンが2つあるので注意が必要です。

Export(Normal):(こちらを使うのをおススメします)
開いたVRMと同じブレンドシェイプの状態でVRMファイルを書き出します。
同時に設定した内容をCSVファイルに出力します。
CSVファイルはUnityで再度同じアバター(アクセサリー等も全く同じもの)を作り直してできたVRMファイルにも使えます。

Export(Reduce):
表情を付けるために使ったブレンドシェイプのみVRMファイルに書き出します。同時に設定した内容をCSVファイルに出力します。
CSVファイルはUnityで再度同じアバター(アクセサリー等も全く同じもの)を作り直してできたVRMファイルには使えません。

違いは、出力したCSVファイルを再度利用できるかどうかです。
Reduceの場合、ブレンドシェイプが減っているので合わないエラーになります。そのためNormalを利用することをお勧めします。

CSVファイルが使えないときのエラーメッセージ

ブレンドシェイプのCSVを修正する方法

ブレンドシェイプのCSVはアクセサリーが増えたり、髪型が変わっているすると内容が変わってしまって読めなくなります。
でも同じアバターを元にしている場合は、表所を設定する部分(NecoMaidさんだと「Body」は同じなので、テキストエディタでCSVファイルを開いて、Bodyで始まる部分を丸ごとコピーして貼り付ければ使えます。

表情CSVファイルの差分
  1. 新しいVRMを開いたら、すぐに「Export(Normal)」を実行してCSVファイルを出力する。

  2. すでに作成してあったVRMのCSVファイルから、Bodyで始まる部分をコピーする。

  3. 新しいVRMで作ったCSVファイルのBody部分を上書きで張り付ける。

  4. 出来た新しいCSVファイルをツールに読み込ませると、エラーなく表情がコピーできる。

最後に

お疲れ様でした。以上でひとまずVRM化はできたと思います。
あとは実際に作ったVRMの色とか揺れものの動きとかを見ながら、微調整していってください。

この記事が気に入ったらサポートをしてみませんか?