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:
Na aba Exibir, abra a Caixa de ferramentas e selecione a aba Mercado.
Verifique se a ordenação de Modelos está selecionada e, em seguida, clique no botão Exibir Tudo para Categorias.
Encontre e clique no painel DEV MODULES
Localize o módulo Barra Emote e clique nele ou arraste e solte-o na visualização 3D.
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.
Dentro do ServerScriptService, crie um novo Class. Script e renomeie-o como ConfigureEmotes.
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 - 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,},})
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:
Chave | Tipo | Descrição |
---|---|---|
name | string | Nome do emote, por exemplo "Shrug". |
animation | string | ID de ativo para a animação do emote. |
image | string | ID do ativo para a imagem do emote na interface gráfica do usuário. |
defaultTempo | número | Fator 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. |
isLocked | boolean | Se o emote está "bloqueado" para ativação. |
Enumeradores
EmoteBar. GuiType
Nome | Resumo |
---|---|
EmoteBar | Forma padrão em que os emotes são exibidos em uma barra na parte inferior da tela, separados em "páginas individuais". |
EmoteWheel | Variante 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.
Chave | Descrição | Padrão |
---|---|---|
useDefaultEmotes | Se os emotes padrão fornecidos estão incluídos ou não. | true |
useMegaEmotes | Ativa ou desativa a função mega emotes. | true |
emoteMinPlayers | Número mínimo de jogadores executando o mesmo emote para contribuir para um mega emote. | 3 |
emoteMaxPlayers | Número máximo de jogadores executando o mesmo emote para contribuir para um mega emote. | 50 |
playParticles | Ativa ou desativa os emotes jogados pelos jogadores como partículas flutuantes acima de suas cabeças. | true |
sendContributingEmotes | Ativa 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
Chave | Descrição | Padrão |
---|---|---|
guiType | Controla de que forma a interface gráfica do usuário exibirá para a exibição de emotes (EmoteBar. GuiType). | EmoteBar |
useTempo | Ativa 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 |
tempoActivationWindow | Quantidade de tempo, em segundos, que o usuário tem entre ativações sequenciais de um emote para contar como parte do ritmo. | 3 |
lockedImage | Imagem a exibir acima de emotes bloqueados. | "rbxassetid://6905802778" |
EmoteBar
Chave | Descrição | Padrão |
---|---|---|
maxEmotesPerPage | Número máximo de emotes que são exibidos de cada vez. Telas menores automaticamente exibirão menos emotes. | 4 |
emoteBarPosLandscape | Posição da barra de emote no modo paisagem (UDim2). | (0.5, 0, 1, -16) |
emoteBarPosPortrait | Posição da barra emote no modo retrato (UDim2). | (0.5, 0, 1, -100) |
useEmoteHotkeys | Se 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 |
usePageHotkeys | Se 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 |
prevPageKey | Tecla usada para ir para a página anterior de emotes ( Enum. KeyCode). | Q |
nextPageKey | Tecla usada para ir para a próxima página de emotes (Enum. KeyCode). | E |
leftArrowImage | Imagem para a seta esquerda (página anterior). | "rbxassetid://6998633654" |
rightArrowImage | Imagem para a seta direita (próxima página). | "rbxassetid://6998635824" |
EmoteWheel
Chave | Descrição | Padrão |
---|---|---|
closeImage | Imagem para o botão fechar na roda de emote, posicionada acima da closeBackgroundImage imagem. | "rbxassetid://7027440823" |
closeBackgroundImage | Imagem de fundo para o botão fechar na roda de emote. | "rbxassetid://7027440823" |
emoteHoverImage | Imagem 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. Player | Jogador que interpretou o emote. |
emote: Emote | Emote 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: Emote | Emote 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)