Pimax 5K Plus レビュー(VRChatter風味)

Pimaxを買いまっくす

※この記事はほぼVIVE ProまたはPimax 5K Plusを被った状態で(主に時のお家の温泉に浸って)書きました🍤

Pimax 5K PlusはHTC VIVE等の従来のVR HMDと比べて200度という非常に広い視野角を謳うHMDです。今回私は5K Plusを視野角の広さに惹かれて貯金をはたいて買ってしまったためレビューします。スペックや性能に基づいたレビューについてはすでに存在しているため、こちらの記事では主に私が使ってみて気づいたことを書き連ねます。

入手にかかる日数は?

Pimax HMDシリーズはもともとクラウドファンディングからはじまった製品なのですが、バッカーへの発送が大幅に遅れるなど製造体制の不安定さがたびたび指摘されています。Pimaxには大きく分けて5Kと8Kのバージョンが存在し、5Kはどちらかというと安定して製造されているらしいのですが、私の場合は以下のようなタイミングで到着しました。

  • 3月第二週:注文
  • 4月第二週:「発送完了」連絡
  • 4月第三週:到着

Twitter等での反応を見る限り日本への発送は複数の注文者に対してまとめて行われているようです。このため、今注文しても最速で到着するわけではないことが予想されます。

付属品は?

Pimax 5K Plus VR Headset」には以下の物体が含まれます。

  • HMD本体:PCとの接続に必要なケーブル(後述)はHMD本体と結合しているためHTC VIVEのように取り外しはできません。
  • HMD用ヘッドバンド:Pimax 5Kのヘッドバンド(ゴム製)はHMD本体とは分離した状態で同梱されているため、自分で取り付けする必要があります。
  • ACアダプタ(12V2A, 100-240V)
  • 説明書(英語・中国語)

PimaxはSteamVRのトラッキングシステムと互換の製品であり、コントローラやベースステーションは含まれていません。これらはPimaxから別途購入するか1HTC VIVEのものを流用する必要があります。

接続方法は?

接続図(VIVE・VIVE Proの接続図は前回の記事参照)

Pimaxを使用するためには以下の接続が必要です。

  1. HMD本体からのびるDisplayPortとUSBコネクタをPC本体に接続する
  2. ACアダプタをHMD本体からのびているケーブルの途中にある「リンクボックス状のなにか」に接続する
  3. お好みの有線イヤホン・ヘッドホンをHMD本体に接続する
「リンクボックス状のもの」

HMDとPCとの接続はリンクボックス状のものを経由して行いますが、VIVE・VIVE Proと比較して非常に小さい(5×3 cm程度)のでほぼケーブルの一部として扱ってしまって問題ないと思います。

HMDの形状について

HMDについて気づいたことをつらつらと書きます。

西洋人でもないとこの鼻部分を埋めるのは難しいのでは?

鼻の部分は著しく鼻が高い人向けに設計されているようで、私が被った限りではVIVE・VIVE Proとは異なり1cm程度の非常に大きな隙間が空きます2。後述のように鼻の頭は布製の部位に当たるため、ある程度は外からの光は届かないようにはなるのですが、それでも光が多少気になるため、Pimaxを使用する際は何かしらの方法で遮光するか部屋の電気を消す必要があります。

レンズの周囲の部分は(VIVEのようなプラスチックではなく)薄い布製になっています。見たところ取り外しが簡単にはできなさそうなのですが、汚れてきた場合にはどうすればいいのでしょうか……?なお、HMDのフェイスクッションについてはVIVE等と同様にマジックテープで取り外せるようになっているため交換することができます3

Pimaxはヘッドバンドが完全に布製のため、重心がVIVE等のように前よりになります。私はVIVE Proの比較的ヘビーユーザー4なのでやはり重心が前になるとちょっと気になります。

HMDの機能は?

電源ボタン・音量ボタン・電源LED

HMDの右上には電源ボタンと音量ボタンがあります。音量ボタンはVIVE Proと同様にWindows側の音量操作を行うことができます。電源ボタンは数秒間長押しするとHMDの電源ON・OFFを切り替えができますが、いまいち必要性がわかりません5

