Barra de emotes

Os emotes são um componente essencial de qualquer experiência social. O módulo de desenvolvedor EmoteBar tem como objetivo proporcionar aos jogadores uma maneira acessível e personalizável de viabilizar interações sociais significativas.

Uso do módulo

Instalação

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

  1. Na aba Exibir, abra a Caixa de ferramentas e selecione a aba Mercado.

    Botão de ativação da Caixa de ferramentas no Studio.
  2. Verifique se a ordenação de Modelos está selecionada e, em seguida, clique no botão Exibir Tudo para Categorias.

  3. Encontre e clique no painel DEV MODULES

  4. Localize o módulo Barra Emote e clique nele ou arraste e solte-o na visualização 3D.

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

Configuração

O módulo é pré-configurado com 7 emotes e pode ser facilmente customizado com seus próprios emotes e opções de exibição. Além disso, se o jogador tiver emotes de eventos anteiores da roblox, como o Lil Nas X, Royal Blood ou Twenty One Pilots, esses emotes serão adicionados automaticamente à lista de emotes disponíveis.

  1. Dentro do ServerScriptService, crie um novo Class. Script e renomeie-o como ConfigureEmotes.

  2. Cole o seguinte código dentro do novo script ConfigureEmotes. A useDefaultEmotesconfiguração de falsesubstitui os emotes padrão e permite que você defina emotes personalizados por meio da função 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,
    },
    })

Mega Emotes

Um mega emote é formado quando vários jogadores na mesma área executam o mesmo emote ao mesmo tempo. Quanto mais jogadores participam, mais o mega emote cresce. Quando os jogadores pararem de executar o emote, o mega emote diminui de tamanho até que ele desaparece.

Ritmo

O ritmo de um emote é a velocidade em que ele é executado quando o botão é pressionado uma vez. A velocidade padrão de um emote é determinada por seu defaultTempo. A velocidade de um emote pode ser aumentada ou diminuida pressionando seu botão mais rápido ou mais devagar.

Referência de API

Tipos

Emote

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

ChaveTipoDescrição
namestringNome do emote, por exemplo "Shrug".
animationstringID de ativo para a animação do emote.
imagestringID do ativo para a imagem do emote na interface gráfica do usuário.
defaultTemponúmeroFator de velocidade padrão em que executa a animação do emote. Por exemplo, um ritmo de 2 executará a animação duas vezes a velocidade normal. Deve ser superior a 0.
isLockedbooleanSe o emote está "bloqueado" para ativação.

Enumeradores

EmoteBar. GuiType

NomeResumo
EmoteBarForma padrão em que os emotes são exibidos em uma barra na parte inferior da tela, separados em "páginas individuais".
EmoteWheelVariante em que os 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

configureServer

configureServer(config:table):nil

Substitui as opções de configuração padrão do cliente por meio das seguintes chaves-valores na tabela config. Essa função só pode ser chamada a partir de um Class. Scripte 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.true
useMegaEmotesAtiva ou desativa a função mega emotes.true
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 jogados pelos jogadores como partículas flutuantes acima de suas cabeças.true
sendContributingEmotesAtiva ou desativa o envio de um ícone pequeno de emote para contribuir para o 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

Substitui as opções de configuração do servidor por meio das seguintes chaves-valor na tabela config. Essa função só pode ser chamada a partir de um Class. Scripte as alterações serão replicadas automaticamente para todos os clientes.

Geral

ChaveDescriçãoPadrão
guiTypeControla de que forma a interface gráfica do usuário exibirá para a exibição de emotes (EmoteBar. GuiType).EmoteBar
useTempoAtiva ou desativa a funcionalidade ritmo, em que os usuários podem controlar a velocidade de execução dos emotes ativando repetidamente o mesmo emote de forma ritmada.true
tempoActivationWindowQuantidade de tempo, em segundos, que o usuário tem entre ativações sequenciais de um emote para contar como parte do ritmo.3
lockedImageImagem a exibir acima de emotes bloqueados."rbxassetid://6905802778"

EmoteBar

ChaveDescriçãoPadrão
maxEmotesPerPageNúmero máximo de emotes que são exibidos de cada vez. Telas menores automaticamente exibirão menos emotes.4
emoteBarPosLandscapePosição da barra de emote no modo paisagem (UDim2).(0.5, 0, 1, -16)
emoteBarPosPortraitPosição da barra emote no modo retrato (UDim2).(0.5, 0, 1, -100)
useEmoteHotkeysSe as teclas de atalho de emote são utilizadas. Se true, isso vincula 1, 2, 3, 4, etc. como teclas de atalho para a barra de emote. Somente teclas numéricas de 1 a 9 são suportadas.true
usePageHotkeysSe as teclas de atalho da página são usadas. Se true, nextPageKey e prevPageKey são usadas para ciclo entre as páginas.true
prevPageKeyTecla usada para ir para a página anterior de emotes ( Enum. KeyCode).Q
nextPageKeyTecla usada para ir para a próxima página de emotes (Enum. KeyCode).E
leftArrowImageImagem para a seta esquerda (página anterior)."rbxassetid://6998633654"
rightArrowImageImagem para a seta direita (próxima página)."rbxassetid://6998635824"

EmoteWheel

ChaveDescriçãoPadrão
closeImageImagem para o botão fechar na roda de emote, posicionada acima da closeBackgroundImage imagem."rbxassetid://7027440823"
closeBackgroundImageImagem de fundo para o botão fechar na roda de emote."rbxassetid://7027440823"
emoteHoverImageImagem para indicação de passar o mouse sobre o emote selecionado na roda."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

[`Emote`](#emote) `Datatype.RBXScriptSignal`:

setEmotes

setEmotes(emotes:table):nil

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

Consulte Emote para ver 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,
},
})

setGuiVisibility

setGuiVisibility(visible:boolean):nil

Exibe ou oculta a interface gráfica dos emotes. Essa função só pode ser chamada a partir de um Class. LocalScript em um cliente específico.

LocalScript

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

getEmote

getEmote(emoteName:string):table

Bloqueia o Emote com o nome dado. Essa função só pode ser chamada a partir de um Class. LocalScriptno cliente.

LocalScript

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

playEmote

playEmote(emote:Emote):nil

Executa o Emote dado e dispara o evento emotePlayed no servidor, caso esteja conectado. Essa função só pode ser chamada a partir de um Class. 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)

lockEmote

lockEmote(emoteName:string):nil

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")

unlockEmote

unlockEmote(emoteName:string):nil

Desbloqueia o emote com o nome dado. Essa função só pode ser chamada a partir de um Class. LocalScriptno cliente.

LocalScript

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

Eventos

emotePlayed

emotePlayed(player:Class. Player, EmoteEmote): RBXScriptSignal

Dispara quando qualquer cliente executa um emote. O evento só pode ser conectado a um Class. LocalScript.

Parâmetros
jogador: Class. PlayerJogador que interpretou o emote.
emote: EmoteEmote que foi executado.
LocalScript

Ritmo

lockedEmoteActivated

lockedEmoteActivated(emote:Emote): RBXScriptSignal

Dispara quando um cliente clica em um emote bloqueado. O evento só pode ser conectado a um Class. LocalScript.

Parâmetros
emote: EmoteEmote 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)