パーティーとパーティーチャット
This is a Platform SDK feature requiring Data Use Checkup
この機能や他のPlatform SDK機能を利用するには、データの使用状況の確認(DUC)を完了する必要があります。DUCは、開発者ポリシーを遵守していることを確認するためのものです。チームの管理者が、ユーザーデータの利用がプラットフォームガイドラインに沿っていることを証明する必要があります。アプリレビューチームがDUCを審査して承認するまで、プラットフォームの機能はテストユーザーのみが利用できます。パーティーを使うと、Meta Horizonホームで友達とボイスチャットすることができます。例えば、友達同士で集まってホームでパーティーを開始し、一緒にプレイしたいゲームについてチャットできます。アプリの起動後も、そのアプリを使用している間はチャットセッションが継続します。
マルチプレイヤーアプリにボイスチャット機能もある場合は、パーティーチャットを無効にすることができます。
ユーザーは、パーティーを作ってそのパーティーのメンバーとのボイスチャットを始めることができます。また、参加するよう招待することもできます。パーティーボイスチャットはVRの複数のアプリ間で維持され、ユーザーはアプリ間を移動しながらやり取りを継続できます。アプリにボイスチャット機能がある場合、このことが原因で問題が発生する可能性があります。
Apps for children can't use Platform SDK features
13歳未満の子どもを主なユーザーとしてアプリを自己認証させる場合は、Platform SDK機能の使用を避ける必要があります。この制限は、年齢別ガイドラインを遵守するためのものです。確実に遵守するため、アプリのデータ使用状況の確認は無効になっています。Getting the current party is not available
2025年6月をもって、現在のパーティーを取得するためのAPIは利用できなくなりました。 現在のパーティーを取得するAPIは次のとおりです。
ovr_Party_GetCurrent()
注: このAPIへのすべてのリクエストは、コード10のエラー応答を返します。エラーメッセージは「サーバーレスポンスが有効ではないJSONです」となります。
パーティーをサポートするために統合を行う必要はありません。ただし、アプリでのコマンドやチャットにマイクを使用する場合は、いくつか検討すべき点があります。ユーザーが参加できるチャットの種類を、以下のリストに示します。
- システムVoIP (別名パーティーVoIP)は、パーティーとHorizonホームで使用されるVoIPサービスです。このサービスは統合を必要とせず、すべてのユーザーが利用可能です。
- プラットフォームVoIPは、Meta Horizonプラットフォームで提供されるVoIPサービスであり、アプリにボイスチャットを統合するためのオプションの1つです。詳しくは、ボイスチャット(VoIP)をご覧ください。
- アプリVoIPは、アプリで使用するMeta Quest以外のVoIPサービスです。
このページでは、アプリをパーティー/システムVoIPと連携させながら、マイクを使ってチャットしたりコマンドを出したりできるようにする方法を説明します。
Link PC-VRデバイスをターゲットとするアプリでのVoIPのオプション
アプリでプラットフォームVoIPかアプリVoIPのいずれかのVoIPを実装する予定の場合は、2つのチャットストリーミングを処理する必要があります。
ここでは、複数のチャットストリームを扱う例を見てみましょう。
- AyaとBettyがパーティーに参加しています。
- KaiがプレイしているアプリをAyaが起動します。
- AyaがKaiをマルチプレイヤーゲームに招待します。
このシナリオを適切に処理しないと、AyaはBettyとパーティーVoIPで会話し、KaiとはアプリまたはプラットフォームVoIPで会話できますが、BettyとKaiが互いの声を聞くことができません。
対応策の1つとして、パーティーVoIPのストリーミングを無効にし、KaiをアプリVoIPに追加することでこの競合を避ける方法が考えられます。
- パーティーVoIPを無効にします。
- KaiをアプリVoIPに追加します。
- Aya、Betty、Kaiが3人で会話できるようになります。
Meta Questが提供するシステムVoIP APIを使うと、ユーザーがパーティーに参加してシステムVoIPを使っているかどうかを検出し、VoIPストリーミングを無効にできます。
システムVoIP APIを使うには、まずシステムVoIPの状態を確認し、ユーザーステータスがアクティブであるかどうかを確認します。
システムVoIPの状態を確認するには、2つの方法があります。すべてのフレームを確認する方法と、通知をリッスンする方法です。
すべてのフレームを確認する - 次の関数を使用すれば、システムVoIPがアクティブであるかどうかをいつでも確認できます。これは同期関数であり、リクエストではないことに注意してください。
ovr_Voip_GetSystem VoIPStatus() == ovrSystem VoIPStatus_Active
通知をリッスンする - VoIPの状態が変化した時点で通知を受け取るには、次のようにリクエストします。ネイティブまたはUnrealアプリでは、ovrMessage_Notification_Voip_System VoIPStateの通知をリッスンし、その後、ovr_Message_GetSystem VoIPState() とovr_System VoIPState_GetStatus()を使ってステータスを取得します。
状態はすぐに変わる可能性があります。通知メッセージから抽出した値は、通知がメッセージキューに追加された時点での状態であり、その後にメッセージが処理されたときの状態とは異なっている場合があります。通知をリッスンしている場合でも、その値を無視して同期関数で現在の状態を確認することができます。
次に、VoIPストリーミングを無効にしてユーザーに聞こえないようにしたり、ユーザーが選択したストリーミングだけを聞けるようにしたりできます。
システムVoIPが有効な場合は次のことを行えます。
- ユーザーがアプリ内VoIPを使用できるようにする - ユーザーがパーティーチャットではなくアプリ内チャットを使用できるようにする場合は、このオプションを使用します。
ovr_Voip_SetSystem VoIPSuppressed(bool suppressed)を呼び出してシステムVoIPを無効にしてから、プラットフォームVoIPや独自のVoIPサービスを使ってアプリVoIPを実行します。 - ユーザーがシステム/パーティーVoIPを使用できるようにする - ユーザーがアプリVoIPではなく引き続きパーティーチャットを使えるようにする場合は、このオプションを使用します。アプリ内VoIPを無効にします(ユーザーのマイク入力を他のユーザーに送信せず、ユーザーに他のユーザーの音声が再生されないようにします)。プラットフォームVoIPを使用している場合、VoIPストリーミングの無効化に関する情報はボイスチャット(VoIP)ページで確認することができます。
システムVoIPを無効化していたアプリが終了すると、無効化は解除されます。ユーザーがアプリのマルチプレイヤーの部分(アプリのホームメニューなど)から退出したときに、ユーザーのパーティーVoIPの無効化を解除して、ユーザーがパーティーとのチャットを再開できるようにすることも可能です。
また、ユーザーがシステムVoIPとアプリ内VoIPを切り替えられるようにすることもできます。このようにすれば、ユーザーはパーティーとの会話を続けるか(その場合はアプリ内VoIPを無効化します)、アプリ内VoIPを使用するか(その場合はシステムVoIPを無効化します)を選択できます。
注: 以下のメソッドはAndroid開発向けのものです。
Androidでは、一度に1つのデバイスしかマイクにアクセスできません。そこでMetaでは、ユーザーがシステムVoIPとパーティーVoIPを切り替えるためのマイクスイッチャー機能を開発しました。詳しくは、
マイクスイッチャーのドキュメントをご覧ください。