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:
Dalla scheda Visualizza, aprire il Pannello degli strumenti e selezionare la scheda Marketplace.
Assicurarsi che la selezione dei modelli sia selezionata, quindi fare clic sul pulsante Vedi tutto per le Categorie.
Individuare e fare clic sulla piastrella DEV MODULES.
Individuare il modulo EmoteBar e fare clic su di esso, o trascinarlo e rilasciarlo nella visualizzazione 3D.
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.
All'interno di ServizioScriptServer, crea un Scriptnuovoe rinominalo ConfiguraEmote.
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 - 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 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:
Chiave | Tipo | Descrizione |
---|---|---|
nome | stringa | Nome Emote, ad esempio "Shrug". |
animazione | stringa | ID risorsa per l'animazione dell'emote. |
immagine | stringa | ID risorsa per l'immagine dell'emote nella GUI. |
TempoPredefinito | numero | Fattore 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. |
èBloccato | bool | Se l'emote è "bloccata" dall'attivazione. |
Enums
EmoteBar.GuiType
Nome | Sommario |
---|---|
EmoteBar | Modulo predefinito in cui le emote vengono visualizzate in una barra lungo la parte inferiore dello schermo, separate in "pagine" individuali. |
EmoteWheel | Variante 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.
Chiave | Descrizione | Predefinito |
---|---|---|
useDefaultEmotes | Se le emote predefinite fornite sono incluse o meno. | vero |
useMegaEmotes | Attiva o disattiva la ](#mega-emotes)funzione [mega emote. | vero |
emoteMinPlayers | Numero minimo di giocatori che eseguono la stessa emote per contribuire a una mega emote. | 3 |
emoteMaxPlayers | Numero massimo di giocatori che eseguono la stessa emote per contribuire a una mega emote. | 50 |
playParticles | Attiva o disattiva le emote che i giocatori stanno riproducendo come particelle fluttuanti sopra le loro teste. | vero |
sendContributingEmotes | Attiva 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
Chiave | Descrizione | Predefinito |
---|---|---|
guiType | Controlla che forma la GUI assumerà per la visualizzazione delle emote (EmoteBar.GuiType). | EmoteBar |
useTempo | Attiva 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 |
tempoActivationWindow | Quantità di tempo, in secondi, che l'utente ha tra le attivazioni sequenziali di un'emote per contarla come parte del tempo. | 3 |
lockedImage | Immagine da visualizzare sulle emote bloccate. | "rbxassetid://6905802778" |
BarraEmote
Chiave | Descrizione | Predefinito |
---|---|---|
maxEmotesPerPage | Numero massimo di emote visualizzate alla volta. Gli schermi più piccoli mostreranno automaticamente meno emote. | 4 |
emoteBarPosLandscape | Posizione della barra delle emote in modalità orizzontale (UDim2). | (0.5, 0, 1, -16) |
emoteBarPosPortrait | Posizione della barra delle emote in modalità ritratto (UDim2). | (0.5, 0, 1, -100) |
useEmoteHotkeys | Se 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 |
usePageHotkeys | Se sono usati i tasti di scelta rapida della pagina. Se true, nextPageKey e prevPageKeyvengono utilizzati per passare tra le pagine. | vero |
prevPageKey | Tasto utilizzato per passare alla pagina precedente delle emote (Enum.KeyCode). | Q |
nextPageKey | Tasto utilizzato per passare alla pagina successiva delle emote (Enum.KeyCode). | E |
leftArrowImage | Immagine per la freccia sinistra (pagina precedente). | "rbxassetid://6998633654" |
rightArrowImage | Immagine per la freccia destra (pagina successiva). | "rbxassetid://6998635824" |
RuotaEmote
Chiave | Descrizione | Predefinito |
---|---|---|
closeImage | Immagine per il pulsante di chiusura sulla ruota delle emote, posizionata sopra l'closeBackgroundImageimmagine. | "rbxassetid://7027440823" |
closeBackgroundImage | Immagine di sfondo per il pulsante di chiusura sulla ruota delle emote. | "rbxassetid://7027440823" |
emoteHoverImage | Immagine 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: Player | Giocatore che ha rappresentato l'emote. |
emote:Emote | Emote 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:Emote | Emote 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)