Emotes sind ein wesentlicher Bestandteil jeder sozialen Erfahrung. Das EmoteBar Entwicklermodul zielt darauf ab, den Spielern eine zugängliche, anpassbare Möglichkeit zu bieten, um bedeutungsvolle soziale Interaktionen zu ermöglichen.
Modulanwendung
Installation
Um das EmoteBar-Modul in einer Erfahrung zu verwenden:
Öffnen Sie im Studio über das Fenster-Menü oder die Toolbar der Startseite die Werkzeugkiste und wählen Sie die Registerkarte Creator Store.

Stellen Sie sicher, dass die Sortierung nach Modellen ausgewählt ist, und klicken Sie dann auf die Schaltfläche Alle anzeigen für Kategorien.

Suchen Sie die Kachel Pakete und klicken Sie darauf.
Suchen Sie das Emote Bar-Modul und klicken Sie darauf oder ziehen Sie es in die 3D-Ansicht.

Verschieben Sie im Explorer-Fenster das gesamte EmoteBar-Modell in ReplicatedStorage. Beim Ausführen der Erfahrung beginnt das Modul zu laufen.
Konfiguration
Das Modul ist im Voraus mit 7 Emotes konfiguriert und kann mit eigenen Emotes und Anzeigeoptionen einfach angepasst werden. Darüber hinaus werden Emotes, die der Spieler aus früheren Roblox-Events wie Lil Nas X, Royal Blood oder Twenty One Pilots besitzt, automatisch zur Liste der verfügbaren Emotes hinzugefügt.
Erstellen Sie in ServerScriptService ein neues Script und benennen Sie es ConfigureEmotes.

Fügen Sie den folgenden Code in das neue ConfigureEmotes-Skript ein. Die useDefaultEmotes-Einstellung von false überschreibt die Standardemotes und ermöglicht es Ihnen, benutzerdefinierte Emotes über die setEmotes-Funktion zu definieren.
Script - ConfigureEmoteslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureServer({useDefaultEmotes = false,})EmoteBar.setEmotes({{name = "Hallo",animation = "rbxassetid://3344650532",image = "rbxassetid://7719817462",defaultTempo = 1,},{name = "Applaus",animation = "rbxassetid://5915693819",image = "rbxassetid://7720292217",defaultTempo = 2,},})
Mega Emotes
Ein Mega Emote entsteht, wenn mehrere Spieler im gleichen Bereich das gleiche Emote zur gleichen Zeit ausführen. Je mehr Spieler mitmachen, desto größer wird das Mega Emote. Wenn die Spieler aufhören, das Emote auszuführen, wird das Mega Emote kleiner, bis es schließlich verschwindet.

