Barra emote

Le emote sono una componente fondamentale di qualsiasi esperienza sociale. Il modulo sviluppatore EmoteBar ha lo scopo di fornire ai giocatori un modo accessibile e personalizzabile per facilitare l'interazione sociale significativa.

Utilizzo del modulo

Installazione

Per utilizzare il modulo BarraEmote in un'esperienza:

  1. Dalla scheda Visualizza, aprire il Pannello degli strumenti e selezionare la scheda Marketplace.

    attiva il pulsante degli Strumenti in Studio
  2. Assicurarsi che la selezione dei modelli sia selezionata, quindi fare clic sul pulsante Vedi tutto per le Categorie.

  3. Individuare e fare clic sulla piastrella DEV MODULES.

  4. Individuare il modulo EmoteBar e fare clic su di esso, o trascinarlo e rilasciarlo nella visualizzazione 3D.

  5. Nella finestra Explorer, spostare l'intero modello EmoteBar in ServerScriptService. Dopo aver avviato l'esperienza, il modulo si distribuirà ai vari servizi e inizierà a funzionare.

Configurazione

Il modulo è preconfigurato con 7 emote e può essere facilmente personalizzato con le tue emote e opzioni di visualizzazione. Inoltre, se il giocatore possiede qualsiasi emote da eventi Roblox precedenti come Lil Nas X, Royal Blood o Twenty One Pilots, quelle emote saranno automaticamente aggiunte all'elenco delle emote disponibili.

  1. All'interno di ServizioScriptServer, crea un Scriptnuovoe rinominalo ConfiguraEmote.

  2. Incolla il seguente codice nel nuovo script ConfiguraEmote. L'useDefaultEmotesimpostazione di falsesovrascrive le emote predefinite e ti consente di definire emote personalizzate tramite la funzione impostaEmote.

    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 Emote

Una mega emote si forma quando più giocatori nella stessa area eseguono la stessa emote allo stesso tempo. Man mano che sempre più giocatori si uniscono, la mega emote diventa sempre più grande. Quando i giocatori smettono di eseguire l'emote, la mega emote diventa più piccola fino a scomparire.

Tempo

Il tempo di un'emote è la velocità alla quale viene riprodotta quando il suo pulsante viene toccato una volta. La velocità predefinita di un'emote è determinata dal suo defaultTempo. La velocità di un'emote può essere aumentata o diminuita toccando il suo pulsante più velocemente o più lentamente.

Riferimento API

Tipi

Emote

Ciascuna emote è rappresentata da un dizionario con le seguenti coppie di valore chiave:

ChiaveTipoDescrizione
nomestringaNome Emote, ad esempio "Shrug".
animazionestringaID risorsa per l'animazione dell'emote.
immaginestringaID risorsa per l'immagine dell'emote nella GUI.
TempoPredefinitonumeroFattore di velocità predefinito in base al quale riprodurre l'animazione delle emote. Ad esempio, un tempo di 2 riprodurrà l'animazione al doppio della sua velocità normale. Deve essere maggiore di 0.
èBloccatoboolSe l'emote è "bloccata" dall'attivazione.

Enums

EmoteBar.GuiType

NomeSommario
EmoteBarModulo predefinito in cui le emote vengono visualizzate in una barra lungo la parte inferiore dello schermo, separate in "pagine" individuali.
EmoteWheelVariante in cui le emote vengono visualizzate in un anello quando un giocatore fa clic o tocca sul suo personaggio giocatore.
LocalScript

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

Funzioni

configureServer

configureServer(config:table):nil

Sovrascrive la configurazione predefinita lato server attraverso le seguenti chiavi/valori nella tabella config. Questa funzione può essere chiamata solo da un Script e le modifiche si replicheranno automaticamente a tutti i client.

