chatde burbujas

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

Con el sistema de chat de texto en la experiencia, puedes soportar bubble chat para mostrar burbujas de chat personalizadas por encima de los avatares y NPCs. El chat de burbujas puede hacer que tu experiencia sea más visualmente inmersiva y ayude a los usuarios a identificar fácilmente los mensajes y sus hablantes en un modo contextualmente relevante. Esta característica es especialmente útil para experiencias donde los usuarios neces

Habilitar el chat de burbujas

Para habilitar el chat de burbujas en tu experiencia:

  1. En la ventana Explorador, seleccione BubbleChatConfiguration debajo de TextChatService .

  2. En la ventana Propiedades, compruebe la casilla de verificación Enabled .

Personalización de burbujas

Después de habilitar el chat de burbujas, puede personalizar la apariencia y el comportamiento de sus burbujas de chat para que coincida con su tema de experiencia. Usa la ventana Propiedades de BubbleChatConfiguration para cambios básicos como el color del texto y el espaciado, o implementa 1> personalización avanzada1> para imágenes de fondo de burbujas y otros ajustes visuales.

Alternativamente, puede agregar un LocalScript en StarterPlayerScripts con todas sus configuraciones de personalización. Esto permite que el motor aplique sus personalizaciones durante el tiempo de ejecución, anulando las configuraciones en Studio. Es útil para agregar efectos especiales a las burbujas de chat cuando los usuarios activan ciertos eventos o condiciones.

Personalización básica

La siguiente tabla muestra propiedades comunes de personalización de chat de burbujas. Para obtener una lista completa de propiedades de personalización, see BubbleChatConfiguration .

PropiedadDescripciónPor defecto
BackgroundColor3Color de fondo de las burbujas en Color3 .[250, 250, 250] >
FontFaceFont del texto de la burbuja.BuilderSansMedium
TextColor3Color del texto de burbuja en Color3 .[57, 59, 61]
TextSizeTamaño del texto de burbuja.16

Personalización Avanzada

Para una personalización avanzada de tu burbuja, añade objetos de UI que representan ciertos aspectos de la apariencia de la burbuja como niños BubbleChatConfiguration , incluida:

  • ImageLabel para la configuración de la imagen de fondo.
  • UIGradient para la configuración degradado de fondo.
  • UICorner para la forma de la burbuja.
  • UIPadding para el espacio de amortiguación entre el texto y las esquinas de la burbuja, relativo al tamaño normal del padre.

Luego de agregar estos objetos, puede modificar las propiedades de estos objetos aplicables a las burbujas de chat para la personalización de burbujas avanzada. El siguiente ejemplo LocalScript agrega una imagen de fondo y esquinas afiladas a las burbujas:

Personalización de burbujas avanzada

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

Las siguientes tablas describen los disponibles GuiObject y modificador de apariencia hijos junto con sus propiedades de personalización válidas:

PropiedadDescripciónPor defecto
ImageID de la imagen de fondo de la burbuja.
ImageColor3Color tinte de la imagen de fondo de la burbuja en Color3 .[255, 255, 255]
ImageRectOffsetDesplazamiento de la área de la imagen para mostrarla desde la parte superior izquierda en píxeles.(0, 0)
ImageRectSizeTamaño de la área de la imagen para mostrarse en píxeles. Para mostrar la imagen completa, establezca cualquiera de las dimensiones a 0 .(0, 0)
ScaleTypeEl tipo de escala para renderizar la imagen cuando su tamaño es diferente del tamaño absoluto de la burbuja.Stretch
SliceCenterSlices los límites de la imagen si la imagen es un 9-sliced image. Aplicable solo cuando estableces ScaleType como Slice .(0, 0, 0, 0)
SliceScaleEche escala a los lados de los bordes de escala si el gráfico es un gráfico de 9 espárragos. Aplica solo cuando estableces ScaleType como Slice .1
TileSizeTamaño de azulejo de la imagen. Solo aplicable cuando estableces ScaleType como Tile .(1, 0, 1, 0)

Personalización de burbujas

