[Unity]VRMファイルを取り込む
最近Unity用のアセットを公式のアセットストアに加え、Pixivの運営するBoothというBtoBのサービスを利用するようになってきました。
というのも、アセットストアでは良くも悪くも海外テイストなアセットの比率が多いので、アニメ調のキャラクター等のモデルが欲しくなった時にちょっと不便だったんですよね。
でも3Dモデルだけで言えば別にアセットストアで購入する縛りは必要なかったので、この際別サービスから導入しようと決め、会社の同僚から「Boothってサービスがいいよ」と教わったのが事の発端です。
その中で今回購入したモデルファイルの形式がVRMだったので、こいつをUnity上で扱えるようにするまでの方法を書いています。
3DCGの形式は多岐に渡る
さて、今回の目当ては3Dモデル、言い換えれば3DCGデータになる訳ですが、この3DCGのデータにはいくつかの形式(拡張子)が存在します。
例えばFBXやOBJファイルが有名でしょうか、この形式は標準でUnityが対応しており何も考えずにとりあえずぶち込めば勝手に使えるような形に認識してくれます。
ほとんどの場合がこのFBXまたはOBJ形式をUnityでは利用しますが、それ以外のファイルでも取り込もうと思えば可能です。
この辺については公式のマニュアルにも書かれています。
公式にも書かれていますが、代表的な3Dモデリングソフト(Autodesk MayaやBlender、Chinema4D)が保存する形式にも対応しています。
こちらは3DCGのファイル形式ではなく、各ソフトウェアが編集用に保存するファイルですが、Unityではこれらも取り込む事が可能です。
これの何が良いかと言いますと、モデルファイルを編集すると即座に取り込んだUnity上でも反映されるので、開発中では何度もモデルを編集する事が多いでしょうし、こういった際に手間がかからない点です。
FBXやOBJでは一度Unityに取り込むと、再度モデルを編集した際には再取り込みの作業が発生してしまいます。
(厳密には再取り込みが不要なパターンもあるのですが、今回はスルーします)
VRMファイルとは?
これはBoothを利用するようになってから初めて知ったのですが、Booth上で販売しているモデルの中にはVRMファイル形式やvroidといった拡張子で販売しているものも存在します。
これらは同じくBoothの運営元であるPixivが開発した、3Dモデルキャラクターを簡単に作成する事ができるツールを利用して出力されたファイル形式になります。
少し気になったのでツールをダウンロードして使ってみたのですが、かなり簡単に人形のモデルが作成できそうですね、世の中便利になっていくものだなぁ……
で、ここからが本題ですがUnityでは標準でVRMファイルの取り込みに対応してないので、少し工夫して取り込みを行います。
UniVRMを導入する
UniVRMはUnityにVRMファイルを取り込む際に必要なパッケージになっています。
UniVRMはGitのリポジトリで公開されていますので、そこからダウンロードして使用する形になります。
記事作成時点では最新版はv0.66.0なので、こちらのバージョンをベースに書いていきます。
下部の方に「UniVRM-0.66.0_39d5.unitypackage」のリンクがありますので、こちらをダウンロード後、UnityへD&Dしパッケージを導入します。
導入後、Assetsフォルダ配下には「UniGLFT」「VRM」「VRMShaders」の3つのフォルダが展開されます。
またメニューには「UniGLFT」と「VRM0」という名称のメニューも追加されます。
VRMファイルを取り込む
いよいよVRMファイルをUnityに取り込みます。
Unity上で展開したいフォルダへ移動し、持っているVRMファイルをD&Dします。
今回はBoothで購入しました、電脳義体試験機_CTC001 [VR body prototype_CTC001]を取り込んでみようと思います。
こちらはVRoid Studioで作成された3Dモデルなので、ダウンロードしたファイルの中にはvrmとvroidの2つの形式のファイルが存在します。
Unityに取り込む場合、vrmの拡張子が付いたファイルを持っていきます。
任意のフォルダにD&Dすると色々と処理が走りますので、気長に待ちましょう。
しばらくすると複数のファイルとprefabが生成されると思います。
各フォルダにはアバターやメッシュ、マテリアル、テクスチャ等の素材が展開されていますので、削除はしないようにして下さい。
ただ、画像で言う一番右のファイル、これは展開元のVRMファイルなので削除してしまっても構いません。
ここまでがVRMファイルの展開方法でした、結構簡単ですのでVRMファイルだろうと問題なくUnityで使用できる事が分かりました。
UniVRMを使用して作成されたファイルの使い方等はGitのWikiページに書かれていますので、一度目を通すことをオススメします。