chatà bulles

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Avec le système de chat textuel dans l'expérience, vous pouvez prendre en charge le bubble chat pour afficher des bulles de chat personnalisables au-dessus des avatars et des PNJ. Le chat bulle peut rendre votre expérience plus visuellement immersive et aider les utilisateurs à facilement identifier les messages et leurs locuteurs dans un contexte pertinent contextuellement. Cette fonctionnalité est particulièrement utile pour

Activer le chat bulle

Pour activer le chat à bulles dans votre expérience :

  1. Dans la fenêtre propriétés, vérifiez la case à cocher Enabled .

Personnalisation des bulles

Après avoir activé le chat à bulles, vous pouvez personnaliser l'apparence et le comportement de vos bulles de chat pour correspondre à votre thème d'expérience. Utilisez la fenêtre propriétés de BubbleChatConfiguration pour basique les modifications comme la couleur du texte et l'espacement, ou implémenter une 1> avancée1> personnalisation pour les images de fond de bulles et d'autres ajustements

Alternativement, vous pouvez ajouter un LocalScript dans StarterPlayerScripts avec toutes vos paramètres de personnalisation. Cela permet au moteur d'appliquer vos paramètres de personnalisation pendant l'exécution, au-dessus des paramètres dans Studio. Il est utile d'ajouter des effets spéciaux aux bulles de chat lorsque les utilisateurs déclenchent certains événements ou conditions.

Personnalisation basique

Le tableau suivant montre les propriétés de chat de bulle courantes. Pour une liste complète des propriétés de personnalisation, voir BubbleChatConfiguration .

PropriétéDescriptionPar défaut
BackgroundColor3Couleur de l'arrière-plan des bulles dans Color3.[250, 250, 250]
FontFaceFont du texte bulle.BuilderSansMedium
TextColor3Couleur du texte de bulle dans Color3 .[57, 59, 61]
TextSizeTaille du texte bulle.16

Personnalisation avancée

Pour la personnalisation avancée de votre bulle, ajoutez des objets UI représentant certains aspects de l'apparence de la bulle en tant qu'enfant sous BubbleChatConfiguration, y compris :

  • ImageLabel pour les paramètres d'image de fond.
  • UIGradient pour les paramètres degradé de fond.
  • UICorner pour la forme des coins des bulles.
  • UIPadding pour l'espace de coussinage entre le texte et les bords des bulles, par rapport à la taille normale du parent.

Après avoir ajouté ces objets, vous pouvez modifier les propriétés de ces objets appliquables aux bulles de chat pour la personnalisation des bulles avancée. L'exemple suivant LocalScript ajoute une image de fond et des coins tranchants aux bulles :

Personnalisation avancée des bulles

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

Les tableaux suivants définissent les enfants disponibles GuiObject et modificateur d'apparence ainsi que leurs propriétés de personnalisation valides :

PropriétéDescriptionPar défaut
ImageID de la ressource de l'image de fond de bulle.
ImageColor3Teinte de couleur de l'image de fond de bulle dans Color3 .[255, 255, 255] >
ImageRectOffsetDécalage de la zone d'image à afficher depuis le haut à gauche en pixels.(0, 0)
ImageRectSizeTaille de la zone d'image à afficher en pixels. Pour afficher l'ensemble de l'image, définissez une autre dimension sur 0 .(0, 0)
ScaleTypeLe type d'échelle pour rendre l'image lorsque sa taille est différente de la taille absolue de la bulle.Stretch
SliceCenterDéfinir les limites de l'image si l'image est une image en 9 tranches. Applicable uniquement lorsque vous avez configuré ScaleType comme Slice.(0, 0, 0, 0)
SliceScaleRedimensionnez les bords des tranches si l'image est une image tranche de 9. Seul applicable lorsque vous avez configuré ScaleType comme Slice.1
TileSizeTaille de l'image. S'applique uniquement lorsque vous avez configuré ScaleType comme Tile.(1, 0, 1, 0)

Personnalisation par bulle

Vous pouvez modifier individuellement les comportements de bulles de chat en fonction de conditions spécifiques qui modifient vos paramètres généraux. Par exemple, vous pouvez utiliser les bulles de chat pour différentier les PNJ et les utilisateurs, mettre en évidence le statut de santé critique et appliquer des effets spéciaux aux messages avec des mots-clés prédéfinis.

