皆さまこんにちは。
いい感じに開発に疲れてきたのでKnowledgeを書いている山田です。
今日はVRMというファイルフォーマットの話をします。
VRMって何?
VRMはVRアプリケーション向けの人型3Dアバター(3Dモデル)データを扱うためのファイルフォーマットです。
ドワンゴが先日発表しました。
公式サイト
記事とか
特徴としては、VRアプリケーションなどでのキャラクターや人型のアバターの利用に特化していることが挙げられます。
従来の3Dモデル用のフォーマットだと、以下のような問題があります。
以下公式サイトから引用
- 3Dモデルを作成したクリエイターや使用したモデリングツールによって「作法」が違いデータの状況がひとつひとつ異なっている
- 座標系が異なっていたり、スケールが異なっていたり、初期姿勢が異なっていたり、表情の表現方法が異なっていたり…
- もちろん、骨(ボーン)の入れ方も状況によって異なっていたり
- 3Dモデルデータを取り扱うフォーマットは、各社各様で仕様が必要以上に複雑であったり、必要な情報が足りなかったりしている
- 対応ソフトが多い「FBXファイル」はアプリケーションごとに読めたり読めなかったり。どのアプリケーションのどのバージョンで出力したFBXなのか…というのを気にしたかたも多いと思います
- 3Dモデルデータを「アバターとして使用する」という観点で見ると、必要な情報が整備されていない
- たとえば一人称視点を実現するための視点の位置はどこか、一人称視点から表示するためには頭部の表示を消さなければならないが、具体的にはどこを消すのか、など
VRMはこれらの問題に対応し以下のような特徴があります
以下公式サイトから引用
- プラットフォーム非依存で人型のキャラクター3Dモデルデータを取り扱うことが可能
- 3D標準フォーマット glTF2.0をベースとして、人型モデルを取り扱うための制約と拡張を加えたフォーマット。標準フォーマットをベースとしているため実装も容易
- テクスチャやマテリアルなどすべてのデータを含めて1ファイルにまとまる。ファイル一つで取り扱い可能
- スケール(1.00 = 1m)・座標系と向き(Y-up, -Z方向向き)・骨の構造(Unity Humanoid準拠構成, Tスタンス, 各骨にローカルの回転などを入れない)などについて標準の構成が決められておりモデリングツールによる差違の影響を受けない
- Blend Shapeやマテリアルの透明度など「キャラクターの表情」を取り扱うためにはさまざまな技法が使われるが、その技法の差違をVRM側で吸収し統一したAPIで操作できる
- VRでのアバター利用のための、「一人称視点再現のための情報」に対応。
- キャラクターの髪の毛などについて、物理エンジンに依存しない「揺れ物」標準実装を用意、設定可能に
- 標準実装としてのマテリアル(シェーダ)を用意。標準的なPBRだけでなくトゥーンシェーディングやUnlitレンダリングを設定可能
- タイトル・作者名などのメタ情報だけでなく、サムネイルやVR時代に即した、アバターに特化したライセンス情報も内包可能
3Dモデルデータそのものだけでなく、ライセンス情報などにも対応しています。
VRMの標準実装がUnityで提供されている
VRMはプラットフォームによらず使用できますが、標準実装(UniVRM)がUnityで提供されています。
こちら
UniVRMを使うことでVRM形式のファイルをインポートしたり、3DモデルデータをVRM形式でエキスポートしたりすることができます。
VRM対応アプリケーション
ドワンゴが提供しているニコニ立体やバーチャルキャストの他に、clusterなども対応しています。
さらに最近発表されたVカツも対応しています。
Vカツとは
VRカノジョを開発しているイリュージョンという会社が発表した、VTuber向けアバターモデリングソフトです。
誰でも簡単にアバターを作成することができます。
現在βテスト中です。