開発者向けニュースに戻る

マルチプレイヤーのVR体験の構築: マルチプレイヤーSDKのその他の機能、トラベルリライアビリティ、ベストプラクティス

2022年7月12日作成者:Navyata Bawa

この4部構成の最終部に当たる「マルチプレイヤーのVR体験の構築」のブログと動画シリーズから、プラットフォームSDKのQuestのマルチプレイヤー機能を取り上げ、Unityで作成したオープンソース化したSharedSpacesのサンプルについて学びながら検討し、そのサンプルを使って独自のマルチプレイヤーアプリを構築する方法を紹介していきます。関心のある方は、この動画MetaのオープンソースのYouTubeチャンネルでご覧ください。

この記事では、マルチプレイヤーSDKが提供している機能と、トラベルリライアビリティ、ベストプラクティス、要点、リソースについて説明します。SharedSpacesサンプルを基にした、シンプルなマルチプレイヤーVRゲームの作成方法を確認したい場合は、ブログ記事動画をご覧ください。

その他のマルチプレイヤー機能

呼び出し可能なエラーダイアログと再結合

Questに搭載されているプラットフォームSDKのマルチプレイヤー機能は、マルチプレイヤー体験の入力やエッジケースの処理が簡単にできるという、便利な機能です。たとえば、SDKには、グループに参加するために必要なチュートリアルを完了していないことをプレイヤーに知らせるために、呼び出し可能なエラーダイアログ用のAPIが用意されています。

これで、プレイヤーは問題点に気づきやすくなります。また、目的地への移動が予測どおりに機能しない理由を絞り込むのにも役立ちます。このAPIの使用方法の詳細と、表示されるエラーメッセージの一覧については、ドキュメントをご覧ください。

次に示すようにSDKには、ユーザーが接続を失った場合に備えて、[再参加]ダイアログを使用してグループに再参加するオプションも用意されています。

この機能はダイアログを表示するだけで、接続切断の検出、実際の再接続、ディープリンクの処理はユーザーの責任となります。また、誰かユーザーが再参加を試みている間に全員がセッションから退出した場合は、アプリケーションの責任で、参加者全員がセッションを離れたためにセッションが参加できない状態になった ことをエラーメッセージで通知しなければならないことに注意してください。再参加APIの使用方法の詳細、ユースケースの例やベストプラクティスについては、ドキュメントをご覧ください。

Webhook

Webhookを使用すると、アプリのマルチプレイヤー体験に関連する可能性のある変更について、HTTP通知をリアルタイムで受け取ることができます。たとえば、Questでは、アプリのユーザーが新しいロビーやセッションに参加したときに、変更点を問い合わせることなく通知を送信できます。Webhookの設定方法と使用方法の詳細については、ドキュメントをご覧ください。

クイック招待

クイック招待はマルチプレイヤー機能で、Oculusオーバーレイを表示することなく、Oculusへの招待をアプリのエクスペリエンスに統合できます。

クイック招待APIは、アプリへの招待が実装されると利用できるようになり、アプリにクロスプラットフォームのユーザーを表示できるようになります。

APIでは、使用可能なユーザー、直接招待、および送信済みの招待の一覧が表示されます。クイック招待APIの詳細、その前提条件、制限事項、およびAPIの使用方法については、ドキュメントをご覧ください。

グループ起動

グループ起動は、ユーザーが目的地に簡単に参加できるようにするマルチプレイヤー機能で、ユーザーはディープリンクURLを使用してアプリ内で一緒に旅行できます。

グループ起動では、アプリの最適な体験へのリンクを直接作成し、任意のプラットフォームのコミュニティに共有できます。そうしたリンクを使用して、新しいマップのプロモーションをしたり、開発者イベントでプレイを設定したり、限られた報酬を配ったりすることができます。

これらのメソッドの使用方法の詳細やグループ起動を使用できるシナリオの例については、ドキュメントをご覧ください。

最新のOculus開発者ハブ(ODH)のアップデートでは、新しい機能と既存の機能の改善を含め、日常的な開発ワークフローを改善しました。たとえばマルチプレイヤーテストでは、複数のデバイスでODHから直接グループ起動をテストできます。マルチプレイヤーテストは、グループ送信先が登録され、少なくとも1つのバイナリがリリース チャネルにアップロードされているすべてのアプリで機能します。特定の送信先とロビーセッションIDを持つ 1つ以上のデバイスでアプリを起動します。マルチプレイヤーテストの詳細については、ドキュメントをご覧ください。

この機能により、実装がスムーズになり、グループのデスティネーションの信頼性が向上します。ワークフローでマルチプレイヤーテストの利用を開始するには、ドキュメントガイドをご覧ください。

次に、マルチプレイヤーVR体験を温かい雰囲気の中で進める快適なものにするために、実行できる対策をいくつか紹介します。

トラベルリライアビリティ

トラベルリライアビリティとは、ユーザーが目的の目的地に確実かつ正確に到達できることを意味します。ユーザーの没入感を損なうことなく、望ましくないサプライズを防ぐために、トラベルリライアビリティが高いことを確認することが重要です。

ユーザーが移動できる有効な目的地のみを表示することが重要です。目的地をすべてのユーザーが利用できるわけではない場合、その目的地に行けないユーザーが目的地に移動しようとしたときにエラーメッセージを表示する必要があります。

移動が失敗した場所を特定すると、エラー処理に役立ち、起きたことをユーザーに通知できます。ユーザーが意図した目的地まで確実に移動できるようにすることは、スムーズで公正で快適な体験を保証する、マルチプレイヤーVRアプリを設計する際には非常に重要です。ユーザーの移動中は、ユーザーが移動を完了するために必要なユーザー入力を最小限に抑えるように努力する必要があります。

