Les emotes sont un élément essentiel de toute expérience sociale. Le module EmoteBar pour développeurs vise à fournir aux joueurs un moyen accessible et personnalisable de faciliter des interactions sociales significatives.
Utilisation du module
Installation
Pour utiliser le module EmoteBar dans une expérience :
Depuis le menu Fenêtre de Studio ou la barre d'outils de l'onglet Accueil, ouvrez le Toolbox et sélectionnez l'onglet Créateur Store.

Assurez-vous que le tri des Modèles est sélectionné, puis cliquez sur le bouton Voir Tout pour Catégories.

Localisez et cliquez sur le carré Packages.
Localisez le module Emote Bar et cliquez dessus, ou faites-le glisser dans la vue 3D.

Dans la fenêtre Explorateur, déplacez le modèle entier EmoteBar dans ReplicatedStorage. Lors de l'exécution de l'expérience, le module commencera à fonctionner.
Configuration
Le module est préconfiguré avec 7 emotes et peut facilement être personnalisé avec vos propres emotes et options d'affichage. De plus, si le joueur possède des emotes d'événements Roblox précédents tels que Lil Nas X, Royal Blood ou Twenty One Pilots, ces emotes seront automatiquement ajoutées à la liste des emotes disponibles.
Dans ServerScriptService, créez un nouveau Script et renommez-le ConfigureEmotes.

Collez le code suivant dans le nouveau script ConfigureEmotes. Le paramètre useDefaultEmotes réglé sur false remplace les emotes par défaut et vous permet de définir des emotes personnalisés via la fonction setEmotes.
Script - ConfigureEmoteslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureServer({useDefaultEmotes = false,})EmoteBar.setEmotes({{name = "Hello",animation = "rbxassetid://3344650532",image = "rbxassetid://7719817462",defaultTempo = 1,},{name = "Applaud",animation = "rbxassetid://5915693819",image = "rbxassetid://7720292217",defaultTempo = 2,},})
Mega emotes
Une mega emote se forme lorsque plusieurs joueurs dans la même zone effectuent la même emote en même temps. À mesure que de plus en plus de joueurs se joignent, la mega emote devient plus grande. Lorsque les joueurs cessent d'effectuer l'emote, la mega emote devient plus petite jusqu'à disparaître finalement.

