VRM - humanoid 3d avatar format for VR

「VRM」って何?どんなことができる?

「VRM」とは

VR(Virtual Reality)やVTuberなどにおいて「キャラクターや人型のアバター(の3Dモデル)」を取り扱おうとした場合、従来はアプリケーションごと・3Dモデルデータごとに独自のシステムを開発したり細かく調整したりする必要がありました。

というのも…

  • 3Dモデルを作成したクリエイターや使用したモデリングツールによって「作法」が違いデータの状況がひとつひとつ異なっている
    • 座標系が異なっていたり、スケールが異なっていたり、初期姿勢が異なっていたり、表情の表現方法が異なっていたり…
    • もちろん、骨(ボーン)の入れ方も状況によって異なっていたり
  • 3Dモデルデータを取り扱うフォーマットは、各社各様で仕様が必要以上に複雑であったり、必要な情報が足りなかったりしている
    • 対応ソフトが多い「FBXファイル」はアプリケーションごとに読めたり読めなかったり。どのアプリケーションのどのバージョンで出力したFBXなのか…というのを気にしたかたも多いと思います
  • 3Dモデルデータを「アバターとして使用する」という観点で見ると、必要な情報が整備されていない
    • たとえば一人称視点を実現するための視点の位置はどこか、一人称視点から表示するためには頭部の表示を消さなければならないが、具体的にはどこを消すのか、など

VRでのアバター表現が急速に盛り上がるなか、こういった状況が続くとアプリケーション開発者にとっても、3Dモデルクリエイターにとっても二度手間三度手間になってしまいます。 この状況を改善するために

  • 「人型のキャラクターやアバター」において
  • 細かいモデルデータの差違を吸収・統一し
  • アプリケーション側の取り扱いを簡単にする

「VRM」は、このような特徴のある「プラットフォーム非依存の3Dアバターファイルフォーマット」を提案するものです。


VRMで何ができるの?

VRM applications VRM対応アプリケーションで同じアバター(3Dモデル)データを使うことができます。 対応アプリケーションが揃うと、こんな未来になるはず…

  • VRM対応のキャラクタ製作ツールで自分のアバターをつくる
  • 自分のアバターで生放送をしていたら、友達も生放送をはじめたので友達の放送に凸しに行った
  • 放送後そのままVRゲームを起動、自分のアバターでVR世界を探索
  • ゲームに飽きたのでVR世界のチャットへ移動。同じアバターで友達と遊ぶ
  • 翌日はVR勉強会にVR参加。もちろんアバターはいつもの姿で

「自分の」アバター(3Dモデルデータ)を「VRM」で取り扱うことで、いろいろなVRM対応アプリケーションやゲームで相互に行き来できるようになります。

生放送、動画作成、ゲーム、チャット…。いまは複数のVR世界が分断されています。この分断されたVR世界をつなぐための第一歩、それがVRMなのです。


VRMの特徴

VRMでは「人型」の「キャラクター・アバター」を取り扱うことができます。UnityでVRMファイルを読み書きする標準実装が提供されますが、フォーマット自体はプラットフォーム非依存であり他エンジンや環境でも取り扱うことが可能です。

  • プラットフォーム非依存で人型のキャラクター3Dモデルデータを取り扱うことが可能
  • 3D標準フォーマット glTF2.0をベースとして、人型モデルを取り扱うための制約と拡張を加えたフォーマット。標準フォーマットをベースとしているため実装も容易
  • テクスチャやマテリアルなどすべてのデータを含めて1ファイルにまとまる。ファイル一つで取り扱い可能
  • スケール(1.00 = 1m)・座標系と向き(Y-up, -Z方向向き)・骨の構造(Unity Humanoid準拠構成, Tスタンス, 各骨にローカルの回転などを入れない)などについて標準の構成が決められておりモデリングツールによる差違の影響を受けない
  • Blend Shapeやマテリアルの透明度など「キャラクターの表情」を取り扱うためにはさまざまな技法が使われるが、その技法の差違をVRM側で吸収し統一したAPIで操作できる
  • VRでのアバター利用のための、「一人称視点再現のための情報」に対応。
  • キャラクターの髪の毛などについて、物理エンジンに依存しない「揺れ物」標準実装を用意、設定可能に
  • 標準実装としてのマテリアル(シェーダ)を用意。標準的なPBRだけでなくトゥーンシェーディングやUnlitレンダリングを設定可能
  • タイトル・作者名などのメタ情報だけでなく、サムネイルやVR時代に即した、アバターに特化したライセンス情報も内包可能

VRMは複数アプリケーション間で相互利用されることが想定される、VR時代の3Dアバターフォーマットです。たとえば「ネットワークに相互接続されたアバターによるVRコミュニケーション」を考えた場合、自分のアバターデータを「他の人から自分の姿が見えるように」他のユーザへ送信する、ということも行われることになります。 この場合、従来の考え方に基づく「再配布」規定だけでは対応できない場面が考えられます。そのため、VRMでは

  • モデルデータ自体に対しての改変・再配布規定(Creative Commonsなどから設定可能)

のほかに

  • モデルデータを使用して「人格を演じる」ことについての許諾規定

ファイルに設定できるなど、VR時代を想定したフォーマットとなっています。


VRMファイルに設定できるライセンスデータ

アバターの人格に関する許諾範囲(Personation / Charaterization Permission)

アバターに人格を与えることの許諾範囲(A person who can perform with this avatar)

  • アバターを操作することはアバター作者にのみ許される(Only Author)
  • 明確に許可された人限定(Explictly Licensed Person)
  • 全員に許可(Everyone)

このアバターを用いて暴力表現を演じることの許可(Violent acts using this avatar)

  • 不許可(Disallow)
  • 許可(Allow)

このアバターを用いて性的表現を演じることの許可(Sexuality acts using this avatar)

  • 不許可(Disallow)
  • 許可(Allow)

商用利用の許可(For commercial use)

  • 不許可(Disallow)
  • 許可(Allow)

その他のライセンス条件(Other License Url)

上記許諾条件以外のライセンス条件がある場合はそのライセンス文書へのURLを記述

再配布・改変に関する許諾範囲(Redistribution / Modifications License)

ライセンスタイプ(License Type)

その他ライセンス条件(Other License Url)

上記許諾条件以外のライセンス条件がある場合はそのライセンス文書へのURLを記述

VRM - humanoid 3d avatar format for VR