HMDの右下にはIPD調整用のねじがあり、ひねるとGUIで現在のIPDが表示されます。私のIPDは64 mmですが60~73 mmまでは調整可能なようです。

HMDの上下にはUSB-C端子がついており、別売りの追加モジュールで使用されるようです。今回は試しにUSB-C→USB-B変換アダプタとUSB-Bのフラッシュメモリを接続してみましたが、認識はされるものの電力不足の警告が表示され動作しませんでした。

オーディオ端子(HMDの下部にも謎のねじ穴や凹みがあるため若干分かりずらい)

HMDの左側にはオーディオ端子がついており、好きなイヤホン・ヘッドホンをつなぐようになっています。VIVEとは異なりイヤホンは標準では付属しません。隣のプラスチック部品との間隔が少し狭いため、太いオーディオ端子の場合は引っかかるかもしれません。

マイクも搭載されていますが、VRChatでフレンドに声を聞いてもらった感じだと「音量が小さく、かつ音質がかなり悪い」だそうです。

HMDとPCをつなぐケーブルについては、VIVE Proと比較して若干細いため(それぞれ直径5.6 mmと4.9 mm)取り回しがしやすいように思います。

ちなみに、電源をつけると前面の青いV字の部分が光ります。カッコイイ。

セットアップについて

私の場合は以下のような手順でセットアップを行いました6。前提として、私はVIVE Pro(ベースステーション1.0)を置き換える形で導入しました。

  1. 通常の手順でSteamVRをセットアップする
  2. VIVE ProのリンクボックスとPCの接続(DisplayPort・USB)を外す
  3. PimaxのDisplayPort・USBを接続する
  4. Pitoolをインストールする
  5. ルームセットアップ:Pitool側でルームセットアップを行います。内容はSteamVRと同じノリで「HMDをプレイスペース正面に置いた状態でキャリブレーション」「HMDを床に置いた状態でキャリブレーション」を指示通りに行います。
  6. コントローラのペアリング:これもSteamVRと同様に電源ボタンとメニューボタンを同時に長押ししてペアリングを行います。VIVE Proと切り替える際にはその都度ペアリングが必要になります
  7. SteamVR対応アプリを起動する:Pitoolを起動中はHMDに妖艶な宇宙空間が映っていますが、Pitool起動中にSteamVRを起動すると(Pitoolが自分の掴んでいるHMDとコントローラを渡すようで)SteamVR対応アプリが普通に使用できます。

この段階で6 DoFでHMDとコントローラが使用できるようになります7。注意点として、Pitoolのルームセットアップでは部屋の境界の設定を行わないため、シャペロン境界は使用できません(セットアップ位置を中心とした直径1.5 m程度の円のみが表示されます)。また、Bluetoothを使用したベースステーションの自動ON・OFFもやってくれないようです。

映像がバグることも(再起動したら直る)

Pimaxから見える景色

視野角のポーズ(両腕のリングがギリギリ見える限界)

ヤバい。

VIVE(Pro)のような従来のHMDでは視野角の狭さから「双眼鏡」と揶揄されるような独特の閉塞感がありましたが、Pimaxでは200度という破格の視野角で閉塞感が大きく緩和されています。ただし、この「視界の端」の部分は本当に人間の視界と同様に高精細に見えるというよりはVIVE(Pro)の視界の端がもうちょっと横に延長された感じであり、焦点のあった鮮明な視界はあまり期待できません。あくまで「閉塞感の(大幅な)緩和」が主なメリットになります。

この柱(画像右)まで見えます

VRChatのホームワールド“VRChat Home”で試した限りでは、スポーン地点からポータルの方向を向いても左右の柱の端が見えます。一方、VIVE Proでは顔を正面から45度程度傾けないとみることができません。また、あまりの視野角の広さに視錐台カリングによって視界の端にあるオブジェクトが突然消えたりします(例えばVRChat Homeのスクリーン等)8

