ปรับแต่งการสนทนาแบบฟอง

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

ด้วย TextChatService คุณสามารถใช้การสนทนาแบบฟองเพื่อแสดงฟองข้อความที่ปรับแต่งได้เหนืออวาตาร์ของผู้ใช้และ NPC การสนทนาแบบฟองสามารถทำให้เกมของคุณมีความน่าดึงดูดใจมากขึ้นและช่วยให้ผู้ใช้สามารถระบุข้อความและผู้พูดได้อย่างง่ายดายในลักษณะที่สอดคล้องกับบริบท ฟีเจอร์นี้มีประโยชน์โดยเฉพาะสำหรับเกมที่ผู้ใช้ต้องมุ่งเน้นไปที่เนื้อหาในขณะที่สื่อสารกับผู้อื่นในลักษณะที่ไม่รบกวน

เปิดใช้งานการสนทนาแบบฟอง

ในการเปิดใช้งานการสนทนาแบบฟองในเกมของคุณ:

  1. ในหน้าต่าง Explorer ให้เลือก BubbleChatConfiguration ภายใต้ TextChatService.

  2. ในหน้าต่าง Properties ให้ติ๊กที่ช่องทำเครื่องหมาย BubbleChatConfiguration.Enabled.

การปรับแต่งฟอง

หลังจากเปิดใช้งานการสนทนาแบบฟอง คุณสามารถปรับแต่งรูปลักษณ์และพฤติกรรมของฟองข้อความของคุณให้ตรงกับธีมของเกมของคุณ ใช้หน้าต่าง Properties ของ BubbleChatConfiguration สำหรับการเปลี่ยนแปลง พื้นฐาน เช่น สีข้อความและการเว้นระยะ หรือใช้การปรับแต่ง ขั้นสูง สำหรับภาพพื้นหลังของฟองและการปรับแก้ภาพอื่นๆ

หรือว่าจะเพิ่ม LocalScript ใน StarterPlayerScripts พร้อมกับการตั้งค่าการปรับแต่งทั้งหมดของคุณ สิ่งนี้ช่วยให้เอนจินใช้การปรับแต่งของคุณในระหว่างการทำงาน โดยเขียนทับการตั้งค่าใน Studio นี่มีประโยชน์สำหรับการเพิ่มเอฟเฟกต์พิเศษให้กับฟองเมื่อผู้ใช้กระตุ้นเหตุการณ์หรือเงื่อนไขบางอย่าง

การปรับแต่งพื้นฐาน

ตารางด้านล่างแสดงถึงคุณสมบัติการปรับแต่งฟองแชททั่วไป สำหรับรายการคุณสมบัติการปรับแต่งทั้งหมด โปรดดู BubbleChatConfiguration.

คุณสมบัติคำอธิบายค่าเริ่มต้น
BackgroundColor3สีพื้นหลังของฟองใน Color3.[250, 250, 250]
FontFaceFont ของข้อความในฟอง.BuilderSansMedium
TextColor3สีของข้อความในฟองใน Color3.[57, 59, 61]
TextSizeขนาดของข้อความในฟอง.16

การปรับแต่งขั้นสูง

สำหรับการปรับแต่งขั้นสูงของฟองของคุณ เพิ่มวัตถุ UI ที่แทนด้านต่างๆ ของรูปลักษณ์ของฟองในฐานะลูกของ BubbleChatConfiguration รวมถึง:

  • ImageLabel สำหรับการตั้งค่าภาพพื้นหลัง.
  • UIGradient สำหรับการตั้งค่าภาพพื้นหลังของสีเกรเดียน.
  • UICorner สำหรับรูปร่างมุมของฟอง.
  • UIPadding สำหรับระยะห่างระหว่างข้อความและขอบฟอง ซึ่งสัมพันธ์กับขนาดปกติของพ่อแม่.

หลังจากเพิ่มวัตถุต่างๆ คุณสามารถปรับเปลี่ยนคุณสมบัติของวัตถุเหล่านี้ที่ใช้กับฟองการแชทเพื่อการปรับแต่งฟองขั้นสูง ตัวอย่าง LocalScript ด้านล่างเพิ่มภาพพื้นหลังและมุมคมให้กับฟอง:

