Weergave van karakternaam/gezondheid

*Deze inhoud is vertaald met behulp van AI (bèta) en kan fouten bevatten. Klik hier om deze pagina in het Engels te bekijken.

De Humanoid instantie wordt gebruikt om karaktermodellen te maken, zowel voor gebruikersavatars als NPC's. Wanneer een Humanoid aanwezig is in een Model die een onderdeel met de naam Head bevat, toont Roblox een naam en/of gezondheidsbalk boven dat onderdeel.

Informatie over karakterweergave boven een avatar in het spel

Via verschillende Humanoid eigenschappen kun je het volgende aanpassen:

  • De afstand van waaruit gebruikers de naam/gezondheid van andere humanoïden kunnen zien in relatie tot de humanoïde van hun eigen karakter.
  • De weergavenaam die boven een humanoïde wordt weergegeven.
  • Of de gezondheidsbalk van een humanoïde altijd verschijnt, nooit verschijnt, of alleen verschijnt wanneer de humanoïde beschadigd is.
  • Of namen en gezondheidsbalken geoccludeerd (verborgen) zijn wanneer de zichtlijn tussen de camera en een andere humanoïde geblokkeerd is.

Weergave-eigenschappen

Weergaveafstandstype

De Humanoid.DisplayDistanceType eigenschap stelt in hoe gebruikers de naam/gezondheid van andere karakters zien in relatie tot hun eigen karakter.

Kijker

Wanneer de DisplayDistanceType van een humanoïde is ingesteld op HumanoidDisplayDistanceType.Viewer, ziet deze de naam/gezondheid van andere humanoïden binnen het bereik van zijn eigen NameDisplayDistance en HealthDisplayDistance. Je kunt dit beschouwen als de laagste prioriteit, aangezien het niet in aanmerking wordt genomen voor andere humanoïden die zijn geconfigureerd als subject of none.

In het volgende scenario heeft het karakter van de gebruiker (Kijker) een grotere NameDisplayDistance dan HealthDisplayDistance, zoals aangegeven door de cirkels. Als gevolg hiervan ziet de gebruiker de karakternamen voor zowel Watchman als Octavia, maar ziet alleen een gezondheidsbalk voor Watchman.

Onderwerp

Wanneer de DisplayDistanceType van een humanoïde is ingesteld op HumanoidDisplayDistanceType.Subject, heeft deze volledige controle over zijn eigen naam- en gezondheidsweergave via zijn NameDisplayDistance en HealthDisplayDistance waarden. Effectief zullen andere humanoïden alleen de naam/gezondheid van het onderwerp binnen die afstanden van de onderwerp humanoïde zien.

In het volgende scenario zijn zowel Watchman als Octavia ingesteld op Subject en hun NameDisplayDistance bereiken zijn aangegeven door de cirkels. Alleen de naam Octavia is zichtbaar voor de gebruiker wiens karakter zich binnen haar bereik bevindt, maar buiten het bereik van de Watchman humanoïde.

Geen

Wanneer de DisplayDistanceType van een humanoïde is ingesteld op HumanoidDisplayDistanceType.None, verschijnen zijn naam en gezondheidsbalk onder geen enkele omstandigheid. In het volgende scenario zijn zowel Watchman als Octavia ingesteld op None, zodat de andere karakter hun naam of gezondheid niet ziet, zelfs niet wanneer ze binnen bereik zijn.

Gezondheidsweergave type

De Humanoid.HealthDisplayType eigenschap biedt verdere controle over de zichtbaarheid van de gezondheidsbalk van het karakter. De balk weerspiegelt de Health van de humanoïde als een factor van zijn MaxHealth en verandert van kleur van groen naar geel naar rood naarmate de gezondheid van de humanoïde afneemt.

AltijdAan

Wanneer de HealthDisplayType van een humanoïde is ingesteld op HumanoidHealthDisplayType.AlwaysOn, verschijnt zijn gezondheidsbalk altijd.

WeergaveBijBeschadiging

Een humanoïde met HealthDisplayType ingesteld op HumanoidHealthDisplayType.DisplayWhenDamaged toont alleen een gezondheidsbalk wanneer zijn Health minder is dan zijn MaxHealth. In het volgende scenario heeft Watchman volledige gezondheid en toont geen gezondheidsbalk, maar Octavia is voor 50% beschadigd en toont een gele gezondheidsbalk.

AltijdUit

Wanneer de HealthDisplayType van een humanoïde is ingesteld op HumanoidHealthDisplayType.AlwaysOff, verschijnt zijn gezondheidsbalk onder geen enkele omstandigheid.

Occlusie

Occlusie (verbergen) van humanoïd namen achter muren of andere objecten wordt geregeld door de Humanoid.NameOcclusion eigenschap van het karakter.

GeenOcclusie

Wanneer een humanoïde verborgen is achter een zichtbaar object en zijn NameOcclusion is ingesteld op NameOcclusion.NoOcclusion, zijn naam en gezondheid zijn nooit occluded voor kijkende humanoïden.