Puedes estilizar y modificar individualmente los comportamientos de las burbujas de chat según las condiciones específicas que superponen tus configuraciones generales. Por ejemplo, puedes usar burbujas de chat para diferenciar NPC y usuarios, resaltar el estado de salud crítico y aplicar efectos especiales a los mensajes con palabras clave predeterminadas.

Para establecer la personalización de burbujas, agrega un LocalScript client-side usando BubbleChatMessageProperties , que superpone las propiedades de correspondencia de

Las siguientes propiedades de personalización básicas están disponibles para la personalización de burbujas:

PropiedadDescripciónPor defecto
BackgroundColor3Color de fondo de las burbujas en Color3 .(250, 250, 250)
BackgroundTransparencyTransparencia de fondo de las burbujas.0.1
FontFaceFont del texto de la burbuja.BuilderSansMedium
TextColor3Color del texto de burbuja en Color3 .[57, 59, 61]
TextSizeTamaño del texto de burbuja.16

El siguiente ejemplo añade un aspecto especial a las burbujas de chat de los usuarios VIP al verificar si un remitente de mensajes tiene el atributo IsVIP :

Burbujas VIP

local TextChatService = game:GetService("TextChatService")
local Players = game:GetService("Players")
-- Manipulador de eventos para cuando se agrega una nueva burbuja de chat a la experiencia
TextChatService.OnBubbleAdded = function(message: TextChatMessage, adornee: Instance)
-- Compruebe si el mensaje de chat tiene un TextSource (enviador) asociado
if message.TextSource then
-- Crea una nueva instancia de BubbleChatMessageProperties para personalizar la burbuja de chat
local bubbleProperties = Instance.new("BubbleChatMessageProperties")
-- Obtén al usuario que envió el mensaje de chat basado en su UserId
local player = Players:GetPlayerByUserId(message.TextSource.UserId)
if player:GetAttribute("IsVIP") then
-- Si el jugador es un VIP, personaliza las propiedades de la burbuja 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

Todas las opciones de personalización avanzada están disponibles para la personalización de burbujas. Como con la personalización de burbujas para general de burbujas, agrega instancias que desea personalizar como hijos de BubbleChatMessageProperties . El siguiente ejemplo agrega un efecto degradado especial junto con otras propiedades para chatear burbujas de usuarios con un estado de salud bajo al verificar la propiedad de chat

Burbujas de salud baja

local TextChatService = game:GetService("TextChatService")
local Players = game:GetService("Players")
-- Manipulador de eventos para cuando se agrega una nueva burbuja de chat a la experiencia
TextChatService.OnBubbleAdded = function(message: TextChatMessage, adornee: Instance)
-- Compruebe si el mensaje de chat tiene un TextSource (enviador) asociado
if message.TextSource then
-- Obtén al usuario que envió el mensaje de chat usando su ID de usuario
local player = Players:GetPlayerByUserId(message.TextSource.UserId)
-- Encuentra el humanoide en el personaje del usuario
local humanoid = player.Character:FindFirstChildWhichIsA("Humanoid")
if humanoid and humanoid.Health < 25 then
-- Crea una nueva instancia de BubbleChatMessageProperties para personalizar la burbuja de chat
local bubbleProperties :BubbleChatMessageProperties = Instance.new("BubbleChatMessageProperties")
-- Personalizar las propiedades de la burbuja de chat para la condición de salud baja
bubbleProperties.BackgroundColor3 = Color3.fromRGB(245, 245, 245)
bubbleProperties.TextColor3 = Color3.fromRGB(234, 51, 96)
bubbleProperties.TextSize = 20
bubbleProperties.FontFace = Font.fromEnum(Enum.Font.DenkOne)
-- Agrega un UIGradient como hijo para personalizar el gradiente
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

Burbujas NPC

Puedes mostrar burbujas de chat para personajes no jugadores (NPC) llamando a TextChatService:DisplayBubble(), con el personaje NPC y el mensaje como parámetro. Estas burbujas son personalizables usando el TextChatService.OnBubbleAdded llamado de vuelta como cualquier otra burbuja de chat.

TextChatService:DisplayBubble() sólo funciona en scripts del lado del cliente, asi que asegúrese de usar un Script


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)