Barra de Emoção

*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 módulo EmoteBar visa fornecer aos jogadores uma maneira acessível e personalizável de facilitar a interação social significativa.

Uso do módulo

Instalação

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

  1. Da 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 está selecionada, então clique no botão Ver Todos para Categorias .

  3. Localize e clique no tijolo Dev Modules .

  4. Localize o módulo Barra de Emotes e clique nele, ou arraste-e-solte-o para a ver3D.

  5. Na janela Explorer, mova todo o modelo Barra de Emoção para Serviço de Script de Servidor .Ao executar a experiência, o módulo se distribuirá a 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 seus próprios emotes e opções de exibição.Além disso, se o jogador possui 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 Serviço de Script de Servidor , crie um novo Script e renomeie-o Configurar Emotes .

  2. Cole o seguinte código no novo script ConfigurarEmotes .A configuração useDefaultEmotes de false substitui os emotes padrão e permite que você defina emotes personalizados através da função setEmotes.

    Script - Configurar Emotes

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

Emoções mega

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 cresce mais.À medida que os jogadores param de executar o emote, o mega emote diminui até que, finalmente, desaparece.

Tempo

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

Referência da API

Tipos

Emoção

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

ChaveTipoDescrição
namestring / cadeia / textoNome do emote, por exemplo "Shrug" .
animationstring / cadeia / textoID de recurso para a animaçõesdo emote.
imagestring / cadeia / textoID de recurso para a imagem do emote na Interface gráfica do usuário.
defaultTemponúmeroFator de velocidade padrão em que tocar a animaçõesde emote.Por exemplo, um tempo de 2 tocará a animação em duas vezes sua velocidade normal.Deve ser maior que 0.
isLockedboolSe o emote está "bloqueado" de ser ativado.

Enumas

Tipo de EmoteBar.Gui

Qual o nomeSumário
EmoteBarForma padrão em que emotes são exibidos em uma barra na parte inferior da tela, separados em páginas individuais.
EmoteWheelVariante em que emotes são exibidos em um anel quando um jogador clica ou toca no personagem do jogador.
LocalScript

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

Funções

configurarServidor

configureServer(config: 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 automaticamente replicadas para todos os clientes.

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

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

configurarCliente

configureClient(config: table )

Substitui as opções de configuração padrã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 observadas também se aplicam.

ChaveDescriçãoPadrão
guiTypeControles que formam a GUI tomarão para exibir emotes ( EmoteBar.GuiType ).Barra de Emoção
useTempoAtiva ou desativa a funcionalidade de tempo onde os usuários podem controlar a velocidade com que seus emotes são tocados repetindo o mesmo emote ritmicamente.verdadeiro
tempoActivationWindowQuantidade de tempo, em segundos, que o usuário tem entre ativações sequenciais de um emote para que ele seja contado como parte do tempo.3
lockedImageImagem para exibir em cima de emotes bloqueados.“rbxassetid://6905802778”
LocalScript - Barra de Emoção

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 Emoções

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

setarEmotes

setEmotes(emotes: table )

Define os emotes personalizados a usar.Estes serão adicionados aos padrões se useDefaultEmotes for true, ou substituir os padrões se useDefaultEmotes for false.Essa função só pode ser chamada a partir de um Script e as alterações serão automaticamente replicadas para todos os clientes.

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

Script - Configurar Emotes

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

definirGuiVisibilidade

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.

LocalScript

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

pegarEmote

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.

LocalScript

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

jogarEmote

playEmote(emote: Emoção )

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

LocalScript

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

bloquearEmote

lockEmote(emoteName: string )

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

LocalScript

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. Esta função só pode ser chamada de um LocalScript no cliente.

LocalScript

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

Eventos

emoteJogado

Incêndios quando qualquer cliente toca um emote. Este evento só pode ser conectado em um LocalScript .

Parâmetros
jogador: PlayerJogador que atuou o emote.
emote: EmoçãoEmote que foi tocado.
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)

lockedEmoteAtivado

Incêndios quando um cliente clica em um emote bloqueado. Este evento só pode ser conectado em um LocalScript .

Parâmetros
emote: EmoçãoEmote bloqueado que foi ativado.
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)