In het volgende scenario zijn zowel Watchman als Octavia ingesteld op NoOcclusion. Hoewel beide voldoende verborgen zijn achter stenen kolommen, ziet de kijkende humanoïde nog steeds hun naam/gezondheidsweergaven.

OccludeAll

Wanneer een humanoïde verborgen is achter een zichtbaar object en zijn NameOcclusion is ingesteld op NameOcclusion.OccludeAll, zijn naam en gezondheid zijn altijd occluded voor kijkende humanoïden.

In het volgende scenario zijn zowel Watchman als Octavia voldoende verborgen achter stenen kolommen. Watchman is ingesteld op OccludeAll, zodat zijn naam en gezondheid verborgen zijn voor de kijkende humanoïde. Octavia daarentegen is ingesteld op NoOcclusion en haar naam/gezondheid blijft zichtbaar voor de kijkende humanoïde.

VijandOcclusie

Wanneer een humanoïde verborgen is achter een zichtbaar object en zijn NameOcclusion is ingesteld op NameOcclusion.EnemyOcclusion, zijn naam en gezondheid zijn alleen occluded voor vijandige humanoïden (spelers in een andere Team).

In het volgende scenario zijn zowel Watchman als Octavia voldoende verborgen achter stenen kolommen, en zijn beide ingesteld op EnemyOcclusion. De kijkende humanoïde en Watchman bevinden zich in dezelfde Team, dus occlusie van naam/gezondheid vindt niet plaats. De naam en gezondheid van Octavia, aan de tegenovergestelde team, zijn echter geoccludeerd.

Wijzig karakterweergaven

Gebruikersavatars

Om de naam of gezondheidsweergave voor elke binnenkomende avatar in een spel aan te passen, verbind je de Players.PlayerAdded en Player.CharacterAdded evenementen in een Script en stel je de weergave-eigenschappen in op de Humanoid van het karakter.

Script - Globale Aanpassing
local Players = game:GetService("Players")
local function onPlayerAdded(player)
player.CharacterAdded:Connect(function(character)
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
-- Geef elke humanoïde volledige controle over zijn naam/gezondheid weergave afstand
humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.Subject
-- Stel de naam weergave afstand in op 20 studs
humanoid.NameDisplayDistance = 20
-- Stel de gezondheidsbalk weergave afstand in op 15 studs
humanoid.HealthDisplayDistance = 15
-- Toon de gezondheidsbalk alleen wanneer de humanoïde beschadigd is
humanoid.HealthDisplayType = Enum.HumanoidHealthDisplayType.DisplayWhenDamaged
end
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)

Je kunt ook eigenschappen aanpassen op basis van de Team van een speler, zoals het instellen van alle "bewakers" op een generieke naam, en het verbergen van de namen van alle "ninja" spelers.

Script - Team Aanpassing
local Players = game:GetService("Players")
local function onPlayerAdded(player)
player.CharacterAdded:Connect(function(character)
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
-- Stel de naam van alle bewakers in op generieke "Bewaker"
if player.Team.Name == "Guards" then
humanoid.DisplayName = "Guard"
-- Verberg de naam voor alle ninja's
elseif player.Team.Name == "Ninjas" then
humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.None
end
end
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)

NPC-karakters

Voor NPC-karakters die al in de 3D-wereld zijn geplaatst, kun je de naam/gezondheid rechtstreeks bewerken op het Humanoid object in het Eigenschappen venster.

Overschrijf weergavenamen

Standaard komt de weergavenaam van een humanoïde overeen met de Weergavenaam van het Roblox-account van de gebruiker, die uniek en gescheiden is van hun account Gebruikersnaam. Om een volledig aangepaste naam weer te geven die niet gerelateerd is aan het account van de gebruiker, kun je de Humanoid.DisplayName eigenschap overschrijven.

Direct instellen

Je kunt de DisplayName eigenschap van elke Humanoid instantie instellen waar je referentie naar hebt via een Script, zoals het voorbeeld van team aanpassing, of rechtstreeks op het Humanoid object van een NPC karakter.

Instellen via gebruikersinvoer

In sommige genres zoals rollenspellen of vechten, wil je misschien een methode bieden voor gebruikers om hun eigen karakternaam, huisdier karakternaam, enz. in te voeren die specifiek is voor de ervaring en niet is gekoppeld aan hun accountweergavenaam. Je kunt deze invoer aan de clientzijde verzamelen via een TextBox naam invoer.

Zodra de invoer is ingediend, kun je deze naar de server sturen via een remote event en vervolgens, aan de serverzijde, luisteren naar het remote event en de gefilterde naam toewijzen aan de Humanoid van het gebruikerskarakter.

LocalScript - Vuur Remote Event
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local changeNameEvent = ReplicatedStorage:WaitForChild("ChangeNameEvent")
changeNameEvent:FireServer("Amory")
Script - Wijs Gefilterde Naam Toe
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TextService = game:GetService("TextService")
-- Maak remote event om tekst van client te ontvangen voor filtering
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, het Roblox-logo en Powering Imagination behoren tot onze geregistreerde en niet-geregistreerde handelsmerken in de VS en andere landen.