อีโมตเป็นส่วนสำคัญของประสบการณ์ทางสังคมใด ๆ โมดูล EmoteBar สำหรับนักพัฒนา มีเป้าหมายเพื่อมอบวิธีการที่เข้าถึงได้และปรับแต่งได้ให้กับผู้เล่นในการส่งเสริมการโต้ตอบทางสังคมที่มีความหมาย
การใช้งานโมดูล
การติดตั้ง
ในการใช้โมดูล EmoteBar ในประสบการณ์:
จากเมนู Window ของ Studio หรือแถบเครื่องมือ Home เปิด Toolbox และเลือกแท็บ Creator Store

ตรวจสอบให้แน่ใจว่าได้เลือกการจัดเรียง Models จากนั้นคลิกปุ่ม See All สำหรับ Categories

หาและคลิกที่สัญลักษณ์ Packages
หาโมดูล Emote Bar แล้วคลิกที่มัน หรือดึงและวางเข้าไปในมุมมอง 3D

ในหน้าต่าง Explorer ย้ายโมเดล EmoteBar ทั้งหมดเข้าไปใน ReplicatedStorage เมื่อต้องการเรียกใช้ประสบการณ์ โมดูลจะเริ่มทำงาน
การตั้งค่า
โมดูลถูกตั้งค่าไว้ล่วงหน้าด้วยอีโมต 7 ตัว และสามารถปรับแต่งได้ง่ายด้วยอีโมตและตัวเลือกการแสดงผลของคุณเอง นอกจากนี้ หากผู้เล่นมีอีโมตจากเหตุการณ์ Roblox ก่อนหน้านี้ เช่น Lil Nas X, Royal Blood หรือ Twenty One Pilots อีโมตเหล่านั้นจะถูกเพิ่มเข้าไปในรายการอีโมตที่สามารถใช้งานได้โดยอัตโนมัติ
ใน ServerScriptService สร้าง Script ใหม่และเปลี่ยนชื่อเป็น ConfigureEmotes

วางโค้ดต่อไปนี้ลงในสคริปต์ ConfigureEmotes ใหม่ การตั้งค่า useDefaultEmotes เป็น false จะเขียนทับอีโมตเริ่มต้นและอนุญาตให้คุณกำหนดอีโมตที่กำหนดเองผ่านฟังก์ชัน 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,},})
อีโมตเมก้า
อีโมต เมก้า จะเกิดขึ้นเมื่อผู้เล่นหลายคนในพื้นที่เดียวกันทำอีโมตเดียวกันในเวลาเดียวกัน เมื่อมีผู้เล่นเข้าร่วมมากขึ้น อีโมตเมก้าจะเติบโตใหญ่ขึ้น เมื่อผู้เล่นหยุดทำอีโมต อีโมตเมก้าจะลดขนาดลงจนในที่สุดก็หายไป

