캐릭터 이름/체력 표시

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

Humanoid 인스턴스는 사용자 아바타와 NPC 모두를 위한 캐릭터 모델을 생성하는 데 사용됩니다. Model 안에 Head라는 이름의 부품이 포함된 Humanoid가 존재할 때, Roblox는 해당 부품 위에 이름 및/또는 체력 바를 표시합니다.

게임 내 아바타 위의 캐릭터 표시 정보

様々な Humanoid 속성을 통해 다음을 수정할 수 있습니다:

  • 사용자들이 자신의 캐릭터의 휴머노이드에 대해 다른 휴머노이드의 이름/체력을 얼마나 먼 거리에서 볼 수 있는지를 결정하는 거리.
  • 휴머노이드 위에 표시되는 표시 이름.
  • 휴머노이드의 체력 바가 항상 나타나는지, 결코 나타나지 않는지 또는 휴머노이드가 피해를 입었을 때만 나타나는지 여부.
  • 카메라와 다른 휴머노이드 사이의 시선이 차단될 때 이름과 체력이 가려지는지 여부.

표시 속성

표시 거리 유형

Humanoid.DisplayDistanceType 속성은 사용자가 자신의 캐릭터와의 관계에서 다른 캐릭터의 이름/체력을 어떻게 볼 수 있는지를 설정합니다.

Viewer

휴머노이드의 DisplayDistanceTypeHumanoidDisplayDistanceType.Viewer로 설정되었을 때, 해당 휴머노이드는 자신의 NameDisplayDistanceHealthDisplayDistance 범위 내에서 다른 휴머노이드의 이름/체력을 볼 수 있습니다. 이는 주의가 가장 낮은 것으로 간주될 수 있으며, subject 또는 none으로 설정된 다른 휴머노이드의 경우에는 고려되지 않습니다.

다음 시나리오에서 사용자 캐릭터(Viewer)는 NameDisplayDistanceHealthDisplayDistance보다 크며, 이는 원으로 표시됩니다. 따라서 사용자는 WatchmanOctavia 모두의 캐릭터 이름을 볼 수 있지만, Watchman의 체력 바만 볼 수 있습니다.

Subject

휴머노이드의 DisplayDistanceTypeHumanoidDisplayDistanceType.Subject로 설정되어 있을 때, 자신의 이름과 체력 표시에 대해 전체 제어를 하게 됩니다. 이는 NameDisplayDistanceHealthDisplayDistance 값을 통해 조정됩니다. 효과적으로, 다른 휴머노이드는 그 주체 휴머노이드로부터 해당 거리 내에서만 주체의 이름/체력을 볼 수 있습니다.

다음 시나리오에서 WatchmanOctavia는 모두 Subject로 설정되어 있으며, 그들의 NameDisplayDistance 거리는 원으로 표시됩니다. 사용자의 캐릭터가 Octavia의 범위 내에 있지만 Watchman 휴머노이드의 범위 외부에 있을 경우, 이름 Octavia만 표시됩니다.

None

휴머노이드의 DisplayDistanceTypeHumanoidDisplayDistanceType.None으로 설정될 때, 이름과 체력 바는 어떤 경우에도 나타나지 않습니다. 다음 시나리오에서 WatchmanOctavia는 모두 None으로 설정되어 있으므로, 다른 캐릭터는 범위 내에 있을 때도 그들의 이름이나 체력을 볼 수 없습니다.

체력 표시 유형

Humanoid.HealthDisplayType 속성은 캐릭터의 체력 바 가시성에 대해 추가적인 제어를 제공합니다. 이 바는 휴머노이드의 HealthMaxHealth의 비율로 반영하며, 체력이 감소함에 따라 색상이 초록색에서 노란색, 빨간색으로 변경됩니다.

AlwaysOn

휴머노이드의 HealthDisplayTypeHumanoidHealthDisplayType.AlwaysOn으로 설정되었을 때, 체력 바는 항상 나타납니다.

DisplayWhenDamaged

HealthDisplayTypeHumanoidHealthDisplayType.DisplayWhenDamaged로 설정된 휴머노이드는 HealthMaxHealth보다 낮을 때만 체력 바를 표시합니다. 다음 시나리오에서, Watchman은 최대 체력을 가지고 있으며 체력 바를 표시하지 않지만, Octavia는 50%의 피해를 입어 노란색 체력 바를 표시합니다.

AlwaysOff

휴머노이드의 HealthDisplayTypeHumanoidHealthDisplayType.AlwaysOff로 설정되었을 때, 체력 바는 어떤 경우에도 나타나지 않습니다.

가림

벽이나 다른 물체 뒤에 있는 휴머노드 이름의 가림(숨김)은 캐릭터의 Humanoid.NameOcclusion 속성에 따라 제어됩니다.

NoOcclusion

휴머노이드가 보이는 객체 뒤에 숨겨졌을 때, 그 NameOcclusionNameOcclusion.NoOcclusion으로 설정되면, 해당 이름과 체력은 다른 휴머노이드에게 결정적으로 숨겨지지 않습니다.

다음 시나리오에서 WatchmanOctavia는 모두 NoOcclusion으로 설정되어 있습니다. 둘 다 돌 기둥 뒤에 충분히 가려져 있지만, 보는 휴머노이드가 여전히 그들의 이름/체력 표시를 볼 수 있습니다.

OccludeAll

휴머노이드가 보이는 객체 뒤에 숨겨졌을 때, 그 NameOcclusionNameOcclusion.OccludeAll로 설정되면, 해당 이름과 체력은 다른 휴머노이드에게 항상 가려집니다.