ChiaveDescrizionePredefinito
useDefaultEmotesSe le emote predefinite fornite sono incluse o meno.vero
useMegaEmotesAttiva o disattiva la ](#mega-emotes)funzione [mega emote.vero
emoteMinPlayersNumero minimo di giocatori che eseguono la stessa emote per contribuire a una mega emote.3
emoteMaxPlayersNumero massimo di giocatori che eseguono la stessa emote per contribuire a una mega emote.50
playParticlesAttiva o disattiva le emote che i giocatori stanno riproducendo come particelle fluttuanti sopra le loro teste.vero
sendContributingEmotesAttiva o disattiva l'invio di una piccola icona emote per contribuire alla mega emote.vero
Script

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

configureClient

configureClient(config:table):nil

Sovrascrive la configurazione predefinita del client attraverso le seguenti chiavi/valori nella tabella config. Questa funzione può essere chiamata solo da un LocalScript. A seconda del valore di guiType, si applicano anche le opzioni nelle schede annotate.

Generale

ChiaveDescrizionePredefinito
guiTypeControlla che forma la GUI assumerà per la visualizzazione delle emote (EmoteBar.GuiType).EmoteBar
useTempoAttiva o disattiva la ](#tempo)funzione [tempo in cui gli utenti sono in grado di controllare la velocità o la lentezza delle loro emote attivando ripetutamente la stessa emote ritmicamente.vero
tempoActivationWindowQuantità di tempo, in secondi, che l'utente ha tra le attivazioni sequenziali di un'emote per contarla come parte del tempo.3
lockedImageImmagine da visualizzare sulle emote bloccate."rbxassetid://6905802778"

BarraEmote

ChiaveDescrizionePredefinito
maxEmotesPerPageNumero massimo di emote visualizzate alla volta. Gli schermi più piccoli mostreranno automaticamente meno emote.4
emoteBarPosLandscapePosizione della barra delle emote in modalità orizzontale (UDim2).(0.5, 0, 1, -16)
emoteBarPosPortraitPosizione della barra delle emote in modalità ritratto (UDim2).(0.5, 0, 1, -100)
useEmoteHotkeysSe i tasti di scelta rapida delle emote vengono utilizzati. Se true, questo lega 1, 2, 3, 4, ecc. come tasti di scelta rapida per la barra delle emote. Sono supportati solo i tasti numerici 1–9.vero
usePageHotkeysSe sono usati i tasti di scelta rapida della pagina. Se true, nextPageKey e prevPageKeyvengono utilizzati per passare tra le pagine.vero
prevPageKeyTasto utilizzato per passare alla pagina precedente delle emote (Enum.KeyCode).Q
nextPageKeyTasto utilizzato per passare alla pagina successiva delle emote (Enum.KeyCode).E
leftArrowImageImmagine per la freccia sinistra (pagina precedente)."rbxassetid://6998633654"
rightArrowImageImmagine per la freccia destra (pagina successiva)."rbxassetid://6998635824"

RuotaEmote

ChiaveDescrizionePredefinito
closeImageImmagine per il pulsante di chiusura sulla ruota delle emote, posizionata sopra l'closeBackgroundImageimmagine."rbxassetid://7027440823"
closeBackgroundImageImmagine di sfondo per il pulsante di chiusura sulla ruota delle emote."rbxassetid://7027440823"
emoteHoverImageImmagine per l'indicazione di puntamento dell'emote selezionata nella ruota."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,
})

impostaEmote

setEmotes(emotes:table):nil

Imposta le emote personalizzate da utilizzare. Questi saranno aggiunti ai valori predefiniti se useDefaultEmotes è true o sostituiranno i valori predefiniti se useDefaultEmotes è false. Questa funzione può essere chiamata solo da un Script e le modifiche si replicheranno automaticamente a tutti i client.

Vedi Emote per la struttura di ogni emote passata a questa funzione.

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

impostaVisibilitàGui

setGuiVisibility(visible:booleano):nil

Mostra o nasconde la GUI delle emote. Questa funzione può essere chiamata solo da un LocalScript su un client specifico.

LocalScript

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

ottieniEmote

getEmote(emoteName:string):table

Fa ottenere un'Emote per nome. Restituisce nil se l'emote non può essere trovata. Questa funzione può essere chiamata solo da un LocalScript su un client specifico.

LocalScript

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

riproduciEmote

playEmote(emote:Emote):nil

Riproduce l'Emote data e attiva l'evento emotePlayed sul server, se connesso. Questa funzione può essere chiamata solo da un LocalScript su un client specifico.

LocalScript

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

bloccaEmote

lockEmote(emoteName:string):nil

Sblocca l'Emote con il nome dato. Questa funzione può essere chiamata solo LocalScriptsul client.

LocalScript

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

sbloccaEmote

unlockEmote(emoteName:string):nil

Blocca l'Emote con il nome dato. Questa funzione può essere chiamata solo LocalScriptsul client.

LocalScript

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

Eventi

emoteRiprodotta

emotePlayed(player:Player, emote:Emote): RBXScriptSignal

Si accende quando qualsiasi client riproduce un'emote. Questo evento può essere collegato solo in un LocalScript.

Parametri
giocatore: PlayerGiocatore che ha rappresentato l'emote.
emote:EmoteEmote che è stata riprodotta.
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)

EmotebloccataAttivata

lockedEmoteActivated(emote:Emote): RBXScriptSignal

Si accende quando un client fa clic su un'emote bloccata. Questo evento può essere collegato solo in un LocalScript.

Parametri
emote:EmoteEmote bloccata che è stata attivata.
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)