Tempo
Le tempo d'une emote est la vitesse à laquelle elle se joue lorsqu'on tape son bouton une fois. La vitesse par défaut d'une emote est déterminée par son defaultTempo. La vitesse d'une emote peut être augmentée ou diminuée en tapant son bouton plus rapidement ou plus lentement.
Référence API
Types
Emote
Chaque emote est représentée par un dictionnaire avec les paires clé-valeur suivantes :
| Clé | Type | Description |
|---|---|---|
| name | string | Nom de l'emote, par exemple "Shrug". |
| animation | string | ID d'actif pour l'animation de l'emote. |
| image | string | ID d'actif pour l'image de l'emote dans l'interface utilisateur. |
| defaultTempo | number | Facteur de vitesse par défaut auquel jouer l'animation de l'emote. Par exemple, un tempo de 2 jouera l'animation à deux fois sa vitesse normale. Doit être supérieur à 0. |
| isLocked | bool | Si l'emote est "verrouillée" et ne peut pas être activée. |
Enums
EmoteBar.GuiType
| Nom | Résumé |
|---|---|
| EmoteBar | Forme par défaut où les emotes sont affichées dans une barre le long du bas de l'écran, séparées en pages individuelles. |
| EmoteWheel | Version où les emotes sont affichées en cercle lorsque le joueur clique ou tape sur son personnage. |
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureClient({guiType = EmoteBar.GuiType.EmoteWheel,})
Fonctions
configureServer
configureServer(config: table)
Remplace les options de configuration par défaut côté serveur à travers les clés/valeurs suivantes dans le tableau config. Cette fonction ne peut être appelée que depuis un Script et les modifications se répliqueront automatiquement à tous les clients.
| Clé | Description | Par défaut |
|---|---|---|
| useDefaultEmotes | Si les emotes par défaut fournies sont incluses ou non. | true |
| useMegaEmotes | Active ou désactive la fonctionnalité des mega emotes. | true |
| emoteMinPlayers | Nombre minimum de joueurs effectuant la même emote pour contribuer à une mega emote. | 3 |
| emoteMaxPlayers | Nombre maximum de joueurs effectuant la même emote pour contribuer à une mega emote. | 50 |
| playParticles | Active ou désactive les emotes que les joueurs jouent en tant que particules flottantes au-dessus de leurs têtes. | true |
| sendContributingEmotes | Active ou désactive l'envoi d'une petite icône d'emote pour contribuer à la mega emote. | true |
Scriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureServer({emoteMinPlayers = 2,playParticles = false,})
configureClient
configureClient(config: table)
Remplace les options de configuration par défaut côté client à travers les clés/valeurs suivantes dans le tableau config. Cette fonction ne peut être appelée que depuis un LocalScript. Selon la valeur de guiType, les options dans les onglets notés s'appliquent également.
| Clé | Description | Par défaut |
|---|---|---|
| guiType | Contrôle la forme que prendra l'interface utilisateur pour afficher les emotes (EmoteBar.GuiType). | EmoteBar |
| useTempo | Active ou désactive la fonctionnalité de tempo où les utilisateurs peuvent contrôler à quelle vitesse ou lenteur leurs emotes sont jouées en activant à plusieurs reprises la même emote de manière rythmée. | true |
| tempoActivationWindow | Temps, en secondes, dont dispose l'utilisateur entre les activations successives d'une emote pour qu'elle compte dans le tempo. | 3 |
| lockedImage | Image à afficher par-dessus les emotes verrouillées. | "rbxassetid://6905802778" |
LocalScript - Emote Barlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureClient({guiType = EmoteBar.GuiType.EmoteBar,maxEmotesPerPage = 6,nextPageKey = Enum.KeyCode.Z,prevPageKey = Enum.KeyCode.C,})
LocalScript - Emote Wheellocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureClient({guiType = EmoteBar.GuiType.EmoteWheel,})
setEmotes
setEmotes(emotes: table)
Définit les emotes personnalisés à utiliser. Celles-ci seront ajoutées aux valeurs par défaut si useDefaultEmotes est true, ou remplaceront les valeurs par défaut si useDefaultEmotes est false. Cette fonction ne peut être appelée que depuis un Script et les changements se répliqueront automatiquement à tous les clients.
Voir Emote pour la structure de chaque emote passée à cette fonction.
Script - ConfigureEmoteslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureServer({useDefaultEmotes = false,})EmoteBar.setEmotes({{name = "Hello",animation = "rbxassetid://3344650532",image = "rbxassetid://7719817462",defaultTempo = 1,},{name = "Applaud",animation = "rbxassetid://5915693819",image = "rbxassetid://7720292217",defaultTempo = 2,},})
setGuiVisibility
setGuiVisibility(visible: boolean)
Affiche ou cache l'interface utilisateur des emotes. Cette fonction ne peut être appelée que depuis un LocalScript sur un client spécifique.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.setGuiVisibility(false)
getEmote
Récupère une Emote par nom. Retourne nil si l'emote ne peut pas être trouvée. Cette fonction ne peut être appelée que depuis un LocalScript sur un client spécifique.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)local shrug = EmoteBar.getEmote("Shrug")
playEmote
playEmote(emote: Emote)
Joue l'Emote donné et déclenche l'événement emotePlayed sur le serveur, si connecté. Cette fonction ne peut être appelée que depuis un LocalScript sur un client spécifique.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)local shrug = EmoteBar.getEmote("Shrug")EmoteBar.playEmote(shrug)
lockEmote
lockEmote(emoteName: string)
Verrouille l'Emote avec le nom donné. Cette fonction ne peut être appelée que depuis un LocalScript sur le client.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.lockEmote("Applaud")
unlockEmote
unlockEmote(emoteName: string)
Déverrouille l'Emote avec le nom donné. Cette fonction ne peut être appelée que depuis un LocalScript sur le client.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.unlockEmote("Applaud")
Événements
emotePlayed
Se déclenche lorsque tout client joue une emote. Cet événement ne peut être connecté que dans un LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage.EmoteBar)
EmoteBar.emotePlayed:Connect(function(player, emote)
print(player.Name, "a joué", emote.name)
end)
lockedEmoteActivated
Se déclenche lorsqu'un client clique sur une emote verrouillée. Cet événement ne peut être connecté que dans un LocalScript.
| Paramètres | |
|---|---|
| emote: Emote | Emote verrouillée qui a été activée. |
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local EmoteBar = require(ReplicatedStorage.EmoteBar)
EmoteBar.lockedEmoteActivated:Connect(function(emote)
print(Players.LocalPlayer, "a cliqué sur", emote.name)
end)