캐릭터 이름/건강 표시

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

Humanoid 인스턴스는 사용자 아바타와 NPC에 대한 캐릭터 모델을 생성하는 데 사용됩니다.부품 이름 Humanoid 이 포함된 Model 내에 부품 이 있을 때 Roblox는 해당 부품 위에 이름 및/또는 건강 바를 표시합니다.

Character display information above an in-experience avatar

다양한 Humanoid 속성을 통해 팔로잉수정할 수 있습니다:

  • 사용자가 자신의 캐릭터의 인간형과 관련하여 다른 인간형의 이름/상태를 볼 수 있는 거리 거리입니다.
  • 인간형 위에 표시되는 디스플레이 이름
  • 인간형의 건강 바가 항상 나타나는지, 나타나지 않는지, 또는 인간형이 손상될 때만 나타나는지 여부
  • 카메라와 다른 휴머노이드 사이의 시선 라인이 차단되어 이름과 체력 바가 은폐되는지 여부(은폐됨)

속성 표시

표시 거리 입력

Humanoid.DisplayDistanceType 속성은 사용자가 자신의 캐릭터와 관련하여 다른 캐릭터의 이름/상태를 보는 방법을 설정합니다.

뷰어

인간형의 DisplayDistanceType 가 설정되어 HumanoidDisplayDistanceType.Viewer 에 다른 인간형의 이름/건강이 표시되면, 자신의 NameDisplayDistanceHealthDisplayDistance 범위 내에 있는 다른 인간형을 볼 수 있습니다.이는 다른 휴머노이드가 주제 또는 없음으로 구성되도록 고려되지 않기 때문에 최우선 순위로 간주할 수 있습니다.

다음 시나리오에서 사용자의 캐릭터( 뷰어 )는 원으로 표시된 것처럼 더 큰 를 가지고 있습니다.결과적으로 사용자는 워치맨오캐비아 에 대한 캐릭터 이름을 보지만, 워치맨 에 대한 건강 바만 볼 수 있습니다.

주제

인간형의 DisplayDistanceTypeHumanoidDisplayDistanceType.Subject 로 설정되면, 자체 이름과 건강 표시를 통해 전체 제어 를 수행하기 위해 NameDisplayDistanceHealthDisplayDistance 값을 사용합니다.효과적으로 다른 휴머노이드는 주제의 이름/건강을 해당 거리에서만 볼 수 있습니다 주제 휴머노이드로부터.

다음 시나리오에서는 감시자 와 오케이비아 가 모두 주제 로 설정되고 원형으로 범위가 표시됩니다.범위 내에 있지만 워치맨 인간의 범위 밖에 있는 사용자의 캐릭터만 보이는 이름은 Octavia 입니다.

없음

인간형의 가 설정되면 이름과 체력 바가 어떤 상황에서도 표시되지 않습니다.다음 시나리오에서는 감시자오케이비아 모두가 없음 으로 설정되어 다른 캐릭터는 범위에 있을 때에도 이름이나 건강을 볼 수 없습니다.

건강 표시 입력

Humanoid.HealthDisplayType 속성은 캐릭터의 건강 바 표시에 대한 추가 제어를 제공합니다.바는 휴머노이드의 를 요소로 반영하며, 휴머노이드의 건강이 감소함에 따라 색상이 녹색에서 노란색으로, 빨간색으로 변경됩니다.

항상 켜기 AlwaysOn

인간형의 HealthDisplayTypeHumanoidHealthDisplayType.AlwaysOn 로 설정되면 항상 건강 바가 표시됩니다.

손상 시 표시

A humanoid with HealthDisplayType 설정된 HumanoidHealthDisplayType.DisplayWhenDamaged 는 그의 Health 가 그의 MaxHealth 보다 작을 때만 건강 바를 표시합니다.다음 시나리오에서는 감시자 가 전체 건강을 갖고 있으며 건강 바를 표시하지 않지만 오카비아 가 50% 손상되어 노란색 건강 바를 표시합니다.

항상 끄기

인간형의 가 설정되면 건강 바가 어떤 상황에서도 나타나지 않습니다.

점막 차단

