Mit TextChatService kannst du Blasenchat verwenden, um anzeigbare sprachliche Chatblasen über Benutzeravataren und NPCs anzuzeigen.Blasenchat kann deine Erfahrung visuell intensiver machen und Benutzern helfen, Nachrichten und ihre Sprecher leicht in einem kontextrelevanten Kontext zu identifizieren.Diese Funktion ist besonders nützlich für Erlebnisse, in denen Benutzer sich auf den Inhalt konzentrieren müssen, während sie gleichzeitig mit anderen auf weniger auffällige Weise kommunizieren.
Blasenchat aktivieren
Um Blasenchat in deiner Erlebniszu aktivieren:
Wählen Sie im Explorer-Fenster unter BubbleChatConfiguration unter TextChatService.
Im Eigenschaften-Fenster überprüfen Sie die BubbleChatConfiguration.Enabled-Checkbox.
Blasenanpassung
Nachdem du Blasenchat aktiviert hast, kannst du das Aussehen und das Verhalten deiner Chatblasen anpassen, um sie an dein Erfahrungsthema anzupassen.Verwende das Eigenschaften-Fenster von BubbleChatConfiguration für grundlegende Änderungen wie Textfarbe und Abstand, oder implementiere erweiterte Anpassungen für Bubble-Hintergrundbilder und andere visuelle Anpassungen.

Alternativ füge ein LocalScript in StarterPlayerScripts mit all deinen Anpassungseinstellungen hinzu.Dies ermöglicht es der Engine, deine Anpassungen während der Laufzeit anzuwenden, und überschreibt die Einstellungen in Studio.Es ist nützlich, spezielle Effekte zu Chat-Blasen hinzuzufügen, wenn Benutzer bestimmte Ereignisse oder Bedingungen auslösen.
Basis-Anpassung
Die folgende Tabelle zeigt allgemeine Eigenschaften zur Anpassung des Bubble-Chat. Für eine vollständige Liste der Anpassungseigenschaften siehe BubbleChatConfiguration.
Eigenschaft | Beschreibung | Standardmäßig |
---|---|---|
BackgroundColor3 | Hintergrundfarbe von Blasen in Color3. | [250, 250, 250] |
FontFace | Font des bubble-textes. | BuilderSansMedium |
TextColor3 | Farbe des Bubble-Textes in Color3. | [57, 59, 61] |
TextSize | Größe des Bubble-Textes. | 16 |
Erweiterte Anpassung
Für die fortgeschrittene Anpassung Ihrer Blase fügen Sie UI-Objekte hinzu, die bestimmte Aspekte des Blasenaussehens als Kinder unter BubbleChatConfiguration darstellen, einschließlich:
- ImageLabel für hintergrundbild-einstellungen.
- UIGradient für hintergrundgradienten-einstellungen.
- UICorner für die eckenform von blasen.
- UIPadding für den abstand zwischen dem text und den kanten der blase, im verhältnis zur normalen größe des übergeordnetes teil.
Nach dem Hinzufügen dieser Objekte können Sie Eigenschaften dieser Objekte ändern, die für Chat-Blasen anwendbar sind, um fortgeschrittene Blasenanpassung zu ermöglichen.Das folgende Beispiel LocalScript fügt einem Hintergrundbild und scharfen Ecken zu Blasen hinzu:
Erweiterte Bubble-Anpassung
local TextChatService = game:GetService("TextChatService")local bubbleChatConfiguration = TextChatService.BubbleChatConfigurationbubbleChatConfiguration.TailVisible = falsebubbleChatConfiguration.TextColor3 = Color3.fromRGB(220, 50, 50)bubbleChatConfiguration.FontFace = Font.fromEnum(Enum.Font.LuckiestGuy)local bubbleUICorner = bubbleChatConfiguration:FindFirstChildOfClass("UICorner")if not bubbleUICorner thenbubbleUICorner = Instance.new("UICorner")bubbleUICorner.Parent = bubbleChatConfigurationendbubbleUICorner.CornerRadius = UDim.new(0, 0)local bubbleUIPadding = bubbleChatConfiguration:FindFirstChildOfClass("UIPadding")if not bubbleUIPadding thenbubbleUIPadding = Instance.new("UIPadding")bubbleUIPadding.Parent = bubbleChatConfigurationendbubbleUIPadding.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 thenbubbleImageLabel = Instance.new("ImageLabel")bubbleImageLabel.Parent = bubbleChatConfigurationendbubbleImageLabel.Image = "rbxassetid://109157529833093"bubbleImageLabel.ScaleType = Enum.ScaleType.SlicebubbleImageLabel.SliceCenter = Rect.new(40, 40, 320, 120)bubbleImageLabel.SliceScale = 0.5

