イベント
[GDC 2016]SCEのエンジニアによる講演で明らかになった,PlayStation VRの秘密と開発者をサポートする機能とは?
セッション内容のうち,ソフトウェア面の話は「THE PLAYROOM VR」と「ソーシャルVRデモ」の解説が中心で,これらについてはすでにレポートを掲載済みである(関連記事1,関連記事2)。そこで本稿では,ハードウェア面の話題に絞ってレポートしたい。
プラットフォーム対決ではなく,共存共栄の時代にあるVR業界
冒頭で,Norden氏が語ったのはVR業界の現状だ。メディアによっては,Oculus VRが勝つか,それともSCEが勝つかといった対立軸でVR業界を書くところもある。しかし,Norden氏が言うには,「(今のところ)VR業界は仲がよい」とのことだ。
しかし,少なくとも今のところ各社は,互いに競合を潰そうとしているのではなく,VRという新しいコンピュータエンターテインメント産業を成り立たせるために,お互い協力していこうという体勢にあるという。
実際,各社の技術者同士による交流も盛んで,技術面だけでなくビジネス面での情報交換も積極的に行っているそうだ。「どこのVR HMDが勝つのか」的な議論を目にすることもあるが,VR業界内では,VRという新しい体験をよりよくするために,協力して情報を交換しているというのが,Norden氏の見方である。黎明期のテクノロジー産業ならではともいえるが,氏の意見に賛意を示す業界関係者は,実際多いのではなかろうか。
さて,本題のPSVRだが,Norden氏はまず,おさらいの意味で,PSVR製品版のスペックを説明した。基本的には,2015年の試作機をアップデートしたものであり,大きな仕様変更はない。
ディスプレイパネルには,5.7インチサイズで解像度1920×1080ドットの有機ELディスプレイパネルを1枚使用する。PSVRの価格が,Oculus VRの「Rift」やHTCの「Vive」と比較して安くできた理由の1つに,この1枚パネル方式が挙げられることもあるのだ。
RiftやViveも,試作機段階では1枚パネル方式だったが,製品版では片眼ごとに1080×1200ドットを使う2枚パネル方式に改めた。詳しくは後述するが,RiftとViveは左目と右目の距離に合わせて,レンズと有機ELディスプレイパネルの位置を調整できるようにするために,2枚のパネルを使う方式を採用したのであるが,PSVRはコストを優先させて1枚のパネルにしたわけだ。
スペックのスライドには,「Low Pixel Persistence」という項目がある。日本語にすれば「低残像」といった意味で,有機ELディスプレイパネルの動画表示性能をアピールする言葉と理解すればいい。
その下にある「Low Latency」は,そのものずばり低遅延という意味だ。これはディスプレイパネルの応答速度ではなく,システム全体での表示遅延のことで,頭部の動きをHMDが検出して,それを反映した映像をPS4が作ってHDMI経由で出力し,PSVRの画面に表示されるまでの総所要時間が短いということを示している。具体的な遅延時間は,18ms未満とのこと。
なお,表示遅延を隠蔽するために,PSVRでは,HMDをかぶった頭部の移動ベクトルを予測して,描画を仕かけた瞬間から描画が完了するまでの所要時間中に生じる動き予測に合わせて画像変形とスクロール操作で映像表示を補正する「Temporal Reprojection」処理を行っている。ちなみにOculus VRでは,同じ基本原理にもとづく遅延低減の仕組みを「TimeWarp」と呼んでいる。
このほかに,PSVRには「Object Based 3D Audio」と呼ばれる立体音響生成用プロセッサが実装されており,リアルな音像の定位を表現できるという。これについては,後段で詳しく説明しよう。
PSVRを付けたまま歩ける範囲は1.9m×1.5mほど
スペックに続いてNorden氏は,PSVRの細かい新機能について解説した。その1つが,プレイエリア定義(Play Area Definition)機能だ。
プレイエリア定義とは,VR HMDを装着したユーザーが,VRコンテンツが定義する移動範囲を越えてしまいそうなときに,注意を促す警告システムである。
「ルームスケールVR」を特徴とするViveの場合,移動範囲の境界付近に近づくと,ワイヤーフレームで描かれた金網のようなものを表示して,「それ以上,進むと範囲から出てしまうよ」と警告するという仕組みになっていた(関連記事)。
PSVRでは,VRコンテンツ側で設定した境界にユーザーが近づいたり,ユーザーの位置や向き認識に使う「PlayStation Camera」(以下,PS Camera)がPSVRを見失ったりすると,警告をVRコンテンツ側に知らせる仕組みが導入されていると,Norden氏は説明する。
なお,警告をどのようにユーザーに伝えるかはVRコンテンツ側に委ねられており,テキストで警告メッセージを出したり,あえて警告しないようにもできる。ゲームの雰囲気を壊さないような独自の警告手段を実装することもできるそうだ。
また,これまで公開の場で披露されるのは珍しい,PSVRのプレイエリアを可視化した図も示された。
PSVRのプレイエリアは,PS Cameraの画角と撮影能力で決まる。そのため,横方向の幅は1.9mほど,奥行きは0.6mから3mほどがプレイエリアとなるそうだ。頭部の動きを検出するだけであれば,PS Cameraにかなり近づいた状態でも検出できるという。
横幅が1.9mということは,左右に移動できる範囲は中心から約1mほど。つまり,2歩も歩けばプレイエリアから出てしまうことになる。PSVRは歩き回るようなVRコンテンツを想定していないので,この範囲で必要十分ということらしい。
PSVRの瞳孔間距離調整機能はソフトウェアによる処理で実現
今回の講演で,とくに興味深かったのは,PSVRに瞳孔間距離(Interpupillary distance,IPD)の調整機能が付いたと,Norden氏が説明したことである。
PSVRでは,レンズと有機ELディスプレイパネルの奥行き方向の距離を機械的に調節する仕組みは備えているが,左右の瞳孔間距離を調整する機械的な仕組みはない。先述したとおり,PSVRのディスプレイパネルは1枚であり,2枚のディスプレイパネルを使うことで,瞳孔間距離を機械的に調整できるようにしたRiftやViveと構造的に大きく違う部分である。
1枚方式の問題点は,ユーザーの瞳孔間距離とPSVRにおける接眼レンズの配置がマッチしない場合,とくに映像外周が歪んだりぼやけたりすることだ。Norden氏はこの問題点について,「PSVRでは,瞳孔間距離に余裕を待たせた光学設計にしてある」と弁護したうえで,「微調整を行いたいユーザーに向けて,ソフトウェア的に瞳孔間距離を調整する機能を搭載した」という。
VRコンテンツ制作者は,調整結果をVR映像描画に使うシステム補正パラメータとして受け取れるため,コンテンツ側が独自に調整機能を実装したり,パラメータを管理する必要はないそうだ。
それ以上の詳しい仕組みは説明されなかったが,推測するに,ディスプレイパネルの左右に表示される映像の表示位置補正や,変形による調整などを行っているのではないだろうか。
Norden氏はさらに,興味深いことにも言及している。「将来的には,この瞳孔間距離調整の結果をPSNのユーザーアカウントに紐付けて,PS Cameraでユーザーの顔認識を行うと,自動的に調整結果がPSVRに反映されるようにする」というのだ。つまり,友人の家でPSVRを使ってゲームをプレイしようというときに,友人のPS4に自分のPSNアカウントでログインすれば,そのアカウントに紐付けられた自分の瞳孔間距離調整結果を友人のPSVRに反映できるのである。
プレイヤーが変わるたびにPSNアカウントを切り替えなくてはいけないのだとすれば,ちょっと面倒なようにも思えるが,ソフトウェア方式ならではの利点とはいえるだろう。
マルチレイヤーレンダリングに対応するPSVR
PSVRの開発キットに関する新情報では,マルチレイヤーレンダリングのサポートが大きなトピックといえる。
マルチレイヤーレンダリングとは,VR開発者の間で以前から,「ゲームエンジンがVRに対応するときに,搭載すべき機能である」と主張され続けてきたものだ。その仕組みを簡単に説明しよう。
これまでのゲームは完成した1画面を描画して映像出力しており,近景や遠景を区別せずに描画した1枚の絵となっている。それに対してマルチレイヤー描画システムは,遠近や近景などに映像を区分けして,それぞれを異なるフレームレートで描画したうえで,最終的に合成してから映像出力することを可能とするものだ。
たとえば,遠景はプレイヤーが注視することはあまりないし,ゲーム性に関わる重大な当たり判定も少ないので,フレームレートは30fpsで描画する。一方,近景は注視することが多いうえ,重大な当たり判定も多いので60fpsで描画。そして,操作キャラクターやその周囲にいるキャラクター――本稿では最近隣映像と呼ぶ――は,動きのアニメーションも含めて120fpsで描画するという具合だ。
そして,120fpsの最近隣映像と60fpsの近景映像,30fpsの遠景映像を合成したうえで,120fpsでVR HMDに出力する。つまり120fps基準で考えると,最近隣は1フレームごとに更新するが,近景は2フレームごと,遠景は4フレームごとの更新になるわけだ。ユーザーの頭が動けば近景と遠景にズレが出てくるが,そこはTemporal Reprojectionで吸収して,矛盾がないように見せればいい。
マルチレイヤーレンダリングについて,Norden氏は,ひとつ注意すべき点があると述べている。「近景の代表としては,照準のようなHUD表示が分かりやすい事例だと思うが,VRでは,眼前に固定されて,ユーザーの動きについて回るHUD表現は気持ち悪くなりがちなので,できれば避けるべき」とのこと。HUD表示はゲームでごく当たり前に使う表現だが,VRでそれを単純に使うのは,適当でない場合もあるようだ。
コマ落ちは絶対にダメ!
新機能の話題ではないが,Norden氏は,PSVR向けのコンテンツを開発するときに「絶対に守るべきこと」についても説明した。
それは,グラフィックス負荷の高いPCゲームやPS4用ゲームで最近利用事例の多い「可変フレームレート」が,VRでは許容されないということ。単純にいえば,「コマ落ちを絶対にさせるな」といったところか。
PSVR用のVRコンテンツで許される固定フレームレートは,以下に挙げる3パターンのみであると,Norden氏は強調していた。
- 描画フレームレート60Hz,120Hz Temporal Reprojection&出力
- 描画フレームレート90Hz,90Hz Temporal Reprojection&出力
- 描画フレームレート120Hz,120Hz Temporal Reprojection&出力
筆者が今までに取材した範囲では,現在公開されているPSVR向けコンテンツのほぼすべてが,1番めの設定を利用している。3番めを利用するコンテンツは,THE PLAYROOM VRの原型ともいえる「Magic Controller」が思い浮かぶ程度だ。2番めや3番めのように高い描画フレームレートを要求するものは,映像をよほどシンプルにしたもの以外,使用事例はほとんど出てこないのではないだろうか。
そのほかに,PSVR向けVRコンテンツを開発する開発者向けに,「VRコンサルテーション」という開発技術支援サービスを提供することも明らかにされている。
VRコンサルテーションとは,開発初期段階に,開発中のVRコンテンツをSCE側に送ると,SCE側で,VRコンテンツの作り方に技術的な妥当性があるのかや,VR体験として適切かどうか――たとえば,酔いやすくないか――などを評価して,フィードバックをくれる仕組みだという。
VRは,娯楽としても産業としても新しいので,初期の段階から良質なものを送り出したいという思いが,VR業界には強くある。「体験して気持ち悪くなったから,もう二度とやりたくない」と思うユーザーを可能な限り減らしたいのだ。そのため,品質コントロールにはかなり気を使ってほしいという意図から,VRコンサルテーションの仕組みを利用することで,快適なVR体験になるように開発者を促していくということなのだろう。
PSVRのプロセッサーユニットは立体音響用プロセッサを内蔵
「プロセッサーユニットは,(PS4の)CPU性能やGPU性能を強化をする機器ではないし,(PS4の)拡張ユニットでもない。しかし,PSVR用コンテンツ開発者が,VRコンテンツを動かすために利用できるものだ」と,Norden氏は説明する。
そのプロセッサーユニットには,どんな機能が備わっているのか。重要なものに絞って説明していこう。
1つめは,立体音響(3Dオーディオ)機能だ。
筆者によるPSVR用コンテンツの体験レポートでも触れているが,PSVRは,音像の定位感がとてもリアルで,水平方向の360度だけでなく,垂直方向の360度についても,音像の定位感をかなり的確に再現できる。距離感もかなり正確で,あまりにも自然すぎるせいか,体験してもそのすごさに気が付かないユーザーも多いほどだ。
そして,この処理を担当しているのが,プロセッサーユニットに内蔵されている立体音響プロセッサであるという。
このようなサウンド処理のことを「バイノーラルサウンド」というが,プロセッサーユニット内の立体音響プロセッサは,これをリアルタイムで処理するのだ。VRコンテンツ側が送出するのは,音像データと,ユーザーを中心点(原点)に置いた相対的なX/Y/Z座標値で,これらの情報をもとにして,立体音響プロセッサがバイノーラルサウンドをリアルタイム変調――Norden氏はレンダリングと表現――して,HMDのヘッドフォン出力端子から出力する。
なお,PSVRのHMDが備えるヘッドフォン出力端子は,一般的な3極3.5mmミニピンのもので,付属イヤフォンだけでなく,市販のヘッドフォンでも利用可能だ。
さて,こうした音像と座標データで送出するバイノーラルサウンドシステムは,「オブジェクトベースオーディオ」や「オブジェクトオーディオ」とも呼ばれており,映画館やホームシアター向けの音響システムである「Dolby Atmos」や「DTS:X」にも使われている。
筆者の取材によれば,プロセッサーユニットが搭載する立体音響プロセッサは,PS4向けのソフトウェア開発キットでソフトウェアライブラリとして提供されたものがベースになっているそうで,これをハードウェア化したものであるという。PS4で動くソフトウェアで処理できるのであれば,わざわざプロセッサーユニット側にオフロードする必要はなさそうに思えるが,PS4本体側のCPU負荷を少しでも低減させたかったから,という理由でそうしているそうだ。
ちなみに,Norden氏は,「PSVRにおける立体音響処理は,すべてプロセッサーユニット側で行うことを標準パイプラインとしている。そのため,サウンド素材を事前にバイノーラル処理することは避けてほしい」と述べていたことを付け加えておこう。
プロセッサーユニットでPSVRとテレビの映像をそれぞれ生成
プロセッサーユニットにはHMDだけでなく,テレビに映像を出力するためのHDMI出力端子がある。この機能をSCEでは,「ソーシャルスクリーン」機能と呼んでいる。
ソーシャルスクリーン機能は,VRコンテンツの内容に応じて,2通りの使い方が可能であることは,たびたび紹介しているのだが(関連記事),おさらいをかねてNorden氏による説明を見ていこう。
1つめは「ミラーリングモード」。HMDに表示している映像や音声と同じものをテレビにも出力する機能だ。ただし,HMDに表示している映像は,レンズに合わせて変形させた映像なので,プロセッサーユニット内のビデオプロセッサを使って,テレビ表示に適した長方形の映像に補正して表示する。
「ミラーリングモードで表示される映像は,やや解像度が落ちているように見えるが,HMDに表示している片目分の映像を長方形に補正するときに,引き伸ばしたり変形しているため」と,Norden氏は説明していた。
2つめは「セパレートモード」で,HMDに表示しているものとはまったく別の映像と音声をテレビに出力する。
この機能は,HMD側プレイヤーとテレビ側プレイヤーが,1つのゲームを同時にプレイすることを実現できる。THE PLAYROOM VRのような,非対称ゲームメカニクスを実現するために使えるモードだ。
セパレートモードでは,PS4は,HMD向けの映像とテレビ向け映像の両方を描画する必要がある。そのうえ,HMD向けの映像はPS4のHDMI出力端子から出力されるが,テレビ向けの映像は,PS4のUSBから出力されるという,特殊な仕組みを利用しなくてはならない。
とはいえ,PS4のUSB端子から直接映像や音声を出力できるわけはなく,PS4内蔵のH.264エンコーダでH.264ビデオストリームにリアルタイム変換してから出力されている。この場合,H.264ビデオストリームの映像解像度は1280×720ドット(720p)で,音声は48kHzのステレオ音声(※リニアPCMかACCかは不明)になるそうだ。
そして,USB経由で送られてきたH.264ビデオストリームを,プロセッサーユニット内蔵のビデオプロセッサでデコードしてから,HDMI経由でテレビに出力するのである。
セパレートモードでは,PS4側のH.264エンコーダとプロセッサーユニット側のH.264デコーダを経由しなくてはならないので,どうしても多少の表示遅延が発生するはずだ。しかし,この遅延がどの程度になるかは,今回のNorden氏による講演でも明らかにされなかった。
また,セパレートモードではPS4のH.264エンコーダをフル稼動するために,同じエンコーダを使うシェア機能は無効化されるそうだ。
PSVR開発者向けのデバッグ機能
Norden氏は,PSVRの開発者向けデバック機能も簡単に説明している。
まず,「Forced VR Mode」という機能では,HMDに入力映像をそのまま表示できるという。何に使うのかというと,開発用PCでPSVR向けの映像や画像を生成して,それをPSVR上で確認するときに使用するのだそうだ。
「Debug Mode」は,ソーシャルスクリーン機能を止めて,HMD側に表示されている映像そのものをテレビにも出力する機能である。
「Show safe area」は,デバッグ用のUI画面を最も画素密度が高いHMDの画面中央に表示する機能であるとのこと。
「Assistant Voice Mix」は,DUALSHOCK 4にUSB接続したマイクに向かって話したプレイヤーの声を,HMD側のサウンドにミックスして出力するものだ。HMDでVRコンテンツをテストしている人に対して,開発機の画面を見ている別の人が,たとえば「右のほうに行って」といった声による指示を出すといった用途を想定しているという。
デバッグ用の機能となっているが,ゲームの機能として利用しても面白そうだ。
「Requirements Check」は,VRコンテンツ実行中にコマ落ちが発生したり,
「Long Press PS Button」は,DUALSHOCK 4の[PS]ボタンを長押ししたときの機能で,HMD映像の基準方向をリセットしたり,PS Cameraが現在捉えている情景を表示したりといった用途に使えるそうだ。
講演の最後にNorden氏は,PSVR開発者に向けて提供するサンプルVRコンテンツ「Comfort Sample」を披露した。これは,禁止事項の状態に陥ったVR体験が,どれほど気持ち悪いものかを理解するために作られたサンプルであるとのこと。
このサンプルでは,遅延の長さを変えたり,コマ落ちを発生させたり,Temporal Reprojectionや頭部向き予測をオン/オフしたときの違いを確認できるという。左右の映像が不一致となる現象――たとえば,片目側の映像にだけ影生成が行われるような状況――も体験ができるそうだ。Norden氏は,「プログラマだけでなく,アーティストも含めたVRコンテンツ開発者は,一度体験すべき」と述べていた。
Norden氏の講演は,多くの内容が詰め込まれた密度の高いものであり,開発者にとって参考になりそうな話題が多かっただけでなく,ゲーマーにとっても,PSVRを深く理解するのに役立つ内容であったと思う。開発者が講演で言及された機能や仕様を利用して,より面白いVRコンテンツを作ってくれることを期待したいところだ。
PSVR 公式Webサイト
4Gamer GDC 2016関連記事一覧
- 関連タイトル:
PlayStation VR本体
- この記事のURL:
キーワード