Los emotes son un componente central de cualquier experiencia social. El módulo de desarrolladores EmoteBar tiene como objetivo proporcionar a los jugadores una forma accesible y personalizable para facilitar una interacción social significativa.
Uso del módulo
Instalación
Sigue estos pasos para usar el módulo EmoteBar en una experiencia:
En la pestaña Ver, abre la Caja de herramientas y selecciona la pestaña Mercado.
Asegúrate de que la clasificación de Modelos esté seleccionada y, a continuación, haz clic en el botón Ver todo para las Categorías.
Busca y haz clic en el mosaico MÓDULOS DE DESARROLLADORES.
Busca el módulo Barra de emotes y haz clic en él o arrástralo y suéltalo en la vista 3D.
En la ventana del Explorador, mueve todo el modelo de EmoteBar a ServerScriptService. Al ejecutar la experiencia, el módulo se distribuirá a varios servicios y comenzará a ejecutarse.
Configuración
El módulo está preconfigurado con 7 emotes y se puede personalizar fácilmente con tus propios emotes y opciones de visualización. Además, si el jugador posee algún gesto de eventos anteriores de Roblox, como Lil Nas X, Royal Blood o Twenty One Pilots, esos emotes se añadirán automáticamente a la lista de emotes disponibles.
Dentro de ServerScriptService, crea un nuevo Scripty cámbiale el nombre a ConfigureEmotes.
Pega el siguiente código en el script nuevo ConfigureEmotes. La useDefaultEmotesconfiguración falsede reemplaza los emoticones predeterminados y te permite definir emoticones personalizados con la función 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,},})
Emoticones Mega
Se forma un mega emote cuando varios jugadores en la misma área ejecutan el mismo emote al mismo tiempo. A medida que más y más jugadores se unen, el mega emote crece. A medida que los jugadores dejan de usar el emote, este se hace más pequeño hasta que finalmente desaparece.
Tempo
El tempo de un emote es la velocidad a la que se reproduce cuando se toca su botón una vez. La velocidad predeterminada de un emote está determinada por su defaultTempo. La velocidad de un emote se puede aumentar o disminuir al tocar su botón más rápido o más lento.
Referencia API
Tipos
Emote
Cada emote está representado por un diccionario con los siguientes pares clave-valor:
Clave | Tipo | Descripción |
---|---|---|
name | string | Nombre del emote, por "Shrug"ejemplo. |
animation | string | Identificación del recurso para la animación del emote. |
image | string | Identificación del recurso para la imagen del emote en la interfaz gráfica (GUI). |
defaultTempo | number | Factor de velocidad predeterminado al que se debe reproducir la animación del emote. Por ejemplo, un tempo de 2 reproducirá la animación a una velocidad dos veces mayor a la normal. Debe ser mayor que 0. |
isLocked | bool | Si el emote está "bloqueado" para evitar que se active. |
Enumeraciones
EmoteBar.GuiType
Nombre | Resumen |
---|---|
EmoteBar | Forma predeterminada en la que los emotes se muestran en una barra a lo largo de la parte inferior de la pantalla, separados en "páginas" individuales. |
EmoteWheel | Variante en la que los emotes se muestran en un anillo cuando un jugador hace clic o toca en el personaje de su jugador. |
LocalScript
local ReplicatedStorage = game: GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))EmoteBar.configureClient({guiType = EmoteBar. GuiType.EmoteWheel,})
Funciones
configureServer
configureServer(config:table):nil
Reemplaza las opciones de configuración predeterminadas del lado del servidor a través de los siguientes claves/valores de la configtabla . A esta función solo se puede acceder desde unScript y los cambios se replicarán automáticamente en todos los clientes.
Clave | Descripción | Default |
---|---|---|
useDefaultEmotes | Si los emotes predeterminados proporcionados se incluyen o no. | true |
useMegaEmotes | Activa o desactiva la función de mega emotes. | true |
emoteMinPlayers | La cantidad mínima de jugadores que ejecutan el mismo emote para contribuir a un mega emote. | 3 |
emoteMaxPlayers | Número máximo de jugadores que ejecutan el mismo emote para contribuir a un mega emote. | 50 |
playParticles | Activa o desactiva los emotes que los jugadores están jugando como partículas flotantes sobre sus cabezas. | true |
sendContributingEmotes | Activa o desactiva el envío de un pequeño icono de emote para contribuir al mega 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
Invalida la configuración predeterminada del lado del cliente mediante los siguientes claves/valores de la configtabla. A esta función solo se puede acceder desde unLocalScript. Dependiendo del valor de guiType, también se aplican las opciones en las pestañas señaladas.
General
Clave | Descripción | Default |
---|---|---|
guiType | Los controles que forman la GUI tomarán para mostrar los emotes (EmoteBar.GuiType). | EmoteBar |
useTempo | Activa o desactiva la función tempo, en la cual los usuarios pueden controlar la rapidez o la lentitud con la que se reproducen sus emotes al activar repetidamente el mismo emote de forma rítmica. | true |
tempoActivationWindow | Cantidad de tiempo, en segundos, que el usuario tiene entre activaciones secuenciales de un emote para que cuente como parte del tempo. | 3 |
lockedImage | Imagen para mostrar los emotes bloqueados superpuestos. | "rbxassetid://6905802778" |
EmoteBar
Clave | Descripción | Default |
---|---|---|
maxEmotesPerPage | Número máximo de emotes que se muestran a la vez. Las pantallas más pequeñas mostrarán automáticamente menos emotes. | 4 |
emoteBarPosLandscape | Posición de la barra de emotes en el modo horizontal (UDim2). | (0.5, 0, 1, -16) |
emoteBarPosPortrait | Posición de la barra de emotes en el modo vertical (UDim2). | (0.5, 0, 1, -100) |
useEmoteHotkeys | Si se usan las teclas de acceso rápido de emotes. Si true, esto une 1, 2, 3, 4, etc. como teclas de acceso rápido para la barra de emotes. Solo se admiten las claves numéricas de la 1 a la 9. | true |
usePageHotkeys | Si se usan las teclas de acceso rápido de la página. Si true, nextPageKeyy prevPageKeyse usan para el paso entre páginas. | true |
prevPageKey | Tecla que se usa para pasar a la página anterior de emotes (Enum.KeyCode). | Q |
nextPageKey | Tecla que se usa para pasar a la siguiente página de emotes (Enum.KeyCode). | E |
leftArrowImage | Imagen de la flecha izquierda (página anterior). | "rbxassetid://6998633654" |
rightArrowImage | Imagen de la flecha derecha (página siguiente). | "rbxassetid://6998635824" |
EmoteWheel
Clave | Descripción | Default |
---|---|---|
closeImage | Imagen para el botón de cierre en la rueda de emotes, colocada sobre la closeBackgroundImageimagen . | "rbxassetid://7027440823" |
closeBackgroundImage | Imagen de fondo del botón de cierre de la rueda de emotes. | "rbxassetid://7027440823" |
emoteHoverImage | Imagen para la indicación del paso del emote seleccionado en la rueda. | "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
Establece los emotes personalizados que se van a usar. Estos se añadirán a los valores predeterminados si useDefaultEmoteses true, o reemplazarán los valores predeterminados si useDefaultEmoteses false. A esta función solo se puede acceder desde unScript y los cambios se replicarán automáticamente en todos los clientes.
Consulta Emote para ver la estructura de cada emote pasado a esta función.
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
Muestra u oculta la GUI de los emotes. A esta función solo se puede acceder desde un LocalScripten un cliente específico.
LocalScript
local ReplicatedStorage = game: GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))EmoteBar.setGuiVisibility(false)
getEmote
getEmote(emoteName:string):table
Obtiene un Emote por nombre. Retorna nilsi el emote no se puede encontrar. A esta función solo se puede acceder desde un LocalScripten un cliente específico.
LocalScript
local ReplicatedStorage = game: GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))local shrug = EmoteBar.getEmote("Shrug")
playEmote
playEmote(emote:Emote):nil
Reproduce el Emote dado y dispara el evento emotePlayed en el servidor, si está conectado. A esta función solo se puede acceder desde un LocalScripten un cliente específico.
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
Desbloquea el Emote con el nombre dado. A esta función solo se puede acceder desde un LocalScripten el cliente.
LocalScript
local ReplicatedStorage = game: GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))EmoteBar.lockEmote("Applaud")
unlockEmote
unlockEmote(emoteName:string):nil
Bloquea el Emote con el nombre dado. A esta función solo se puede acceder desde un LocalScripten el cliente.
LocalScript
local ReplicatedStorage = game: GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))EmoteBar.unlockEmote("Applaud")
Eventos
emotePlayed
emotePlayed(player:Player, emote:Emote): RBXScriptSignal
Se dispara cuando cualquier cliente juega un emote. Este evento solo se puede conectar en 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 dispara cuando un cliente hace clic en un emote bloqueado. Este evento solo se puede conectar en un LocalScript.
Parámetros | |
---|---|
emote:Emote | Emote bloqueado que se activó. |
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)