Biểu cảm là một thành phần cốt lõi của bất kỳ trải nghiệm xã hội nào. Mô-đun EmoteBar mô-đun phát triển nhằm cung cấp cho người chơi một cách tương tác xã hội dễ tiếp cận và tùy biến để tạo ra những tương tác xã hội có ý nghĩa.
Sử dụng mô-đun
Cài đặt
Để sử dụng mô-đun EmoteBar trong một trải nghiệm:
Từ menu Cửa sổ của Studio hoặc thanh công cụ Trang chủ, mở Toolbox và chọn tab Cửa hàng Tạo.

Đảm bảo đã chọn sắp xếp Mô hình, sau đó nhấn nút Xem Tất cả cho Danh mục.

Tìm và nhấn vào ô Gói.
Tìm mô-đun Emote Bar và nhấn vào nó, hoặc kéo và thả nó vào chế độ xem 3D.

Trong cửa sổ Khám Phá, di chuyển toàn bộ mô hình EmoteBar vào ReplicatedStorage. Khi chạy trải nghiệm, mô-đun sẽ bắt đầu hoạt động.
Cấu hình
Mô-đun đã được cấu hình sẵn với 7 biểu cảm và có thể dễ dàng tùy biến với biểu cảm và tùy chọn hiển thị của riêng bạn. Ngoài ra, nếu người chơi sở hữu bất kỳ biểu cảm nào từ các sự kiện Roblox trước đây như Lil Nas X, Royal Blood, hoặc Twenty One Pilots, những biểu cảm đó sẽ tự động được thêm vào danh sách các biểu cảm có sẵn.
Trong ServerScriptService, tạo một Script mới và đặt lại tên thành ConfigureEmotes.

Dán đoạn mã sau vào script ConfigureEmotes mới. Cài đặt useDefaultEmotes là false ghi đè các biểu cảm mặc định và cho phép bạn xác định biểu cảm tùy chỉnh qua hàm 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,},})
Biểu cảm mega
Một biểu cảm mega được tạo ra khi nhiều người chơi trong cùng một khu vực thực hiện cùng một biểu cảm trong cùng một thời điểm. Khi ngày càng có nhiều người chơi tham gia, biểu cảm mega sẽ lớn hơn. Khi người chơi ngừng thực hiện biểu cảm, biểu cảm mega sẽ nhỏ dần cho đến khi cuối cùng nó biến mất.

