仮想世界のつながり:VRChatにおけるソーシャルネットワークの可視化

この記事はVRChat Advent Calender 2018の19日目です。昨日の記事はReflexさん(@reflex1124)の「Reflex Shader 2.0の基本的な作りについて」でした。

Summary

In this short article, “How People Live in Virtuality: Visualizing The Social Network of VRChat,” I briefly analyze “how people live in VRChat” by using VRChat API. This includes the fact that a typical VRChat user has no connection with most (99.4%) of the community. And its results imply that in order to grow the Virtual community it is essential to sustain 1) an open and mobile environment, and/or 2) a conservative and creative environment.

注意

この記事ではVRChatユーザーの動向についてのデータを扱っています。このようなデータを評価・議論することに対して不快感を抱かれる方は閲覧されないことをおすすめします1 2。また、いろいろとセンシティブな情報を含むので、事実を歪めない範囲でわざと情報を隠したりブラフを入れたりしています。

導入

VRChatでは日々いろんなひとがいろんな場所で「暮らして」います。一方で、VRChatのシステムの関係上、1ユーザーの直接のフレンド以外の動向はほぼ完全に隠匿されるため、コミュニティがどのように成り立っているかを把握することは簡単ではありません。そこで私は考えました。

「1%の仮想」でフレンドが増えた私なら、APIを駆使してコミュニティの全体像が読み解けるのでは?

……ということで、この記事では私が取得した情報をもとにちょっとしたデータ解析をしてみます3。先に言っておくと、フレンドの皆さんごめんなさい。

背景

VRChatにおける「ワールド」の概念4は、私なりの解釈では以下の2つの尺度で分類できます。

  • 公開 or 非公開:ワールドへのJoin(入場)がどの程度開かれているか。基本的にVRChatではフレンド関係(他者からの信任)によってワールドに入れるかが決定しますが、後述するように例外もあります。
  • 自然発生的 or 計画的:ワールドの成り立ちが意図されたものかどうか。イベントとして開かれるワールドは「計画的」に、逆にPublicが普通のワールドは「自然発生的」とします。

これを私の知っている範囲で公開されている情報をもとにプロットしてみると以下の図のようになります。1%の仮想を除き単発のイベントに関しては表示していません(数が多いため)。

どこか間違っている箇所があればTwitterとかVRChatとかでお気軽にご指摘ください。また、この図は「右/左/上/下に行くほど良い」ということを意味するものではありません

「インスタンス作成計画」とは単にインスタンス作成のために事前に打ち合わせやセットアップが必要なことを指します。逆に「インスタンス管理者」はワールドIDを知っている人であれば誰でもなることができます。
以下、簡単な説明です。

  • Japan Shrine, Fantasy Shukai jou, Japan Townは定番中の定番ワールドで、なぜか(トロール等の存在があるにもかかわらず)伝統的にPublicのインスタンスが開かれます。1619Hz:IIも同様ですが、こちらは「初心者の交流」という目的がワールドに設定されているため、少し右側に配置しています。
  • 1%の仮想は以下の入場方法をとっているため、図のような配置となっています。
    • 第一回:私か会場内フレンドへのJoin(私へのフレンド申請は順次許可してました)
    • 第二回:私か会場内フレンドへのJoin+専用ページ(公開)からのJoin
    • Public:Public化されているため誰でもインスタンスを作成できる
  • バーチャル集会場Club.DelicはTwitter等からは入場方法が見当たらなかったため、公式ページやTwitterが存在するSilent ClubKemono Clubよりも下に配置しました。
  • GHOST CLUBは「オーナーに日記を書く必要がある」「皿を回す必要がある」ため最も右下に配置しました。

また、これらのワールドの「インスタンス」の意味することはそれぞれの色によって全く異なります。青色は基本的にPublic化されたワールドで、必要に応じてインスタンスが作成される(または既存の適当なインスタンスがプールされる)ため、「インスタンスID」に特に意味はありません。一方で、黄色や赤色の場合は、特定の用途のためにインスタンスを作成し、かつ集団の大部分が長時間滞在することが多いため、「特定のインスタンスに入る」ことが大きな意味を持ちます5。言い換えると、図の左ほど「ワールド本体を楽しむためのもの」、右ほど「人との交流やイベントを楽しむためのもの」といえます。

問題は、一番左上の分類「以外」の領域です。というのも、これ以外の領域はフレンドがいないと内情(誰がどの時間帯にいるか)を知ることができないため、フレンド数が多い人でないと解析自体ができないためです。なので、それを以下で見てみます。

評価方法

直近数ヶ月のフレンドの滞在しているインスタンスIDおよびそのインスタンスにいるメンバーを断続的に取得しました。取得手法や定量的な詳細についてはこの記事では非公開としますが、別に非合法的なアレではないですし、ググれば出てきます6

評価:隣接行列

まずは隣接行列です。これは一言で説明すると「VRChatユーザーを縦と横に並べて、つながりのある2人の交点に点を打ったもの」です。ここでは仮に「5時間以上同じインスタンスにいたことのある人は『つながりがある』」と定義しています7

VRChatユーザーの隣接行列。もうこの時点で記事の結論が出ている


図です。縦横にVRChatユーザー1673人8が並んでいて、白色のマスが「つながり」を表します。例えば、100番目の人と200番目の人につながりがあるかどうかは「左下から上に100ピクセル、右に200ピクセル進んだところが白色かどうか」で判断できます。ここではigraphのinfomapでクラスタリングしてインデックスを入れ替えており、クラスタの構成人数が多いほど左下に来るように配置してます。各小行列(白色が正方形の形になっているところ)はクラスタ(仲良しなグループ)を表します。

