경험 내 텍스트 채팅 시스템을 사용하면 사용자 아바타 및 NPC 위에서 사용자 지정 가능한 음성 채팅 버블을 표시할 수 있습니다. 버블 채팅은 경험을 시각적으로 더 몰입감 있게 만들고 사용자가 메시
버블 채팅 활성화
경험에서 버블 채팅을 활성화하려면:
탐색기 창에서 Class.BubbleChatConfiguration 을 선택하고 BubbleChatConfiguration 아래에 있습니다.
속성 창에서 Class.BubbleChatConfiguration.Enabled|Enabled 확인란을 확인하십시오.
풍선 사용자 정의
버블 채팅을 활성화한 후 채팅 버블의 모양과 동작을 경험 테마에 맞게 사용자 정의할 수 있습니다. 속성 창의 BubbleChatConfiguration 에서 텍스트 색상 및 스페이싱과 같은 기본 변경 사항을 구현하거나 버블 배경 이미지
또한, 모든 사용자 지정 설정을 적용하여 LocalScript 에 StarterPlayerScripts 를 추가할 수 있습니다. 이렇게 하면 엔진이 런타임에 사용자 지정을 적용하고 스튜디오의 설정을 재정의할 수 있습니다. 이 기능은 특정 이벤트 또는 조건을 트리거
기본 사용자 지정
다음 표에서는 일반적인 버블 채팅 사용자 지정 속성을 보여 줍니다. 자세한 목록은 BubbleChatConfiguration 을 참조하십시오.
속성 | 설명 | 기본 |
---|---|---|
BackgroundColor3 | Datatype.Color3의 거품의 배경 색상. | [250, 250, 250] |
FontFace | Font 의. | BuilderSansMedium |
TextColor3 | Color 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.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
다음 표에서는 사용 가능한 GuiObject 및 Appearance 수정기 자식을 설명하고 유효한 사용자 지정 속성과 함께 사용할 수 있는 자식을 보여줍니다.
속성 | 설명 | 기본 |
---|---|---|
Image | 버블 배경 이미지의 자산 ID. | |
ImageColor3 | Datatype.Color3의 버블 배경 이미지의 색상 얼룩. | [255, 255, 255] |
ImageRectOffset | 픽셀 상단 왼쪽에서 표시할 이미지 영역의 오프셋. | (0, 0) |
ImageRectSize | 표시할 이미지 영역의 크기를 픽셀로 표시합니다. 전체 이미지를 표시하려면 어느 차원을 0 설정하십시오. | (0, 0) |
ScaleType | 버블의 크기가 상대적 크기의 전부분이 될 때 이미지를 렌더링하는 데 사용되는 저울 유형입니다. | Stretch |
SliceCenter | 이미지가 9개 슬라이스인 경우 이미지 경계를 슬라이스별로 나눕니다. 9개 슬라이스인 이미지를 ScaleType 로 설정할 때만 적용됩니다. | (0, 0, 0, 0) |
SliceScale | 이미지가 9개 슬라이스인 경우 슬라이스 편집의 크기 조정 비율. 9개 슬라이스인 경우 ScaleType 를 Slice 로 설정할 때만 적용됩니다. | 1 |
TileSize | 이미지의 타일 크기. ScaleType 를 Tile로 설정할 때만 적용됩니다. | (1, 0, 1, 0) |
버블 사용자 정의
특정 조건에 따라 채팅 버블 동작을 개별적으로 스타일링하고 수정할 수 있습니다. 예를 들어, 채팅 버블을 사용하여 NPC 및 사용자를 구분하고, 크리티컬 상태 상태를 강조하고, 미리 정의된 키워드가 있는 메시지에 특수 효과를 적용할 수 있습니다.
To set per-bubble customization, add a client-side LocalScript using BubbleChatMessageProperties , which overrides matching properties of BubbleChatConfiguration
다음과 같은 기본 사용자 지정 속성은 버블 사용자 지정에 사용할 수 있습니다.
속성 | 설명 | 기본 |
---|---|---|
BackgroundColor3 | Datatype.Color3의 거품의 배경 색상. | (250, 250, 250) |
BackgroundTransparency | 버블의 배경 투명도. | 0.1 |
FontFace | Font 의. | BuilderSansMedium |
TextColor3 | Color 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)