概要
VRChat Advent Calendar 2020 25日目の記事です。
VRChat Advent Calendar 2019 では2日目に 継続的なクロスプラットフォーム対応、VRChat Advent Calendar 2018 では25日目に 【完全版】BlenderやFBXのモデルをVRChatで使おう! という記事をを書きました。
VRMとは?
オープン標準 VRM は、人型3Dモデルのファイル形式で、標準化団体「VRMコンソーシアム」が策定作業を進めています。
次のようなデータを、1つのファイルにまとめて格納することができます。
- メッシュ・ボーン・シェイプキー
- テクスチャ
- マテリアル
- Humanoid (hipsやheadなど) とボーンの対応関係
- 視点の位置
- 表情とシェイプキーの対応関係
- 揺れモノ
- アバター名・作者・親作品・利用規約
VRMは、GLBというファイル形式の一種 (GLB拡張) です。GLB (glTF) は、3Dモデルのファイル形式で、国際標準として広く利用されています。
GLBは、Blenderが標準で対応していて、Windowsでもダブルクリックで開けば、モデルを見回すことが可能です。VRMはGLBの一種なので、拡張子を .glb
に変えれば、Windowsでそのまま閲覧できます。
Unityエディタ上のVRChat用モデルをVRMへ変換することで、多くのアプリケーションでアバターとして使うことができるようになります。
VRChat用アバターとVRM
FBXなどからセットアップする場合、VRChat向けにセットアップするのに比べ、VRMはよりかんたんにセットアップできます。
しかしながら、VRChat向けにセットアップ済みのアバターを手っ取り早くVRM化したいとか、UniVRMよくわからんというときは、この記事の手順を試してみてください。
細かく設定する場合、継続的にメンテナンスする場合は、FBXなどからセットアップすることをおすすめします。
こちらはアバターオンリーの展示会・見本市「アバターミュージアム」のツイートですが、2020年12月現在、VRM未対応のアバターがまだまだ多いのが現状かと思います。
|
|
変換手順
VRM Converter for VRChatのリポジトリを追加
-
VRChat Creator Companionの左メニューの下の「Settings」をクリックします。
-
上の「Packages」タブをクリックします。
-
右上の「Add Repository」ボタンを押します。
-
出てきた「Repository Listing URL」欄へ、以下のURLをコピーして貼り付けます。
https://esperecyan.github.io/VRMConverterForVRChat/registry.json
-
表示された警告を読んで、右下の「I Understand, Add Repository」ボタンをクリックします。
コミュニティリポジトリの免責事項
警告: 自己責任でダウンロードしてください!
第三者のサイトを通じて提供されるコミュニティパッケージには、マルウェアが含まれている可能性があります。
VRChatは、コミュニティパッケージに対するいかなる表明、保証も行わず、コミュニティ・パッケージに起因する、または関連するいかなる責任も負わないものとします。
VRM Converter for VRChat の導入
- 「Projects」画面の、導入先のプロジェクト名の右端の「Manage Project」ボタンをクリックします。
- 「VRM Converter for VRChat」の行の右端の「⊕」ボタンを押します。
『VRM Converter for VRChat』などのパッケージには、C#スクリプト (.cs
ファイル) が含まれています。C#スクリプトは、コードの書き方によってインストール、もしくはインポートした時点で実行されます。つまりWindowsでいうところの .exe
ファイルなどをダウンロードし、Windowsのブロックを回避して強制実行するのと同じです。VRChat Creator Companionでインストールするパッケージはもちろんのこと、SDK3向けギミックを配布するときにもC#スクリプトの同梱がほぼ必須となりましたが、信頼のおけるパッケージ (+ コミュニティリポジトリ) やアセット以外はインストール、インポートしないようにご注意ください。
VRChat Creator Companionでインストールするパッケージについては、以下のようなRepository Listing URLから、パッケージのURLを捜してダウンロードし展開すれば、C#スクリプトの中身をチェックできます。
https://esperecyan.github.io/VRMConverterForVRChat/registry.json
unitypackageの場合は、UnityPackageUnPacker を利用すると、.unitypackageファイルを展開してC#スクリプトの中身をチェックできます。
VRMへの変換
- VRChat用のアバターをクリックして選択された状態にします。
- そのまま、ウィンドウ上部のメニューから、「VRM」→「Export VRM file from VRChat avatar」を選択します。
※ダイアログ (ウィンドウ) の初期サイズが小さい場合があります。ダイアログ右下をドラッグするとサイズを変えることができます。 - Expressions で、「Happy」(嬉)「Angry」(怒)「Sad」(哀)「Relaxed」(楽)「Surprised」(驚) に対応するアニメーションクリップを、プルダウンメニューから選択します。
※不足していてもエクスポートは可能です。 - 必要であれば以下の項目も入力します。(参考: モデル情報 | UniVRMマニュアル)
- Title (アバター名)
- Version (アバターのバージョン)
- Author (作者)
- Contact Information (自分の連絡先)
- Reference (親作品)
- アバターの人格に関する許諾範囲 / 再配布・改変に関する許諾範囲
※デフォルトではもっとも厳しい条件になっているので、条件をゆるめたい場合でなければ、基本的にはそのままでも大丈夫です。
※アバターに人格を与えることの許諾範囲とは、一般的に、アバターを操作できる人を表すものです。
ここで「Everyone」を選択すると、VRChatのpublicアバターと似たような意味になります。
(参考: アバターの人格に関する許諾範囲 | UniVRMマニュアル)
- ダイアログ右下の「Export VRM file」をクリックします。
- ファイルピッカーが開くので、VRMファイルの保存先を決めます。
※Unityプロジェクト内へエクスポートすると、UniVRMによってVRMの自動インポートが始まるのでご注意ください。
フィードバックサイトへ投票のお願い
VRChat SDKが対応しているUnity 2019.4は、すでにUnity Technologiesのサポートが終了しており、同バージョンはUniVRMでサポートされていません。
VRChatはCannyというサービスを利用してフィードバックサイトを開設しており、Unity 2021.3へのアップグレード要望が投稿されています。
また、VRM対応の要望も投稿されています。
ぜひ各投稿へ vote (投票) をお願いいたします。