Die folgenden Tabellen geben einen Überblick über die verfügbaren GuiObject und Aussehensmodifizierer Kinder mit ihren gültigen Anpassungseigenschaften:
Eigenschaft | Beschreibung | Standardmäßig |
---|---|---|
Image | Asset-ID des Bubble-Hintergrundbildes. | |
ImageColor3 | Farbton des Bubble-Hintergrundbildes in Color3. | [255, 255, 255] |
ImageRectOffset | Versatz des Bildbereichs, der von oben links in Pixeln angezeigt wird. | (0, 0) |
ImageRectSize | Größe des Bildbereichs, der in Pixeln angezeigt werden soll. Um das gesamte Bild anzuzeigen, stelle die Dimension auf 0 ein. | (0, 0) |
ScaleType | Der Skalierungstyp für das Rendern des Bildes, wenn seine Größe von der absoluten Größe der Blase abweicht. | Stretch |
SliceCenter | Schneide die Grenzen des Bildes, wenn das Bild ein 9-geschnittenes Bild ist. Gilt nur, wenn du ScaleType als Slice festlegst. | (0, 0, 0, 0) |
SliceScale | Skalierungsverhältnis der Schnittkanten, wenn das Bild ein 9-geschnittenes Bild ist. Gilt nur, wenn Sie ScaleType als Slice festlegen. | 1 |
TileSize | Kachelgröße des Bildes. Gilt nur, wenn du ScaleType als Tile festlegst. | (1, 0, 1, 0) |
Personalisierung pro Blase
Du kannst einzeln gestalten und modifizieren Chat Bubble-Verhaltens basierend auf bestimmten Bedingungen, um deine allgemeinen Einstellungen zu überschreiben.Zum Beispiel können Sie Chat-Blasen verwenden, um NPCs und Benutzer zu unterscheiden, den kritischen Statushervorzuheben und spezielle Effekte auf Nachrichten mit vorgegebenen Schlüsselwörtern anzuwenden.
Um die Anpassung pro Blase einzustellen, füge eine clientseitige LocalScript mit BubbleChatMessageProperties hinzu, die die entsprechenden Eigenschaften von BubbleChatConfiguration überschreibt, und den TextChatService.OnBubbleAdded -Callback, um anzugeben, wie jede Blase angepasst werden soll.Der Rückruf liefert dir die Eigenschaft TextChatMessage sowie die Verzierte, sodass du die Anpassung anhand von Attributen, die mit Benutzern verbunden sind, den Chat-Textinhalt, Benutzercharakter-Eigenschaften und alle speziellen Bedingungen anwenden kannst, die du definieren möchtest.
Die folgenden grundlegenden Anpassungseigenschaften sind für die Anpassung pro Blase verfügbar:
Eigenschaft | Beschreibung | Standardmäßig |
---|---|---|
BackgroundColor3 | Hintergrundfarbe von Blasen in Color3. | (250, 250, 250) |
BackgroundTransparency | Hintergrundtransparenz von Blasen. | 0.1 |
FontFace | Font des bubble-textes. | BuilderSansMedium |
TextColor3 | Farbe des Bubble-Textes in Color3. | [57, 59, 61] |
TextSize | Größe des Bubble-Textes. | 16 |
Das folgende Beispiel fügt den VIP-Benutzer-Chat-Blasen ein spezielles Aussehen hinzu, indem es überprüft, ob ein Chat-Nachrichten-Absender das Attribut IsVIP hat:
VIP-Blasen
local TextChatService = game:GetService("TextChatService")
local Players = game:GetService("Players")
-- Ereignishändler, wenn eine neue Chat-Blase zum Erlebnis hinzugefügt wird
TextChatService.OnBubbleAdded = function(message: TextChatMessage, adornee: Instance)
-- Überprüfe, ob die Chatnachricht eine Textquelle (Absender) enthält
if message.TextSource then
-- Erstellen Sie eine neue BubbleChatMessageProperties-Instanz, um die Chat-Blase anzupassen
local bubbleProperties = Instance.new("BubbleChatMessageProperties")
-- Holen Sie sich den Benutzer, der die Chatnachricht gesendet hat, basierend auf seiner Benutzer-ID
local player = Players:GetPlayerByUserId(message.TextSource.UserId)
if player:GetAttribute("IsVIP") then
-- Wenn der Spieler ein VIP ist, passen Sie die Eigenschaften der Chat-Blase an
bubbleProperties.TextColor3 = Color3.fromHex("#F5CD30")
bubbleProperties.BackgroundColor3 = Color3.fromRGB(25, 27, 29)
bubbleProperties.FontFace = Font.fromEnum(Enum.Font.PermanentMarker)
end
return bubbleProperties
end
end
Alle erweiterten Anpassungsoptionen sind für die Anpassung pro Blase verfügbar.Ähnlich wie bei erweiterter Anpassung für allgemeine Blasen füge Instanzen hinzu, die du als Kinder von BubbleChatMessageProperties anpassen möchtest.Das folgende Beispiel fügt einen speziellen Gradienteneffekt zusammen mit anderen Eigenschaften zu Chat-Blasen von Benutzern mit niedrigem Gesundheitsstatus hinzu, indem es die Eigenschaft Humanoid.Health der Chatnachrichten-Charaktere überprüft:
Niedrige Gesundheitsblasen
local TextChatService = game:GetService("TextChatService")
local Players = game:GetService("Players")
-- Ereignishändler, wenn eine neue Chat-Blase zum Erlebnis hinzugefügt wird
TextChatService.OnBubbleAdded = function(message: TextChatMessage, adornee: Instance)
-- Überprüfe, ob die Chatnachricht eine Textquelle (Absender) enthält
if message.TextSource then
-- Holen Sie sich den Benutzer, der die Chatnachricht gesendet hat, indem Sie seine Benutzer-ID verwenden
local player = Players:GetPlayerByUserId(message.TextSource.UserId)
-- Finde den Humanoiden im Charakter des Benutzers
local humanoid = player.Character:FindFirstChildWhichIsA("Humanoid")
if humanoid and humanoid.Health < 25 then
-- Erstellen Sie eine neue BubbleChatMessageProperties-Instanz, um die Chat-Blase anzupassen
local bubbleProperties :BubbleChatMessageProperties = Instance.new("BubbleChatMessageProperties")
-- Passen Sie die Eigenschaften der Chat-Blase für niedrige Gesundheitsbedingungen an
bubbleProperties.BackgroundColor3 = Color3.fromRGB(245, 245, 245)
bubbleProperties.TextColor3 = Color3.fromRGB(234, 51, 96)
bubbleProperties.TextSize = 20
bubbleProperties.FontFace = Font.fromEnum(Enum.Font.DenkOne)
-- Füge einen UIGradient als Kind hinzu, um den Gradienten anzupassen
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
Blasen manuell anzeigen
Vielleicht möchten Sie eine Chat-Blase anzeigen, wenn Spieler keine Nachricht gesendet haben, wie mit NPCs.Verwende die TextChatService:DisplayBubble()-Methode, um eine Chat-Blase manuell anzuzeigen.
Die Anpassung dieser Blasen ist gleich der Anpassung der Blasen, die automatisch angezeigt werden, wenn Spieler Nachrichten über Textkanäle mit dem TextChatService.OnBubbleAdded Rückruf senden.
NPC-Luftblagen
Zeige Chat-Blasen für Nicht-Spielercharaktere (NPCs), indem du TextChatService:DisplayBubble(character, message) anrufst, mit dem NPC-Charakter und der Nachricht als Parametern.Diese Blasen können mit dem TextChatService.OnBubbleAdded -Callback angepasst werden, genau wie jede andere Chat-Blase.
TextChatService:DisplayBubble() funktioniert nur auf Client-seitigen Skripten, also stellen Sie sicher, dass Sie ein Script mit RunContext auf Enum.RunContext.Client oder ein LocalScript in einem passenden Container verwenden, wie StarterPlayerScripts .Wenn du ein ProximityPrompt an einen NPC anhängst, könnte ein Skript zum Anzeigen einer Chat-Blase wie folgt aussehen:
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)