Exibição do nome/saúde do personagem

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

A instância Humanoid é usada para criar modelos de personagens, tanto para avatares de usuários quanto para NPCs. Quando um Humanoid está presente dentro de um Model que contém uma parte chamada Cabeça, o Roblox exibe um nome e/ou barra de saúde acima dessa parte.

Informação de exibição do personagem acima de um avatar em jogo

Através de várias propriedades do Humanoid, você pode modificar o seguinte:

  • A distância a partir da qual os usuários podem ver o nome/saúde de outros humanoides em relação ao próprio humanoide do seu personagem.
  • O nome de exibição que aparece sobre um humanoide.
  • Se a barra de saúde de um humanoide aparece sempre, nunca aparece ou aparece apenas quando o humanoide está danificado.
  • Se os nomes e barras de saúde estão ocluídos (escondidos) quando a linha de visão entre a câmera e outro humanoide está bloqueada.

Propriedades de exibição

Tipo de distância de exibição

A propriedade Humanoid.DisplayDistanceType define como os usuários veem o nome/saúde de outros personagens em relação ao seu próprio personagem.

Visualizador

Quando o DisplayDistanceType de um humanoide está definido como HumanoidDisplayDistanceType.Viewer, ele vê o nome/saúde de outros humanoides dentro do alcance do seu próprio NameDisplayDistance e HealthDisplayDistance. Você pode considerar isso a prioridade mais baixa, pois não é levado em consideração para outros humanoides configurados como assunto ou nenhuma.

No cenário a seguir, o personagem do usuário (Visualizador) tem um NameDisplayDistance maior que HealthDisplayDistance, conforme indicado pelos círculos. Como resultado, o usuário vê os nomes dos personagens Watchman e Octavia, mas apenas vê uma barra de saúde para Watchman.

Assunto

Quando o DisplayDistanceType de um humanoide está definido como HumanoidDisplayDistanceType.Subject, ele assume controle total sobre sua própria exibição de nome e saúde através de seus valores NameDisplayDistance e HealthDisplayDistance. Eficazmente, outros humanoides só verão o nome/saúde do sujeito dentro dessas distâncias do humanoide sujeito.

No cenário a seguir, tanto Watchman quanto Octavia estão definidos como Sujeito e seus intervalos de NameDisplayDistance são indicados pelos círculos. Apenas o nome Octavia é visto pelo usuário cujo personagem está dentro do seu alcance, mas fora do alcance do humanoide Watchman.

Nenhum

Quando o DisplayDistanceType de um humanoide está definido como HumanoidDisplayDistanceType.None, seu nome e barra de saúde não aparecem sob circunstância alguma. No cenário a seguir, tanto Watchman quanto Octavia estão definidos como Nenhum, portanto, o outro personagem não vê seu nome ou saúde, mesmo quando está dentro do alcance.

Tipo de exibição de saúde

A propriedade Humanoid.HealthDisplayType fornece mais controle sobre a visibilidade da barra de saúde do personagem. A barra reflete o Health do humanoide como um fator de seu MaxHealth e muda de cor de verde para amarelo para vermelho à medida que a saúde do humanoide diminui.

SempreVisível

Quando o HealthDisplayType de um humanoide está definido como HumanoidHealthDisplayType.AlwaysOn, sua barra de saúde sempre aparece.

ExibirQuandoDanificado

Um humanoide com HealthDisplayType definido como HumanoidHealthDisplayType.DisplayWhenDamaged apenas mostra uma barra de saúde quando seu Health é menor que seu MaxHealth. No cenário a seguir, Watchman está com saúde total e não exibe uma barra de saúde, mas Octavia está danificada em 50% e exibe uma barra de saúde amarela.

SempreOculto

Quando o HealthDisplayType de um humanoide está definido como HumanoidHealthDisplayType.AlwaysOff, sua barra de saúde nunca aparece sob circunstância alguma.

Oclusão

A oclusão (esconder) dos nomes dos humanoides atrás de paredes ou outros objetos é controlada pela propriedade Humanoid.NameOcclusion do personagem.

SemOclusão

Quando um humanoide está escondido atrás de um objeto visível e seu NameOcclusion está definido como NameOcclusion.NoOcclusion, seu nome e saúde nunca são ocluídos da visualização dos humanoides.

No cenário a seguir, tanto Watchman quanto Octavia estão definidos como SemOclusão. Embora ambos estejam suficientemente escondidos atrás de colunas de pedra, o humanoide que está vendo ainda vê suas exibições de nome/saúde.

