Jimenshi

ArUco 00

もしも自分だけのVRChatを作れるなら

If I Could Make My Own GitHubのパロディです、あしからず。

フレンドたちとぼくは、もし大金持ちになったら何がしたいか、というテーマで夢について語ることがたまにある。それも「RTX5090を平気で買える」くらいではなく、一度も乗ったことがない潜水艦を持っているくらいの大金持ち。3人目の妻が化粧品ブランドを展開しているような大金持ち。テック界の巨人のような大金持ち。ワイオミング州に巨大な屋敷を買い、議会の公聴会にはいつものグレーのTシャツを着ていけるほどの自信を持った大金持ち。

ぼくの長年の夢の一つは、新しいVRSNS(メタバース)を作ることだ。VRChatが恐ろしく高いマージンのマーケットプレイスの拡大を進めている一方で、クリエイター達はPatreonに留まっている、という話を聞いてこれを書くことを思い立ったが、数年前から書き留めたり話したりしてきたことでもある。VRChatが基盤として停滞し始めていることを考えると、ぼくの「大金持ちの道楽」としてのVRSNSがどのようなものになるか、書き出してみることは面白い試みだと思った。この道楽話には㈱V感開発のアイデアは出さないことにする。

現代のVRSNSは何が問題なのか?

VRChat、Resonite、Clusterは、実質的に全て同じ設計に基づいている。多少の違いはあれど、VRChatが業界のパターンを作り、その機能が他の2つに移植されていることが分かる。またその機能のほとんどはOpenVRとは何の関係もなく、「標準規格」として存在しているものは皆無だ。

OpenVR/OpenXRは設計された部分においてはよいものだが、その「部分」はVRSNSにおいて非常に低レイヤーなインターフェイスしかカバーできていない。同時に、「VRの」プロトコルとしては完璧だ。Virtual Desktopはゲームのリリースごとに複雑な実装をしなくて済むし、オーバーレイ機能は成熟していて、数時間でプロトタイプを作ることができる。

しかし、ほとんどの「メタバース」において、OpenVRはいわばUSBのようなものに過ぎない。肝心な部分は全て、文字通りゼロから作る必要がある。文字通り「デジタルアイデンティティ」の軸となるユーザーシステムとアバター、環境としてユーザーを取り巻き相互作用するワールド、コンテンツの配信、視覚と聴覚をジャックするインターフェイスゆえの堅牢なモデレーション・セーフティの機能。これらにはOpenVRはほとんど何も関与せず、あくまでその上に作られるものに過ぎない。

つまり、この問題はWeb1.0で言えば「HTTPとHTML」の段階から考えないといけないことになる。そうすると既存の実装に縛られる必要はなく、自由に考えることができる。もしも新しいVRSNSを作るなら、このような機能を上手く提供できるように設計してみたい。

アバター

  1. オープンで強力なファイル形式。最低限「VRChatのアバター」を完全に移植できる表現力を持っている必要がある。
  2. VRMは「ポータブルな」ヒューマノイド3Dモデルのフォーマットとして機能するが、一方で「VR機器を通して使える肉体」のメディアとしてはカスタムシェーダーの欠如など、まだ力不足な印象がある。

環境(ワールド・インスタンス)

  1. デフォルト、もしくは非常にシンプルに実装できる同期システム。 (ホラワで置いてきぼりは勘弁してほしい)
  2. 容易にCI/CDパイプラインを整えられること、CLI経由でlocalhostに開発用サーバーを立ち上げられること。

UGC全般

  1. リミックス(もしくはアトリビューション)概念の提供。VRChatのアバター社会が発達したのは「既製品」を購入し、さらにその原作者が触っていたものと同じファイルにアクセスを得て「改変」することを可能にする文化があったことが大きいが、同時に「アップロード者をクリエイターとして扱う」仕組みにより、権利問題で混乱が生まれることになった。(VN3ライセンスなどの普及により多少ましになったが)

コンテンツの配信

  1. IPFS(もしくは似たプロトコル)。中央集権的なシステムにおいて、フリーライダーの解決策は広告か、完全なペイウォールの導入しか持続可能な選択肢が無い。
  2. しばらくの間公式(もしくはそのパートナー)がピン留めを提供する需要は残る。それでもP2Pなら必要な転送量は大きく下がるから、より安価なHDDのサーバーを使って「コールドスタート」のような形にすれば、コストの問題はかなり改善するだろう。欲しがりさんにはオプションとして、より高速なストレージを契約できるようにすればよい。

分散とフェデレーション

  1. (インフラに少し余分な費用をかけるだけで)ユーザー単位で主権を持てる必要がある。Minecraftサーバーくらいの難易度で。
  2. 同時に、環境間を移動する時の体験はスムーズである必要がある。

オープンプロトコル

ハイプが落ち着いた後の「インフラ」としての使われ方を見ていると、現在のメインストリームのプラットフォームはそれぞれが雑多なアプローチで問題に取り組んでいて、さらにそれぞれが肩の上に沢山の人を乗せている。例えばInstagramに写真を上げているだけなら、その「コンテンツ」は、手書きのHTMLとサーバーにFTPで上げるだけでほとんど同じ見せ方ができる。IndieWebのやりかたを使えば、これまでのほとんどの「投稿型プラットフォーム」から完全に足を洗って、自分の庭で交流することもできた。

ところが、ぼくたちはVRSNSを発明してしまった。ムーアの法則がわりあい長続きしたから、片目4Kの映像を数msでレンダリングし、HMDに転送することが可能になった。スマートフォンの普及でIMUの技術が安くなり、全身にセンサーをつけトラッキングすることも現実的になった。ユーザーベースはどんどん大きくなり、没入感の派生、「V感」という概念が広まるにつれて奇妙な文化も生まれた。

ここまで来ると、「時が経てば廃れる」ものではなく、これからも継続して存在し、スケールしていく概念だろう、ということは間違いない。だからこそぼくたちが「オープン」な形を探っていくことは有意義なことだと感じている。

これはActivityPub/AtProto/HTML/HTTPより遥かに難しい、もしかするとLinux kernelを超えるほどの難題かもしれないが、人類はいつか解決できるだろうと信じている。

潜水艦を買えるお金が手に入ったら知らせる。