Baloncuklu sohbeti özelleştirin

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

TextChatService ile, kullanıcı avatarlarının ve NPC'lerin üstünde özelleştirilebilir konuşma baloncuklarını göstermek için baloncuk sohbetini kullanabilirsiniz. Baloncuk sohbeti, oyununuzu daha görsel olarak sürükleyici hale getirebilir ve kullanıcıların mesajları ve konuşmacıları bağlama açısından uygun bir şekilde kolayca tanımlamalarına yardımcı olabilir. Bu özellik, kullanıcıların içeriklere odaklanması gereken ve aynı zamanda diğerleriyle daha az rahatsız edici bir şekilde iletişim kurması gereken oyunlar için özellikle faydalıdır.

Baloncuk sohbetini etkinleştirin

Oyununuza baloncuk sohbetini etkinleştirmek için:

  1. Explorer penceresinde, TextChatService altında BubbleChatConfiguration öğesini seçin.

  2. Properties penceresinde, BubbleChatConfiguration.Enabled onay kutusunu işaretleyin.

Baloncuk özelleştirmesi

Baloncuk sohbetini etkinleştirdikten sonra, sohbet baloncuklarınızın görünümünü ve davranışını oyununuzun temasına uyacak şekilde özelleştirebilirsiniz. Metin rengi ve boşluk gibi temel değişiklikler için BubbleChatConfiguration'ın Properties penceresini kullanın veya baloncuk arka plan görüntüleri ve diğer görsel ayarlamalar için gelişmiş özelleştirme uygulayın.

Alternatif olarak, tüm özelleştirme ayarlarınızı içeren bir LocalScript ekleyin StarterPlayerScripts'te. Bu, motorun çalışma zamanında özelleştirmelerinizi uygulamasını sağlar ve Studio'daki ayarların üzerine yazar. Kullanıcılar belirli olayları veya koşulları tetiklediğinde, sohbet baloncuklarına özel efektler eklemek için faydalıdır.

Temel özelleştirme

Aşağıdaki tablo, yaygın baloncuk sohbeti özelleştirme özelliklerini göstermektedir. Özelleştirme özelliklerinin tam listesi için BubbleChatConfiguration'a bakın.

ÖzellikAçıklamaVarsayılan
BackgroundColor3Baloncukların arka plan rengi Color3 cinsinden.[250, 250, 250]
FontFaceBaloncuk metninin Font'i.BuilderSansMedium
TextColor3Baloncuk metninin rengi Color3 cinsinden.[57, 59, 61]
TextSizeBaloncuk metninin boyutu.16

Gelişmiş özelleştirme

Baloncuklarınızın gelişmiş özelleştirmesi için, baloncuk görünümünün belirli yönlerini temsil eden UI nesnelerini BubbleChatConfiguration altında alt nesne olarak ekleyin:

  • Arka plan görüntüsü ayarları için ImageLabel.
  • Arka plan gradyan ayarları için UIGradient.
  • Baloncukların köşe şekli için UICorner.
  • Metin ile baloncuk kenarları arasındaki boşluk alanı için UIPadding, ebeveynin normal boyutuna göre.

Bu nesneleri ekledikten sonra, baloncuklar için uygulanabilir olan bu nesnelerin özelliklerini özelleştirebilirsiniz. Aşağıdaki örnek LocalScript, baloncuklara arka plan resmi ve keskin köşeler ekliyor:

Gelişmiş Baloncuk Ö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://109157529833093"
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 modifikatorü alt nesnelerini ve geçerli özelleştirme özelliklerini özetlemektedir:

ÖzellikAçıklamaVarsayılan
ImageBaloncuk arka plan görüntüsünün varlık kimliği.
ImageColor3Baloncuk arka plan görüntüsünün renk tonu Color3 cinsinden.[255, 255, 255]
ImageRectOffsetGörüntü alanının üst-sol köşeden gösterileceği ofset, piksel cinsinden.(0, 0)
ImageRectSizeGösterilecek görüntü alanının boyutu, piksel cinsinden. Tüm resmi göstermek için bir boyutu 0 olarak ayarlayın.(0, 0)
ScaleTypeGörüntünün boyutu baloncuk boyutundan farklı olduğunda görüntüyü işlemek için ölçek türü.Stretch
SliceCenterResim 9 dilimlik bir resimse dilim sınırları. Sadece ScaleTypeSlice olarak ayarladığınızda uygulanabilir.(0, 0, 0, 0)
SliceScaleResim 9 dilimlik bir resimse dilim kenarlarının ölçek oranı. Sadece ScaleTypeSlice olarak ayarladığınızda uygulanabilir.1
TileSizeGörüntünün döşeme boyutu. Sadece ScaleTypeTile olarak ayarladığınızda uygulanabilir.(1, 0, 1, 0)

Her baloncuk için özelleştirme

Belirli koşullara dayanarak sohbet baloncuklarını ayrı ayrı stillendirebilir ve davranışlarını değiştirebilirsiniz. Örneğin, sohbet baloncuklarını NPC'ler ve kullanıcıları ayırt etmek için kullanabilir, kritik sağlık durumunu vurgulayabilir ve belirli anahtar kelimeleri içeren mesajlara özel efektler uygulayabilirsiniz.