การปรับแต่งฟองขั้นสูง

local TextChatService = game:GetService("TextChatService")
local bubbleChatConfiguration = TextChatService.BubbleChatConfiguration
bubbleChatConfiguration.TailVisible = false
bubbleChatConfiguration.TextColor3 = Color3.fromRGB(220, 50, 50)
bubbleChatConfiguration.FontFace = Font.fromEnum(Enum.Font.LuckiestGuy)
local bubbleUICorner = bubbleChatConfiguration:FindFirstChildOfClass("UICorner")
if not bubbleUICorner then
bubbleUICorner = Instance.new("UICorner")
bubbleUICorner.Parent = bubbleChatConfiguration
end
bubbleUICorner.CornerRadius = UDim.new(0, 0)
local bubbleUIPadding = bubbleChatConfiguration:FindFirstChildOfClass("UIPadding")
if not bubbleUIPadding then
bubbleUIPadding = Instance.new("UIPadding")
bubbleUIPadding.Parent = bubbleChatConfiguration
end
bubbleUIPadding.PaddingTop = UDim.new(0, 20)
bubbleUIPadding.PaddingRight = UDim.new(0, 10)
bubbleUIPadding.PaddingBottom = UDim.new(0, 15)
bubbleUIPadding.PaddingLeft = UDim.new(0, 10)
local bubbleImageLabel = bubbleChatConfiguration:FindFirstChildOfClass("ImageLabel")
if not bubbleImageLabel then
bubbleImageLabel = Instance.new("ImageLabel")
bubbleImageLabel.Parent = bubbleChatConfiguration
end
bubbleImageLabel.Image = "rbxassetid://109157529833093"
bubbleImageLabel.ScaleType = Enum.ScaleType.Slice
bubbleImageLabel.SliceCenter = Rect.new(40, 40, 320, 120)
bubbleImageLabel.SliceScale = 0.5

ตารางด้านล่างจะระบุถึง GuiObject และ ตัวปรับแต่งลักษณะ ที่มีอยู่พร้อมกับคุณสมบัติการปรับแต่งที่ถูกต้อง:

คุณสมบัติคำอธิบายค่าเริ่มต้น
Imageรหัสสินทรัพย์ของภาพพื้นหลังของฟอง.
ImageColor3สีของภาพพื้นหลังฟองใน Color3.[255, 255, 255]
ImageRectOffsetการเลื่อนของพื้นที่ภาพที่จะแสดงจากมุมบนซ้ายในพิกเซล.(0, 0)
ImageRectSizeขนาดของพื้นที่ภาพที่จะแสดงในพิกเซล หากต้องการแสดงภาพทั้งหมดให้ตั้งค่าขนาดอย่างน้อยหนึ่งค่ากับ 0.(0, 0)
ScaleTypeประเภทของการปรับขนาดสำหรับการแสดงผลภาพเมื่อขนาดแตกต่างจากขนาดที่แน่นอนของฟอง.Stretch
SliceCenterขอบเขตการตัดของภาพหากภาพเป็นภาพตัด 9. ใช้ได้เฉพาะเมื่อคุณตั้งค่า ScaleType เป็น Slice.(0, 0, 0, 0)
SliceScaleอัตราส่วนการปรับขนาดของขอบที่ตัดหากภาพเป็นภาพตัด 9. ใช้ได้เฉพาะเมื่อคุณตั้งค่า ScaleType เป็น Slice.1
TileSizeขนาดการปูภาพ ใช้ได้เฉพาะเมื่อคุณตั้งค่า ScaleType เป็น Tile.(1, 0, 1, 0)

การปรับแต่งฟองเฉพาะ

คุณสามารถปรับแต่งรูปลักษณ์และพฤติกรรมฟองข้อความของแต่ละฟองได้ตามเงื่อนไขเฉพาะเพื่อเขียนทับการตั้งค่าทั่วไปของคุณ ตัวอย่างเช่น คุณสามารถใช้ฟองข้อความเพื่อแยกแยะ NPC และผู้ใช้, เน้นสถานะสุขภาพที่สำคัญ และใช้เอฟเฟกต์พิเศษกับข้อความที่มีคำสำคัญที่กำหนดไว้ล่วงหน้า

