Barra de emotes

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:

  1. En la pestaña Ver, abre la Caja de herramientas y selecciona la pestaña Mercado.

    Botón de activación de Caja de herramientas en Studio
  2. 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.

  3. Busca y haz clic en el mosaico MÓDULOS DE DESARROLLADORES.

  4. Busca el módulo Barra de emotes y haz clic en él o arrástralo y suéltalo en la vista 3D.

  5. 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.

  1. Dentro de ServerScriptService, crea un nuevo Scripty cámbiale el nombre a ConfigureEmotes.

  2. 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 - 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,
    },
    })

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:

ClaveTipoDescripción
namestringNombre del emote, por "Shrug"ejemplo.
animationstringIdentificación del recurso para la animación del emote.
imagestringIdentificación del recurso para la imagen del emote en la interfaz gráfica (GUI).
defaultTemponumberFactor 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.
isLockedboolSi el emote está "bloqueado" para evitar que se active.

Enumeraciones

EmoteBar.GuiType

NombreResumen
EmoteBarForma 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.
EmoteWheelVariante 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.

ClaveDescripciónDefault
useDefaultEmotesSi los emotes predeterminados proporcionados se incluyen o no.true
useMegaEmotesActiva o desactiva la función de mega emotes.true
emoteMinPlayersLa cantidad mínima de jugadores que ejecutan el mismo emote para contribuir a un mega emote.3
emoteMaxPlayersNúmero máximo de jugadores que ejecutan el mismo emote para contribuir a un mega emote.50
playParticlesActiva o desactiva los emotes que los jugadores están jugando como partículas flotantes sobre sus cabezas.true
sendContributingEmotesActiva 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

ClaveDescripciónDefault
guiTypeLos controles que forman la GUI tomarán para mostrar los emotes (EmoteBar.GuiType).EmoteBar
useTempoActiva 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
tempoActivationWindowCantidad de tiempo, en segundos, que el usuario tiene entre activaciones secuenciales de un emote para que cuente como parte del tempo.3
lockedImageImagen para mostrar los emotes bloqueados superpuestos."rbxassetid://6905802778"

EmoteBar

ClaveDescripciónDefault
maxEmotesPerPageNúmero máximo de emotes que se muestran a la vez. Las pantallas más pequeñas mostrarán automáticamente menos emotes.4
emoteBarPosLandscapePosición de la barra de emotes en el modo horizontal (UDim2).(0.5, 0, 1, -16)
emoteBarPosPortraitPosición de la barra de emotes en el modo vertical (UDim2).(0.5, 0, 1, -100)
useEmoteHotkeysSi 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
usePageHotkeysSi se usan las teclas de acceso rápido de la página. Si true, nextPageKeyy prevPageKeyse usan para el paso entre páginas.true
prevPageKeyTecla que se usa para pasar a la página anterior de emotes (Enum.KeyCode).Q
nextPageKeyTecla que se usa para pasar a la siguiente página de emotes (Enum.KeyCode).E
leftArrowImageImagen de la flecha izquierda (página anterior)."rbxassetid://6998633654"
rightArrowImageImagen de la flecha derecha (página siguiente)."rbxassetid://6998635824"

EmoteWheel

ClaveDescripciónDefault
closeImageImagen para el botón de cierre en la rueda de emotes, colocada sobre la closeBackgroundImageimagen ."rbxassetid://7027440823"
closeBackgroundImageImagen de fondo del botón de cierre de la rueda de emotes."rbxassetid://7027440823"
emoteHoverImageImagen 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.

Parámetros
player: PlayerJugador que actuó el emote.
emote:EmoteEmote que se reprodujo.
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:EmoteEmote 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)