設計上の決定事項にちょっとした変更を加えることでトラベルアベイラビリティが向上し、ユーザーの移動体験がより楽しいものになるシナリオの典型的な例を、以下にいくつか示します。

  • ユーザーがチュートリアルを完了していないが、チュートリアルを完了しないと移動できない設定にしている場合。このような場合は、開発者がチュートリアルをスキップして目的地に直接移動できるようにすることをおすすめします。
  • ユーザーが移動する前にゲームのアバターの設定を行う必要があるが、まだ完了していない場合。このような状況を避けるには、デフォルトのアバターを与えて、体験を続行できるようにすることが最善の方法です。
  • ユーザーが資格情報(Eメール/パスワード)を入力する必要があるログイン画面を通過する必要がある場合。できればユーザーにログイン画面を見せることなく操作を続行できるようにすると、このエクスペリエンスの信頼性が大幅に向上します。
  • ユーザーがゲームの理由で目的地にアクセスできない場合(たとえば、十分に高いレベルを持っていない、十分な現金を持っていない、目的地のロックを解除していないなど)、代わりにメッセージなしでメインメニューに移動します。このような状況に対処するには、行きたい目的地に到達できなかった理由をユーザーに通知することが最善の方法です。
  • ユーザーが移動を開始したときに既にアプリケーションを開いていて、アプリが目的地に連れて行かないという場合があります。そのような場合の最善の方法は、アプリが開いている間に目的地への移動がどのように機能するかをテストし、まだ開かれていないアプリとの一貫性があることを確認することです。ゲーム上の理由でユーザーが現在地を離れることができない場合、またはそうすることが中断を伴う場合は、現時点で新しい目的地に旅行できない理由を伝える適切なメッセージをユーザーに提供することをおすすめします。

次に、マルチプレイヤーVR体験を開発するときに留意すべきベストプラクティスをいくつか挙げます。

ベストプラクティスとリソース

プラットフォームSDKのマルチプレイヤー機能をアプリに統合することにより、ユーザーがアプリに集まりやすくなり、エンゲージメントとリテンションの向上につながります。マルチプレイヤーVRアプリにプラットフォームのマルチプレイヤー機能を組み込むと、煩わしさを軽減できます。アプリ間の一貫性を保つと、新しいプレイヤーはグループに加わって一緒にプレイを開始する方法をすぐに理解できますし、そのアプリ固有のルールを学ぶ必要もありません。最初にリンク先とグループプレゼンスを組み込み、続いて名簿、アプリへの招待、招待リンクを組み込むことをおすすめします。招待を統合する場合のベストプラクティスは、見つけやすい招待ボタンをアプリ内に設定し、アプリへの招待フローを開始することです。

エラーダイアログwebhookを有効にするのは、マルチプレイヤーの信頼性を高め、トラブルシューティングに役立ち、不具合や改善点を容易に特定できるようにするために重要です。

プラットフォームSDKのマルチプレイヤー機能とそれに関連するAPIについて知識を深めるうえで最適なリソースの1つがマルチプレイヤー機能のドキュメントです。ここでは、これまで説明したすべての SDK 機能、アプリケーションでそれらを使用するための最良の方法、サンプルのユースケース、および作業を開始するのに役立つ例について説明します。

Connect 2021のセッションQuestのマルチプレイヤーアプリの構築と拡大では、マルチプレイヤー機能を詳細にレビューし、Echo VRがこれらの機能をゲームに組み込んだ方法について説明しています。また、SharedSpacesサンプルの詳細な解説も掲載されています。

Ready At DawnがOculusプラットフォームマルチプレイヤー機能を使用してEcho VRを向上させた方法の詳細についてはブログ記事に、Ready At DawnプロジェクトリーダーのDavid Neubelt氏と出会い、これらの機能を取り入れることがコミュニティの成長に与える影響を詳しく学んだ過程を記しましたので、そちらをご覧ください。

SharedSpacesのサンプルの詳細については、SharedSpacesマルチプレイヤーショーケースのブログ記事で、マッチングに友人を招待する方法、エッジケース、APIリファレンスなどを解説していますので、そちらをご覧ください。また、VRでユーザーをすぐに集める方法 のブログ記事に、SharedSpacesアプリケーションを作成する際に使用する、基本的な技術の詳細を記しました。

QuestのプラットフォームSDKのマルチプレイヤー機能でできることや、それにより構築できるもの、またSharedSpacesサンプルを使用して作業を開始する方法の詳細については、「マルチプレイヤーのVR体験の構築」 シリーズの以下の過去のブログをご覧ください。


本シリーズについて

本シリーズでは、Unityで作成したオープンソース化したSharedSpacesサンプルを紹介しながらQuestのプラットフォームSDKのマルチプレイヤー機能について説明しています。このブログは「マルチプレイヤーのVR体験の構築」の動画シリーズを補足する、4部構成のブログの第4部です。

プラットフォームSDKのマルチプレイヤー機能や、SharedSpacesサンプルの仕組みの詳細については、Questのマルチプレイヤーアプリの構築と拡大について検討しているこの接続セッションをチェックしてください。 App Labを起動して独自のヘッドセットで実施し、UnityのSharedSpacesのサンプルを試してください。プラットフォームSDKのマルチプレイヤー機能を使用する方法を学ぶには、マルチプレイヤー機能sに関する当社のドキュメントをチェックしてください。

Meta Questの詳細は、ウェブサイトをご覧になるか、当社のYouTubeチャンネルをご視聴いただくか、TwitterFacebookをフォローしてください。ご不明な点、ご意見、ご感想は、開発者のフォーラムにてお知らせください。

Meta Questの詳細は、オープンソースサイトをご覧になるか、当社のYouTubeチャンネルをご視聴いただくか、TwitterFacebookをフォローしてください。