この図を見ると、明らかに「普通のVRChatユーザーはクラスタ外の人とはほとんど交流しない」ことがわかります(繰り返しになりますが、図の大部分を占める黒い箇所は「つながりがない」ことを意味しています)。また、黒色の部分の中に短い縦線や横線がありますが、これは「メインに所属しているクラスタの他に別のクラスタにも繋がりがある人」を表しています。

フレンド

次に、この図の私のフレンドのみを赤色で着色してみます。

私のフレンド(赤色)。私は真ん中の小さな赤いところにいます

この図で特徴的なのは3番目に大きいクラスタにフレンドがほとんどいない点です。この図において最大のクラスタ(最も左下)はファンタジー集会場とバーチャル集会場によくいる人のクラスタで、2番目はとあるクラスタ(クラスタの方針を考慮して以下🍤とします)ですが、私の正直な感想として3番目はどんなクラスタなのかはほとんど知りません。この例からもVRChatの交流が非常に疎であると言えると思います9

イベント系クラスタ

イベント系クラスタ(7箇所あります)

イベントを定期的に開いていてかつTwitter等で宣伝している(と私が勝手に判断している)クラスタを着色するとこのようになります。どこがどれかについてはプライバシーとかもありますので伏せます。興味深いのはイベントの規模とクラスタのサイズが必ずしも一致しない点で、複数インスタンスが並列して開かれるイベント(の主催者がいるクラスタ)でも構成人数が10人程度のところもあります。この理由としては、開催インスタンスが多すぎると逆に流動性が高く大きなクラスタが形成されづらいものと思われます。

 🍤

最後に、2番目に大きいクラスタについて軽く触れます。ここで唐突に隣接行列の「つながりの多さが上位95%の人」を着色すると次のようになります。

「つながりの多さが上位95%の人」を着色した図

この図より、明らかに🍤クラスタが特異である(クラスタ内部での交流が極めて盛んである)ことがわかります。理由としては、このクラスタでは継続的にクリエイティブでエモエモな「なにか」を行える環境が整っているため、リピーターが非常に多いことが考えられます。

評価:グラフ

“VRChatter Particles”(エッジの色の濃さは一緒にいる時間を反映)

景気づけにグラフにしてみるとこのような感じになります。少し大きめの丸が私です。

その他の情報

その他の豆知識をずらずら並べると以下のようになります。

  • 日本人コミュニティで最も大きい(と思われる)クラスタはファンタジー+バーチャル集会場勢であり、規模は60人程度と推定される
  • 🍤はクラスタ内部での交流時間が極めて長く特異
  • 30人程度で強連結(全員が全員と仲良し)で滞在時間が超長いクラスタが存在する10
  • 普通のクラスタの構成人数は平均11人程度、中央値7人程度
  • 普通のVRChatterが「長い時間をともにする」フレンドは多くても6人程度。一方で30人以上と深い交流を持つ人も5%程度存在する
  • 上記の隣接行列の非ゼロ要素は全体の0.6%である(すなわち、平均的なVRChatユーザーは仮想世界の99.4%とつながっていない

感想

集会場と🍤はクラスタの方針が間逆であるにもかかわらず1〜2を争う巨大なクラスタになっていることは非常に興味深いです。つまり、仮想世界のコミュニティを大きくするには「流動的でオープンな環境をつくる」か「保守的でクリエイティブな環境をつくる」の両方の手法が有効であると言えます11
一方で、「だれもが瞬時につながることができる」といわれる仮想世界で平均的なクラスタの人数が10人程度であることも特筆すべきかと思います。やはりこの理由としては「PCスペックの仕様上、1インスタンスに入れる人数が30人程度が限界」というのが根本的な理由としてありそうです。前にも書きましたが、VRChat運営においてはインスタンス間の情報伝達をもうちょっとうまくやってほしいなと思います12

  1. 私はどちらかというと理系寄りの人間なので、手元に面白そうなデータが転がってる以上は我慢できませんでした 知見の有益性に鑑みて私の責任のもとに公開します
  2. 私はこの分野に関しては完全に専門外なのと時間的にもギリギリだったので、クラスタ解析に自信ニキ(美少女)がいればご連絡ください
  3. ちなみに、このネタは砂鉄さんが以前ツイートされていた考察(リンクは失念)をもとに検証してみたものです
  4. ここでの「ワールド」とは、ユーザーがアップロードできるデータのことではなく、ひろく「場所」を意味する言葉として使っています。例えばGHOST CLUBではほとんどの場合1インスタンスしか存在しないため「インスタンス」と呼んだほうが適切ですが、ここでは単に「ワールド」とします
  5. 「インスタンスが満員で新しいインスタンスにはじき出されたときになにか不都合が起こるか」と言い換えることもできます
  6. 24時間HMDをかぶってひたすらフレンドのいるインスタンスを飛び回って手作業で集計しても原理的には可能です
  7. ブロックした相手に気づかずに同じインスタンスにいた場合でもカウントされてしまいますが、ごく少数(だと思いたい)ので無視します。また、VR睡眠対策として深夜帯のデータは除外しています
  8. 「5時間」という制限を外すともう少し桁が大きくなります(ので制限をつけています)
  9. いや本当はこのクラスタ由来のインスタンスはちょくちょく見るんですが、やっぱりフレンドが少ないとなかなかJoinしずらくて……
  10. 思い当たる節があればたぶんそこです
  11. もちろん「コミュニティを大きくすることは正義」と言っているわけではありません。あくまで考察の一つということで
  12. 一方で、上記の考察を考えると「『World』のタブからPublicのワールドにしかアクセスできない」ようにしている設計思想はわりと正しい方向性かもしれません。もちろん「Publicは危険」という認識が広がっている日本人コミュニティにとっては大失敗以外の何物でもありませんが