Nome/visualizzazione della salute del personaggio

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

L'istanza Humanoid è utilizzata per creare modelli di personaggi, sia per avatar utente che per NPC. Quando un Humanoid è presente all'interno di un Model che contiene una parte chiamata Head, Roblox visualizza un nome e/o una barra della salute sopra quella parte.

Informazioni sulla visualizzazione del personaggio sopra un avatar di gioco

Attraverso varie proprietà di Humanoid, puoi modificare quanto segue:

  • La distanza da cui gli utenti possono vedere il nome/la salute di altri umanoidi in relazione all'umanoide del proprio personaggio.
  • Il nome visualizzato che appare sopra un umanoide.
  • Se la barra della salute di un umanoide appare sempre, mai oppure solo quando l'umanoide è danneggiato.
  • Se i nomi e le barre della salute sono occlusi (nascosti) quando la linea di vista tra la telecamera e un altro umanoide è bloccata.

Proprietà di visualizzazione

Tipo di distanza di visualizzazione

La proprietà Humanoid.DisplayDistanceType imposta come gli utenti vedono il nome/la salute di altri personaggi in relazione al proprio personaggio.

Visualizzatore

Quando il DisplayDistanceType di un umanoide è impostato su HumanoidDisplayDistanceType.Viewer, vede il nome/la salute di altri umanoidi entro il raggio della sua NameDisplayDistance e HealthDisplayDistance. Puoi considerare questo il livello di priorità più basso poiché non viene preso in considerazione per altri umanoidi configurati come soggetto o nessuno.

Nello scenario seguente, il personaggio dell'utente (Viewer) ha una NameDisplayDistance maggiore di HealthDisplayDistance, come indicato dai cerchi. Di conseguenza, l'utente vede i nomi dei personaggi di Watchman e Octavia, ma vede solo una barra della salute per Watchman.

Soggetto

Quando il DisplayDistanceType di un umanoide è impostato su HumanoidDisplayDistanceType.Subject, prende il pieno controllo sulla visualizzazione del proprio nome e della salute tramite i valori di NameDisplayDistance e HealthDisplayDistance. In pratica, altri umanoidi vedranno solo il nome/la salute del soggetto entro quelle distanze dall'umanoide soggetto.

Nello scenario seguente, sia Watchman che Octavia sono impostati su Subject e i loro intervalli di NameDisplayDistance sono indicati dai cerchi. Solo il nome Octavia viene visto dall'utente il cui personaggio si trova all'interno del suo intervallo ma al di fuori dell'intervallo dell'umanoide Watchman.

Nessuno

Quando il DisplayDistanceType di un umanoide è impostato su HumanoidDisplayDistanceType.None, il suo nome e la sua barra della salute non appaiono in nessuna circostanza. Nello scenario seguente, sia Watchman che Octavia sono impostati su None, quindi l'altro personaggio non vede il proprio nome o la propria salute anche quando è in zona.

Tipo di visualizzazione della salute

La proprietà Humanoid.HealthDisplayType offre un ulteriore controllo sulla visibilità della barra della salute del personaggio. La barra riflette la Health dell'umanoide come fattore della sua MaxHealth e cambia colore da verde a giallo a rosso man mano che la salute dell'umanoide diminuisce.

SempreAccesa

Quando il HealthDisplayType di un umanoide è impostato su HumanoidHealthDisplayType.AlwaysOn, la sua barra della salute appare sempre.

VisualizzaQuandoDanneggiato

Un umanoide con HealthDisplayType impostato su HumanoidHealthDisplayType.DisplayWhenDamaged mostra solo una barra della salute quando la sua Health è inferiore alla sua MaxHealth. Nello scenario seguente, Watchman ha la salute piena e non visualizza una barra della salute, ma Octavia è danneggiata del 50% e visualizza una barra della salute gialla.

SempreSpenta

Quando il HealthDisplayType di un umanoide è impostato su HumanoidHealthDisplayType.AlwaysOff, la sua barra della salute non appare in nessuna circostanza.

Occlusione

L'occlusione (nascosta) dei nomi degli umanoidi dietro muri o altri oggetti è controllata dalla proprietà Humanoid.NameOcclusion del personaggio.

NessunaOcclusione

Quando un umanoide è nascosto dietro un oggetto visibile e la sua NameOcclusion è impostata su NameOcclusion.NoOcclusion, il suo nome e la sua salute non sono mai occlusi dalla visione degli umanoidi.

Nello scenario seguente, sia Watchman che Octavia sono impostati su NoOcclusion. Anche se entrambi sono sufficientemente nascosti dietro colonne di pietra, l'umanoide che osserva vede ancora le loro visualizzazioni del nome e della salute.

