![見出し画像](https://assets.st-note.com/production/uploads/images/139517925/rectangle_large_type_2_5ea1bbe5467b52e1e37b93f33fb47a45.jpeg?width=1200)
【VRM】VRM1.0でのVRM設定方法【Unity】
はじめに
みなさんこんにちは。涼海と申します。
今回は、最近調べる機会があったVRM1.0の設定方法をまとめた個人的なメモとなります。
調べた内容は主にBone周りと揺れもの周りです。
VRM0.xxバージョンは使っている人が多いイメージなのですが、VRM1.0バージョンはあまり使っている人が少ないのか、情報が出てこない印象です。
また、0.xxバージョンと1.0バージョンでかなり変更があったらしく、調べていても「???」となることが多かったです。
そのため、今までVRMを使ったことのなかった私が、VRM1.0のセットアップ方法をメモしていきたいと思います。
何か間違っているところなどありましたら、私のXにでも連絡を投げていただけたら嬉しいです。
では、よろしくお願いします。
参考
毎度のことながら、いつもありがとうございます。
【VRM 1.0-beta】VRMについて、以前からご意見がありました「正規化をやめてほしい(ローカル軸を残す)」点について方針の変更がありましたのでお知らせします。
— MIRO (@MobileHackerz) December 14, 2021
正規化されたT-Poseモデルではなく、正規化されていないT-Poseモデルを格納するhttps://t.co/9TuZXjwLrN
VRM1.0設定方法
作業環境
Maya 2024.2
Unity 2022.3.22.f1 Build-in RP
ここで書かれていない内容
まず、この記事に書かれていない内容です。
私がVRMについて調べたことは主にBone周りと揺れもの周りの設定方法です。
そのため、以下の内容は基本的に触れておらず、他で調べていただく必要があると思います。
モデル自体の作り方
マテリアルの設定 / それに付随するテクスチャの作成方法
ほかにもところどころ省略しているところがあるので、そのあたりは別で調べていただけると幸いです。
よろしくお願いします。
VRM1.0のインポート
VRM1.0をUnityにインポートします。
これはGitからUnityPackageをダウンロードしてきて、それをD&Dする形になります。
ここから、一番最新のバージョンのUniVRM1.0をダウンロードします。
注意する点は、一番下のAssetsのところからではなく、上部にあるVRM 1.0 Import/ExportのところにあるDownloadからダウンロードをおこなえる点です。
![](https://assets.st-note.com/img/1714798414717-PQt9HMm2wk.jpg?width=1200)
ページ下部にあるAssetsからではなさそう
UnityPackageのダウンロードが終わったら、それをUnityのProjectWindowにD&Dして、インポートしてください。
![](https://assets.st-note.com/img/1714799229017-mXzkMzQIcW.jpg?width=1200)
Humanoidの設定
次は、モデルを読み込んでHumanoid設定をしましょう。
使わせてもらうモデルはAliciaちゃんになります。
説明用にちょっとだけ改造をしてあります。
かわいいね。
![](https://assets.st-note.com/img/1714800617558-cN7gOa3Z97.jpg?width=1200)
DirectionalLightの色変え忘れてるから黄色いけど
Humanoid設定は先人たちがかなり丁寧に説明しているサイト・動画がたくさんあると思うので、調べてみることをおすすめします。
……説明が面倒とか、そういうのじゃないよ。うん。
Scene上でのモデルの設定
ここから、本格的にVRMの設定を始めていきます。
やることは以下になります。
モデルをPrefab化する
シーン上でTポーズにする
VRMInstance Componentを設定する
Metaデータを設定する
まずはPrefab化です。
Scene上にFBXモデルを配置します。
この時にPositionやRotateは(0,0,0)にしておくようにしましょう。
その後ProjectWindowにScene上のFBXモデルをドラッグします。
すると、Prefabが作成されます。
![](https://assets.st-note.com/img/1714812849506-xxf03Jnpqh.jpg?width=1200)
次にモデルをTポーズにします。
Aliciaちゃんは初期ポーズがAポーズのため、腕を上げる必要があります。
これは、手動でボーンを選択して回転させることで調整してもいいのですが、UniVRMには1クリックでTポーズに設定できる方法があったので、こちらでやってみようと思います。
やることは以下になります。
Scene上のPrefabを選択する
上の
VRM1 > Export VRM 1.0 …
をクリックして、ウィンドウを開くExport VRM 1.0… ウィンドウの中にある
T-Pose (unity internal)
をクリックする
![](https://assets.st-note.com/img/1714813584918-IinoTA9Zhf.jpg?width=1200)
これで1クリックでTポーズになります。
次はモデルにVRM Instance Componentを設定します。
このコンポーネントをつけることによって、「このモデルはVRMモデルですよ」というのをUnity側に伝えることができます。
方法は、Hierarchy上のモデルを選択して、Add Conponent からVRMInstanceを選択します。
![](https://assets.st-note.com/img/1714814096245-hq6VccUSjV.jpg)
また、一緒にHumanoid(Script)もついてきます。
次にVRMの内部データを設定します。
最初にMetaデータと書いた工程です。
以下の流れで作成します。
Project Window内でMetaデータなどを保存するフォルダを作成
VRMInstance 内の
Create new VRM10Object and default Expressions. select target folder
をクリック作成されたデータの中身をそれぞれ調整
まずは、ProjectWindowでフォルダを作成します。
私は、「VRMData」という名前でフォルダを作成しました。
次にVRMInstance 内の「Create new VRM10Object and default Expressions. select target folder」をクリックして、各種データを作成します。
この時に先ほど作ったフォルダを選択します。
![](https://assets.st-note.com/img/1714814897998-FX283fD0Vs.jpg?width=1200)
作成されたデータの中身をそれぞれ設定していきます。
基本的には、BlendShapeデータの割り当てとMetaデータの設定です。
各種設定は以下動画の47:08~にわかりやすく説明しております。
私が気をつけなきゃなと思ったのは以下の部分でした。
Metaデータ内のAutherを記入するためには、Sizeの数値を1以上にする
→このSizeで人数を指定する
ここでエラーが出てエクスポートできないことがあったので、確認してみると良いと思います。
Boneの軸方向について
ここは、必要のある人だけが見ると良い部分かなと思います。
私が調べていて思った0.xxバージョンと1.0バージョンの一番の違いがこのBoneの軸です。
私もすべて分かっているわけではないのですが、簡単に言うと
1.0バージョンでは、ボーンのローカル軸情報が維持されている
ということです。
0.xxバージョンでは、正規化と呼ばれる処理がVRMを作成する最中に自動でおこなわれます。
しかし、1.0バージョンでは、この正規化の処理が手動に変更されており、普通にエクスポートしたら、モデルの持っている軸方向がそのまま使用されます。
正規化をすることによって、ボーンの軸の方向が全てUnityのワールド軸と全く同じ方向に変わります。
![](https://assets.st-note.com/img/1714817195483-AT4r6CNxQr.jpg?width=1200)
Boneの軸の方向が違うことが分かる
また、正規化によって0.xxバージョンのモデルと同じ方向になるため、FinalIK(VRIK)を使ったりするときは、正規化をおこなったほうが良いのかなと思ってます。
正規化の方法
以下の流れで正規化をおこないます。
Scene上のモデルを複製する
VRM1 > VRM 1.0 MeshUtility
をクリックTargetObjectに複製したモデルを入れて、下部のProcessをクリック
これで正規化をすることが可能になります。
![](https://assets.st-note.com/img/1714818203970-Yw9FModOp4.jpg?width=1200)
揺れものの設定について
VRMではSpringBoneを使って揺れものを設定しています。
揺れものの設定は以下のコンポーネントを使用します。
VRMInstance
VRM10 Spring Bone Joint
VRM10 Spring Bone Collider Group
VRM10 Spring Bone Collider
これらのコンポーネントを段階を経て設定してあげることで、揺れものを設定することができます。
段階の考え方は以下画像のような感じです。
![](https://assets.st-note.com/img/1714826304696-KVpU7euyZZ.jpg?width=1200)
VRM10 Spring Bone Jointは、揺れる側(髪の毛やスカートのボーン)に設定するコンポーネントです。
こちらのコンポーネントは、ボーン(ジョイント)一つ一つにくっつけるコンポーネントでそれぞれのボーンで揺れ方を調整することが可能です。
注意することは、以下画像のように黄色の球が出てくるのは、後述するVRMInstanceに設定してあげることで表示されます。
そのため、コンポーネントをつけただけでは黄色い球はScene上には表示されません。
![](https://assets.st-note.com/img/1714827562923-3v5sQp3sS3.jpg?width=1200)
複数選択して一括で設定すると比較的楽
VRM10 Spring Bone Colliderは、揺れものがぶつかる側(胸や頭、太ももなど)に設定するコンポーネントです。
これもボーンそれぞれに設定するコンポーネントですが、1つでは足りない場合には、1つのボーンに2つ以上のコライダーコンポーネントをくっつけても良いです。
このコンポーネントはボーンに設定するとピンク色の球がScene上に表示されます。この球がモデルを覆うように大きさや個数を設定してあげます。
また、このコンポーネントは後述するVRM10 Spring Bone Collider Groupで1つの部位につき1グループでまとめます。
![](https://assets.st-note.com/img/1714828332445-rSz2Xi1xdr.jpg?width=1200)
大きさはRadiusで調整
VRM10 Spring Bone Collider GroupはVRM10 Spring Bone Colliderを一つの部位でまとめてあげるコンポーネントになります。
モデルのどの部位に設定しても大丈夫なコンポーネントですが、おすすめは、まとめた部位の一番親のボーンに設定すると個人的にわかりやすいかなと思いました。
このコンポーネントの注意する点は、「VRM10 Spring Bone Collider Componentを設定する」という点です。
つまり、設定したボーンをD&Dしても意味がなく、ボーンに設定されているコンポーネントをD&Dして設定する必要があるということです。
![](https://assets.st-note.com/img/1714829025216-r7tBKJbroF.jpg?width=1200)
D&Dするものに注意!
VRMInstanceは、VRMのさまざまな設定をまとめているコンポーネントですが、SpringBoneについてもまとめています。
まずVRM10 Spring Bone Collider Groupコンポーネントです。
これは2か所設定するところがあります。
一つ目はSpringBone > Collider Groupsです。
プラスボタンを押してグループの個数を設定した後、設定箇所にコンポーネントを設定します。
これは単純にコライダーグループをVRMInstanceに設定しているだけです。
二つ目はSpringBone > Springs > ColliderGroupsです。
こちらもプラスボタンを押して個数を設定し、コンポーネントを設定します。
ここに設定すると、Jointsに設定されたVRM10 Spring Bone Jointが設定したコライダーに接触する(ぶつかる)ようになります。
![](https://assets.st-note.com/img/1714829801252-ka2BzIOLNH.jpg?width=1200)
次にVRM10 Spring Bone Jointです。
これはSpringBone > Springs > Jointsに設定します。
髪の毛だったら髪の毛一束など、ここでグループに分けてあげることができます。
基本的には1つのボーンのつながりで1グループにしてあげると良いと思います。
![](https://assets.st-note.com/img/1714830156575-CaVctIS7M3.jpg?width=1200)
VRMのエクスポート
全ての設定が終わったら、VRMをエクスポートします。
モデルを選択 > VRM1 > Export VRM 1.0…
Export VRM 1.0… Windowが開いたら、一番下のExportをクリックしてエクスポートをします。
![](https://assets.st-note.com/img/1714830487462-Ep7jrZV0yr.jpg)
さいごに
今回はVRM1.0でのエクスポート方法についてメモをしました。
主にボーンと揺れもの周りでしたが。
マテリアル周りや、他にもまだ勉強不足で触れられなかったところ(親指の向きについてなど……)もたくさんありますが、一度ここで終わりにしようと思います。
ここまで読んでくださり、ありがとうございました。
では、また逢う日まで。
この記事が気に入ったらサポートをしてみませんか?