Instansi Humanoid digunakan untuk membuat model karakter, baik untuk avatar pengguna maupun NPC. Ketika Humanoid hadir di dalam Model yang berisi bagian bernama Head, Roblox menampilkan nama dan/atau bilah kesehatan di atas bagian tersebut.

Melalui berbagai properti Humanoid, Anda dapat memodifikasi hal berikut:
- Jarak dari mana pengguna dapat melihat nama/kesehatan humanoid lain dalam kaitannya dengan humanoid karakter mereka sendiri.
- Nama tampilan yang ditampilkan di atas humanoid.
- Apakah bilah kesehatan humanoid selalu muncul, tidak pernah muncul, atau hanya muncul ketika humanoid tersebut terluka.
- Apakah nama dan bilah kesehatan terhalang (tersembunyi) ketika garis pandang antara kamera dan humanoid lain terhalang.
Properti Tampilan
Tipe Jarak Tampilan
Properti Humanoid.DisplayDistanceType mengatur bagaimana pengguna melihat nama/kesehatan karakter lain dalam kaitannya dengan karakter mereka sendiri.
Viewer
Ketika DisplayDistanceType dari sebuah humanoid diatur ke HumanoidDisplayDistanceType.Viewer, ia melihat nama/kesehatan humanoid lain dalam jangkauan NameDisplayDistance dan HealthDisplayDistance miliknya sendiri. Anda dapat menganggap ini prioritas terendah karena tidak diperhitungkan untuk humanoid lain yang dikonfigurasikan sebagai subject atau none.
Dalam skenario berikut, karakter pengguna (Viewer) memiliki NameDisplayDistance yang lebih besar daripada HealthDisplayDistance, seperti yang ditunjukkan oleh lingkaran. Akibatnya, pengguna melihat nama karakter untuk Watchman dan Octavia, tetapi hanya melihat bilah kesehatan untuk Watchman.

Subject
Ketika DisplayDistanceType dari sebuah humanoid diatur ke HumanoidDisplayDistanceType.Subject, ia mengambil kendali penuh atas tampilan nama dan kesehatan melalui nilai NameDisplayDistance dan HealthDisplayDistance-nya. Secara efektif, humanoid lain hanya akan melihat nama/kesehatan subjek dalam jarak tersebut dari humanoid subjek.
Dalam skenario berikut, baik Watchman maupun Octavia diatur ke Subject dan jangkauan NameDisplayDistance mereka ditunjukkan oleh lingkaran. Hanya nama Octavia yang terlihat oleh pengguna yang karakter mereka berdiri di dalam jangkauannya tetapi di luar jangkauan humanoid Watchman.

None
Ketika DisplayDistanceType dari sebuah humanoid diatur ke HumanoidDisplayDistanceType.None, nama dan bilah kesehatannya tidak muncul dalam keadaan apapun. Dalam skenario berikut, baik Watchman maupun Octavia diatur ke None, sehingga karakter lain tidak melihat nama atau kesehatan mereka bahkan saat berada dalam jarak.

Tipe Tampilan Kesehatan
Properti Humanoid.HealthDisplayType memberikan kontrol lebih lanjut atas visibilitas bilah kesehatan karakter. Bilah tersebut mencerminkan Health dari humanoid sebagai faktor dari MaxHealth-nya dan berubah warna dari hijau menjadi kuning hingga merah saat kesehatan humanoid menurun.
AlwaysOn
Ketika HealthDisplayType dari sebuah humanoid diatur ke HumanoidHealthDisplayType.AlwaysOn, bilah kesehatannya selalu muncul.

DisplayWhenDamaged
Sebuah humanoid dengan HealthDisplayType diatur ke HumanoidHealthDisplayType.DisplayWhenDamaged hanya menunjukkan bilah kesehatan ketika Health-nya kurang dari MaxHealth. Dalam skenario berikut, Watchman memiliki kesehatan penuh dan tidak menampilkan bilah kesehatan, tetapi Octavia terluka 50% dan menampilkan bilah kesehatan kuning.

AlwaysOff
Ketika HealthDisplayType dari sebuah humanoid diatur ke HumanoidHealthDisplayType.AlwaysOff, bilah kesehatannya tidak pernah muncul dalam keadaan apapun.

Occlusion
Occlusion (penyembunyian) nama humanoid di belakang dinding atau objek lain dikendalikan oleh properti Humanoid.NameOcclusion dari karakter.
NoOcclusion
Ketika sebuah humanoid tersembunyi di belakang objek yang terlihat dan NameOcclusion diatur ke NameOcclusion.NoOcclusion, nama dan kesehatan mereka tidak pernah terhalang dari humanoid yang melihat.
Dalam skenario berikut, baik Watchman maupun Octavia diatur ke NoOcclusion. Meskipun keduanya cukup tersembunyi di belakang kolom batu, humanoid yang melihat tetap melihat tampilan nama/kesehatan mereka.

