Konuşma Sohbet

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

With the in-experience text chat system, you can support ubble chat to display customizable speech chat bubbles above user avatars and NPCs. Bubble chat can make your experience more visually immersive and help users easily identify messages and their speakers in a contextually relevant manner. This feature is especially useful for experiences where users need to focus on the content in the meantime communicating with others in a less obtrusive way.

Konuşma balonlarını Sohbet

Bubble chat'i deneyiminizde etkinleştirmek için:

  1. In the Explorer window, select BubbleChatConfiguration under TextChatService .

  2. Özellikler Penceresinde, Enabled kontrol kutusunu kontrol edin.

Balon Özelleştirmesi

Balon sohbetini etkinleştirdikten sonra, sohbet balonlarınızın görünümünü ve davranışınızı deneyim temanızla eşleştirmek için özelleştirebilirsiniz. Özellikler penceresinden BubbleChatConfiguration için önbelleştirme değişiklikleri, renk ve boşluk gibi temel

Alternatif olarak, tüm özelleştirme ayarlarınızla LocalScript ile bir StarterPlayerScripts ekleyebilirsiniz. Bu, motorunuzu çalışma sırasında özelleştirmelerinizi uygulayabilir, Studio'daki ayarların üzerinde çalışır. Kullanıcılar bazı etkinleştirme ayarllarınızı etkinleş

Temel Özelleştirme

Aşağıdaki tabloda yaygın balon sohbeti özelleştirme özellikleri gösterilmiştir. For a full list of customization properties, see BubbleChatConfiguration .

ÖzellikAçıklamaVarsayılan
BackgroundColor3Balonların arka plan rengi Color3 .[250, 250, 250]
FontFaceFontBuilderSansMedium
TextColor3Color3 içinde balon metni rengi.[57, 59, 61]
TextSizeBaloncuk metinin boyutu.16

Gelişmiş Özelleştirme

Balonunuzun gelişmiş özelleştirmesi için, balonunuzun görünümünün belirli yönlerini temsil eden UI nesneleri ekleyin, bunlar arasında:

  • ImageLabel arka plan görüntü ayarları için.
  • UIGradient için yüksek kayış ayarları.
  • UICorner kabarcıkların köşe şeklindeki kullanımı için.
  • UIPadding ile, metin ve balon kenarları arasındaki yastıklama alanına, ebeveynin normal büyüklüğüne göre yastıklama alanına yastıklama alanına yastıklama alanına yastıklama alanına yastıklama alanına yastıklama alanına yastıklama alanına yastıklama alanına yastıklama alanına yastıklama alanına yastıklama alanına yastıklama alanına yastıklama alanına yastıklama alanına yastıklama alanına yast

Bu nesneleri ekledikten sonra, sohbet balonları için gelişmiş balon özelleştirmesi için bu nesnelerin özelliklerini değiştirebilirsiniz. Aşağıdaki örnek LocalScript , bir arka plan görüntüsü ve kenarları balonlar için ekler:

Gelişmiş Balon Özelleştirmesi

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

Aşağıdaki tablolar, mevcut GuiObject ve görünüm modifiyesi çocuklarının geçerli özelleştirme özellikleriyle birlikte mevcut çocuklarının görünümünü açıklar:

ÖzellikAçıklamaVarsayılan
ImageBalon arka plan görüntüsünün ID'si.
ImageColor3Datatype.Color3 ile balon arka planının rengi[255, 255, 255]
ImageRectOffsetPikselde görüntülenen görüntü alanının üst kısmındaki bozulma.(0, 0)
ImageRectSizeGörüntülenen görüntü alanının boyutu. Tüm görüntüyü görmek için herhangi bir boyutu 0 olarak ayarla.(0, 0)
ScaleTypeGörüntünün küresel boyutundan farklı olduğu için görüntüyü render etmek için ölçek tipi.Stretch
SliceCenterEğer görüntü bir 9-sliced görüntü ise görüntünün sınırlarını kesiyor. Sadece ScaleType olarak ayarladığınızda uygulanır.(0, 0, 0, 0)
SliceScaleEğer görüntü 9 dilimli bir görüntüyse dilimlerin ölçeğini ölçeği kullanıyorsa. Yalnızca ScaleType olarak Slice olarak uygulanır.1
TileSizeGörüntünün büyüklüğünü ayarlar. Sadece ScaleType 'i Tile olarak ayarladığınızda geçerlidir.(1, 0, 1, 0)

Konfigürasyon başına küme özelleştirmesi