視野角が広がるということは描画範囲が広がるということであり、必然的にGPUの負荷が大きくなりますが、Pitoolでは視界の端をどこまで描画するかについてSmall・Medium・Largeから選択できます。 SmallはVIVE Proよりもちょっとだけ視野角を広げた感じで、Largeは完全に端まで描画されます。私が試した限りではこの変更で大きなFPSの変化は確認できませんでしたが、スペックがカツカツな場合は使ってみてもいいかもしれません。

解像度に関しても、体感的にはVIVE Proと同等な印象を受けます。私はVIVE Proを被った状態でOVRDropを使ってPC作業をしていますが、Pimaxでも特に問題なく作業ができています。目安としては、Full HDの画面を50cmくらいの幅で目の前に表示した場合には、直接画面を見るのと遜色ない程度の識字が可能です9

一方で、VIVE Proでは有機ELが使用されているのに対してPimaxでは液晶が使われているためか、色合いはだいぶくすんだ印象を受けます。私はどちらかというと機能性(視野角・解像度)で殴ってナンボの使い方をしているのでわりと受け入れられる範囲ですが、綺麗な景色を第一に優先する場合は少し気を付ける必要があるかもしれません。

周辺ソフトウェアとの互換性

デスクトップを表示するアプリであるOVRDropは普通に使用できます。ただし、リフレッシュレートの関係か若干チラつき(黒い縦線)が見える場合があります。また、VIVEでセットアップされる座標系とPimaxでセットアップされる座標系は別物のため、画面の初期位置はVIVEのものとは異なります。

OpenVR Input Emulatorについては、私が試した限りではVIVEコントローラを起動するとSteamVRが無条件で強制終了するという現象に遭遇しました。環境依存かもしれませんが、Playspace Mover等の依存するツールが使用できない可能性については考慮すべきかと思います。

VRChatでフルボディトラッキングを有効にした状態(OFFになっているものはLIVのもの)

VIVEトラッカーに関しては通常通り使用することができます(後述)。

VRChatでのFPS検証

VRChatのいくつかのワールドでFPSを検証してみました。なお、この性能評価ではVRChat・ワールド・SteamVR・Pitool・ドライバ等様々な要素が関係してくるためあくまで参考値としてご覧ください。

私のPCスペックは以下の通りです。

  • CPU: Intel Core i7 8700k
    • メモリ: 24 GB
  • GPU: NVIDIA GeForce RTX2080
    • ドライバ: GeForce Game Ready Driver 425.31

以下はフルボディトラッキングを有効にしたアバターで無人のワールドにいる際のFPSです。見る方向が書かれていない場合はだいたいどの方向を向いても同程度のFPSであることを意味します。

  • VRChat Home
    • 鏡が表示されていないとき:90 FPS
    • 鏡が表示されているとき:80 FPS
  • 1%の仮想(エントランス):90 FPS
  • Avatar Testing!!
    • スポーン地点:70 FPS
    • メインの鏡の前にいるとき:60 FPS
  • 時のお家
    • スポーン地点(時計を見ているとき):60 FPS
    • スポーン地点(時計と反対方向を見ているとき):50 FPS
    • 温泉で家の方向を見ているとき:45 FPS

Pimaxでねむるひと

PimaxはSteamVRで動作するためVIVEトラッカーも併用できます。これはつまりPimaxは寝具ということです10。ということで寝てみました。

GW初日にもなって自宅で水たまりに浸かって寝る人

場所は(狭い部屋で寝ても視野角を全く生かせないので)chinjyu forestにしました。VRなので男らしく(?)雨ざらしの中水たまりに浸かって寝ます。

仰向けになった時に見える視界のごく一部(実際は地面に生える草まで見える)

感想としては、視野角が広いため特に頭を動かしずらい睡眠時はめちゃくちゃ開放感があります。これによって寝ている間に誰かが近づいてきてもすぐにわかりますし、隣で寝ている人の横顔も見ることができます。また、「オーディオ部分が取り外し可能」「HMD本体が比較的軽い」「後頭部がゴム製で軽い」「鼻部分に余裕があり呼吸しやすい」「ケーブルが細い」というPimaxの特徴の相乗効果で「PimaxはVR睡眠用に設計されたのでは???」というくらい快適なVR睡眠が行えます11

