Emote adalah komponen inti dari setiap pengalaman sosial. Modul EmoteBar pengembang bertujuan untuk memberikan pemain cara yang dapat diakses dan dapat disesuaikan untuk memfasilitasi interaksi sosial yang berarti.
Penggunaan Modul
Instalasi
Untuk menggunakan modul EmoteBar dalam sebuah pengalaman:
Dari menu Window di Studio atau toolbar tab Home, buka Toolbox dan pilih tab Creator Store.

Pastikan sorting Models terpilih, lalu klik tombol See All untuk Categories.

Temukan dan klik ubin Packages.
Temukan modul Emote Bar dan klik, atau seret dan lepas ke dalam tampilan 3D.

Di jendela Explorer, pindahkan seluruh model EmoteBar ke dalam ReplicatedStorage. Setelah menjalankan pengalaman, modul akan mulai berjalan.
Konfigurasi
Modul ini telah dikonfigurasi sebelumnya dengan 7 emote dan dapat dengan mudah disesuaikan dengan emote dan opsi tampilan Anda sendiri. Selain itu, jika pemain memiliki emote dari acara Roblox sebelumnya seperti Lil Nas X, Royal Blood, atau Twenty One Pilots, emote tersebut akan secara otomatis ditambahkan ke daftar emote yang tersedia.
Di ServerScriptService, buat Script baru dan ubah namanya menjadi ConfigureEmotes.

Tempelkan kode berikut ke dalam skrip ConfigureEmotes yang baru dibuat. Pengaturan useDefaultEmotes dengan nilai false mengesampingkan emote default dan memungkinkan Anda mendefinisikan emote kustom melalui fungsi setEmotes.
Script - ConfigureEmoteslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.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,},})
Emote Mega
Sebuah emote mega terbentuk ketika beberapa pemain di area yang sama melakukan emote yang sama pada waktu yang bersamaan. Saat semakin banyak pemain bergabung, emote mega tumbuh lebih besar. Saat pemain berhenti melakukan emote, emote mega menjadi lebih kecil sampai akhirnya menghilang.

