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

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

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

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

เพื่อเปิดใช้งานการแชทฟองในประสบการณ์ของคุณ:

  1. ในหน้าต่าง สํารวจ เลือก BubbleChatConfiguration ใต้ TextChatService

  2. ในหน้าต่าง คุณสมบัติ ตรวจสอบกล่องเลือก BubbleChatConfiguration.Enabled

การปรับแต่งฟองข้อความ

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

หรือเพิ่ม 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 และ ตัวแก้ไขรูปลักษณ์ พร้อมกับคุณสมบัติการปรับแต่งที่ถูกต้อง:

คุณสมบัติคําอธิบายค่าเริ่มต้น
ImageID สินทรัพย์ของภาพพื้นหลังฟองสบู่
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 เป็น Slice1
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)
-- ค้นหามนุษย์ในตัวละครของผู้ใช้
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

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

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

การปรับแต่งฟองข้อมูลเหล่านี้เป็นเช่นเดียวกับการปรับแต่งฟองข้อมูลที่แสดงโดยอัตโนมัติเมื่อผู้เล่นส่งข้อความผ่านช่องทางข้อความโดยใช้การโทรกลับ 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, "Hello world!")
end)