泡泡聊天

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

有了 在-驗證文字聊天系統,您可以支持 泡泡聊天 以顯示可自訂語音聊天泡泡在用戶虛擬人偶和 NPC 上。泡泡聊天可以讓您的體驗更具視覺效果,並幫助用戶�����

啟用泡泡聊天

要啟用泡泡聊天在您的體驗中:

  1. Explorer 窗口中,選擇 BubbleChatConfigurationTextChatService 下。

  2. 屬性 視窗中,確認 Enabled 選項卡。

泡泡自訂

啟用泡泡聊天後,您可以自訂泡泡聊天的外觀和行為,以符合您的體驗主題。使用 Class.BubbleChatConfiguration 中的 屬性 窗口來對基本變更,例如文字顏色和空格,或實現2>高級2>的自訂,例如泡泡背景圖

或者,您可以在 LocalScript 中,全部您的自訂設定。這允許引擎在執行階段時對您的自訂設定進行應用,並且覆蓋 Studio 中的設置。這對於添加特殊效果到聊天對話框時,當用戶觸發特定事件或條件時,很有用。

基本自訂

下表顯示常見的泡泡聊天自訂程度。For a full list of customization properties, see BubbleChatConfiguration

屬性說明預設
BackgroundColor3泡泡的背景顏色在 Color3 中。[250, 250, 250]
FontFaceFont 泡泡文字。BuilderSansMedium
TextColor3Color3 中泡泡文字的顏色。[57, 59, 61]
TextSize泡泡文字的大小。16

進階自訂

為進階自訂泡泡的屬性,請在 BubbleChatConfiguration 中添加代表泡泡外觀某些部分的 UI 對象,包括:

  • 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://6733332557"
bubbleImageLabel.ScaleType = Enum.ScaleType.Slice
bubbleImageLabel.SliceCenter = Rect.new(40, 40, 320, 120)
bubbleImageLabel.SliceScale = 0.5

下表列出可用的 GuiObject外觀修改器 子兒,以及其有效的自訂屬性:

屬性說明預設
Image泡泡背景圖像的資產 ID。
ImageColor3Color3 中泡泡背景圖像的顏色。[255, 255, 255] >
ImageRectOffset用於顯示從左上角開始顯示的圖像區域的 Offset。(0, 0)
ImageRectSize圖像區域的大小來顯示在像素。要顯示整個圖像,請將任何尺寸設為 0(0, 0)
ScaleType可用於縮放圖像尺寸,使其與泡泡的相對尺寸無關。Stretch
SliceCenter將圖像的邊界切分為 9 個,如果圖像為 9 個邊界切分的圖像,僅適用於您設定 ScaleTypeSlice(0, 0, 0, 0)
SliceScale將圖像擴大到片邊如果圖像是 9 個斷片的圖像。只適用於您將 ScaleType 設為 Slice1
TileSize圖像的大小。只適用於您將 ScaleType 設為 Tile(1, 0, 1, 0)

泡泡自訂

您可以根據特定條件對聊天泡泡的行為進行個別風格化和修改,以反映您的一般設定。例如,您可以使用聊天泡泡來區分 NPC 和用戶,強調重要的健康狀態,並且在預設關鍵字的消息上添加特殊效果。

要設定每個泡泡的自訂選項,請使用 LocalScript 使用 BubbleChatMessageProperties 的對應資料,並且在

下列基本自訂屬性可用於泡泡自訂:

屬性說明預設
BackgroundColor3泡泡的背景顏色在 Color3 中。(250, 250, 250)
BackgroundTransparency泡泡背景透明度。0.1
FontFaceFont 泡泡文字。BuilderSansMedium
TextColor3Color3 中泡泡文字的顏色。[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")
-- 取得基於用戶身份嘗試發送聊天訊息的用戶
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 的泡泡以及其他屬性。下列示例添加了一個特殊渦輪效果,以及其他��

低生命值泡泡

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.Parent = bubbleProperties
uiGradient.Rotation = 90
return bubbleProperties
end
end
end

NPC 泡泡

您可以使用 TextChatService:DisplayBubble() 來顯示非玩家角色 (NPC) 的聊天泡泡,並且將 NPC 角色和訊息作為參數傳送給。這些泡泡可以使用 TextChatService.OnBubbleAdded 回來濾件來自其他聊天泡泡的樣子。

TextChatService:DisplayBubble() 只適用於客戶端指令碼,因此請務必使用 Script


local TextChatService = game:GetService("TextChatService")
local prompt = workspace.SomeNPC.ProximityPrompt
local head = prompt.Parent:WaitForChild("Head")
prompt.Triggered:Connect(function()
TextChatService:DisplayBubble(head, "Hello world!")
end)