벽이나 다른 개체 뒤에 인간형 이름의 배제(은폐)는 캐릭터의 Humanoid.NameOcclusion 속성에 의해 제어됩니다.

차단 없음

인간형이 가시적인 개체 뒤에 숨겨져 있고 해당 NameOcclusionNameOcclusion.NoOcclusion 로 설정되어 있으면 해당 이름과 건강은 인간형을 보는 것에서 결코 차단되지 않습니다.

다음 시나리오에서는 WatchmanOctavia 가 모두 NoOcclusion 으로 설정됩니다.둘 다 돌 기둥 뒤에 충분히 숨겨져 있지만, 시청 인간은 여전히 이름/건강 표시를 볼 수 있습니다.

모두 제외하기 OccludeAll

인간형이 가시적인 개체 뒤에 숨겨져 있고 해당 NameOcclusionNameOcclusion.OccludeAll 로 설정되어 있으면 해당 이름과 건강은 항상 인간형을 보는 것에서 제외됩니다.

다음 시나리오에서는 감시자오카비아 가 돌맹이 기둥 뒤에 충분히 숨겨져 있습니다. 감시자OccludeAll 로 설정되어 이름과 상태가 감시 인간에게 숨겨집니다.그러나 OctaviaNoOcclusion으로 설정되고 그녀의 이름/건강은 시청하는 휴머노이드에 계속 표시됩니다.

적의 차단

인간형이 가시적 개체 뒤에 숨겨져 있고 해당 NameOcclusionNameOcclusion.EnemyOcclusion 로 설정되어 있을 때, 이름과 건강은 적의 인간형(다른 Team 플레이어)에게만 숨겨집니다.

다음 시나리오에서는 감시자오카비아 모두 돌맹이 기둥 뒤에 충분히 숨겨져 있으며 둘 다 적의 폐쇄 에 설정됩니다.시청 휴머노이드와 감시자 는 동일한 Team 에 있으므로 이름/건강 차단이 발생하지 않습니다.그러나 상대 팀의 Octavia 의 이름과 상태는 차단됩니다.

캐릭터 표시 수정

사용자 아바타

경험에서 모든 들어오는 아바타의 이름이나 상태 표시를 수정하려면 및 이벤트를 연결하여 에서 캐릭터의 표시 속성 을 설정하십시오.

스크립트 - 전역 사용자 지정

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에 따라 속성을 사용자 지정할 수도 있습니다.

스크립트 - 팀 사용자 지정

local Players = game:GetService("Players")
local function onPlayerAdded(player)
player.CharacterAdded:Connect(function(character)
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
-- 모든 경비원의 이름을 일반 "경비원"으로 설정
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 캐릭터의 경우, 속성 창의 개체에서 이름/체력을 직접 편집할 수 있습니다.

표시 이름 재정의

기본적으로 휴머노이드의 디스플레이 이름은 사용자의 Roblox 계정 디스플레이 이름 과 고유하고 계정과 별도인 사용자 이름 사용자 이름 에 일치합니다.사용자의 계정과 관련이 없는 완전히 사용자 지정된 이름을 표시하려면 Humanoid.DisplayName 속성을 재정의할 수 있습니다.

직접 설정

당신은 참조하는 모든 인스턴스의 속성을 설정할 수 있습니다, 예를 들어 팀 사용자 정의 예제나 직접 NPC 캐릭터의 인간형 개체에서.

사용자 입력을 통해 설정

롤플레이나 격투같은 일부 장르에서는 사용자가 자신의 캐릭터 이름, 펫 캐릭터 이름 등을 입력할 수 있는 방법을 제공하고 싶을 수 있습니다.경험과 관련이 있으며 계정 표시 이름에 연결되지 않습니다.클라이언트 측에서는 TextBox 이름 입력을 통해 이 입력을 수집할 수 있습니다.

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

로컬스크립트 - 원격 이벤트 발생시키기 LocalScript - Fire Remote Event

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local changeNameEvent = ReplicatedStorage:WaitForChild("ChangeNameEvent")
changeNameEvent:FireServer("Amory")
스크립트 - 필터링된 이름 할당

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)