Unity を検索

The next generation of VR gaming on PS5 | Hero image
The next generation of VR gaming on PS5 | Hero image
取り上げているトピック
シェア

Is this article helpful for you?

Thank you for your feedback!

ソニー・インタラクティブエンタテインメントの次世代 VR ヘッドセット PlayStation® VR2(PS VR2)が 2 月 22 日に発売されました。この革新的なプラットフォーム向けの開発に使える最新のツールをご紹介します。今回は、PS VR2 向けの開発について、グラフィックスと入力の 2 つの側面から解説します。

PS VR2 とグラフィックス

Example of the graphics potential with PS VR2’s 4K resolution

PS VR2 は、PS5 の次世代コンピューティング性能とグラフィックス性能を駆使し、息をのむような高パフォーマンスの VR ゲームの制作を可能にします。4K 解像度相当のタイトルを 60Hz、90Hz、120Hz で動作させることが可能であり、後述するいくつかの手法を用いれば、PS5 でも実現可能なはずです。

まず、レンダーパイプラインについてです。ユニバーサルレンダーパイプライン(URP)が、フォービエイテッドレンダリングや視線追跡など、PS VR2 独自の機能の一部をサポートする Unity で最初のレンダーパイプラインとなるため、ほとんどの VR 開発者の方に URP を推奨しています。また、スクリプタブルレンダーパイプライン(SRP)、ビルトインレンダーパイプライン、HD レンダーパイプライン(HDRP)も使えますが、フォービエイテッドレンダーなど一部の機能は当面の間、URP でしか使用できないので注意が必要です。

全体として、URP は VR ゲームとの相性が抜群に良いのです。柔軟で使い方もわかりやすく、カスタマイズ性もあります。また、オールインワンの VR デバイスを含む複数のプラットフォーム向けに開発する場合にも上手く動作します。SRP を使用して独自のカスタムレンダーパイプラインを作成することができます。また、ゲームが必要とするあらゆるレンダラーを実装できるように、幅広い C# API を提供しています。

PS5 では、新しい NGGC グラフィックス API により、GPU 側も進化しています。NGGC を使って、PS5 で利用可能な最適化技術を、これまでは不可能だった方法で活用しています。また、レンダリングバックエンドを再構築し、GPU の状態遷移を改善しつつ、複数のコアを効率的に使用できるようにしました。これにより、CPU、GPU、メモリの使用効率が向上し、アセットやゲームコードの再オーサリングを行うことなく、同じビジュアルの出力を得ることができます。

フォービエイテッドレンダリング

Example of foveated rendering in use in PS VR2

PS VR2 では、フォービエイテッドレンダリングと呼ばれる技術を使用することができるようになります。この技術は、特定のシーンに必要な GPU レンダリングの負荷を軽減することで、より現実に近いビジュアルで VR ゲームを作ることを可能にします。フォービエイテッドレンダリングは、周辺視野の画質を低下させることで GPU のパフォーマンスを向上させるために使われます。

PS VR2 のハードウェアは、アイトラッキングを利用して GPU レンダリングを最適化することで、さらに一歩踏み込んだ表現が可能です。視線情報をスクリーンスペースに投影することで、プレイヤーが見ているスクリーン領域を正確にとらえ、高画質でレンダリングすることができるのです。

フォービエイテッドレンダリングとアイトラッキングの目的は、重要と判断された部分の画質を高く保ちつつ、重要ではないと判断した部分は解像度をスムーズに落とすことです。つまり、欲しい品質を維持したまま、一部のレンダリングターゲットのサイズを小さくすることができるのです。

Unity ではこのレンダリングの複雑な設定を一切行うことなく、視野角に応じて描画解像度を十分にコントロールし、画質と GPU のパフォーマンスのバランスを取りながら、特定の要件に対応することを可能にしています。

これにより、PS VR2 のフォービエイテッドレンダリングは、標準的なステレオレンダリングで同等の画質の描画を行った場合と比較して、知覚的な損失を生じることなく、最大 2.5 倍の高速なレンダリングを可能にします。また、フォービエイテッドレンダリングをアイトラッキングと組み合わせた場合、最大で 3.6 倍の速度向上が確認されています。(注:これらのテストは、Unity のデモでテストした理想的なパフォーマンスの向上を示したもので、数値は皆さんが開発するゲームによって異なります)

PS VR2 では、知覚上は同じ品質を保ちながら GPU の使用量を大幅に削減することができ、さらにアイトラッキング技術を組み合わせることで、より優れたパフォーマンスを実現できます。

PS VR2 用入力コントロール

PS VR2

アイトラッキングは、グラフィックス性能だけでなく、新たな入力手段も提供してくれます。メニューからのアイテムの選択、NPC とのインタラクションの開始、ワールド内ツールの使用などにアイトラッキングを利用することができます。アイトラッキングは、ゲームプレイのメカニクスの中心的な役割を果たすこともあり得ます。

アイトラッキングの活用は、他の XR 入力デバイスとほぼ同じ仕組みです。仮想世界での位置を定義する両目の位置と回転の組み合わせとなっている、注視のためのコンポーネントにアクセスすることができます。これはユーザーが現在どこを見ているかを知るために使用することができます。

