Les émoticônes sont un élément essentiel de toute expérience sociale. Le module de développement EmoteBar vise à fournir aux joueurs un moyen accessible et personnalisable de faciliter une interaction sociale significative.
Utilisation du module
Installation
Pour utiliser le module EmoteBar dans une expérience :
Dans l'onglet Voir, ouvrez la Boîte à outils et sélectionnez l'onglet Marketplace.
Assurez-vous que le filtre Modèles est sélectionné, puis cliquez sur le bouton Voir tout pour afficher les catégories.
Localisez et cliquez sur la vignette MODULES DEV.
Localisez le module Emote Bar et cliquez dessus, ou faites-le glisser dans la visualisation 3D.
Dans la fenêtre Explorateur, déplacez l'intégralité du modèle EmoteBar dans ServerScriptService. Lors de l'exécution de l'expérience, le module se distribuera lui-même vers divers services et commencera à s'exécuter.
Paramétrage
Le module est pré-figuré avec 7 emotes et peut être facilement personnalisé avec vos propres emotes et vos options d'affichage. Par ailleurs, 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 useDefaultEmotes paramètre de false est prioritaire sur les emotes par défaut et vous permet de définir les emotes personnalisés via la fonction setEmotes.
Script - ConfigureEmoteslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage:WaitForChild("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,},})
Méga Emotes
Un méga emote se forme lorsque plusieurs joueurs dans la même zone exécutent la même emote en même temps. Au fur et à mesure que les joueurs se joignent à l'événement, la méga emote s'agrandit. Au fur et à mesure que les joueurs cessent d'exécuter l'emote, la méga emote se réduit jusqu'à disparaître.
Tempo
Le tempo d'emote est la vitesse à laquelle elle est jouée lorsque l'on appuie une fois sur son bouton. La vitesse par défaut d'emote est déterminée par son defaultTempo. La vitesse d'une emote peut être augmentée ou diminuée en tapant plus ou moins vite sur son bouton.
Référence API
Types
Émote
Chaque emote est représentée par un dictionnaire contenant les paires clé-valeur suivantes :
Clé | Type | Description |
---|---|---|
name | chaîne | Nom d'Emote, par exemple "Shrug". |
animation | chaîne | ID de l'élément pour l'animation de l'emote. |
image | chaîne | ID de l'élément pour l'image de l'emote dans le GUI. |
defaultTempo | Vector3int16 | Facteur de vitesse par défaut auquel l'animation de l'emote doit être jouée. Par exemple, un tempo de 2 jouera l'animation à deux fois sa vitesse normale. Doit être supérieur à 0. |
isLocked | int | Indique 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 en bas de l'écran, séparées en « pages » individuelles. |
EmoteWheel | Variante où les emotes sont affichées dans un anneau lorsqu'un joueur clique ou tape sur son personnage. |
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))EmoteBar.configureClient({guiType = EmoteBar.GuiType.EmoteWheel,})
Fonctions
configureServer
configureServer(config:table):nil
Remplace les options de configuration par défaut côté serveur par les clés/valeurs suivantes du tableau config. Cette fonction ne peut être lancée qu'à partir d'un Script et les modifications seront automatiquement répercutées sur tous les clients.
Clé | Description | Par défaut |
---|---|---|
useDefaultEmotes | Indique si les émoticônes par défaut fournies sont incluses ou non. | true |
useMegaEmotes | Active ou désactive la fonctionnalité des ](#mega-emotes)méga emotes[. | true |
emoteMinPlayers | Nombre minimum de joueurs exécutant la même emote pour contribuer à une méga emote. | 3 |
emoteMaxPlayers | Nombre maximum de joueurs exécutant la même emote pour contribuer à une méga emote. | 50 |
playParticles | Active ou désactive les emotes que les joueurs jouent sous forme de particules flottantes au-dessus de leur tête. | true |
sendContributingEmotes | Active ou désactive l'envoi d'une petite icône emote pour contribuer à la méga emote. | true |
Script
local ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))EmoteBar.configureServer({emoteMinPlayers = 2,playParticles = false,})
configureClient
configureClient(config:table):nil
Remplace les options de paramétrage par défaut du côté client par le biais des clés/valeurs suivantes dans le tableau config. Cette fonction peut uniquement être appelée à partir d'un LocalScript. En fonction de la valeur de guiType, les options dans les onglets indiqués s'appliquent également.
Généralités
Clé | Description | Par défaut |
---|---|---|
guiType | Contrôle la forme que prendra l'interface graphique pour afficher les emotes (EmoteBar.GuiType). | EmoteBar |
useTempo | Active ou désactive la fonction de ](#tempo)tempo[ qui permet aux utilisateurs de contrôler la vitesse ou la lenteur de leurs emotes en activant la même emote de façon répétée et rythmée. | true |
tempoActivationWindow | Temps, en secondes, dont dispose l'utilisateur entre deux activations séquentielles d'une emote pour que celle-ci soit prise en compte dans le tempo. | 3 |
lockedImage | Image pour afficher les emotes verrouillées par-dessus. | "rbxassetid://6905802778" |
EmoteBar
Clé | Description | Par défaut |
---|---|---|
maxEmotesPerPage | Nombre maximum d'émoticônes affichées à la fois. Les écrans plus petits afficheront automatiquement moins d'emotes. | 4 |
emoteBarPosLandscape | Position de la barre d'emote en mode paysage (UDim2). | (0.5, 0, 1, -16) |
emoteBarPosPortrait | Position de la barre emote en mode portrait (UDim2). | (0.5, 0, 1, -100) |
useEmoteHotkeys | Indique si les touches de raccourci emote sont utilisées. Si true, cela permet de lier 1, 2, 3, 4, etc. comme touches de raccourci pour la barre d'emote. Seules les touches numériques 1 à 9 sont prises en charge. | true |
usePageHotkeys | Si les touches de raccourci de la page sont utilisées. Si true, nextPageKey et prevPageKey sont utilisés pour passer d'une page à l'autre. | true |
prevPageKey | La clé utilisée pour revenir à la page précédente des emotes (Enum.KeyCode). | Q |
nextPageKey | La clé utilisée pour passer à la page suivante des emotes (Enum.KeyCode). | E |
leftArrowImage | Image de la flèche gauche (page précédente). | "rbxassetid://6998633654" |
rightArrowImage | Image pour la flèche droite (page suivante). | "rbxassetid://6998635824" |
EmoteWheel
Clé | Description | Par défaut |
---|---|---|
closeImage | Image du bouton de fermeture de la roue des émoticônes, placée au-dessus de l'image closeBackgroundImage. | "rbxassetid://7027440823" |
closeBackgroundImage | Image de fond pour le bouton de fermeture de la roue de l'emote. | "rbxassetid://7027440823" |
emoteHoverImage | Image pour l'indication au survol de l'emote sélectionnée dans la roue. | "rbxassetid://7344843157" |
LocalScript - Emote Bar
local ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))EmoteBar.configureClient({guiType = EmoteBar.GuiType.EmoteBar,maxEmotesPerPage = 6,nextPageKey = Enum.KeyCode.Z,prevPageKey = Enum.KeyCode.C,})
LocalScript - Emote Wheel
local ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))EmoteBar.configureClient({guiType = EmoteBar.GuiType.EmoteWheel,})
setEmotes
setEmotes(emotes:table):nil
Définit les emotes personnalisées à utiliser. Ceux-ci seront ajoutés 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 lancée qu'à partir d'un Script et les modifications seront automatiquement répercutées sur tous les clients.
Voir Emote pour la structure de chaque Emote transmise à cette fonction.
Script - ConfigureEmotes
local ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage:WaitForChild("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):nil
Affiche ou masque la GUI des emotes. Cette fonction ne peut être lancée qu'à partir d'un LocalScript sur un client spécifique.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))EmoteBar.setGuiVisibility(false)
getEmote
getEmote(emoteName:string):table
obtenir une Emote par son nom. Retourne nil si l'Emote est introuvable. Cette fonction ne peut être lancée qu'à partir d'un LocalScript sur un client spécifique.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))local shrug = EmoteBar.getEmote("Shrug")
playEmote
playEmote(emote:Emote):nil
Joue l'Emote donnée et déclenche l'événement emotePlayed sur le serveur, s'il est connecté. Cette fonction ne peut être lancée qu'à partir d'un LocalScript sur un client spécifique.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))local shrug = EmoteBar.getEmote("Shrug")EmoteBar.playEmote(shrug)
lockEmote
lockEmote(emoteName:string):nil
Verrouille l'Emote avec le nom donné. Cette fonction ne peut être lancée qu'à partir d'un LocalScript sur le client.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))EmoteBar.lockEmote("Applaud")
unlockEmote
unlockEmote(emoteName:string):nil
Déverrouille l'Emote avec le nom donné. Cette fonction ne peut être lancée qu'à partir d'un LocalScript sur le client.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))EmoteBar.unlockEmote("Applaud")
Événements
emotePlayed
emotePlayed(player:Player, emote :Emote): RBXScriptSignal
Se déclenche lorsqu'un client joue une emote. Cet événement peut uniquement être lié dans un LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))
EmoteBar.emotePlayed:Connect(function(player, emote)
print(player.Name, "played", emote.name)
end)
lockedEmoteActivated
lockedEmoteActivated(emote:Emote): RBXScriptSignal
Se déclenche lorsqu'un client clique sur une emote verrouillée. Cet événement peut uniquement être lié 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:WaitForChild("EmoteBar"))
EmoteBar.lockedEmoteActivated:Connect(function(emote)
print(Players.LocalPlayer, "clicked", emote.name)
end)