Anpassen von Bubble-Chat

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

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:

  1. Wählen Sie im Explorer-Fenster unter BubbleChatConfiguration unter TextChatService.

  2. 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.

EigenschaftBeschreibungStandardmäßig
BackgroundColor3Hintergrundfarbe von Blasen in Color3.[250, 250, 250]
FontFaceFont des bubble-textes.BuilderSansMedium
TextColor3Farbe des Bubble-Textes in Color3.[57, 59, 61]
TextSizeGröß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.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

Die folgenden Tabellen geben einen Überblick über die verfügbaren GuiObject und Aussehensmodifizierer Kinder mit ihren gültigen Anpassungseigenschaften:

EigenschaftBeschreibungStandardmäßig
ImageAsset-ID des Bubble-Hintergrundbildes.
ImageColor3Farbton des Bubble-Hintergrundbildes in Color3.[255, 255, 255]
ImageRectOffsetVersatz des Bildbereichs, der von oben links in Pixeln angezeigt wird.(0, 0)
ImageRectSizeGröße des Bildbereichs, der in Pixeln angezeigt werden soll. Um das gesamte Bild anzuzeigen, stelle die Dimension auf 0 ein.(0, 0)
ScaleTypeDer Skalierungstyp für das Rendern des Bildes, wenn seine Größe von der absoluten Größe der Blase abweicht.Stretch
SliceCenterSchneide die Grenzen des Bildes, wenn das Bild ein 9-geschnittenes Bild ist. Gilt nur, wenn du ScaleType als Slice festlegst.(0, 0, 0, 0)
SliceScaleSkalierungsverhältnis der Schnittkanten, wenn das Bild ein 9-geschnittenes Bild ist. Gilt nur, wenn Sie ScaleType als Slice festlegen.1
TileSizeKachelgröß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:

EigenschaftBeschreibungStandardmäßig
BackgroundColor3Hintergrundfarbe von Blasen in Color3.(250, 250, 250)
BackgroundTransparencyHintergrundtransparenz von Blasen.0.1
FontFaceFont des bubble-textes.BuilderSansMedium
TextColor3Farbe des Bubble-Textes in Color3.[57, 59, 61]
TextSizeGröß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)