OccludeAll
Ketika sebuah humanoid tersembunyi di belakang objek yang terlihat dan NameOcclusion diatur ke NameOcclusion.OccludeAll, nama dan kesehatan mereka selalu terhalang dari humanoid yang melihat.
Dalam skenario berikut, baik Watchman maupun Octavia cukup tersembunyi di belakang kolom batu. Watchman diatur ke OccludeAll, sehingga nama dan kesehatannya tersembunyi dari humanoid yang melihat. Namun, Octavia, yang diatur ke NoOcclusion, nama/kesehatannya tetap terlihat oleh humanoid yang melihat.

EnemyOcclusion
Ketika sebuah humanoid tersembunyi di belakang objek yang terlihat dan NameOcclusion diatur ke NameOcclusion.EnemyOcclusion, nama dan kesehatan mereka hanya terhalang dari humanoid musuh (pemain di tim Team yang berbeda).
Dalam skenario berikut, baik Watchman maupun Octavia cukup tersembunyi di belakang kolom batu, dan keduanya diatur ke EnemyOcclusion. Humanoid yang melihat dan Watchman berada di tim yang sama, sehingga occlusion nama/kesehatan tidak terjadi. Namun, nama dan kesehatan Octavia, di tim yang berlawanan, terhalang.

Modifikasi Tampilan Karakter
Avatar Pengguna
Untuk memodifikasi tampilan nama atau kesehatan untuk setiap avatar yang masuk dalam permainan, hubungkan peristiwa Players.PlayerAdded dan Player.CharacterAdded dalam Script dan atur properti tampilan di Humanoid karakter.
local Players = game:GetService("Players")
local function onPlayerAdded(player)
player.CharacterAdded:Connect(function(character)
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
-- Beri setiap humanoid kendali penuh atas jarak tampilan nama/kesehatannya
humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.Subject
-- Atur jarak tampilan nama menjadi 20 stud
humanoid.NameDisplayDistance = 20
-- Atur jarak tampilan bilah kesehatan menjadi 15 stud
humanoid.HealthDisplayDistance = 15
-- Hanya tunjukkan bilah kesehatan ketika humanoid terluka
humanoid.HealthDisplayType = Enum.HumanoidHealthDisplayType.DisplayWhenDamaged
end
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)Anda juga dapat menyesuaikan properti berdasarkan Team pemain, seperti mengatur semua pemain "penjaga" menjadi nama generik, dan menyembunyikan nama semua pemain "ninja".
local Players = game:GetService("Players")
local function onPlayerAdded(player)
player.CharacterAdded:Connect(function(character)
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
-- Atur nama semua penjaga menjadi "Penjaga" generik
if player.Team.Name == "Guards" then
humanoid.DisplayName = "Guard"
-- Sembunyikan nama untuk semua ninja
elseif player.Team.Name == "Ninjas" then
humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.None
end
end
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)Karakter NPC
Untuk karakter NPC yang sudah ditempatkan di dunia 3D, Anda dapat mengedit nama/kesehatan langsung pada objek Humanoid di jendela Properti.


Ganti Nama Tampilan
Secara default, nama tampilan humanoid cocok dengan Nama Tampilan akun Roblox pengguna yang unik dan terpisah dari Nama Pengguna akun mereka. Untuk menampilkan nama yang sepenuhnya kustom yang tidak terkait dengan akun pengguna, Anda dapat mengganti properti Humanoid.DisplayName.
Atur langsung
Anda dapat mengatur properti DisplayName dari instansi Humanoid manapun yang Anda dapatkan referensinya melalui Script, seperti contoh personalisasi tim, atau langsung pada objek Humanoid karakter NPC.
Atur melalui input pengguna
Dalam beberapa genre seperti permainan peran atau pertempuran, Anda mungkin ingin menyediakan metode bagi pengguna untuk memasukkan nama karakter mereka sendiri, nama karakter hewan peliharaan, dll. yang spesifik untuk pengalaman dan tidak terkait dengan nama tampilan akun mereka. Anda dapat mengumpulkan input ini di sisi klien melalui entri nama TextBox.

Setelah input dikirim, Anda dapat meneruskannya ke server melalui kejadian jarak jauh dan kemudian, di sisi server, mendengarkan kejadian jarak jauh tersebut dan menetapkan nama yang difilter tersebut ke Humanoid karakter pengguna.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local changeNameEvent = ReplicatedStorage:WaitForChild("ChangeNameEvent")
changeNameEvent:FireServer("Amory")local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TextService = game:GetService("TextService")
-- Buat kejadian jarak jauh untuk menerima teks dari klien untuk difilter
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)