Genel ayarlarınızın üstesinden gelen özel koşullara dayanarak sohbet balonu davranışlarınızı kişiselleştirebilirsiniz. Örneğin, NPC'leri ve kullanıcıları ayırt etmek için sohbet balonlarınızı kullanabilirsiniz, ön ayarlı kelimeleri vurgulayabilirsiniz ve özel etkileri mesajlara uygulayabilirsiniz.

Per-bubble özelleştirmesini ayarlamak için, LocalScript kullanarak bir BubbleChatMessageProperties , which overrides the matching properties of

Aşağıdaki temel özelleştirme özellikleri per-bubble özelleştirmesi için mevcut:

ÖzellikAçıklamaVarsayılan
BackgroundColor3Balonların arka plan rengi Color3 .(250, 250, 250)
BackgroundTransparencyBalonların arka planının透明.0.1
FontFaceFontBuilderSansMedium
TextColor3Color3 içinde balon metni rengi.[57, 59, 61]
TextSizeBaloncuk metinin boyutu.16

Aşağıdaki örnek, bir sohbet mesajı göndericisinin IsVIP özelliğine sahip olup olmadığını kontrol ederek sohbet mesajlarının balonlarına özel bir görünüm ekler:

VIP balonları

local TextChatService = game:GetService("TextChatService")
local Players = game:GetService("Players")
-- Yeni bir sohbet balonu deneyime eklenildiğinde etkinliğin işleyişi için bir etkinlik eşleyici
TextChatService.OnBubbleAdded = function(message: TextChatMessage, adornee: Instance)
-- Sohbet mesajının bir TextSource (gönderici) ile bağlantılı olup olmadığını kontrol edin
if message.TextSource then
-- Sohbet balonunu özelleştirmek için yeni bir BubbleChatMessageProperties instansı oluştur
local bubbleProperties = Instance.new("BubbleChatMessageProperties")
-- Kullanıcının sohbet mesajını UserId'ine gönderen kullanıcıyı alın
local player = Players:GetPlayerByUserId(message.TextSource.UserId)
if player:GetAttribute("IsVIP") then
-- Oyuncu bir VIP ise, sohbet balonu özelliklerini özelleştirin
bubbleProperties.TextColor3 = Color3.fromHex("#F5CD30")
bubbleProperties.BackgroundColor3 = Color3.fromRGB(25, 27, 29)
bubbleProperties.FontFace = Font.fromEnum(Enum.Font.PermanentMarker)
end
return bubbleProperties
end
end

Tüm gelişmiş özelleştirme seçenekleri per-bubble özelleştirme için mevcut. Genel küm özelleştirmeleri için gelişmiş özelleştirmeye benzer, BubbleChatMessageProperties 'in çocukları olarak etkileşim balonlarını özelleştirmek için istemeleri ekler. Aş

Düşük Sağlık Balonları

local TextChatService = game:GetService("TextChatService")
local Players = game:GetService("Players")
-- Yeni bir sohbet balonu deneyime eklenildiğinde etkinliğin işleyişi için bir etkinlik eşleyici
TextChatService.OnBubbleAdded = function(message: TextChatMessage, adornee: Instance)
-- Sohbet mesajının bir TextSource (gönderici) ile bağlantılı olup olmadığını kontrol edin
if message.TextSource then
-- Kullanıcının sohbet mesajını gönderdiği kimliğini kullanarak onu al
local player = Players:GetPlayerByUserId(message.TextSource.UserId)
-- Kullanıcının karakterindeki insanoid'i bul
local humanoid = player.Character:FindFirstChildWhichIsA("Humanoid")
if humanoid and humanoid.Health < 25 then
-- Sohbet balonunu özelleştirmek için yeni bir BubbleChatMessageProperties instansı oluştur
local bubbleProperties :BubbleChatMessageProperties = Instance.new("BubbleChatMessageProperties")
-- Düşük sağlık durumu için sohbet balonu özelliklerini özelleştir
bubbleProperties.BackgroundColor3 = Color3.fromRGB(245, 245, 245)
bubbleProperties.TextColor3 = Color3.fromRGB(234, 51, 96)
bubbleProperties.TextSize = 20
bubbleProperties.FontFace = Font.fromEnum(Enum.Font.DenkOne)
-- Gradient'ı özelleştirmek için bir çocuk olarak UIGradient ekleyin
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 balonları

NPC'ler için sohbet balonlarını göstermek için Class.TextChatService:DisplayBubble() , NPC karakteri ve mesajının parçaları olarak çağırın, bu balonlar kişiselleştirilebilir olarak kullanılabilir. Bu balonlar Class.TextChatService.OnBubbleAdded çağrısını kullanarak herhangi bir diğer sohbet balonu gibi özelleş

TextChatService:DisplayBubble() sadece client-side kodlar için çalışır, bu yüzden Class.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)