Emote-Bar

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

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:

  1. Von der Ansicht-Registerkarte öffnen Sie die Werkzeugkiste und wählen Sie die Creator-Store -Registerkarte.

    Toolbox toggle button in Studio
  2. Stellen Sie sicher, dass die Models Sortierung ausgewählt ist, dann klicken Sie auf die Alle anzeigen Schaltfläche für Kategorien .

  3. Suchen Sie die Dev-Module -Kachel und klicken Sie darauf.

  4. Suchen Sie das Emote-Modul und klicken Sie darauf, oder ziehen Sie es in die 3D-Ansicht.

  5. 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.

  1. In ServerScriptService erstellen Sie ein neues Script und benennen Sie es Emotes konfigurieren um.

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

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üsselTypBeschreibung
namestringEmote-Name, z. B. "Shrug".
animationstringAsset-ID für die Animationendes Emotes.
imagestringAsset-ID für das Bild des Emotes in der grafische Benutzeroberfläche.
defaultTemponummerStandard-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.
isLockedbooleanOb das Emote "gesperrt" ist, wenn es aktiviert wird.

Enums

EmoteBar.GuiTyp

NameZusammenfassung
EmoteBarStandard-Form, in der Emotes in einer Leiste am unteren Rand des Bildschirms separiert in einzelne "Seiten" angezeigt werden.
EmoteWheelVariante, 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

Server konfigurieren(config: table )

Ü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üsselBeschreibungStandard
useDefaultEmotesOb die angegebenen Standard-Emotes enthalten sind oder nicht.wahr
useMegaEmotesAktiviert oder deaktiviert die Mega-Emotes-Funktion.wahr
emoteMinPlayersMindestanzahl an Spielern, die dieselbe Emote ausführen, um sich an einem Mega-Emote zu beteiligen.3
emoteMaxPlayersMaximale Anzahl von Spielern, die dieselbe Emote ausführen, um sich an einem Mega-Emote zu beteiligen.50
playParticlesAktiviert oder deaktiviert die Emotes, die Spieler als schwebende Partikel über ihren Köpfen spielen.wahr
sendContributingEmotesAktiviert 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

konfigurierenClient(config: table )

Ü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üsselBeschreibungStandard
guiTypeSteuerelemente, die die GUI bilden, werden für die Anzeige von Emotes (EmoteBar.GuiType ) verwendet.EmoteBar
useTempoAktiviert 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
tempoActivationWindowZeit in Sekunden, die der Benutzer zwischen sequentiellen Aktivierungen eines Emotes hat, um als Teil der Zeit zu zählen.3
lockedImageBild, 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

setEmotes(emotes: table )

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

setGuiVisibility(sichtbar: boolean )

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

erhalteEmote(emoteName: string>: table

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

playEmote(emote: 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

lockEmote(emoteName: string )

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

Emote freischalten(emoteName: string )

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: PlayerSpieler, der das Emote ausgelöst hat.
emote: EmoteEmote, 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: EmoteGesperrtes 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)