버블 채팅

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

경험 내 텍스트 채팅 시스템을 사용하면 사용자 아바타 및 NPC 위에서 사용자 지정 가능한 음성 채팅 버블을 표시할 수 있습니다. 버블 채팅은 경험을 시각적으로 더 몰입감 있게 만들고 사용자가 메시

버블 채팅 활성화

경험에서 버블 채팅을 활성화하려면:

  1. 탐색기 창에서 Class.BubbleChatConfiguration 을 선택하고 BubbleChatConfiguration 아래에 있습니다.

  2. 속성 창에서 Class.BubbleChatConfiguration.Enabled|Enabled 확인란을 확인하십시오.

풍선 사용자 정의

버블 채팅을 활성화한 후 채팅 버블의 모양과 동작을 경험 테마에 맞게 사용자 정의할 수 있습니다. 속성 창의 BubbleChatConfiguration 에서 텍스트 색상 및 스페이싱과 같은 기본 변경 사항을 구현하거나 버블 배경 이미지

또한, 모든 사용자 지정 설정을 적용하여 LocalScriptStarterPlayerScripts 를 추가할 수 있습니다. 이렇게 하면 엔진이 런타임에 사용자 지정을 적용하고 스튜디오의 설정을 재정의할 수 있습니다. 이 기능은 특정 이벤트 또는 조건을 트리거

기본 사용자 지정

다음 표에서는 일반적인 버블 채팅 사용자 지정 속성을 보여 줍니다. 자세한 목록은 BubbleChatConfiguration 을 참조하십시오.

속성설명기본
BackgroundColor3Datatype.Color3의 거품의 배경 색상.[250, 250, 250]
FontFaceFont 의.BuilderSansMedium
TextColor3Color of bubble text in Color3 .[57, 59, 61]
TextSize버블 텍스트의 크기.16

고급 사용자 지정

버블의 고급 사용자 지정을 위해, 버블 모양을 아이 아래에 있는 BubbleChatConfiguration 에 대해 대표하는 UI 개체를 추가합니다. 여기에는 다음이 포함됩니다.

  • ImageLabel 배경 이미지 설정.
  • UIGradient 배경 그레이드 설정.
  • UICorner 는 거품의 모서리 모양을 위해.
  • UIPadding 텍스트 및 버블 엣지 사이의 패딩 공간, 상대적으로 부모의 크기에 따라 크기를 조정합니다.

이 개체를 추가한 후 채팅 버블에 적용되는 이 개체의 속성을 수정할 수 있습니다. 다음 예시 LocalScript 는 배경 이미지와 날카로운 모서리를 버블에 추가합니다.

고급 버블 사용자 정의

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

다음 표에서는 사용 가능한 GuiObject 및 Appearance 수정기 자식을 설명하고 유효한 사용자 지정 속성과 함께 사용할 수 있는 자식을 보여줍니다.

속성설명기본
Image버블 배경 이미지의 자산 ID.
ImageColor3Datatype.Color3의 버블 배경 이미지의 색상 얼룩.[255, 255, 255]
ImageRectOffset픽셀 상단 왼쪽에서 표시할 이미지 영역의 오프셋.(0, 0)
ImageRectSize표시할 이미지 영역의 크기를 픽셀로 표시합니다. 전체 이미지를 표시하려면 어느 차원을 0 설정하십시오.(0, 0)
ScaleType버블의 크기가 상대적 크기의 전부분이 될 때 이미지를 렌더링하는 데 사용되는 저울 유형입니다.Stretch
SliceCenter이미지가 9개 슬라이스인 경우 이미지 경계를 슬라이스별로 나눕니다. 9개 슬라이스인 이미지를 ScaleType 로 설정할 때만 적용됩니다.(0, 0, 0, 0)
SliceScale이미지가 9개 슬라이스인 경우 슬라이스 편집의 크기 조정 비율. 9개 슬라이스인 경우 ScaleTypeSlice 로 설정할 때만 적용됩니다.1
TileSize이미지의 타일 크기. ScaleTypeTile로 설정할 때만 적용됩니다.(1, 0, 1, 0)

버블 사용자 정의

특정 조건에 따라 채팅 버블 동작을 개별적으로 스타일링하고 수정할 수 있습니다. 예를 들어, 채팅 버블을 사용하여 NPC 및 사용자를 구분하고, 크리티컬 상태 상태를 강조하고, 미리 정의된 키워드가 있는 메시지에 특수 효과를 적용할 수 있습니다.

