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

Melalui berbagai properti Humanoid, Anda dapat mengubah mengikuti:
- Jarak dari mana pengguna dapat melihat nama/kesehatan humanoid lain terkait dengan humanoid karakter mereka sendiri.
- Nama tampilan yang menunjukkan di atas humanoid yang menunjukkan di atas humanoid.
- Apakah bilah kesehatan manusia selalu muncul, tidak pernah muncul, atau hanya muncul ketika manusia rusak.
- Apakah nama dan bilah kesehatan tersembunyi (tersembunyi) ketika baris pandangan antara kamera dan manusia non-humanoid lain diblokir.
Tampilkan properti
ketikjarak tampilan
Properti Humanoid.DisplayDistanceType menetapkan bagaimana pengguna melihat nama/kesehatan karakter lain dalam kaitannya dengan karakter mereka sendiri.
Pemirsa
Ketika humanoid DisplayDistanceType diatur ke HumanoidDisplayDistanceType.Viewer , ia melihat nama/kesehatan humanoid lain dalam jangkauan NameDisplayDistance dan HealthDisplayDistance sendiri.Anda dapat menganggap ini prioritas terendah karena tidak dipertimbangkan untuk humanoid lain yang dikonfigurasi sebagai subjek atau tidak ada .
Dalam skenario berikut, karakter pengguna ( Pemutar ) memiliki karakter yang lebih besar NameDisplayDistance daripada HealthDisplayDistance , seperti yang ditunjukkan oleh lingkaran.Sebagai hasilnya, pengguna melihat nama karakter untuk kedua Watchman dan Octavia , tetapi hanya melihat bilah kesehatan untuk Watchman .

Subjek
Ketika humanoid DisplayDistanceType diatur ke HumanoidDisplayDistanceType.Subject , ia membutuhkan kontrol penuh atas nama dan tampilan kesehatannya melalui nilai NameDisplayDistance dan HealthDisplayDistance nya.Secara efektif, humanoid lain hanya akan melihat nama/kesehatan subjek dalam jarak tersebut dari subjek humanoid.
Dalam skenario berikut, kedua Pengawas dan Octavia ditetapkan ke Subjek dan rentang mereka NameDisplayDistance ditunjukkan oleHanya nama Octavia yang terlihat oleh pengguna yang karakternya berdiri di dalam jangkauannya tetapi di luar jangkauan Watchman humanoid.

Tidak ada
Ketika humanoid DisplayDistanceType diatur ke HumanoidDisplayDistanceType.None , namanya dan bilah kesehatannya tidak muncul di bawah kondisi apa pun.Dalam skenario berikut, kedua Watchman dan Octavia diatur ke Tidak ada , sehingga karakter lain tidak melihat nama atau kesehatan mereka bahkan saat berada dalam jangkauan.

ketiktampilan kesehatan
Properti Humanoid.HealthDisplayType memberikan kontrol lebih lanjut atas visibilitas bilah kesehatan karakter.Bar mencerminkan humanoid Health sebagai faktor dari MaxHealth dan itu berubah warna dari hijau ke kuning ke merah saat kesehatan manusia berkurang.
Selalu Nyala
Ketika bar kesehatan manusia HealthDisplayType diatur ke HumanoidHealthDisplayType.AlwaysOn, bar kesehatannya selalu muncul.

Tampilkan Saat Rusak
Humanoide dengan HealthDisplayType diatur ke HumanoidHealthDisplayType.DisplayWhenDamaged hanya menunjukkan bilah kesehatan saat Health kurang dari MaxHealth .Dalam skenario berikut, Watchman memiliki kesehatan penuh dan tidak menampilkan bilah kesehatan, tetapi Octavia rusak oleh 50% dan menampilkan bilah kesehatan kuning.

Selalu Mati
Ketika bar kesehatan manusia HealthDisplayType diatur ke HumanoidHealthDisplayType.AlwaysOff, bar kesehatannya tidak pernah muncul di bawah kondisi apa pun.

Penutupan
Penutupan (penyembunyian) nama humanoid di balik dinding atau objek lain dikendalikan oleh properti karakter Humanoid.NameOcclusion.
Tidak ada penutupan
Ketika humanoid disembunyikan di balik objek yang terlihat dan NameOcclusion nya diatur ke NameOcclusion.NoOcclusion, namanya dan kesehatannya tidak pernah terhalang dari melihat humanoid.
Dalam skenario berikut, kedua Watchman dan Octavia diatur ke NoOcclusion .Meskipun keduanya cukup tersembunyi di balik kolom batu, manusia pengamat masih melihat tampilan nama/kesehatan mereka.

