Emotes sind ein Kernkomponente für jedes soziale Erlebnis. Die EmoteBarEntwickler-Modul Ziel, Spieler einen zugänglichen, anpassbaren Weg zu bieten, um eine bedeutungsvolle soziale Interaktion zu ermöglichen.
Modul-Einsatz
Installation
Um das EmoteBar-Modul in einem Erlebnis zu verwenden:
Von der Ansicht-Registerkarte öffnen Sie die Werkzeugkiste und wählen Sie die Creator-Store -Registerkarte.
Stellen Sie sicher, dass die Models Sortierung ausgewählt ist, dann klicken Sie auf die Alle anzeigen Schaltfläche für Kategorien .
Suchen Sie die Dev-Module -Kachel und klicken Sie darauf.
Suchen Sie das Emote-Modul und klicken Sie darauf, oder ziehen Sie es in die 3D-Ansicht.
In dem Explorer-Fenster bewegen Sie das gesamte EmoteBar-Modell in ServerScriptService . Nach dem Laufen der Erlebniswird das Modul auf verschiedene Dienste verteilt und beginnt zu laufen.
Konfiguration
Das Modul ist mit 7 Emotes vordefiniert und kann leicht mit deinen eigenen Emotes und Anzeigeeinstellungen anpassen. Darüber hinaus, wenn der Spieler Emotes von früheren Roblox-Events wie Lil Nas X, Royal Blood oder Twenty One Pilots besitzt, werden diese Emotes automatisch in die Liste der verfügbaren Emotes hinzugefügt.
In ServerScriptService erstellen Sie ein neues Script und benennen Sie es Emotes konfigurieren um.
Fügen Sie den folgenden Code in das neue ConfigureEmotes Skript, das. PL: die Skriptsein. Die useDefaultEmotes Einstellung von false überschreibt die Standard-Emotes und lässt Sie benutzerdefinierte Emotes über die 1> setEmotes1> Funktion definieren.
Script - Konfigurieren von Emoteslocal 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
Ein Mega-Emote wird formuliert, wenn mehrere Spieler in demselben Bereich das gleiche Emote gleichzeitig ausführen. Je mehr Spieler dem Emote beitreten, desto größer wird das Mega-Emote. Wenn Spieler das Emote nicht mehr ausführen, desto kleiner wird das Mega-Emote, bis es schließlich verschwindet.
Tempo
Die Spielzeit eines Emotes ist die Geschwindigkeit, mit der es abgespielt wird, wenn seine Schaltfläche einmal berührt wird. Die Standardgeschwindigkeit eines Emotes wird durch seine defaultTempo bestimmt. Die Geschwindigkeit eines Emotes kann erhöht oder verringert werden, indem seine Schaltfläche schneller oder langsamer berührt wird.
API-Referenz
Typen
Emote
Jedes Emote wird durch ein Wörterbuch mit den folgenden Schlüsselwertenpaaren dargestellt:
Schlüssel | Typ | Beschreibung |
---|---|---|
name | string | Emote-Name, z. B. "Shrug". |
animation | string | Asset-ID für die Animationendes Emotes. |
image | string | Asset-ID für das Bild des Emotes in der grafische Benutzeroberfläche. |
defaultTempo | nummer | Standard-Geschwindigkeitsfaktor, bei dem die Animationenabgespielt wird. Zum Beispiel wird eine Zeit von 2 die Animation in doppelter normaler Geschwindigkeit abspielen. Muss größer als 0 sein. |
isLocked | boolean | Ob das Emote "gesperrt" ist, wenn es aktiviert wird. |
Enums
EmoteBar.GuiTyp
Name | Zusammenfassung |
---|---|
EmoteBar | Standard-Form, in der Emotes in einer Leiste am unteren Rand des Bildschirms separiert in einzelne "Seiten" angezeigt werden. |
EmoteWheel | Variante, in der Emotes in einem Ring angezeigt werden, wenn ein Spieler auf seinen Charakter klickt oder tippt. |
Lokales Skript
local ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))EmoteBar.configureClient({guiType = EmoteBar.GuiType.EmoteWheel,})
Funktionen
konfigurierenServer
Überschreibt Standard-Server-Konfigurationsoptionen durch die folgenden Schlüssel/ Werte in der config Tabelle. Diese Funktion kann nur von einem Script aus aufgerufen werden und Änderungen werden automatisch auf alle Clients repliziert.
Schlüssel | Beschreibung | Standard |
---|---|---|
useDefaultEmotes | Ob die angegebenen Standard-Emotes enthalten sind oder nicht. | wahr |
useMegaEmotes | Aktiviert oder deaktiviert die Mega-Emotes-Funktion. | wahr |
emoteMinPlayers | Mindestanzahl an Spielern, die dieselbe Emote ausführen, um sich an einem Mega-Emote zu beteiligen. | 3 |
emoteMaxPlayers | Maximale Anzahl von Spielern, die dieselbe Emote ausführen, um sich an einem Mega-Emote zu beteiligen. | 50 |
playParticles | Aktiviert oder deaktiviert die Emotes, die Spieler als schwebende Partikel über ihren Köpfen spielen. | wahr |
sendContributingEmotes | Aktiviert oder deaktiviert das Senden eines kleinen Emotes, um dem Mega-Emote beizutragen. | wahr |
Skript
local ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))EmoteBar.configureServer({emoteMinPlayers = 2,playParticles = false,})
konfigurierenClient
Überschreibt die Standard-Client-seitige Konfigurationsoptionen durch die folgenden Schlüssel/werte in der config Tabelle. Diese Funktion kann nur von einem LocalScript aus aufgerufen werden. Abhängig von dem Wert von guiType , gelten die Optionen in den angezeigten Tabs auch.
Schlüssel | Beschreibung | Standard |
---|---|---|
guiType | Steuerelemente, die die GUI bilden, werden für die Anzeige von Emotes (EmoteBar.GuiType ) verwendet. | EmoteBar |
useTempo | Aktiviert oder deaktiviert die Zeit-Funktion, mit der Benutzer steuern können, wie schnell oder langsam ihre Emotes wiedergegeben werden, indem sie dieselbe Emote-Rhythmus erneut aktivieren. | wahr |
tempoActivationWindow | Zeit in Sekunden, die der Benutzer zwischen sequentiellen Aktivierungen eines Emotes hat, um als Teil der Zeit zu zählen. | 3 |
lockedImage | Bild, um Emotes über dem Kopf freigeschaltet anzuzeigen. | „rbxassetid://6905802778“ |
Lokales Skript - 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,})
Lokales Skript - Emote-Rad
local ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))EmoteBar.configureClient({guiType = EmoteBar.GuiType.EmoteWheel,})
setEmotes
Setzt die benutzerdefinierten Emotes zu verwenden. Diese werden den Standard hinzugefügt, wenn useDefaultEmotes ist true oder ersetzt die Standard, wenn useDefaultEmotes ist 1> false1> . Diese Funktion kann nur von einem 4> Class.Script4> aufgerufen werden und die Änderungen werden automatisch auf alle Clients repl
Siehe Emote für die Struktur jedes Emotes, das an diese Funktion übergeben wird.
Script - Konfigurieren von 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,},})
setGuisibility
Zeigt oder verbirgt die grafische Benutzeroberfläche. Diese Funktion kann nur von einem LocalScript auf einem bestimmten Client aufgerufen werden.
Lokales Skript
local ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))EmoteBar.setGuiVisibility(false)
erhalte Emote
Erhalte ein Emote durch Name. Rückgibt nil , wenn das Emote nicht gefunden werden kann. Diese Funktion kann nur von einem LocalScript auf einem bestimmten Client aufgerufen werden.
Lokales Skript
local ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))local shrug = EmoteBar.getEmote("Shrug")
Spiel-Emote
Spielt die angegebene Emote-Emote und feuert das emotePlayed-Ereignis auf dem Server ab, wenn es verbunden ist. Diese Funktion kann nur von einem LocalScript auf einem bestimmten Client aufgerufen werden.
Lokales Skript
local ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))local shrug = EmoteBar.getEmote("Shrug")EmoteBar.playEmote(shrug)
lockEmote
Sperrt das Emote mit dem angegebenen Namen. Diese Funktion kann nur von einem LocalScript auf dem Client aufgerufen werden.
Lokales Skript
local ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))EmoteBar.lockEmote("Applaud")
FreischaltenEmote
Schaltet das Emote mit dem angegebenen Namen frei. Diese Funktion kann nur von einem LocalScript auf dem Client aufgerufen werden.
Lokales Skript
local ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))EmoteBar.unlockEmote("Applaud")
Ereignisse
emoteSpiel
Feuert, wenn ein Client eine Emote abspielt. Dieses Ereignis kann nur in einem LocalScript verbunden werden.
Parameter | |
---|---|
Spieler:in: Player | Spieler, der das Emote ausgelöst hat. |
emote: Emote | Emote, die abgespielt wurde. |
Lokales Skript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage:WaitForChild("EmoteBar"))
EmoteBar.emotePlayed:Connect(function(player, emote)
print(player.Name, "played", emote.name)
end)
Emote aktiviert
Feuert, wenn ein Client auf ein gesperrtes Emote klickt. Dieses Ereignis kann nur in einem LocalScript verbunden werden.
Parameter | |
---|---|
emote: Emote | Gesperrtes Emote, das aktiviert wurde. |
Lokales Skript
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)