To set per-bubble customization, add a client-side LocalScript using BubbleChatMessageProperties , which overrides matching properties of BubbleChatConfiguration

다음과 같은 기본 사용자 지정 속성은 버블 사용자 지정에 사용할 수 있습니다.

속성설명기본
BackgroundColor3Datatype.Color3의 거품의 배경 색상.(250, 250, 250)
BackgroundTransparency버블의 배경 투명도.0.1
FontFaceFont 의.BuilderSansMedium
TextColor3Color of bubble text in Color3 .[57, 59, 61]
TextSize버블 텍스트의 크기.16

다음 예시에서는 VIP 사용자의 채팅 버블에 특별한 모양을 추가하려고 채팅 메시지 발신자가 IsVIP 특성을 가지고 있는지 확인하여 특별한 모양을 추가합니다.

VIP 버블

local TextChatService = game:GetService("TextChatService")
local Players = game:GetService("Players")
-- 경험에 새로운 채팅 버블이 추가될 때의 이벤트 처리기
TextChatService.OnBubbleAdded = function(message: TextChatMessage, adornee: Instance)
-- 채팅 메시지에 TextSource(송신자)가 있는지 확인하십시오
if message.TextSource then
-- BubbleChatMessageProperties 인스턴스를 생성하여 채팅 버블을 사용자 정의하십시오
local bubbleProperties = Instance.new("BubbleChatMessageProperties")
-- 사용자가 채팅 메시지를 보낸 사용자 ID에 따라 사용자를 가져옵니다.
local player = Players:GetPlayerByUserId(message.TextSource.UserId)
if player:GetAttribute("IsVIP") then
-- 플레이어가 VIP인 경우 채팅 버블 속성을 사용자 정의하십시오
bubbleProperties.TextColor3 = Color3.fromHex("#F5CD30")
bubbleProperties.BackgroundColor3 = Color3.fromRGB(25, 27, 29)
bubbleProperties.FontFace = Font.fromEnum(Enum.Font.PermanentMarker)
end
return bubbleProperties
end
end

모든 고급 사용자 지정 옵션은 버블 커스터마이징에 사용할 수 있습니다. 일반적인 버블 커스터마이징과 유사하게, BubbleChatMessageProperties의 자식인 경우 채팅 버블의 사용자에게 적용하려는 특수 슬라이드 효과를 추가하십시오

건강 낮음 버블

local TextChatService = game:GetService("TextChatService")
local Players = game:GetService("Players")
-- 경험에 새로운 채팅 버블이 추가될 때의 이벤트 처리기
TextChatService.OnBubbleAdded = function(message: TextChatMessage, adornee: Instance)
-- 채팅 메시지에 TextSource(송신자)가 있는지 확인하십시오
if message.TextSource then
-- 사용자 아이디를 사용하여 채팅 메시지를 보낸 사용자를 확인하세요.
local player = Players:GetPlayerByUserId(message.TextSource.UserId)
-- 사용자 캐릭터의 휴머노이드 찾기
local humanoid = player.Character:FindFirstChildWhichIsA("Humanoid")
if humanoid and humanoid.Health < 25 then
-- BubbleChatMessageProperties 인스턴스를 생성하여 채팅 버블을 사용자 정의하십시오
local bubbleProperties :BubbleChatMessageProperties = Instance.new("BubbleChatMessageProperties")
-- 체력 상태에 대해 채팅 버블 속성을 사용자 정의
bubbleProperties.BackgroundColor3 = Color3.fromRGB(245, 245, 245)
bubbleProperties.TextColor3 = Color3.fromRGB(234, 51, 96)
bubbleProperties.TextSize = 20
bubbleProperties.FontFace = Font.fromEnum(Enum.Font.DenkOne)
-- 자식으로 UIGradient를 추가하여 그라디언트를 사용자 정의하십시오
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

NPC 버블

NPC(비플레이어 캐릭터)를 위해 Class.TextChatService:DisplayBubble() Class.TextChatService:DisplayMessage를 호출하여 대화 버블을 표시하십시오, NPC 캐릭터와 메시지를 매개 변수로 사용할 수 있습니다. 이 버블은 2>Class.TextChatService:OnBubbleAdded2> 콜백과 같이 사용자 지정

TextChatService:DisplayBubble() 은 클라이언트 사이드 스크립트에만 작동하므로 클라이언트 사


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)