다음 시나리오에서 WatchmanOctavia는 모두 돌 기둥 뒤에 충분히 가려져 있습니다. WatchmanOccludeAll로 설정되어 있어, 그의 이름과 체력이 보는 휴머노이드에게 숨겨져 있습니다. 그러나 OctaviaNoOcclusion으로 설정되어 있어 그녀의 이름/체력이 보는 휴머노이드에게 여전히 보입니다.

EnemyOcclusion

휴머노이드가 보이는 객체 뒤에 숨겨졌을 때, 그 NameOcclusionNameOcclusion.EnemyOcclusion으로 설정되면, 그 이름과 체력은 적 휴머노이드에게만 가려집니다(다른 Team의 플레이어).

다음 시나리오에서 WatchmanOctavia는 모두 돌 기둥 뒤에 충분히 가려져 있으며, 두 캐릭터 모두 EnemyOcclusion으로 설정되어 있습니다. 보는 휴머노이드와 Watchman은 동일한 Team에 속하므로 명칭/체력 가림이 발생하지 않습니다. 하지만, 반대 팀의 Octavia는 이름과 체력이 가려집니다.

캐릭터 표시 수정

사용자 아바타

모든 아바타의 이름 또는 체력 표시를 수정하기 위해 Players.PlayerAddedPlayer.CharacterAdded 이벤트를 Script와 연결하고 캐릭터의 Humanoid에 대해 표시 속성을 설정할 수 있습니다.

Script - Global Customization

local Players = game:GetService("Players")
local function onPlayerAdded(player)
player.CharacterAdded:Connect(function(character)
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
-- 각 휴머노이드에게 이름/체력 표시 거리에서 완전한 제어 권한 부여
humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.Subject
-- 이름 표시 거리를 20 스터드로 설정
humanoid.NameDisplayDistance = 20
-- 체력 바 표시 거리를 15 스터드로 설정
humanoid.HealthDisplayDistance = 15
-- 휴머노이드가 피해를 입었을 때만 체력 바 표시
humanoid.HealthDisplayType = Enum.HumanoidHealthDisplayType.DisplayWhenDamaged
end
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)

플레이어의 Team에 따라 이러한 속성을 사용자 정의할 수도 있으며, 모든 "경비원" 플레이어를 일반 이름으로 설정하고, 모든 "닌자" 플레이어의 이름을 숨기는 것과 같은 작업을 수행할 수 있습니다.

Script - Team Customization

local Players = game:GetService("Players")
local function onPlayerAdded(player)
player.CharacterAdded:Connect(function(character)
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
-- 모든 경비원의 이름을 일반 "Guard"로 설정
if player.Team.Name == "Guards" then
humanoid.DisplayName = "Guard"
-- 모든 닌자의 이름 숨김
elseif player.Team.Name == "Ninjas" then
humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.None
end
end
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)

NPC 캐릭터

3D 세계에 이미 배치된 NPC 캐릭터에 대해, 속성 창에서 Humanoid 객체의 이름/체력을 직접 수정할 수 있습니다.

표시 이름 재정의

기본적으로, 휴머노이드의 표시 이름은 사용자의 Roblox 계정 표시 이름과 일치하며 이는 고유하고 계정 사용자 이름과는 별개입니다. 사용자의 계정과 관련이 없는 완전히 사용자 정의된 이름을 표시하려면 Humanoid.DisplayName 속성을 재정의할 수 있습니다.

직접 설정

DisplayName 속성을 설정할 수 있으며, 이는 Script를 통해 참조를 얻거나, 팀 사용자 정의 예제와 같이 수행하거나, 직접 NPC 캐릭터의 Humanoid 객체에서 설정할 수 있습니다.

사용자 입력을 통해 설정

역할 수행 또는 싸움과 같은 일부 장르에서는 사용자가 자신의 캐릭터 이름, 애완 캐릭터 이름 등을 경험에 특정하여 입력할 수 있는 방법을 제공하고 싶을 수 있습니다. 클라이언트 측에서 TextBox 이름 입력을 통해 이 입력을 수집할 수 있습니다.

입력이 제출되면, 이를 원격 이벤트를 통해 서버로 전달하고, 서버 측에서는 원격 이벤트를 청취하여 사용자 캐릭터의 Humanoid필터링된 이름을 할당할 수 있습니다.

LocalScript - Fire Remote Event

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local changeNameEvent = ReplicatedStorage:WaitForChild("ChangeNameEvent")
changeNameEvent:FireServer("Amory")
Script - Assign Filtered Name

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TextService = game:GetService("TextService")
-- 클라이언트로부터 텍스트를 수신하여 필터링하기 위한 원격 이벤트 생성
local changeNameEvent = Instance.new("RemoteEvent")
changeNameEvent.Name = "ChangeNameEvent"
changeNameEvent.Parent = ReplicatedStorage
local function onRequestNameChange(player, newName)
local character = player.Character
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
local filterResult
local success, errorMessage = pcall(function()
filterResult = TextService:FilterStringAsync(newName, player.UserId)
end)
if success then
local filteredName
local success, errorMessage = pcall(function()
filteredName = filterResult:GetNonChatStringForBroadcastAsync()
end)
if success and humanoid then
humanoid.DisplayName = filteredName
end
end
end
changeNameEvent.OnServerEvent:Connect(onRequestNameChange)
©2026 Roblox Corporation. Roblox 및 Roblox 로고, 'Powering Imagination'은 미국 및 기타 국가 내 당사의 등록 및 미등록 상표입니다.