仰向けで寝た場合は左右の地面付近までギリギリ見ることができますが、横を向いた状態で寝ることもできます。この場合はPimaxが横に長い形状をしていることから、枕の端に頭を置いてHMD自体は布団に接地するようにするとHMD自体の重量を頭にかけずに眠ることができ、かつ真横を向くことができるので非常に寝やすいです。

総評

200度の視野角のもたらす開放感は圧倒的です。しかし、ソフトウェア面(特にSteamVRとの結合部分)についてはまだ不足している点も多く、普段VIVE(Pro)を使っている人にとっては面倒に感じる点も多いかもしれません12。また導入に際してもベースステーションを別途入手する必要がある等若干ハードルが高い状態です。よって、ヘビーVRユーザーが人柱覚悟で購入するくらいなら妥当かな、というのが正直な感想です。

おまけ

VIVEやPimaxの視野角や視力(解像度)を実際に体験できるような「視力検査ワールド」のようなものをVRChatで作ろうかと考えています。完成したらTwitterのほうで告知予定です。

追記(2019/5/16):予定のほうが詰まってるので暇な時につくります……


VRChatに足りないもの

追記(2019/2/25):
以下の問題点を解決する上で特に重要だと思われる点について、Canny(VRChat運営に機能改善をリクエストできるページ)のリンクをリストアップしました。同意する点については投票(▲ボタン)をお願いします!


このツイートをしたらちょっとした議論になったので、現時点での私の意見をまとめてみます。といっても、私はVRやSNSに関して専門的な知識があるわけではないので、現在私が主に活動しているプラットフォームであるVRChatについて「何が足りていないか」を書いておきます1
「VRプラットフォームのあり方」みたいなものを議論する上でのちょっとした一意見になれば幸いです。

利益相反の開示

私(ヨツミフレーム)はVRソーシャルプラットフォームであるVRChat上で趣味としてコンテンツ制作をしています。例として「VRメディアアート個展」と称した「1%の仮想」というイベントを2018年9月に開催しました。詳細はこちら
私の活動に関しては一切収益を得ておらず、VR関係のいかなる企業・団体・個人からも利益を受け取っていません。VRに関しても特に専門的な知識があるわけではありませんし、本職とは一切関わりがありません。
ただし、VRChatに関しては、以下の記事を書いているように国内ユーザとしては一定量の知識やデータは持っていると思います。

他のVRプラットフォームに関しては、AltspaceVR、Rec Room、バーチャルキャストを少し触ったことがある程度です。

TL;DR(1行まとめ)

VRChatではVRソーシャルを成立させるために必要な極めて最低限・原始的な機能しか実装されておらず、ユーザの熱意によって(少なくとも日本人コミュニティは)無理やり成り立っている状態のため、「最低限VR SNSとして成立するなにか」を誰かが作るだけでもユーザを総取りできるのに、という愚痴です。

以下は足りないものの一覧です。なお、VRChat自体アーリーアクセスなので、不可抗力的なもの(例えばSDKのバグが多いこととか)については特に書いていません。

ソーシャル機能の欠陥

VRChatでは「インスタンス」と呼ばれる「部屋」の単位があります。ユーザは常にいずれか1つの属し、同じインスタンス内のユーザとのみ会話することができます。
インスタンスには大きく分けて以下の分類があります。

  • Invite, Invite+:インスタンスの作成者(前者)やインスタンス内にいる人(後者)が特定のユーザに対してInvite(招待)するか、Req. Invite(招待の要求)を受諾した場合のみ入室できます。インスタンス外からインスタンス内の人数やメンバーを把握することは一切できません。
  • Friends, Friends+:インスタンス作成者のフレンド(前者)やインスタンス内にいる人のフレンド(後者)のみが入室できます。VRChatクライアント内では入室できる場合のみそのインスタンスのIDが表示されます。
  • Public:運営の審査を通ったワールドのみが設定できる種類で、誰でも検索・入室することができます。