Tempo
Das Tempo eines Emotes ist die Geschwindigkeit, mit der es abgespielt wird, wenn die Taste einmal gedrückt wird. Die Standardgeschwindigkeit eines Emotes wird durch sein defaultTempo bestimmt. Die Geschwindigkeit eines Emotes kann erhöht oder gesenkt werden, indem die Taste schneller oder langsamer gedrückt wird.
API-Referenz
Typen
Emote
Jedes Emote wird durch ein Dictionary mit den folgenden Schlüssel-Wert-Paaren dargestellt:
| Schlüssel | Typ | Beschreibung |
|---|---|---|
| name | string | Emote-Name, zum Beispiel "Shrug". |
| animation | string | Asset-ID für die Animation des Emotes. |
| image | string | Asset-ID für das Bild des Emotes in der GUI. |
| defaultTempo | number | Standardgeschwindigkeitsfaktor, mit dem die Emote-Animation abgespielt wird. Zum Beispiel wird ein Tempo von 2 die Animation mit der doppelten normalen Geschwindigkeit abspielen. Muss größer als 0 sein. |
| isLocked | bool | Ob das Emote "gesperrt" ist und nicht aktiviert werden kann. |
Enums
EmoteBar.GuiType
| Name | Zusammenfassung |
|---|---|
| EmoteBar | Standardform, in der Emotes in einer Leiste am unteren Bildschirmrand angezeigt werden, getrennt in einzelne "Seiten". |
| EmoteWheel | Variante, bei der Emotes in einem Ring angezeigt werden, wenn ein Spieler auf seinen Charakter klickt oder tippt. |
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureClient({guiType = EmoteBar.GuiType.EmoteWheel,})
Funktionen
configureServer
configureServer(config: table)
Überschreibt die Standardserverseitigen Konfigurationsoptionen über die folgenden Schlüssel/Werte in der config-Tabelle. Diese Funktion kann nur von einem Script aufgerufen werden und Änderungen werden automatisch an alle Clients repliziert.
| Schlüssel | Beschreibung | Standard |
|---|---|---|
| useDefaultEmotes | Ob die bereitgestellten Standardemotes enthalten sind oder nicht. | true |
| useMegaEmotes | Aktiviert oder deaktiviert die Mega Emotes-Funktion. | true |
| emoteMinPlayers | Minimale Anzahl von Spielern, die das gleiche Emote ausführen, um zu einem Mega Emote beizutragen. | 3 |
| emoteMaxPlayers | Maximale Anzahl von Spielern, die das gleiche Emote ausführen, um zu einem Mega Emote beizutragen. | 50 |
| playParticles | Aktiviert oder deaktiviert die Emotes, die Spieler als schwebende Partikel über ihren Köpfen spielen. | true |
| sendContributingEmotes | Aktiviert oder deaktiviert das Senden eines kleinen Emote-Symbols, um zu dem Mega Emote beizutragen. | true |
Scriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureServer({emoteMinPlayers = 2,playParticles = false,})
configureClient
configureClient(config: table)
Überschreibt die Standard-Client-seitigen Konfigurationsoptionen über die folgenden Schlüssel/Werte in der config-Tabelle. Diese Funktion kann nur von einem LocalScript aufgerufen werden. Je nach Wert von guiType gelten auch die Optionen in den angegebenen Registerkarten.
| Schlüssel | Beschreibung | Standard |
|---|---|---|
| guiType | Steuert, welche Form die GUI für die Anzeige von Emotes annehmen wird (EmoteBar.GuiType). | EmoteBar |
| useTempo | Aktiviert oder deaktiviert die Tempo-Funktion, bei der Benutzer steuern können, wie schnell oder langsam ihre Emotes abgespielt werden, indem sie dasselbe Emote rhythmisch aktivieren. | true |
| tempoActivationWindow | Die Zeitspanne, in Sekunden, die der Benutzer zwischen aufeinanderfolgenden Aktivierungen eines Emotes hat, damit es als Teil des Tempos zählt. | 3 |
| lockedImage | Bild, das über gesperrten Emotes angezeigt wird. | "rbxassetid://6905802778" |
LocalScript - Emote-Leistelocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureClient({guiType = EmoteBar.GuiType.EmoteBar,maxEmotesPerPage = 6,nextPageKey = Enum.KeyCode.Z,prevPageKey = Enum.KeyCode.C,})
LocalScript - Emote-Radlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureClient({guiType = EmoteBar.GuiType.EmoteWheel,})
setEmotes
setEmotes(emotes: table)
Setzt die benutzerdefinierten Emotes, die verwendet werden sollen. Diese werden mit den Standardwerten hinzugefügt, wenn useDefaultEmotes auf true gesetzt ist, oder ersetzen die Standardwerte, wenn useDefaultEmotes auf false gesetzt ist. Diese Funktion kann nur von einem Script aufgerufen werden und Änderungen werden automatisch an alle Clients repliziert.
Siehe Emote für die Struktur jedes an diese Funktion übergebenen Emote.
Script - ConfigureEmoteslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureServer({useDefaultEmotes = false,})EmoteBar.setEmotes({{name = "Hallo",animation = "rbxassetid://3344650532",image = "rbxassetid://7719817462",defaultTempo = 1,},{name = "Applaus",animation = "rbxassetid://5915693819",image = "rbxassetid://7720292217",defaultTempo = 2,},})
setGuiVisibility
setGuiVisibility(visible: boolean)
Zeigt die Emote-GUI an oder verbirgt sie. Diese Funktion kann nur von einem LocalScript auf einem bestimmten Client aufgerufen werden.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.setGuiVisibility(false)
getEmote
Erhält ein Emote nach Name. Gibt nil zurück, wenn das Emote nicht gefunden werden kann. Diese Funktion kann nur von einem LocalScript auf einem bestimmten Client aufgerufen werden.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)local shrug = EmoteBar.getEmote("Shrug")
playEmote
playEmote(emote: Emote)
Spielt das gegebene Emote ab und feuert das emotePlayed-Ereignis auf dem Server, wenn verbunden. Diese Funktion kann nur von einem LocalScript auf einem bestimmten Client aufgerufen werden.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)local shrug = EmoteBar.getEmote("Shrug")EmoteBar.playEmote(shrug)
lockEmote
lockEmote(emoteName: string)
Sperrt das Emote mit dem angegebenen Namen. Diese Funktion kann nur von einem LocalScript auf dem Client aufgerufen werden.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.lockEmote("Applaus")
unlockEmote
unlockEmote(emoteName: string)
Entsperrt das Emote mit dem angegebenen Namen. Diese Funktion kann nur von einem LocalScript auf dem Client aufgerufen werden.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.unlockEmote("Applaus")
Ereignisse
emotePlayed
Wird ausgelöst, wenn ein Client ein Emote abspielt. Dieses Ereignis kann nur in einem LocalScript verbunden werden.
| Parameter | |
|---|---|
| player: Player | Spieler, der das Emote ausgeführt hat. |
| emote: Emote | Emote, das abgespielt wurde. |
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage.EmoteBar)
EmoteBar.emotePlayed:Connect(function(player, emote)
print(player.Name, "spielte", emote.name)
end)
lockedEmoteActivated
Wird ausgelöst, 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. |
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local EmoteBar = require(ReplicatedStorage.EmoteBar)
EmoteBar.lockedEmoteActivated:Connect(function(emote)
print(Players.LocalPlayer, "klickte", emote.name)
end)