Barra de Emotes

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

Emotes são um componente central de qualquer experiência social. O EmoteBarmódulo de desenvolvedores visa fornecer aos jogadores uma maneira acessível, personalizável de facilitar a interação social significativa.

Uso de Módulo

Instalação

Para usar o módulo EmoteBar em uma experiência:

  1. Na aba Ver, abra a caixa de ferramentas e selecione a aba Loja do Criador.

    Toolbox toggle button in Studio
  2. Certifique-se de que a classificação Modelos foi selecionada, então clique no botão Ver Todos para Categorias .

  3. Localize e clique no mosaico Modulos de Desenvolvedor .

  4. Localize o módulo Barra de Emote e clique nele, ou arraste e solte na janela de ver3D.

  5. Na janela Explorer, mova o modelo completo de EmoteBar para ServerScriptService . Ao executar a experiência, o módulo será distribuído para vários serviços e começará a funcionar.

Configuração

O módulo é pré-Configurado com 7 emotes e pode ser facilmente personalizado com os seus próprios emotes e opções de exibição. Além disso, se o jogador possuir quaisquer emotes de eventos anteriores do Roblox, como Lil Nas X, Royal Blood ou Twenty One Pilots, esses emotes serão automaticamente adicionados à lista de emotes disponíveis.

  1. Em ServerScriptService , crie um novo Script e renomeie-o ConfigureEmotes .

  2. Paste o seguinte código no novo ConfigureEmotes script. A configuração useDefaultEmotes de false substitui os emotes padrão e permite que você defina emotes personalizados via a função 1> setEmotes1>.

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

Mega Emotes

Um mega emote é formado quando vários jogadores na mesma área executam o mesmo emote ao mesmo tempo. À medida que mais e mais jogadores se juntam, o mega emote fica maior. À medida que os jogadores parar de executar o emote, o mega emote fica menor até que finalmente desapareça.

Tempo

O tempo de um emote é a velocidade em que ele toca quando seu botão é pressionado uma vez. A velocidade padrão de um emote é determinada por seu newTempo. A velocidade de um emote pode ser aumentada ou diminuída ao pressionar seu botão mais rápido ou mais devagar.

Referência da API

Tipos

Emoção

Cada emote é representado por um dicionário com as seguintes pares de chave-valor:

ChaveTipoDescrição
namestring / cadeia / textoNome do emote, por exemplo "Shrug".
animationstring / cadeia / textoID de ativo para a animaçõesdo emote.
imagestring / cadeia / textoID de ativo para a imagem do emote na Interface gráfica do usuário.
defaultTemponúmeroFator de velocidade padrão no qual a animaçõesde emote será exibida. Por exemplo, um tempo de 2 segundos fará a animação exibir em duas vezes sua velocidade normal. Deve ser maior que 0.
isLockedbooleanoSe o emote estiver "trancado" de ser ativado.

Enums

EmoteBar.GuiTipo

NomeVisão Geral
EmoteBarFormulário padrão onde os emotes são exibidos em uma barra na parte inferior da tela, separados em "páginas" individuais.
EmoteWheelVariante onde os emotes são exibidos em um anel quando um jogador clica ou toca no personagem deles.
Script Local

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))
EmoteBar.configureClient({
guiType = EmoteBar.GuiType.EmoteWheel,
})

Funções

Configurar o Servidor

Configurar o Servidor (Configurar: table )

Substitui as opções de configuração padrão do lado do servidor através das seguintes chaves/valores na tabela config. Essa função só pode ser chamada a partir de um Script e as alterações serão replicadas automaticamente para todos os clientes.