問題は、ユーザがVRChat内で知ることのできるインスタンスが以下の2種類しかなく、インスタンスの検索性が極めて乏しい点です。

  • Public:メニューの”Worlds”欄から確認することができます。一方で、Publicインスタンスにいるユーザは海外ユーザがほとんどであり、荒らしや冷やかし目的のユーザも一定数いるため日本人コミュニティではあまり利用されていません。
  • フレンドのいるインスタンス:メニューの”Social”欄で表示されるフレンドを一人ひとり選択すると、そのフレンドがいるインスタンスを(入室可能な場合)一人ひとり確認することができます。しかし、言うまでもなくこれは非常に非効率的な操作であり、劣悪なUI2と相まって「複数のフレンドが集まっているインスタンス」を手早く確認することはほぼ不可能です。そもそもAPIの観点から見ると「フレンドのいるインスタンス一覧」を表示することはAPI(=サーバ負荷)の変更なしに実装できるため、なぜこの仕様が放置されているかは不明です。

また、VRChatでは国内・国外ともにユーザ主導の多くのイベントが開催されますが、上記の問題からこれらのイベントの存在をVRChat公式の機能で感知することは不可能です。一方で、例えばAltspaceVRでは”EVENTS”欄で開催予定のイベントの詳細を確認することができます。

この問題に対しては、ユーザ主導で以下の解決策が提案されています。

  • APIの使用sunaさんの記事で詳しくまとめられていますが、ユーザが作成したアプリを使用することができます。一方で、これらのアプリをVRChatと統合して使用することはできません3し、アプリに対して安全にアカウント権限の一部を与える方法は実装されていません。また、アプリ経由でインスタンスに入室する場合は使用上一度VRChatを再起動する必要があります(数十秒〜数分の待機とキャリブレーションのリセットが入ります)。
  • イベントカレンダー国内国外ともにイベントの予定が列挙されたカレンダーが公開されています。もちろんこちらもVRChatとは完全に独立したものです。

ここからは私の考察になりますが、おそらくVRChatの方針として「VRChatのみでソーシャルが完結する」ことは意図されておらず、普通のゲームのように事前に他のSNSでプレイ時間やメンバーを示し合わせてから遊ぶことを意図していると思われます(以下のインスタンスの考え方も参照)。もちろんこの方針のほうが実装コストが下がりますが、数百人のフレンドがいて一度に数時間もインするヘビーユーザ4にとってはたまったものではありません。

インスタンスの哲学

VRChat内でインスタンスを作成した場合、それを固定化すること(特定の名前をつけたり公開用リンクを作成したりすること)はできません。これをするためにはVRChat外で特殊な起動URLを準備する必要があります。VRChat内で作成されるインスタンスにはVRChat内から不可視なハッシュ値が設定されるため、自身のインスタンスに退出後入り直すことすら(内部にフレンドがいなければ)不可能です。これはおそらく「インスタンスは一時的なセッションであり、『住む』することが意図されていない」ためと思われますが、一度に数時間もインするヘビーユーザにとってはたまったものではありませんし、何らかのイベントを開催する場合には明らかに不向きです。
一方、これに対する対照的な哲学としてはDiscordのボイスチャンネルがあります。DiscordではSkype等と異なり、ボイスチャットをする際に「一時的に作成・破棄されるセッション」ではなく「常に一意に存在するチャンネル」を採用することで入退出を容易にしているのですが、運の悪いことはVRChatはSkype方式を採用しているために非常に使い勝手の悪い仕様となっています。

インスタンス・モード遷移の不連続性