จังหวะ (Tempo)
จังหวะ ของอีโมตคือความเร็วที่เล่นเมื่อปุ่มของมันถูกเลือกเพียงครั้งเดียว ความเร็วเริ่มต้นของอีโมตจะถูกกำหนดโดย defaultTempo ของมัน ความเร็วของอีโมตสามารถเพิ่มขึ้นหรือลดลงได้โดยการแตะปุ่มของมันให้เร็วขึ้นหรือลง
เอกสารอ้างอิง API
ประเภท
อีโมต
อีโมตแต่ละตัวจะถูกแทนด้วยพจนานุกรมที่มีคู่คีย์-ค่า ดังนี้:
| คีย์ | ประเภท | คำอธิบาย |
|---|---|---|
| name | string | ชื่ออีโมต เช่น "Shrug" |
| animation | string | Asset ID สำหรับอนิเมชันของอีโมต |
| image | string | Asset ID สำหรับภาพอีโมตใน GUI |
| defaultTempo | number | ปัจจัยความเร็วเริ่มต้นที่ใช้ในการเล่นอนิเมชันอีโมต เช่น ค่า tempo ของ 2 จะเล่นอนิเมชันที่ความเร็วเป็นสองเท่าของความเร็วปกติ ต้องมากกว่า 0 |
| isLocked | bool | อีโมตถูก "ล็อค" ไม่ให้เปิดใช้งานหรือไม่ |
Enum
EmoteBar.GuiType
| ชื่อ | สรุป |
|---|---|
| EmoteBar | รูปแบบเริ่มต้นที่อีโมตจะแสดงในแถบที่ด้านล่างของหน้าจอ ซึ่งแยกออกเป็น "หน้า" แต่ละหน้า |
| EmoteWheel | แบบที่อีโมตแสดงในวงแหวนเมื่อผู้เล่นคลิกหรือแตะที่ตัวละครของพวกเขา |
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureClient({guiType = EmoteBar.GuiType.EmoteWheel,})
ฟังก์ชัน
configureServer
configureServer(config: table)
เขียนทับค่าเริ่มต้นของการกำหนดค่าด้านเซิร์ฟเวอร์ผ่านคีย์/ค่าในตาราง config ฟังก์ชันนี้สามารถเรียกใช้ได้เฉพาะจาก Script และการเปลี่ยนแปลงจะทำให้แสดงซ้ำไปยังลูกค้าทั้งหมดโดยอัตโนมัติ
| คีย์ | คำอธิบาย | ค่าเริ่มต้น |
|---|---|---|
| useDefaultEmotes | ระบุว่าอีโมตเริ่มต้นที่ให้มาถูกนำมารวมไว้หรือไม่ | true |
| useMegaEmotes | เปิดหรือปิดฟีเจอร์ mega emotes | true |
| emoteMinPlayers | จำนวนผู้เล่นขั้นต่ำที่ทำอีโมตเดียวกันเพื่อมีส่วนร่วมในอีโมตเมก้า | 3 |
| emoteMaxPlayers | จำนวนผู้เล่นสูงสุดที่ทำอีโมตเดียวกันเพื่อมีส่วนร่วมในอีโมตเมก้า | 50 |
| playParticles | เปิดหรือปิดอีโมตที่ผู้เล่นทำเป็นอนุภาคลอยเหนือหัวของพวกเขา | true |
| sendContributingEmotes | เปิดหรือปิดการส่งสัญลักษณ์อีโมตขนาดเล็กเพื่อมีส่วนร่วมในอีโมตเมก้า | true |
Scriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureServer({emoteMinPlayers = 2,playParticles = false,})
configureClient
configureClient(config: table)
เขียนทับค่าเริ่มต้นของการกำหนดค่าของลูกค้าผ่านคีย์/ค่าในตาราง config ฟังก์ชันนี้สามารถเรียกใช้ได้เฉพาะจาก LocalScript ขึ้นอยู่กับค่าของ guiType ตัวเลือกในแท็บที่กล่าวถึงจะมีผลด้วย
| คีย์ | คำอธิบาย | ค่าเริ่มต้น |
|---|---|---|
| guiType | ควบคุมว่ารูปแบบใดที่ GUI จะนำเสนอในการแสดงอีโมต (EmoteBar.GuiType) | EmoteBar |
| useTempo | เปิดหรือปิดฟีเจอร์ tempo ซึ่งผู้ใช้สามารถควบคุมความเร็วหรือช้าของการเล่นอีโมตด้วยการเปิดใช้งานอีโมตเดิมซ้ำหลายครั้ง | true |
| tempoActivationWindow | ระยะเวลาที่ผู้ใช้มีระหว่างการเปิดใช้งานอีโมตติดต่อกันสำหรับให้เป็นส่วนหนึ่งของจังหวะ | 3 |
| lockedImage | ภาพที่แสดงซ้อนทับบนอีโมตที่ล็อคอยู่ | "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)
ตั้งค่าอีโมตที่กำหนดเองที่จะใช้ เหล่านี้จะถูกเพิ่มเข้าไปในค่าเริ่มต้นหาก useDefaultEmotes เป็น true หรือลบค่าเริ่มต้นหาก useDefaultEmotes เป็น false ฟังก์ชันนี้สามารถเรียกใช้ได้เฉพาะจาก Script และการเปลี่ยนแปลงจะทำให้แสดงซ้ำไปยังลูกค้าทั้งหมดโดยอัตโนมัติ
ดู Emote สำหรับโครงสร้างของแต่ละอีโมตที่ส่งไปยังฟังก์ชันนี้
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)
แสดงหรือซ่อน GUI ของอีโมต ฟังก์ชันนี้สามารถเรียกใช้ได้เฉพาะจาก LocalScript บนลูกค้าเฉพาะ
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.setGuiVisibility(false)
getEmote
ดึงข้อมูล Emote ตามชื่อ หากไม่พบอีโมตจะส่งคืน nil ฟังก์ชันนี้สามารถเรียกใช้ได้เฉพาะจาก LocalScript บนลูกค้าเฉพาะ
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)local shrug = EmoteBar.getEmote("Shrug")
playEmote
playEmote(emote: Emote)
เล่น Emote ที่กำหนดและส่งเหตุการณ์ emotePlayed ไปยังเซิร์ฟเวอร์ หากเชื่อมต่อ ฟังก์ชันนี้สามารถเรียกใช้ได้เฉพาะจาก LocalScript บนลูกค้าเฉพาะ
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)local shrug = EmoteBar.getEmote("Shrug")EmoteBar.playEmote(shrug)
lockEmote
lockEmote(emoteName: string)
ล็อค Emote ที่มีชื่อที่กำหนด ฟังก์ชันนี้สามารถเรียกใช้ได้เฉพาะจาก LocalScript บนลูกค้า
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.lockEmote("Applaud")
unlockEmote
unlockEmote(emoteName: string)
ปลดล็อค Emote ที่มีชื่อที่กำหนด ฟังก์ชันนี้สามารถเรียกใช้ได้เฉพาะจาก LocalScript บนลูกค้า
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.unlockEmote("Applaud")
เหตุการณ์
emotePlayed
เกิดขึ้นเมื่อผู้ใช้ใด ๆ เล่นอีโมต เหตุการณ์นี้สามารถเชื่อมต่อได้เฉพาะใน LocalScript
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage.EmoteBar)
EmoteBar.emotePlayed:Connect(function(player, emote)
print(player.Name, "played", emote.name)
end)
lockedEmoteActivated
เกิดขึ้นเมื่อผู้ใช้คลิกอีโมตที่ล็อคอยู่ เหตุการณ์นี้สามารถเชื่อมต่อได้เฉพาะใน LocalScript
| พารามิเตอร์ | |
|---|---|
| emote: Emote | อีโมตที่ล็อคซึ่งถูกเปิดใช้งาน |
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local EmoteBar = require(ReplicatedStorage.EmoteBar)
EmoteBar.lockedEmoteActivated:Connect(function(emote)
print(Players.LocalPlayer, "clicked", emote.name)
end)