ChaveDescriçãoPadrão
useDefaultEmotesSe os emotes padrão fornecidos estão incluídos ou não.verdade
useMegaEmotesHabilita ou desabilita a funcionalidademega emotes.verdade
emoteMinPlayersNúmero mínimo de jogadores executando o mesmo emote para contribuir para um emote mega.3
emoteMaxPlayersNúmero máximo de jogadores executando o mesmo emote para contribuir para um emote mega.50
playParticlesAtiva ou desativa os emotes que os jogadores estão jogando como partículas flutuantes acima de suas cabeças.verdade
sendContributingEmotesAtiva ou desativa o envio de um pequeno ícone de emote para contribuir para o mega emote.verdade
Script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))
EmoteBar.configureServer({
emoteMinPlayers = 2,
playParticles = false,
})

ConfigurarCliente

ConfigurarCliente(config: table )

Substitui as opções de configuração do lado do cliente através das seguintes chaves/valores na tabela config. Essa função só pode ser chamada a partir de um LocalScript . Dependendo do valor de guiType, as opções nas abas notadas também se aplicam.

ChaveDescriçãoPadrão
guiTypeControles que formam a GUI levará para exibir emotes (EmoteBar.GuiType).EmoteBar
useTempoHabilita ou desabilita a função tempo onde os usuários podem controlar a rapidez ou velocidade de seus emotes repetivamente ativando o mesmo ritmo de emote.verdade
tempoActivationWindowQuantidade de tempo, em segundos, que o usuário tem entre as ativações sequenciais de um emote para que ele contem como parte do tempo.3
lockedImageImagem para exibir emotes bloqueados sobre a cabeça.“rbxassetid://6905802778”
LocalScript - Barra de Emote

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 - Roda de Emote

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))
EmoteBar.configureClient({
guiType = EmoteBar.GuiType.EmoteWheel,
})

setEmotes

setEmotes(emotes: table )

Define os emotes personalizados para usar. Esses serão adicionados aos padrões se useDefaultEmotes for adicionado aos padrões se true for adicionado aos padrões se useDefaultEmotes for adicionado aos padrões se 1> useDefaultEmotes1> for adicionado aos padrões se 4> useDefault

Veja Emote para a estrutura de cada emote passado para esta função.

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

setGuiVisibilidade

setGuiVisibility(visível: boolean )

Mostra ou oculta a Interface gráfica do usuáriode emotes. Essa função só pode ser chamada de um LocalScript em um cliente específico.

Script Local

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))
EmoteBar.setGuiVisibility(false)

obterEmote

getEmote(emoteName: string>: table

Obtém um Emote por nome. Retorna nil se o emote não puder ser encontrado. Essa função só pode ser chamada de um LocalScript em um cliente específico.

Script Local

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))
local shrug = EmoteBar.getEmote("Shrug")

emote de jogo

playEmote(emote: Emote )

Joga o Emote dado e dispara o emotePlayed evento no servidor, se conectado. Essa função só pode ser chamada de um LocalScript em um cliente específico.

Script Local

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))
local shrug = EmoteBar.getEmote("Shrug")
EmoteBar.playEmote(shrug)

lockEmote

lockEmote(emoteName: string )

Bloqueia o Emote com o nome dado. Essa função só pode ser chamada de um LocalScript no cliente.

Script Local

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))
EmoteBar.lockEmote("Applaud")

desbloquearEmote

desbloquearEmote(emoteName: string )

Desbloqueia o Emote com o nome dado. Essa função só pode ser chamada de um LocalScript no cliente.

Script Local

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))
EmoteBar.unlockEmote("Applaud")

Eventos

emoteJogado

O evento ocorre quando qualquer cliente executa um emote. Este evento só pode ser conectado em um LocalScript .

Parâmetros
jogador: PlayerJogador que atuou o emote.
emote: EmoteEmote que foi jogado.
Script Local

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))
EmoteBar.emotePlayed:Connect(function(player, emote)
print(player.Name, "played", emote.name)
end)

emote bloqueadoAtivado

O evento ocorre quando um cliente clica em um emote bloqueado. Este evento só pode ser conectado em um LocalScript .

Parâmetros
emote: EmoteEmote bloqueado que foi ativado.
Script Local

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)