基本的な姿勢情報に加え、プレイヤーの両目の瞳孔径やまばたきの状態も確認できます。これらの情報を姿勢と組み合わせることで、より深くプレイヤーと関わるためのゲームプレイやインタラクションに関する独自のアイデアの形ができてきます。

ここでは、簡単な視線ベースのレチクルの例を紹介します。

public class GazeReticle : MonoBehaviour
{
Vector3 m_GazePosition;
Vector3 m_GazeForward;
Quaternion m_GazeRotation;

	// In this script, gazeTracker is driven by a TrackedPoseDriver component wired up to the Position/Rotation
// of the eyeGazePosition and eyeGazeRotation from PSVR2 headset in the Input System Actions.
public GameObject gazeTracker;

void Update()
{
RaycastHit hitInfo;
m_GazePosition = gazeTracker.transform.position;
m_GazeRotation = gazeTracker.transform.rotation;
m_GazeForward = m_GazeRotation * Vector3.forward;
if (Physics.Raycast(m_GazePosition, m_GazeForward, out hitInfo, 10.0f))
{
transform.position = hitInfo.point;
}
}
}

このスクリプトでは、レチクルの動きを駆動する視線追跡オブジェクトが表示されます。これは、Unity の他の XR コントローラーをトラッキングする時と同様に、TrackedPoseDriver を使用しています。これは、Input System Action Map で設定した eyeGazePosition と eyeGazeRotation に結び付いた形で使えるものです。また、従来の Unity の入力方法を使用する場合は、アイトラッキングを処理するために特別に作られた TrackedPoseProvider を使うことができます。

Sense Controller

Unity 開発者は新たに Sense Controller を利用できるようになりました。これには PS VR2 にしかない、興味深くユニークな機能を備えています。

指タッチ検出は静電容量方式のタッチを利用して、プレイヤーがボタンを押さず、そこに指を置いただけの状態を検出するものです。これらの操作はすべての主要なボタンと親指スティックで利用できるため、これを使ってゲーム中でプレイヤーの手を使ったより自然なジェスチャーを発動させることができます。また、より基本的なアプローチとして、手のモデルを動かしてプレイヤーがコントローラーを見たときに指の位置が「見える」ようにすることもできます。これにより、ヘッドセットを持ち上げたり、特定のボタンを手触りを頼りに探すことがなくなり、プレイヤーは集中を切らさず、体験に没頭できるようになります。

PS VR2 は、新システムにインサイドアウト方式のトラッキング技術を採用し、ヘッドセットとコントローラーの両方で 6 自由度のトラッキングを実現しています。Unity XR の標準スタックのすべてでなくとも、そのほとんどを使用できるようになり、より幅広いプラットフォームに対応したゲーム開発が容易になりました。コントローラー自体を設定するために、従来の Unity Input Manager と新しい Input System パッケージの両方を通して、これらの入力制御を公開しています。

PS VR2 の SDK を使えば、アイトラッキングとコントローラからの入力に加え、PS VR2 の Sense テクノロジーによるハプティクスを完全に制御することが可能です。従来の振動サポートに加え、音声ベースの触覚フィードバックでより深い体験をプレイヤーに提供します。また、新しくなったコントローラーは PS5™ の DualSense コントローラーと同じアダプティブトリガーを搭載しており、ゲームの状況に基づいてトリガーをプログラムし、さまざまなスタイルのフィードバックを提供することができます。PS VR2 では、コントローラーによるハプティクスに加え、ヘッドセットによるフィードバックが追加され、ヘッドセットで調整可能な振動をプレイヤーに与えることができるようになりました。イベント発生を知らせたり、音声と組み合わせてより臨場感のある体験を提供したりすることが可能になります。

皆さんが PS VR2 の入力とハプティクスをゲームに取り入れる際に、それを柔軟に行えるよう努めています。トラッキングの改善と、PS VR2 用の標準 Unity XR SDK の組み合わせにより、XR Interaction Toolkit、その他の XR SDK 依存アセット、Unity Asset Store パッケージ、その他 Unity パッケージマネージャーから利用できるパッケージなど、Unity XR スタックをフル活用することができるようになりました。

これらの機能により、新たなゲームプレイやワールドビルディングの形を模索できるようになります。

PS VR2 をはじめよう

PS VR2 は 2 月 22 日に発売され、Unity 2021 LTS 以降でこのプラットフォーム向けの開発を行うことが可能です。フォービエイテッドレンダリングを行うには、Unity 2022.2 以降が必要です。このヘッドセットが、1 段階上のレベルの性能と入力制御を解放し、より没入感のあるエキサイティングな体験を構築することを可能にしたことが、VR 業界にとってどのような意味を持つことになるのか、私たちは楽しみにしています。

PS VR2 および PS5 のゲームを、#MadewithUnity ハッシュタグを付けてソーシャルメディアでシェアしてください。ご質問がある方は、PlayStation の登録開発者の方は、PlayStation 開発者サイト内の Unity フォーラムで、私たちにご質問の内容をお伝えください。

2023年2月22日 カテゴリ: ゲーム | 10 分 で読めます

Is this article helpful for you?

Thank you for your feedback!

取り上げているトピック
関連する投稿