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 :
Dans la fenêtre Explorateur, sélectionnez BubbleChatConfiguration sous TextChatService.
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é | Description | Par défaut |
---|---|---|
BackgroundColor3 | Couleur de l'arrière-plan des bulles dans Color3. | [250, 250, 250] |
FontFace | Font du texte bulle. | BuilderSansMedium |
TextColor3 | Couleur du texte de bulle dans Color3 . | [57, 59, 61] |
TextSize | Taille 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.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://6733332557"bubbleImageLabel.ScaleType = Enum.ScaleType.SlicebubbleImageLabel.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é | Description | Par défaut |
---|---|---|
Image | ID de la ressource de l'image de fond de bulle. | |
ImageColor3 | Teinte de couleur de l'image de fond de bulle dans Color3 . | [255, 255, 255] > |
ImageRectOffset | Décalage de la zone d'image à afficher depuis le haut à gauche en pixels. | (0, 0) |
ImageRectSize | Taille de la zone d'image à afficher en pixels. Pour afficher l'ensemble de l'image, définissez une autre dimension sur 0 . | (0, 0) |
ScaleType | Le type d'échelle pour rendre l'image lorsque sa taille est différente de la taille absolue de la bulle. | Stretch |
SliceCenter | Dé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) |
SliceScale | Redimensionnez les bords des tranches si l'image est une image tranche de 9. Seul applicable lorsque vous avez configuré ScaleType comme Slice. | 1 |
TileSize | Taille 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é | Description | Par défaut |
---|---|---|
BackgroundColor3 | Couleur de l'arrière-plan des bulles dans Color3. | (250, 250, 250) |
BackgroundTransparency | Transparence de l'arrière-plan des bulles. | 0.1 |
FontFace | Font du texte bulle. | BuilderSansMedium |
TextColor3 | Couleur du texte de bulle dans Color3 . | [57, 59, 61] |
TextSize | Taille 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)