Tempo
Tempo emote adalah kecepatan di mana emote dimainkan saat tombolnya ditekan sekali. Kecepatan default dari sebuah emote ditentukan oleh defaultTempo-nya. Kecepatan emote dapat ditingkatkan atau diturunkan dengan menekan tombolnya lebih cepat atau lebih lambat.
Referensi API
Tipe
Emote
Setiap emote diwakili oleh kamus dengan pasangan kunci-nilai berikut:
| Kunci | Tipe | Deskripsi |
|---|---|---|
| name | string | Nama emote, misalnya "Shrug". |
| animation | string | ID Aset untuk animasi emote. |
| image | string | ID Aset untuk gambar emote di GUI. |
| defaultTempo | number | Faktor kecepatan default saat memainkan animasi emote. Misalnya, tempo 2 akan memutar animasi pada kecepatan dua kali lipat dari kecepatan normal. Harus lebih besar dari 0. |
| isLocked | bool | Apakah emote "terkunci" dari diaktifkan. |
Enums
EmoteBar.GuiType
| Nama | Ringkasan |
|---|---|
| EmoteBar | Bentuk default dimana emote ditampilkan dalam sebuah bar di bagian bawah layar, dipisahkan ke dalam "halaman" individual. |
| EmoteWheel | Variasi dimana emote ditampilkan dalam bentuk lingkaran ketika seorang pemain mengklik atau menyentuh karakter pemain mereka. |
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureClient({guiType = EmoteBar.GuiType.EmoteWheel,})
Fungsi
configureServer
configureServer(config: table)
Mengganti opsi konfigurasi sisi server default melalui kunci/nilai berikut dalam tabel config. Fungsi ini hanya dapat dipanggil dari Script dan perubahan akan secara otomatis direplika ke semua klien.
| Kunci | Deskripsi | Default |
|---|---|---|
| useDefaultEmotes | Apakah emote default yang disediakan disertakan atau tidak. | true |
| useMegaEmotes | Mengaktifkan atau menonaktifkan fitur emote mega. | true |
| emoteMinPlayers | Jumlah minimum pemain yang melakukan emote yang sama untuk berkontribusi pada emote mega. | 3 |
| emoteMaxPlayers | Jumlah maksimum pemain yang melakukan emote yang sama untuk berkontribusi pada emote mega. | 50 |
| playParticles | Mengaktifkan atau menonaktifkan emote yang dimainkan pemain sebagai partikel melayang di atas kepala mereka. | true |
| sendContributingEmotes | Mengaktifkan atau menonaktifkan pengiriman ikon emote kecil untuk berkontribusi pada emote mega. | true |
Scriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureServer({emoteMinPlayers = 2,playParticles = false,})
configureClient
configureClient(config: table)
Mengganti opsi konfigurasi sisi klien default melalui kunci/nilai berikut dalam tabel config. Fungsi ini hanya dapat dipanggil dari LocalScript. Tergantung pada nilai guiType, opsi yang dicatat juga berlaku.
| Kunci | Deskripsi | Default |
|---|---|---|
| guiType | Mengontrol bentuk GUI yang akan diambil untuk menampilkan emote (EmoteBar.GuiType). | EmoteBar |
| useTempo | Mengaktifkan atau menonaktifkan fitur tempo dimana pengguna dapat mengontrol seberapa cepat atau lambat emote mereka dimainkan dengan mengaktifkan emote yang sama berulang kali secara ritmis. | true |
| tempoActivationWindow | Jumlah waktu, dalam detik, yang dimiliki pengguna antara aktivasi berurutan dari emote agar dihitung sebagai bagian dari tempo. | 3 |
| lockedImage | Gambar yang ditampilkan di atas emote yang terkunci. | "rbxassetid://6905802778" |
LocalScript - Bar Emotelocal 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 - Roda Emotelocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureClient({guiType = EmoteBar.GuiType.EmoteWheel,})
setEmotes
setEmotes(emotes: table)
Mengatur emote kustom untuk digunakan. Emote ini akan ditambahkan ke default jika useDefaultEmotes adalah true, atau menggantikan default jika useDefaultEmotes adalah false. Fungsi ini hanya dapat dipanggil dari Script dan perubahan akan secara otomatis direplika ke semua klien.
Lihat Emote untuk struktur setiap emote yang diteruskan ke fungsi ini.
Script - ConfigureEmoteslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.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,},})
setGuiVisibility
setGuiVisibility(visible: boolean)
Menampilkan atau menyembunyikan GUI emote. Fungsi ini hanya dapat dipanggil dari LocalScript di klien tertentu.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.setGuiVisibility(false)
getEmote
Mengambil Emote berdasarkan nama. Mengembalikan nil jika emote tidak dapat ditemukan. Fungsi ini hanya dapat dipanggil dari LocalScript di klien tertentu.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)local shrug = EmoteBar.getEmote("Shrug")
playEmote
playEmote(emote: Emote)
Memainkan Emote yang diberikan dan memicu acara emotePlayed di server, jika terhubung. Fungsi ini hanya dapat dipanggil dari LocalScript di klien tertentu.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)local shrug = EmoteBar.getEmote("Shrug")EmoteBar.playEmote(shrug)
lockEmote
lockEmote(emoteName: string)
Mengunci Emote dengan nama yang diberikan. Fungsi ini hanya dapat dipanggil dari LocalScript di klien.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.lockEmote("Applaud")
unlockEmote
unlockEmote(emoteName: string)
Membuka kunci Emote dengan nama yang diberikan. Fungsi ini hanya dapat dipanggil dari LocalScript di klien.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.unlockEmote("Applaud")
Acara
emotePlayed
Dipicu ketika klien mana pun memainkan emote. Acara ini hanya dapat dihubungkan di LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage.EmoteBar)
EmoteBar.emotePlayed:Connect(function(player, emote)
print(player.Name, "memainkan", emote.name)
end)
lockedEmoteActivated
Dipicu ketika klien mengklik emote yang terkunci. Acara ini hanya dapat dihubungkan di LocalScript.
| Parameter | |
|---|---|
| emote: Emote | Emote terkunci yang diaktifkan. |
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local EmoteBar = require(ReplicatedStorage.EmoteBar)
EmoteBar.lockedEmoteActivated:Connect(function(emote)
print(Players.LocalPlayer, "klik", emote.name)
end)