ในการตั้งค่าการปรับแต่งฟองเฉพาะ เพิ่ม LocalScript ฝั่งลูกค้าโดยใช้ BubbleChatMessageProperties, ซึ่งจะเขียนทับคุณสมบัติที่ตรงกันของ BubbleChatConfiguration, และคอล์บแบ็ค TextChatService.OnBubbleAdded เพื่อระบุวิธีการปรับแต่งฟองแต่ละฟอง คอล์บแบ็คจะมอบคุณกับคุณสมบัติ TextChatMessage รวมถึงอวาตาร์, ดังนั้นคุณสามารถใช้การปรับแต่งตามคุณสมบัติต่างๆ ที่เชื่อมโยงกับผู้ใช้, เนื้อหาแชทข้อความ, คุณสมบัติของตัวละครผู้ใช้, และเงื่อนไขพิเศษที่คุณต้องการกำหนด

คุณสมบัติการปรับแต่งพื้นฐานต่อไปนี้จะใช้ได้สำหรับการปรับแต่งฟองเฉพาะ:

คุณสมบัติคำอธิบายค่าเริ่มต้น
BackgroundColor3สีพื้นหลังของฟองใน Color3.(250, 250, 250)
BackgroundTransparencyความโปร่งใสของพื้นหลังของฟอง.0.1
FontFaceFont ของข้อความในฟอง.BuilderSansMedium
TextColor3สีของข้อความในฟองใน Color3.[57, 59, 61]
TextSizeขนาดของข้อความในฟอง.16

ตัวอย่างด้านล่างเพิ่มรูปลักษณ์พิเศษให้กับฟองแชทของผู้ใช้ VIP โดยการตรวจสอบว่าผู้ส่งข้อความมีคุณสมบัติ IsVIP หรือไม่:

ฟอง VIP

local TextChatService = game:GetService("TextChatService")
local Players = game:GetService("Players")
-- ตัวจัดการเหตุการณ์เมื่อฟองแชทใหม่ถูกเพิ่มเข้าสู่เกม
TextChatService.OnBubbleAdded = function(message: TextChatMessage, adornee: Instance)
-- ตรวจสอบว่าข้อความแชทมี TextSource (ผู้ส่ง) ที่เกี่ยวข้องหรือไม่
if message.TextSource then
-- สร้างอินสแตนซ์ BubbleChatMessageProperties ใหม่เพื่อปรับแต่งฟองแชท
local bubbleProperties = Instance.new("BubbleChatMessageProperties")
-- รับผู้ใช้ที่ส่งข้อความแชทตาม UserId ของพวกเขา
local player = Players:GetPlayerByUserId(message.TextSource.UserId)
if player:GetAttribute("IsVIP") then
-- หากผู้เล่นเป็น VIP ปรับแต่งคุณสมบัติของฟอง
bubbleProperties.TextColor3 = Color3.fromHex("#F5CD30")
bubbleProperties.BackgroundColor3 = Color3.fromRGB(25, 27, 29)
bubbleProperties.FontFace = Font.fromEnum(Enum.Font.PermanentMarker)
end
return bubbleProperties
end
end

ตัวเลือกการปรับแต่งขั้นสูงทั้งหมดสามารถใช้ได้สำหรับการปรับแต่งฟองเฉพาะ เช่นเดียวกับการปรับแต่งขั้นสูงสำหรับฟองทั่วไป ให้เพิ่มอินสแตนซ์ที่คุณต้องการปรับแต่งเป็นลูกของ BubbleChatMessageProperties. ตัวอย่างด้านล่างเพิ่มเอฟเฟกต์เกรเดียนพิเศษพร้อมกับคุณสมบัติอื่น ๆ ให้กับฟองแชทของผู้ใช้ที่มีสถานะสุขภาพต่ำโดยการตรวจสอบคุณสมบัติ Humanoid.Health ของตัวละครผู้ส่งข้อความในแชท:

ฟองสุขภาพต่ำ