OccludeSemua
Ketika humanoid disembunyikan di balik objek yang terlihat dan NameOcclusion nya diatur ke NameOcclusion.OccludeAll, namanya dan kesehatannya selalu terhalang dari melihat humanoid.
Dalam skenario berikut, kedua Watchman dan Octavia cukup tersembunyi di balik kolom batu. Penjaga diatur ke OccludeAll , jadi namanya dan kesehatannya tersembunyi dari humanoid pengamat. Octavia , bagaimanapun, diatur ke Tidak Ada Penghalangan dan namanya/kesehatannya tetap terlihat oleh humanoid pengamat.

Penghalang Musuh
Ketika humanoid tersembunyi di balik objek yang terlihat dan NameOcclusion nya diatur ke NameOcclusion.EnemyOcclusion , namanya dan kesehatannya hanya terhalang dari humanoid musuh (pemain di Team yang berbeda).
Dalam skenario berikut, kedua Watchman dan Octavia cukup tersembunyi di balik kolom batu, dan keduanya diatur ke EnemyOcclusion .Humanoid pemandangan dan Watchman berada di yang sama, jadi penutupan nama/kesehatan tidak terjadi.Namun, nama dan kesehatan Octavia , di tim lawan, ditutup.

Modifikasi tampilan karakter
Avatar pengguna
Untuk memodifikasi nama atau tampilan kesehatan untuk setiap avatar yang masuk dalam pengalaman, hubungkan peristiwa Players.PlayerAdded dan Player.CharacterAdded dalam Script dan atur properti tampilan pada karakter Humanoid.
Skrip - Kustomisasi Global
local Players = game:GetService("Players")
local function onPlayerAdded(player)
player.CharacterAdded:Connect(function(character)
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
-- Berikan setiap humanoid kontrol penuh atas nama/jarak tampilan kesehatannya
humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.Subject
-- Tetapkan jarak tampilan nama ke 20 stud
humanoid.NameDisplayDistance = 20
-- Tetapkan jarak tampilan bilah kesehatan menjadi 15 stud
humanoid.HealthDisplayDistance = 15
-- Hanya tampilkan bilah kesehatan saat humanoid rusak
humanoid.HealthDisplayType = Enum.HumanoidHealthDisplayType.DisplayWhenDamaged
end
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)
Anda juga dapat menyesuaikan properti berdasarkan nama pemain Team, seperti mengatur semua pemain "penjaga" ke nama umum, dan menyembunyikan nama semua pemain "ninja".
Skrip - Kustomisasi Tim
local Players = game:GetService("Players")
local function onPlayerAdded(player)
player.CharacterAdded:Connect(function(character)
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
-- Tetapkan nama semua penjaga menjadi umum "Guard"
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)
Pempersona 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 akun Roblox pengguna Nama Tampilan yang unik dan terpisah dari akun mereka Nama Pengguna .Untuk menampilkan nama yang sepenuhnya disesuaikan yang tidak terkait dengan akun pengguna, Anda dapat melewati properti Humanoid.DisplayName.
Tetapkan langsung
Anda dapat mengatur properti dari instance mana pun yang Anda dapat referensi melalui sebuah , seperti contoh kustomisasi tim , atau langsung pada objek Humanoid karakter NPC.
Tetapkan melalui input pengguna
Di beberapa genre seperti roleplaying atau pertarungan, Anda mungkin ingin memberikan metode bagi pengguna untuk memasukkan nama karakter mereka sendiri, nama karakter hewan peliharaan, dll.itu khusus untuk pengalaman dan tidak terikat dengan nama displayakun mereka.Anda dapat mengumpulkan input ini di sisi klien melalui entri nama TextBox .

Setelah input diajukan, Anda dapat mengirimkannya ke server melalui acara remote remote dan kemudian, di sisi server, dengarkan acara remote dan atribusikan nama difilter ke karakter pengguna .
Skrip Lokal - Acara Remote Api
local ReplicatedStorage = game:GetService("ReplicatedStorage")local changeNameEvent = ReplicatedStorage:WaitForChild("ChangeNameEvent")changeNameEvent:FireServer("Amory")
Skrip - Atribusikan Nama Terfilter
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TextService = game:GetService("TextService")
-- Buat acara remote untuk menerima teks dari klien untuk penyaringan
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)