インスタンス間を移動する場合、ワールドのロード(キャッシュされている場合は数秒)が発生します。問題はこの遷移が同期的(ロード中は他のユーザと交流したりアバターを切り替えたりできない)であり、ユーザの回線速度によるロード時間の差やインスタンス人数が溢れることによる強制的な移動等の問題と相まって「集団でインスタンスを移動しようしたらはぐれる人が頻出する」問題が発生します。さらに悪いことに、インスタンス間でユーザ同士がインタラクトする手段はInviteとReq. Inviteだけであり、何か問題があった際にVRChat内だけで意思疎通を取ることができません。
なので、素早い連携が必要とされるようなイベント時などには「VRChatのボイスチャットを切ってDiscordを裏で起動する」という身も蓋もない解決策が使用されてたりもします(もちろんVRChatは他のいかなるSNSとの連携機能も実装されていないため、VRChatとは別途でチャンネルの作成等を行う必要があります)。
似た問題として、「デスクトップ(非VR)モード・VRモードの動的な切り替えができない」という問題があります。VRChatがVR機器なしにプレイできるというのはコミュニティ人口を増やすための素晴らしい機能ですが、VRでプレイしていると以下のような理由でデスクトップモードに切り替えたくなるような場面が往々にしてあります(少なくとも私の場合は)。

  • コントローラ・トラッカーのバッテリー切れ
  • 一時離席
  • VR内からでは困難な(PC)作業を行う必要がある場合

切り替えのためにVRChatを再起動するともちろん前述のように同じインスタンスへのアクセスを再度繰り返す必要があり非常に面倒なため、多くの人は一時的な作業の場合にHMDを外したり頭に乗っけたりしています(当然会話を続けることは困難になります)。
補足として、唯一「トラッカーのON・OFFによる両手トラッキング・フルボディトラッキング」については動的な切り替えに対応しています(トラッカーをON・OFFにするとトラッキング仕様が切り替わる)。このノリでVRとデスクトップモードを切り替えれるようになるとプラットフォームとしての利便性が大幅に向上すると思います5

コミュニティの不透明性

VRChatコミュニティは「ユーザとフレンドになるとその人のいるインスタンスが(条件付きで)分かる」「フレンド以外の人については名前・サムネイル・ランク以外の何も分からない」というざっくりとしたシステムから、純粋なP2Pネットワークとして成立しています。実装としてはこれが一番シンプルなものですが、一方でこのシンプルしすぎる性質から「コミュニティの全体像(やその部分集合)を誰も知ることができない」という問題が発生します。Twitterで例えると、「全員が鍵アカウントで誰のF/F関係・いいね・RTも見ることができないTwitter」のようなもので、明らかにスケールアップの限界が発生すると思われます(このあたりはこの記事で簡単に評価しています)。まあ現実世界もスケールアップすることは不可能なので、SNSの性質としてはアリといえばアリですが、もう少しコミュニティ全体のトレンドを伺い知れるような機能があるとうれしいですね(例えばフレンドに自分のフレンドを見せることを許可できるようにするとか)。

「物」の実装

VRChatではなんと「物」を定義することができません。ワールドに置いてある物(例えば持ち運べるコップ等)はワールドデータの一部ですし、武器を持っているようなユーザがいればそれはアバターデータの一部(としてそのユーザがアップロードしたもの)です。このようにVRChatでアップロードできるデータは「アバター」と「ワールド」の2種類のみで、その中間の粒度の「アイテム」に相当するデータがアップロードできません。これはもちろん実装コストの関係で実装されていないだけだとは思いますが、これが実装されるだけでも文化の多様性が爆発的に増えると思うので早めに実装してほしいですね6

スケーラブルなユーザの描画

VRChatでは同じインスタンスにいることのできる人数は50人程度が限界です。これはサーバ側というよりは各クライアントのPCスペックの関係でこの人数以上のユーザを処理することができないためです。ですので、1つのインスタンスに数人から数百・数千人収容できるとうれしいという話です(技術的に可能、という話ではない)。
実際、やりかたとしてはclusterのように「間引き」をしたりLODのような概念を導入すれば(クライアントのスペック的には)対応できそうですが……7


ではなぜVRChatが(ごく一部で)アツいのか?

それはおそらく以下の3点に集約されます。

  • 好きなデータを運営の審査なしに好きにアップロードできる(=なんでもできる)から
  • SDKやシェーダーを使ってそれなりのギミックが実現できるから
  • 多対多のコミュニケーションができるから

逆に言うと、この3点を満たしてまともなVR SNSとしての機能を実装すればVRChatのユーザを総取りできるということなので(例えバグが盛りだくさんでもVRChat自体バグが盛りだくさんなのでVRChatよりはマシ)、「住むことのできる」VRソーシャルプラットフォームの誕生が待ち遠しいところです。