Emoty są podstawowym elementem każdej społecznej interakcji. Moduł EmoteBar dewelopera ma na celu zapewnienie graczom dostępnego, dostosowywanego sposobu na ułatwienie znaczącej interakcji społecznej.
Użycie modułu
Instalacja
Aby użyć modułu EmoteBar w doświadczeniu:
Z menu Okno w Studio lub z paska narzędzi karty Strona główna, otwórz Narzędziownię i wybierz kartę Sklep Twórcy.

Upewnij się, że wybrano sortowanie Modele, a następnie kliknij przycisk Zobacz wszystkie dla Kategorii.

Znajdź i kliknij kafelek Pakiety.
Zlokalizuj moduł Pasek Emotów i kliknij go lub przeciągnij do widoku 3D.

W oknie Eksploratora przenieś cały model EmoteBar do ReplicatedStorage. Po uruchomieniu doświadczenia moduł zacznie działać.
Konfiguracja
Moduł jest wstępnie skonfigurowany z 7 emotkami i można go łatwo dostosować własnymi emotkami i opcjami wyświetlania. Dodatkowo, jeśli gracz posiada jakiekolwiek emotki z wcześniejszych wydarzeń Roblox, takich jak Lil Nas X, Royal Blood czy Twenty One Pilots, te emotki zostaną automatycznie dodane do listy dostępnych emotek.
W ServerScriptService, utwórz nowy Script i zmień jego nazwę na ConfigureEmotes.

Wklej następujący kod do nowego skryptu ConfigureEmotes. Ustawienie useDefaultEmotes na false nadpisuje domyślne emotki i pozwala na zdefiniowanie niestandardowych emotek za pomocą funkcji setEmotes.
Script - ConfigureEmoteslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureServer({useDefaultEmotes = false,})EmoteBar.setEmotes({{name = "Cześć",animation = "rbxassetid://3344650532",image = "rbxassetid://7719817462",defaultTempo = 1,},{name = "Brawa",animation = "rbxassetid://5915693819",image = "rbxassetid://7720292217",defaultTempo = 2,},})
Mega emotki
Mega emotka powstaje, gdy wielu graczy w tym samym obszarze wykonuje tę samą emotkę w tym samym czasie. Gdy coraz więcej graczy zaczyna uczestniczyć, mega emotka staje się większa. Gdy gracze przestają wykonywać emotkę, mega emotka staje się mniejsza, aż w końcu znika.