OcluirTodos

Quando um humanoide está escondido atrás de um objeto visível e seu NameOcclusion está definido como NameOcclusion.OccludeAll, seu nome e saúde estão sempre ocluídos da visualização de humanoides.

No cenário a seguir, tanto Watchman quanto Octavia estão suficientemente escondidos atrás de colunas de pedra. Watchman está definido como OcluirTodos, então seu nome e saúde estão escondidos do humanoide que está vendo. Octavia, no entanto, está definida como SemOclusão e seu nome/saúde permanece visível para o humanoide que está vendo.

OclusãoInimiga

Quando um humanoide está escondido atrás de um objeto visível e seu NameOcclusion está definido como NameOcclusion.EnemyOcclusion, seu nome e saúde estão ocluídos apenas de humanoides inimigos (jogadores em um Team diferente).

No cenário a seguir, tanto Watchman quanto Octavia estão suficientemente escondidos atrás de colunas de pedra, e ambos estão definidos como OclusãoInimiga. O humanoide que está vendo e Watchman estão no mesmo Team, então a oclusão de nome/saúde não ocorre. No entanto, o nome e a saúde de Octavia, do time oposto, estão ocluídos.

Modificar exibições de personagem

Avatares de usuários

Para modificar a exibição de nome ou saúde de todos os avatares que entram em um jogo, conecte os eventos Players.PlayerAdded e Player.CharacterAdded em um Script e defina as propriedades de exibição no Humanoid do personagem.

Script - Personalização Global

local Players = game:GetService("Players")
local function onPlayerAdded(player)
player.CharacterAdded:Connect(function(character)
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
-- Dar a cada humanoide controle total sobre sua distância de exibição de nome/saúde
humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.Subject
-- Definir distância de exibição de nome para 20 studs
humanoid.NameDisplayDistance = 20
-- Definir distância de exibição da barra de saúde para 15 studs
humanoid.HealthDisplayDistance = 15
-- Mostrar barra de saúde apenas quando o humanoide está danificado
humanoid.HealthDisplayType = Enum.HumanoidHealthDisplayType.DisplayWhenDamaged
end
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)

Você também pode personalizar propriedades com base na Team de um jogador, como definir todos os jogadores "guardas" para um nome genérico, e esconder os nomes de todos os jogadores "ninja".

Script - Personalização de Time

local Players = game:GetService("Players")
local function onPlayerAdded(player)
player.CharacterAdded:Connect(function(character)
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
-- Definir o nome de todos os guardas para "Guarda" genérico
if player.Team.Name == "Guards" then
humanoid.DisplayName = "Guard"
-- Esconder o nome para todos os ninjas
elseif player.Team.Name == "Ninjas" then
humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.None
end
end
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)

Personagens NPC

Para personagens NPC já colocados no mundo 3D, você pode editar nome/saúde diretamente no objeto Humanoid na janela Propriedades.

Substituir nomes de exibição

Por padrão, o nome de exibição de um humanoide corresponde ao Nome de Exibição da conta Roblox do usuário, que é único e separado do Nome de Usuário da conta. Para mostrar um nome totalmente personalizado que não está relacionado à conta do usuário, você pode substituir a propriedade Humanoid.DisplayName.

Definir diretamente

Você pode definir a propriedade DisplayName de qualquer instância Humanoid à qual você obtenha referência através de um Script, como o exemplo de personalização de time, ou diretamente no objeto Humanoid de um personagem NPC.

Definir através da entrada do usuário

Em alguns gêneros como interpretação de papéis ou luta, você pode querer fornecer um método para que os usuários insiram seu próprio nome de personagem, nome de personagem de animal de estimação, etc., que seja específico para a experiência e não esteja ligado ao nome de exibição da conta deles. Você pode coletar essa entrada do lado do cliente através de uma entrada de nome TextBox.

Uma vez que a entrada é enviada, você pode passá-la para o servidor através de um evento remoto e, em seguida, no lado do servidor, escutar o evento remoto e atribuir o nome filtrado ao Humanoid do personagem do usuário.

LocalScript - Disparar Evento Remoto

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local changeNameEvent = ReplicatedStorage:WaitForChild("ChangeNameEvent")
changeNameEvent:FireServer("Amory")
Script - Atribuir Nome Filtrado

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TextService = game:GetService("TextService")
-- Criar evento remoto para receber texto do cliente para filtragem
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, o logotipo Roblox e Powering Imagination estão entre nossas marcas registradas e não registradas nos EUA e em outros países.