Her baloncuk için özelleştirmeyi ayarlamak üzere, BubbleChatMessageProperties'i kullanan bir istemci tarafı LocalScript ekleyin. Bu, BubbleChatConfiguration ile eşleşen özellikleri geçersiz kılar ve her baloncuğu nasıl özelleştireceğinizi belirtmek için TextChatService.OnBubbleAdded geri çağrısını kullanır. Geri çağırma, size TextChatMessage özelliğini ve adornee'yi temin eder, böylece kullanıcılarla ilişkili değişkenler, sohbet metni içeriği, kullanıcı karakteri özellikleri ve tanımlamak istediğiniz herhangi bir özel koşula dayalı özelleştirmeyi uygulayabilirsiniz.

Her baloncuk için özelleştirmede mevcut olan aşağıdaki temel özelleştirme özellikleri vardır:

ÖzellikAçıklamaVarsayılan
BackgroundColor3Baloncukların arka plan rengi Color3 cinsinden.(250, 250, 250)
BackgroundTransparencyBaloncukların arka plan saydamlığı.0.1
FontFaceBaloncuk metninin Font'i.BuilderSansMedium
TextColor3Baloncuk metninin rengi Color3 cinsinden.[57, 59, 61]
TextSizeBaloncuk metninin boyutu.16

Aşağıdaki örnek, bir sohbet mesajı gönderenin IsVIP niteliğine sahip olup olmadığını kontrol ederek VIP kullanıcıların sohbet baloncuklarına özel bir görünüm ekler:

VIP Baloncukları

local TextChatService = game:GetService("TextChatService")
local Players = game:GetService("Players")
-- Oyun ortamına yeni bir sohbet baloncuğu eklendiğinde olay işleyici
TextChatService.OnBubbleAdded = function(message: TextChatMessage, adornee: Instance)
-- Sohbet mesajının ona ait bir TextSource (gönderen) olup olmadığını kontrol et
if message.TextSource then
-- Sohbet baloncuklarını özelleştirmek için yeni bir BubbleChatMessageProperties örneği oluştur
local bubbleProperties = Instance.new("BubbleChatMessageProperties")
-- Mesajı gönderenin UserId'sine göre kullanıcıyı al
local player = Players:GetPlayerByUserId(message.TextSource.UserId)
if player:GetAttribute("IsVIP") then
-- Kullanıcı VIP ise, sohbet balonu özelliklerini özelleştir
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, her baloncuk için özelleştirme için de mevcuttur. Genel baloncuklar için gelişmiş özelleştirmeye benzer şekilde, özelleştirmek istediğiniz örnekleri BubbleChatMessageProperties altına çocuk olarak ekleyin. Aşağıdaki örnek, sohbet mesajı gönderenlerin Humanoid.Health özelliğini kontrol ederek düşük sağlık durumuna sahip kullanıcıların sohbet baloncuklarına özel bir gradyan etkisi ve diğer özellikler ekler:

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

local TextChatService = game:GetService("TextChatService")
local Players = game:GetService("Players")
-- Oyun ortamına yeni bir sohbet baloncuğu eklendiğinde olay işleyici
TextChatService.OnBubbleAdded = function(message: TextChatMessage, adornee: Instance)
-- Sohbet mesajının ona ait bir TextSource (gönderen) olup olmadığını kontrol et
if message.TextSource then
-- Mesajı gönderen kullanıcının UserId'sini kullanarak kullanıcıyı al
local player = Players:GetPlayerByUserId(message.TextSource.UserId)
-- Kullanıcının karakterinde humanoid'i bul
local humanoid = player.Character:FindFirstChildWhichIsA("Humanoid")
if humanoid and humanoid.Health < 25 then
-- Sohbet balonunu özelleştirmek için yeni bir BubbleChatMessageProperties örneği 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)
-- Gradyanı özelleştirmek için bir UIGradient ekle
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

Baloncukları manuel olarak gösterin

Oyuncular bir mesaj göndermediğinde, örneğin NPC'ler için bir sohbet baloncuğu göstermek isteyebilirsiniz. Bir sohbet baloncuğunu manuel olarak göstermek için TextChatService:DisplayBubble() yöntemini kullanın.

Bu baloncukların özelleştirilmesi, TextChatService.OnBubbleAdded geri çağrısını kullanarak oyuncular mesaj gönderdiklerinde otomatik olarak gösterilen baloncukların özelleştirilmesiyle aynıdır.

NPC baloncukları

NPC'ler için sohbet baloncuklarını göstermek için TextChatService:DisplayBubble(character, message) çağrısında bulunun; NPC karakteri ile mesajı parametre olarak kullanın. Bu baloncuklar, diğer sohbet baloncukları gibi TextChatService.OnBubbleAdded geri çağrısını kullanarak özelleştirilebilir.

TextChatService:DisplayBubble() yalnızca istemci tarafı scriptlerinde çalışır, bu nedenle RunContext'i Enum.RunContext.Client olarak ayarlanan bir Script veya LocalScript kullandığınızdan emin olun; uygun bir kap içinde, örneğin StarterPlayerScripts gibi. NPC'ye bir ProximityPrompt bağladığınızda, bir sohbet baloncuğu göstermek için bir script aşağıdaki gibi görünebilir:


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, "Merhaba dünya!")
end)
©2026 Roblox Corporation. Roblox, the Roblox logo and Powering Imagination are among our registered and unregistered trademarks in the U.S. and other countries.