local TextChatService = game:GetService("TextChatService")
local Players = game:GetService("Players")
-- ตัวจัดการเหตุการณ์เมื่อฟองแชทใหม่ถูกเพิ่มเข้าสู่เกม
TextChatService.OnBubbleAdded = function(message: TextChatMessage, adornee: Instance)
-- ตรวจสอบว่าข้อความแชทมี TextSource (ผู้ส่ง) ที่เกี่ยวข้องหรือไม่
if message.TextSource then
-- รับผู้ใช้ที่ส่งข้อความแชทโดยใช้ UserId ของพวกเขา
local player = Players:GetPlayerByUserId(message.TextSource.UserId)
-- ค้นหา humanoid ในตัวละครของผู้ใช้
local humanoid = player.Character:FindFirstChildWhichIsA("Humanoid")
if humanoid and humanoid.Health < 25 then
-- สร้างอินสแตนซ์ BubbleChatMessageProperties ใหม่เพื่อปรับแต่งฟองแชท
local bubbleProperties :BubbleChatMessageProperties = Instance.new("BubbleChatMessageProperties")
-- ปรับแต่งคุณสมบัติฟองแชทสำหรับสถานะสุขภาพต่ำ
bubbleProperties.BackgroundColor3 = Color3.fromRGB(245, 245, 245)
bubbleProperties.TextColor3 = Color3.fromRGB(234, 51, 96)
bubbleProperties.TextSize = 20
bubbleProperties.FontFace = Font.fromEnum(Enum.Font.DenkOne)
-- เพิ่ม UIGradient เป็นลูกเพื่อปรับแต่งการเกรเดียน
local uiGradient : UIGradient = Instance.new("UIGradient")
uiGradient.Color = ColorSequence.new(Color3.fromRGB(110, 4, 0), Color3.fromRGB(0, 0, 0))
uiGradient.Rotation = 90
uiGradient.Parent = bubbleProperties
return bubbleProperties
end
end
end

แสดงฟองด้วยตนเอง

คุณอาจต้องการแสดงฟองแชทเมื่อผู้เล่นยังไม่ได้ส่งข้อความ เช่นเดียวกับ NPC ใช้เมธอด TextChatService:DisplayBubble() เพื่อแสดงฟองข้อความด้วยตนเอง

การปรับแต่งฟองเหล่านี้เหมือนกับการปรับแต่งฟองที่แสดงโดยอัตโนมัติเมื่อผู้เล่นส่งข้อความผ่าน TextChannels โดยใช้คอล์บแบ็ค TextChatService.OnBubbleAdded.

ฟอง NPC

แสดงฟองข้อความสำหรับตัวละครที่ไม่ใช่ผู้เล่น (NPC) โดยเรียกใช้ TextChatService:DisplayBubble(character, message) โดยมีตัวละคร NPC และข้อความเป็นพารามิเตอร์ ฟองเหล่านี้สามารถปรับแต่งได้โดยใช้คอล์บแบ็ค TextChatService.OnBubbleAdded เช่นเดียวกับฟองแชทอื่น ๆ

TextChatService:DisplayBubble() ใช้ได้เฉพาะในสคริปต์ฝั่งลูกค้า ดังนั้นโปรดใช้ Script ที่มี RunContext ตั้งค่าเป็น Enum.RunContext.Client หรือ LocalScript ใน คอนเทนเนอร์ที่เหมาะสม เช่น StarterPlayerScripts. หากคุณแนบ ProximityPrompt กับ NPC สคริปต์สำหรับการแสดงฟองข้อความอาจมีลักษณะดังนี้:


local TextChatService = game:GetService("TextChatService")
local Workspace = game:GetService("Workspace")
local prompt = Workspace.SomeNPC.ProximityPrompt
local head = prompt.Parent:WaitForChild("Head")
prompt.Triggered:Connect(function()
TextChatService:DisplayBubble(head, "สวัสดีชาวโลก!")
end)
©2026 Roblox Corporation. Roblox, โลโก้ Roblox และ Powering Imagination เป็นส่วนหนึ่งของเครื่องหมายการค้าที่จดทะเบียน และไม่ได้จดทะเบียนของเราในสหรัฐฯ และประเทศอื่นๆ