Roblox Connect est une expérience où vous pouvez appeler un ami et avoir une conversation comme vos avatars, ensemble dans un espace immersif partagé. À partir d'un point de vue du développeur, il s'agit d'une expérience non verrouillée par le copie qui montre l'une des façons de consommer les méth
Aperçu du projet
Les développeurs peuvent introduire la communication d'avatar synchrone dans n'importe quelle expérience sur Roblox en utilisant les méthodes et événements actuels. Certains des notables Roblox Connect fonctionnalités et détails de confidentialité sont partagés ci-dessous.
Switcher 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. Lorsque vous vous déplacez entre les environnements dans le même emplacement, les personnages des joueurs sont ré positionnés via PivotTo() . Lorsque vous vous déplacez vers un environnement dans un
De plus, un modèle de « 手shake » est implémenté pour s'assurer que les deux joueurs dans l'espace privé sont d'accord sur le fait d'être relocalisés avant de le faire. Si un joueur rejette la demande de changement d'environnement, l'ensemble de la transaction est annulée et aucun joueur ne se fait relocaler.
En ce qui concerne l'appel, la téléportation 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 la téléportation elle-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, tous les deux desquels vous pouvez utiliser pour améliorer vos propres expériences. De plus, lorsque vous passez entre différents modes de caméra, un transitionneur de caméra rend le changement de mode fluide.
Image dans l'image
En mode image dans l'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 de chaque joueur dans votre fenêtre de caméra à tout moment. Le mouvement des joueurs n'est pas restreint et, à mesure que les personnages se déplacent, la caméra détecte leur mouvement et ajuste en conséquence.
Jeu gratuit
Le mode freeplay utilise la caméra de caractère Roblox par défaut, vous permettant de vous déplacer tout en parlant à votre partenaire de appel. Le personnage de votre partenaire ne sera pas nécessairement en voir.
Barre émote
La barre d'émote du projet est une version clonée du module EmoteBar du développeur. 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 en état "inactif" après avoir exécuté l'emote une fois.
Confidentialité
Si quelqu'un qui n'est pas dans l'appel est ajouté au serveur réservé, ou est déjà dans le serveur réservé, l'appel est terminé.
API d'implémentation
Roblox Connect profite des nouvelles méthodes et événements SocialService et PlayerViewService pour construire une plateformede communication immersive.
SocialService:PromptPhoneBook() est connecté au bouton d'appel dans le lobby de départ afin que les joueurs puissent regarder leur liste de contact et initialiser un appel. En tant que tel, l'événement SocialService.PhoneBookPromptClosed est connecté à un écouteur qui restaure la visibilité du bouton et positionne la caméra.
La méthode SocialService:CanSendCallingInviteAsync() est utilisée pour vérifier si un joueur est éligible à l'envoi d'invitations d'appel. Si un joueur n'est pas éligible (non 13+ et non vérifié par téléphone ou ID), un message de dialogue s'affiche. Ce check doit être effectué avant d'appeler Class.SocialService:Prompt
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 à la demande d'appel. Cet événement peut être utilisé pour montrer un état « connecté » si nécessaire.
Class.SocialService:ShowSelfView() et SocialService:HideSelfView() sont liés à différents modes de caméra. Spécifiquement, la vue de l'appelant est affichée dans le mode Picture-in-Picture ou 0> Cinematic0> et cachée dans le mode SocialService:ShowSelfView()3>.
PlayerViewService:GetDeviceCameraCFrame() mappe le matériel de l'appareil à l'orientation de la caméra dans le Picture-in-Picture mode, ce qui fournit une expérience plus immersive. Ce méthode utilise le matériel de la caméra du joueur et n'est appliqué qu'aux appareils mobiles.