OccludeAll

Quando un umanoide è nascosto dietro un oggetto visibile e la sua NameOcclusion è impostata su NameOcclusion.OccludeAll, il suo nome e la sua salute sono sempre occlusi dalla visione degli umanoidi.

Nello scenario seguente, sia Watchman che Octavia sono sufficientemente nascosti dietro colonne di pietra. Watchman è impostato su OccludeAll, quindi il suo nome e la sua salute sono nascosti dall'umanoide in osservazione. Octavia, tuttavia, è impostata su NoOcclusion e il suo nome/benessere rimane visibile all'umanoide visualizzatore.

EnemyOcclusion

Quando un umanoide è nascosto dietro un oggetto visibile e la sua NameOcclusion è impostata su NameOcclusion.EnemyOcclusion, il suo nome e la sua salute sono occlusi solo dagli umanoidi nemici (giocatori di un Team diverso).

Nello scenario seguente, sia Watchman che Octavia sono sufficientemente nascosti dietro colonne di pietra, e entrambi sono impostati su EnemyOcclusion. L'umanoide in osservazione e Watchman sono nella stessa Team, quindi non si verifica alcuna occlusione di nome/salute. Tuttavia, il nome e la salute di Octavia, appartenente al team opposto, sono occlusi.

Modificare le visualizzazioni dei personaggi

Avatar utente

Per modificare la visualizzazione del nome o della salute per ogni avatar in arrivo in un gioco, collega gli eventi Players.PlayerAdded e Player.CharacterAdded in un Script e imposta le proprietà di visualizzazione sull' Humanoid del personaggio.

Script - Personalizzazione Globale

local Players = game:GetService("Players")
local function onPlayerAdded(player)
player.CharacterAdded:Connect(function(character)
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
-- Dare a ciascun umanoide il pieno controllo sulla distanza di visualizzazione del nome/salute
humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.Subject
-- Imposta la distanza di visualizzazione del nome a 20 stud
humanoid.NameDisplayDistance = 20
-- Imposta la distanza di visualizzazione della barra della salute a 15 stud
humanoid.HealthDisplayDistance = 15
-- Mostra la barra della salute solo quando l'umanoide è danneggiato
humanoid.HealthDisplayType = Enum.HumanoidHealthDisplayType.DisplayWhenDamaged
end
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)

Puoi anche personalizzare le proprietà in base alla Team di un giocatore, ad esempio impostando tutti i giocatori "guardia" su un nome generico e nascondendo i nomi di tutti i giocatori "ninja".

Script - Personalizzazione del Team

local Players = game:GetService("Players")
local function onPlayerAdded(player)
player.CharacterAdded:Connect(function(character)
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
-- Imposta il nome di tutte le guardie su "Guardia" generico
if player.Team.Name == "Guards" then
humanoid.DisplayName = "Guard"
-- Nascondi il nome per tutti i ninja
elseif player.Team.Name == "Ninjas" then
humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.None
end
end
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)

Personaggi NPC

Per i personaggi NPC già posizionati nel mondo 3D, puoi modificare il nome/la salute direttamente sull'oggetto Humanoid nella finestra Proprietà.

Sovrascrivere i nomi visualizzati

Per impostazione predefinita, il nome visualizzato di un umanoide corrisponde al Nome Visualizzato dell'account Roblox dell'utente, che è unico e separato dal Nome Utente del loro account. Per mostrare un nome completamente personalizzato che non sia correlato all'account dell'utente, puoi sovrascrivere la proprietà Humanoid.DisplayName.

Imposta direttamente

Puoi impostare la proprietà DisplayName di qualsiasi istanza di Humanoid a cui accedi tramite un Script, come nell'esempio di personalizzazione del team, o direttamente sull'oggetto Humanoid di un personaggio NPC.

Imposta tramite input dell'utente

In alcuni generi, come il gioco di ruolo o il combattimento, potresti voler fornire un metodo per gli utenti di inserire il proprio nome del personaggio, nome del personaggio animale, ecc., specifico per l'esperienza e non legato al loro nome visualizzato dell'account. Puoi raccogliere questo input sul lato client tramite un TextBox per l'inserimento del nome.

Una volta inviato l'input, puoi passarlo al server tramite un evento remoto e poi, sul lato server, ascoltare l'evento remoto e assegnare il nome filtrato all' Humanoid del personaggio utente.

LocalScript - Attiva Evento Remoto

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

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TextService = game:GetService("TextService")
-- Crea evento remoto per ricevere testo dal client per il filtraggio
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, il logo Roblox e Powering Imagination sono tra i nostri marchi registrati e non registrati negli Stati Uniti. e altri paesi.