Pour configurer la personnalisation par bulle, ajoutez un LocalScript côté client en utilisant BubbleChatMessageProperties, ce qui surclasse les propriétés correspondantes de Class

Les propriétés de personnalisation suivantes sont disponibles pour la personnalisation par bulle :

PropriétéDescriptionPar défaut
BackgroundColor3Couleur de l'arrière-plan des bulles dans Color3.(250, 250, 250)
BackgroundTransparencyTransparence de l'arrière-plan des bulles.0.1
FontFaceFont du texte bulle.BuilderSansMedium
TextColor3Couleur du texte de bulle dans Color3 .[57, 59, 61]
TextSizeTaille du texte bulle.16

L'exemple suivant ajoute une apparence spéciale aux bulles de chat des utilisateurs VIP en vérifiant si un expéditeur de message de chat a l'attribut IsVIP :

Bulles VIP

local TextChatService = game:GetService("TextChatService")
local Players = game:GetService("Players")
-- Handlier d'événement pour quand une nouvelle bulle de chat est ajoutée à l'expérience
TextChatService.OnBubbleAdded = function(message: TextChatMessage, adornee: Instance)
-- Vérifiez si le message de chat a une source de texte (expéditeur) associée
if message.TextSource then
-- Créez une nouvelle instance BubbleChatMessageProperties pour personnaliser la bulle de chat
local bubbleProperties = Instance.new("BubbleChatMessageProperties")
-- Obtenez l'utilisateur qui a envoyé le message de chat en fonction de son identifiant d'utilisateur
local player = Players:GetPlayerByUserId(message.TextSource.UserId)
if player:GetAttribute("IsVIP") then
-- Si le joueur est un VIP, personnalisez les propriétés de la bulle de chat
bubbleProperties.TextColor3 = Color3.fromHex("#F5CD30")
bubbleProperties.BackgroundColor3 = Color3.fromRGB(25, 27, 29)
bubbleProperties.FontFace = Font.fromEnum(Enum.Font.PermanentMarker)
end
return bubbleProperties
end
end

Toutes les options de personnalisation avancées sont disponibles pour la personnalisation des bulles. Semblable à la personnalisation avancée pour les bulles générales, ajouter des instances que vous souhaitez personnaliser en tant que enfants de BubbleChatMessageProperties . L'exemple suivant ajoute un effet de gradient spécial ainsi que d'autres propriétés pour les bulles de chat des utilisateurs avec un statut de santé bas par en vérifiant la propri

Bulles de santé faibles

local TextChatService = game:GetService("TextChatService")
local Players = game:GetService("Players")
-- Handlier d'événement pour quand une nouvelle bulle de chat est ajoutée à l'expérience
TextChatService.OnBubbleAdded = function(message: TextChatMessage, adornee: Instance)
-- Vérifiez si le message de chat a une source de texte (expéditeur) associée
if message.TextSource then
-- Obtenez l'utilisateur qui a envoyé le message de chat en utilisant son identifiant d'utilisateur
local player = Players:GetPlayerByUserId(message.TextSource.UserId)
-- Trouvez le humanoid dans le personnage de l'utilisateur
local humanoid = player.Character:FindFirstChildWhichIsA("Humanoid")
if humanoid and humanoid.Health < 25 then
-- Créez une nouvelle instance BubbleChatMessageProperties pour personnaliser la bulle de chat
local bubbleProperties :BubbleChatMessageProperties = Instance.new("BubbleChatMessageProperties")
-- Personnalisez les propriétés de la bulle de chat pour la condition de santé faible
bubbleProperties.BackgroundColor3 = Color3.fromRGB(245, 245, 245)
bubbleProperties.TextColor3 = Color3.fromRGB(234, 51, 96)
bubbleProperties.TextSize = 20
bubbleProperties.FontFace = Font.fromEnum(Enum.Font.DenkOne)
-- Ajoutez un UIGradient en tant qu'enfant pour personnaliser le gradient
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

Bulles NPC

Vous pouvez afficher des bulles de chat pour les personnages non-joueurs (NPC) en appelant TextChatService:DisplayBubble(), avec le personnage NPC et le message comme paramètre. Ces bulles sont personnalisables en utilisant le TextChatService.OnBubbleAdded rappel, comme n'importe quelle autre bullse de chat.

TextChatService:DisplayBubble() ne fonctionne que sur les scripts côté client, alors assurez-vous d'utiliser un Script avec <


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)