Roblox Connect est une expérience où vous pouvez appeler un ami et avoir une conversation en tant qu'avatars, ensemble dans un espace immersif partagé.Du point de vue d'un développeur, c'est une expérience non verrouillée qui démontre une façon de consommer les méthodes et événements liés aux appels de SocialService et PlayerViewService .Les cas d'utilisation possibles sont illimités et ce guide fournit des exemples de leur utilisation dans Roblox Connect.
Aperçu du projet
Les développeurs peuvent introduire une communication d'avatar synchronisée dans n'importe quelle expérience sur Roblox en utilisant les méthodes et les événements actuels.Certains des points forts de la fonctionnalité Roblox Connect notables et des détails de confidentialité des appels sont partagés ci-dessous.
Changeur d'environnement
Pour fournir une meilleure expérience de communication immersive, le projet inclut un 切换环境环境 qui permet aux joueurs de se déplacer d'un environnement à l'autre.Lors du déplacement entre les environnements au même endroit, les personnages des joueurs sont répositionnés via PivotTo() .Lors du déplacement vers un environnement dans un endroit différent, les joueurs sont téléportés via TeleportService à leur emplacement souhaité.
En outre, un modèle « poignée de main » est implémenté pour garantir que les deux joueurs dans l'espace privé acceptent d'être relocalisés avant de le faire réellement.Si un joueur refuse la demande de changement d'environnement, toute la transaction est annulée et aucun joueur n'est délocalisé.
En ce qui concerne l'appel, le téléport est vers un serveur réservé et tous les participants à l'appel sont téléportés ensemble.Si cette condition de téléportation n'est pas remplie, ou si le téléport lui-même échoue, l'appel est terminé.

Modes de caméra
Roblox Connect introduit deux modes de caméra uniques en plus du mode de caméra par défaut, que vous pouvez utiliser pour améliorer vos propres expériences.De plus, lors du passage d'un mode de caméra à un autre, un transitionneur de caméra rend le passage entre les modes transparent.

Image dans l'image
En mode image dans image , le focus de la caméra est sur votre partenaire d'appel et une petite vue de votre personnage flotte sur l'écran.Ce mode inclut également le suivi de la tête et le mouvement du joueur local est restreint.

Cinématique
Le mode cinématique tente de garder les deux personnages joueurs dans le champ de vision de votre caméra en tout temps.Le mouvement du joueur n'est pas restreint et, à mesure que les personnages se déplacent, la caméra détecte leur mouvement et l'ajuste en conséquence.

Jeu gratuit
Le mode jeu gratuit utilise la caméra de personnage Roblox par défaut, vous permettant de vous déplacer tout en parlant également à votre partenaire d'appel.Le caractère de votre partenaire ne sera pas nécessairement en voir.
Barre d'émote
La barre d'émotion du projet est une version clonée du module développeur EmoteBar .Hors de la boîte de modélisation, le module contient de nombreuses fonctionnalités clés, mais Roblox Connect nécessite quelques modifications spécifiques telles que le retour du personnage à l'état "inactif" après avoir effectué l'émote une fois.

Confidentialité
Si quelqu'un qui n'est pas dans l'appel est ajouté au serveur réservé, ou est déjà sur le serveur réservé, l'appel est terminé.
Implémentation de l'API
Roblox Connect profite de nouvelles méthodes et événements SocialService et PlayerViewService pour construire une plateformede communication immersive.
SocialService:PromptPhoneBook() est relié au bouton d'appel dans le lobby de départ afin que les joueurs puissent regarder leur liste de contacts et initier un appel.En tandem, l'événement SocialService.PhoneBookPromptClosed est connecté à un écouteur qui restaure la visibilité du bouton et répositionne la caméra.
La méthode SocialService:CanSendCallingInviteAsync() est utilisée pour vérifier si un joueur est éligible à l'envoi d'invitations à appeler.Si un joueur n'est pas éligible (pas 13+ et pas téléphone ou ID vérifié ), un message de dialogue est affiché.Cette vérification doit être faite avant d'appeler PromptPhoneBook() .
L'événement SocialService.CallInviteStateChanged est connecté à un écouteur qui masque le bouton d'appel, libérant de l'espace d'écran pendant que le joueur attend que son ami réponde à l'demande.Cet événement peut être utilisé pour montrer un état « de connexion » si souhaité.
SocialService:ShowSelfView() et SocialService:HideSelfView() sont reliés à différents modes de caméra.Plus précisément, la vue subjective de l'appelant est affichée en mode image dans image ou mode cinématique, et est cachée en mode jeu libre.
PlayerViewService:GetDeviceCameraCFrame() cartographie l'appareil vers l'orientation de la caméra de l'espace de travail en mode image dans l'image, ce qui fournit une expérience plus immersive.Cette méthode utilise le dispositif de caméra du joueur et n'est applicable qu'aux appareils mobiles.