Tốc độ
Tốc độ của một biểu cảm là tốc độ mà nó phát khi nút của nó được nhấn một lần. Tốc độ mặc định của một biểu cảm được xác định bởi defaultTempo của nó. Tốc độ của biểu cảm có thể được tăng hoặc giảm bằng cách nhấn nút của nó nhanh hơn hoặc chậm hơn.
Tham chiếu API
Loại
Biểu cảm
Mỗi biểu cảm được đại diện bằng một từ điển với các cặp khóa-giá trị sau:
| Khóa | Loại | Mô tả |
|---|---|---|
| name | string | Tên biểu cảm, ví dụ như "Shrug". |
| animation | string | ID tài sản cho animation của biểu cảm. |
| image | string | ID tài sản cho hình ảnh của biểu cảm trong GUI. |
| defaultTempo | số | Hệ số tốc độ mặc định để phát animation biểu cảm. Ví dụ, tốc độ là 2 sẽ phát animation với tốc độ gấp đôi so với tốc độ bình thường. Phải lớn hơn 0. |
| isLocked | bool | Liệu biểu cảm có bị "khóa" để không thể kích hoạt hay không. |
Enum
EmoteBar.GuiType
| Tên | Tóm tắt |
|---|---|
| EmoteBar | Dạng mặc định nơi các biểu cảm được hiển thị trong một thanh dọc theo đáy màn hình, chia thành các "trang" riêng biệt. |
| EmoteWheel | Biến thể nơi các biểu cảm được hiển thị trong một vòng tròn khi một người chơi nhấp hoặc chạm vào nhân vật của họ. |
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureClient({guiType = EmoteBar.GuiType.EmoteWheel,})
Hàm
configureServer
configureServer(config: table)
Ghi đè các tùy chọn cấu hình mặc định phía máy chủ thông qua các khóa/giá trị sau trong bảng config. Hàm này chỉ có thể được gọi từ một Script và các thay đổi sẽ tự động sao chép tới tất cả các client.
| Khóa | Mô tả | Mặc định |
|---|---|---|
| useDefaultEmotes | Liệu các biểu cảm mặc định được cung cấp có được bao gồm hay không. | true |
| useMegaEmotes | Kích hoạt hoặc vô hiệu hóa tính năng biểu cảm mega. | true |
| emoteMinPlayers | Số lượng tối thiểu người chơi thực hiện cùng một biểu cảm để đóng góp vào một biểu cảm mega. | 3 |
| emoteMaxPlayers | Số lượng tối đa người chơi thực hiện cùng một biểu cảm để đóng góp vào một biểu cảm mega. | 50 |
| playParticles | Kích hoạt hoặc vô hiệu hóa các biểu cảm mà người chơi đang thực hiện dưới dạng các hạt bay lơ lửng trên đầu họ. | true |
| sendContributingEmotes | Kích hoạt hoặc vô hiệu hóa việc gửi một biểu tượng biểu cảm nhỏ để đóng góp vào biểu cảm mega. | true |
Scriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureServer({emoteMinPlayers = 2,playParticles = false,})
configureClient
configureClient(config: table)
Ghi đè các tùy chọn cấu hình mặc định phía client thông qua các khóa/giá trị sau trong bảng config. Hàm này chỉ có thể được gọi từ một LocalScript. Tùy thuộc vào giá trị của guiType, các tùy chọn trong các tab được ghi chú cũng áp dụng.
| Khóa | Mô tả | Mặc định |
|---|---|---|
| guiType | Điều khiển hình thức mà GUI sẽ có để hiển thị các biểu cảm (EmoteBar.GuiType). | EmoteBar |
| useTempo | Kích hoạt hoặc vô hiệu hóa tính năng tốc độ trong đó người dùng có thể kiểm soát cách nhanh hay chậm các biểu cảm của họ được phát bằng cách liên tục kích hoạt cùng một biểu cảm theo nhịp điệu. | true |
| tempoActivationWindow | Số thời gian, tính bằng giây, mà người dùng có giữa các lần kích hoạt liên tiếp của một biểu cảm để nó được tính là một phần của tốc độ. | 3 |
| lockedImage | Hình ảnh để hiển thị trên các biểu cảm bị khóa. | "rbxassetid://6905802778" |
LocalScript - Emote Barlocal 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 Wheellocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureClient({guiType = EmoteBar.GuiType.EmoteWheel,})
setEmotes
setEmotes(emotes: table)
Thiết lập các biểu cảm tùy chỉnh để sử dụng. Những biểu cảm này sẽ được thêm vào mặc định nếu useDefaultEmotes là true, hoặc thay thế các mặc định nếu useDefaultEmotes là false. Hàm này chỉ có thể được gọi từ một Script và các thay đổi sẽ tự động sao chép tới tất cả các client.
Xem Biểu cảm để biết cấu trúc của từng biểu cảm được truyền vào hàm này.
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)
Hiển thị hoặc ẩn GUI biểu cảm. Hàm này chỉ có thể được gọi từ một LocalScript trên một client cụ thể.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.setGuiVisibility(false)
getEmote
Lấy một Biểu cảm theo tên. Trả về nil nếu không thể tìm thấy biểu cảm. Hàm này chỉ có thể được gọi từ một LocalScript trên một client cụ thể.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)local shrug = EmoteBar.getEmote("Shrug")
playEmote
playEmote(emote: Emote)
Phát biểu cảm Emote đã cho và kích hoạt sự kiện emotePlayed trên máy chủ, nếu có kết nối. Hàm này chỉ có thể được gọi từ một LocalScript trên một client cụ thể.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)local shrug = EmoteBar.getEmote("Shrug")EmoteBar.playEmote(shrug)
lockEmote
lockEmote(emoteName: string)
Khóa Biểu cảm với tên đã cho. Hàm này chỉ có thể được gọi từ một LocalScript trên client.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.lockEmote("Applaud")
unlockEmote
unlockEmote(emoteName: string)
Mở khóa Biểu cảm với tên đã cho. Hàm này chỉ có thể được gọi từ một LocalScript trên client.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.unlockEmote("Applaud")
Sự kiện
emotePlayed
Kích hoạt khi bất kỳ client nào phát một biểu cảm. Sự kiện này chỉ có thể được kết nối trong một LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage.EmoteBar)
EmoteBar.emotePlayed:Connect(function(player, emote)
print(player.Name, "đã phát", emote.name)
end)
lockedEmoteActivated
Kích hoạt khi một client nhấp vào một biểu cảm bị khóa. Sự kiện này chỉ có thể được kết nối trong một LocalScript.
| Tham số | |
|---|---|
| biểu cảm: Emote | Biểu cảm bị khóa đã được kích hoạt. |
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local EmoteBar = require(ReplicatedStorage.EmoteBar)
EmoteBar.lockedEmoteActivated:Connect(function(emote)
print(Players.LocalPlayer, "đã nhấp vào", emote.name)
end)