Roblox Connect は、友達を呼び出してアバターとして会話できる経験で、共有の没入空間で一緒に行われます。開発者の視点から、SocialService と PlayerViewService の呼び出し関連メソッドとイベントを消費する方法を示す非コピーロックのエクスペリエンスです。可能な使用ケースは無限であり、このガイドは Roblox Connect で使用される方法の例を提供します。
プロジェクト概要
開発者は、現在の方法とイベントを使用して、Roblox のすべてのエクスペリエンスに同期アバター通信を導入できます。注目すべき Roblox Connect 機能のハイライトと呼吸法のプライバシー詳細は以下で共有されます。
環境切り替え機
より没入感のあるコミュニケーションエクスペリエンスを提供するために、プロジェクトには、プレイヤーが環境から環境へ移動できる 環境スイッチャー が含まれています。同じ場プレースの環境間を移動すると、プレイヤーキャラクターは PivotTo() を通じて再配置されます。異なる場プレースの環境に移動すると、プレイヤーは TeleportService を介して希望の場所にテレポートされます。
さらに、「ハンドシェイク」モデルが実装されて、プライベートスペースにいる両方のプレイヤーが実際に移動する前に同意することを保証します。1人のプレイヤーが環境を変更するリクエストを拒否すると、全体の取引がキャンセルされ、プレイヤーは移動されません。
呼び出しに関しては、テレポートは予約済みのサーバーに行い、すべての呼び出し参加者が同時にテレポートされます。このテレポート条件が満たされていないか、テレポート自体が失敗した場合、呼び出しは終了します。

カメラモード
Roblox Connect は、デフォルトのカメラモードに加えて、2つのユニークなカメラモードを紹介し、両方とも自分の経験を向上させるために使用できます。さらに、複数のカメラモード間を切り替えるとき、カメラ移行者がモード間の切り替えをスムーズに感じさせます。

ピクチャーインピクチャ
ピクチャーインピクチャー モードでは、カメラの焦点はあなたのコールパートナーにあり、あなたのキャラクターの小さなビューが画面に浮かびます。このモードには、ヘッドトラッキングも含まれ、ローカルプレイヤーの動作は制限されます。

映画的
映画モード は、プレイヤーキャラクターをすべての時間、カメラビューポート内に保持しようとします。プレイヤーの動作は制限されておらず、キャラクターが移動すると、カメラはその動作を検出し、適切に調整します。

フリープレイ
フリープレイモードは、デフォルトの Roblox キャラクターカメラを使用し、移動しながらもコールパートナーと話すことができます。パートナーのキャラクターが必ずしも表示されるわけではありません。
エモートバー
プロジェクトの エモートバー は、EmoteBar 開発モジュールのクローンバージョンです。箱から出して、モジュールには多くの重要な機能が含まれていますが、Roblox Connect は、エモートを行った後、キャラクターを "idle" 状態に戻すなど、いくつかの特定の変更が必要です。

プライバシー
呼び出しに参加していない人が予約サーバーに追加されたり、すでに予約サーバーにいた場合、呼び出しは終了します。
API 実装
Roblox Connect は、新しい SocialService および PlayerViewService メソッドとイベントを利用して、没入型コミュニケーションプラットフォームを構築します。
SocialService:PromptPhoneBook() はスタートロビーの呼び出しボタンに接続されており、プレイヤーが連絡先リストを見て呼び出しを開始できるようになっています。同時に、SocialService.PhoneBookPromptClosed イベントは、ボタンの表示を回復し、カメラを再配置するリスナーに接続されます。
SocialService:CanSendCallingInviteAsync() メソッドは、プレイヤーが呼び出しを送信できるかどうかをチェックするために使用されます。プレイヤーが資格がない場合 (13以上ではなく、電話またはIDが確認されていない)、ダイアログメッセージが表示されます。このチェックは PromptPhoneBook() を呼び出す前に行う必要があります。
SocialService.CallInviteStateChanged イベントは、呼び出しボタンを隠すリスナーに接続され、プレイヤーが友達に電話リクエストに応答するのを待っている間、画面スペースを解放します。このイベントを使用して、必要に応じて「接続」状態を表示できます。
SocialService:ShowSelfView() と SocialService:HideSelfView() は、さまざまなカメラモードに接続されています。特に、呼び出し者の自己ビューは ピクチャーインピクチャー または 映画モード で表示され、フリープレイ モードで隠されます。
PlayerViewService:GetDeviceCameraCFrame() マップデバイスをワークスペースカメラのオリエンテーションにピクチャーインピクチャーモードで配置し、より没入感のある体験を提供するこのメソッドは、プレイヤーのカメラデバイスを利用し、モバイルデバイスにのみ適用されます。