Tempo
Tempo emotki to prędkość, z jaką jest odtwarzana, gdy przycisk jest naciśnięty raz. Domyślna prędkość emotki jest określona przez jej defaultTempo. Prędkość emotki można zwiększyć lub zmniejszyć, naciskając jej przycisk szybciej lub wolniej.
Referencja API
Typy
Emote
Każda emotka jest reprezentowana przez słownik z następującymi parami klucz-wartość:
| Klucz | Typ | Opis |
|---|---|---|
| name | string | Nazwa emotki, na przykład "Shrug". |
| animation | string | ID zasobu dla animacji emotki. |
| image | string | ID zasobu dla obrazu emotki w GUI. |
| defaultTempo | number | Domyślny współczynnik prędkości, z jaką ma być odtwarzana animacja emotki. Na przykład tempo 2 odtworzy animację z prędkością dwa razy większą niż normalna. Musi być większy od 0. |
| isLocked | bool | Czy emotka jest "zablokowana" przed aktywacją. |
Enums
EmoteBar.GuiType
| Nazwa | Podsumowanie |
|---|---|
| EmoteBar | Domyślna forma, w której emotki są wyświetlane w pasku wzdłuż dolnej części ekranu, podzielone na indywidualne "strony". |
| EmoteWheel | Wariant, w którym emotki są wyświetlane w pierścieniu, gdy gracz kliknie lub dotknie swojego bohatera. |
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureClient({guiType = EmoteBar.GuiType.EmoteWheel,})
Funkcje
configureServer
configureServer(config: table)
Nadpisuje domyślne opcje konfiguracyjne po stronie serwera przez następujące klucze/wartości w tabeli config. Ta funkcja może być wywoływana tylko z Script, a zmiany będą automatycznie replikowane do wszystkich klientów.
| Klucz | Opis | Domyślny |
|---|---|---|
| useDefaultEmotes | Czy dostarczone domyślne emotki są włączone, czy nie. | true |
| useMegaEmotes | Włącza lub wyłącza funkcję mega emotek. | true |
| emoteMinPlayers | Minimalna liczba graczy wykonujących tę samą emotkę, aby przyczynić się do mega emotki. | 3 |
| emoteMaxPlayers | Maksymalna liczba graczy wykonujących tę samą emotkę, aby przyczynić się do mega emotki. | 50 |
| playParticles | Włącza lub wyłącza emotki, które gracze wykonują jako unoszące się cząstki nad ich głowami. | true |
| sendContributingEmotes | Włącza lub wyłącza wysyłanie małej ikony emotki, aby przyczynić się do mega emotki. | true |
Scriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureServer({emoteMinPlayers = 2,playParticles = false,})
configureClient
configureClient(config: table)
Nadpisuje domyślne opcje konfiguracyjne po stronie klienta przez następujące klucze/wartości w tabeli config. Ta funkcja może być wywoływana tylko z LocalScript. W zależności od wartości guiType, opcje w wymienionych kartach również obowiązują.
| Klucz | Opis | Domyślny |
|---|---|---|
| guiType | Kontroluje, jaką formę przyjmie GUI do wyświetlania emotek (EmoteBar.GuiType). | EmoteBar |
| useTempo | Włącza lub wyłącza funkcję tempo, w której użytkownicy mogą kontrolować, jak szybko lub wolno odtwarzane są ich emotki, powtarzając rytmicznie tę samą emotkę. | true |
| tempoActivationWindow | Ilość czasu, w sekundach, którą użytkownik ma między kolejnymi aktywacjami emotki, aby liczyła się jako część tempa. | 3 |
| lockedImage | Obraz wyświetlany nad zablokowanymi emotkami. | "rbxassetid://6905802778" |
LocalScript - Pasek Emotówlocal 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 - Koło Emotówlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureClient({guiType = EmoteBar.GuiType.EmoteWheel,})
setEmotes
setEmotes(emotes: table)
Ustawia niestandardowe emotki do użycia. Zostaną one dodane do domyślnych, jeśli useDefaultEmotes jest ustawione na true, lub zastąpią domyślne, jeśli useDefaultEmotes jest ustawione na false. Ta funkcja może być wywoływana tylko z Script, a zmiany będą automatycznie replikowane do wszystkich klientów.
Zobacz Emote dla struktury każdej emotki przekazanej do tej funkcji.
Script - ConfigureEmoteslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureServer({useDefaultEmotes = false,})EmoteBar.setEmotes({{name = "Cześć",animation = "rbxassetid://3344650532",image = "rbxassetid://7719817462",defaultTempo = 1,},{name = "Brawa",animation = "rbxassetid://5915693819",image = "rbxassetid://7720292217",defaultTempo = 2,},})
setGuiVisibility
setGuiVisibility(visible: boolean)
Pokazuje lub ukrywa GUI emotek. Ta funkcja może być wywoływana tylko z LocalScript na konkretnym kliencie.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.setGuiVisibility(false)
getEmote
Pobiera Emote według nazwy. Zwraca nil, jeśli emotka nie może zostać znaleziona. Ta funkcja może być wywoływana tylko z LocalScript na konkretnym kliencie.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)local shrug = EmoteBar.getEmote("Shrug")
playEmote
playEmote(emote: Emote)
Odtwarza daną Emote i wywołuje zdarzenie emotePlayed na serwerze, jeśli jest podłączony. Ta funkcja może być wywoływana tylko z LocalScript na konkretnym kliencie.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)local shrug = EmoteBar.getEmote("Shrug")EmoteBar.playEmote(shrug)
lockEmote
lockEmote(emoteName: string)
Zamyka Emote o danej nazwie. Ta funkcja może być wywoływana tylko z LocalScript na kliencie.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.lockEmote("Brawa")
unlockEmote
unlockEmote(emoteName: string)
Odblokowuje Emote o danej nazwie. Ta funkcja może być wywoływana tylko z LocalScript na kliencie.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.unlockEmote("Brawa")
Zdarzenia
emotePlayed
Wywołuje się, gdy jakikolwiek klient odtwarza emotkę. To zdarzenie można podłączyć tylko w LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage.EmoteBar)
EmoteBar.emotePlayed:Connect(function(player, emote)
print(player.Name, "odtworzył", emote.name)
end)
lockedEmoteActivated
Wywołuje się, gdy klient kliknie zablokowaną emotkę. To zdarzenie można podłączyć tylko w LocalScript.
| Parametry | |
|---|---|
| emote: Emote | Zablokowana emotka, która została aktywowana. |
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local EmoteBar = require(ReplicatedStorage.EmoteBar)
EmoteBar.lockedEmoteActivated:Connect(function(emote)
print(Players.LocalPlayer, "kliknął", emote.name)
end)