Ví dụ Humanoid instance được sử dụng để tạo mô hình nhân vật, cả cho avatar người dùng và NPC.Khi một Humanoid có hiện diện bên trong một Model chứa một phần có tên là Đầu , Roblox hiển thị một tên và/hoặc thanh sức khỏe phía trên phần đó.

Thông qua các thuộc tính khác nhau Humanoid, bạn có thể chỉnh sửa những điều theo dõi:
- Khoảng cách từ đó người dùng có thể nhìn thấy tên/sức khỏe của các humanoid khác so với humanoid của riêng họ.
- Tên hiển thị mà hiển thị trên một humanoid mà hiển thị trên một humanoid.
- Liệu thanh sức khỏe của một humanoid luôn xuất hiện, không bao giờ xuất hiện hoặc chỉ xuất hiện khi humanoid bị hư hại.
- Liệu các thanh tên và sức khỏe có bị che khuất không (ẩn) khi dòng nhìn giữa máy ảnh và một con người khác bị chặn.
Hiển thị các thuộc tính
Loại khoảng cách hiển đánh máy
Các thuộc tính Humanoid.DisplayDistanceType đặt cách người dùng xem tên/sức khỏe của các nhân vật khác so với nhân vật của họ.
Xem trước
Khi một humanoid's DisplayDistanceType được đặt thành HumanoidDisplayDistanceType.Viewer , nó nhìn thấy tên/sức khỏe của các humanoid khác trong phạm vi của chính nó NameDisplayDistance và HealthDisplayDistance .Bạn có thể xem xét đây là ưu tiên thấp nhất vì nó không được xem xét cho các humanoid khác được cấu hình là chủ đề hoặc không .
Trong trường hợp sau, nhân vật của người dùng ( Viewer ) có kích thước lớn hơn NameDisplayDistance hơn HealthDisplayDistance , như được chỉ ra bởi các vòng tròn.Kết kết quảlà, người dùng thấy tên nhân vật cho cả Watchman và Octavia , nhưng chỉ thấy thanh sức khỏe cho Watchman .

Chủ đề
Khi một humanoid's DisplayDistanceType được đặt thành HumanoidDisplayDistanceType.Subject , nó sẽ mất kiểm soát hoàn toàn về tên và sức khỏe của mình thông qua các giá trị NameDisplayDistance và HealthDisplayDistance của nó.Hiệu quả, các humanoid khác chỉ sẽ nhìn thấy tên/sức khỏe của chủ đề trong khoảng cách đó từ chủ đề humanoid.
Trong trường hợp sau, cả Watchman và Octavia được đặt thành Chủ đề và phạm vi NameDisplayDistance của chúng được chỉ ra bởi các vòng tròn.Chỉ tên Octavia được nhìn thấy bởi người dùng có nhân vật đang ở trong phạm vi của cô nhưng ngoài phạm vi của Watchman humanoid.

Không có
Khi một humanoid's DisplayDistanceType được đặt thành HumanoidDisplayDistanceType.None , tên và thanh sức khỏe của nó không xuất hiện dưới bất kỳ hoàn cảnh nào.Trong trường hợp sau, cả Watchman và Octavia được đặt thành Không , vì vậy nhân vật còn lại không nhìn thấy tên hoặc sức khỏe của họ ngay cả khi ở trong phạm vi.

Loại hiển thị sức đánh máy
Thuộc tính Humanoid.HealthDisplayType cung cấp thêm kiểm soát về độ hiển thị của thanh sức khỏe của nhân vật.Thanh phản ánh Health của con người như một yếu tố của MaxHealth của nó và nó thay đổi màu từ xanh lá sang vàng đến đỏ khi sức khỏe của con người giảm.
Luôn bật
Khi thanh sức khỏe của một humanoid được đặt thành , thanh luôn xuất hiện.

Hiển thị khi bị hư hại
Một humanoid với HealthDisplayType được đặt thành HumanoidHealthDisplayType.DisplayWhenDamaged chỉ hiển thị thanh sức khỏe khi Health của nó nhỏ hơn thanh MaxHealth của nó.Trong trường hợp sau, Watchman có sức khỏe đầy đủ và không hiển thị thanh sức khỏe, nhưng Octavia bị hư hại 50% và hiển thị thanh sức khỏe màu vàng.

Luôn tắt
Khi thanh sức khỏe của một humanoid được đặt thành , nó sẽ không bao giờ xuất hiện dưới bất kỳ hoàn cảnh nào.

Sự che khuất
Sự che khuất (ẩn) các tên humanoid phía sau các bức tường hoặc các đối tượng khác được kiểm soát bởi tính chất Humanoid.NameOcclusion của nhân vật.
Không có sự che khuất
Khi một humanoid được giấu sau một vật thể có thể nhìn thấy và NameOcclusion của nó được đặt thành NameOcclusion.NoOcclusion, tên và sức khỏe của nó không bao giờ bị che khỏi việc xem humanoid.
Trong trường hợp sau, cả Watchman và Octavia được đặt thành NoOcclusion .Mặc dù cả hai đều được giấu đủ phía sau các cột đá, con người xem vẫn còn thấy tên/màn hình sức khỏe của họ.

Bỏ tất cả
Khi một humanoid được giấu sau một vật thể có thể nhìn thấy và NameOcclusion của nó được đặt thành NameOcclusion.OccludeAll, tên và sức khỏe của nó luôn bị che khỏi việc xem humanoids.
Trong trường hợp sau, cả Watchman và Octavia đều được giấu đủ phía sau các cột đá. Watchman được đặt thành OccludeAll , vì vậy tên và sức khỏe của nó được giấu khỏi con người xem.Tuy nhiên, Octavia được đặt thành NoOcclusion và tên/sức khỏe của cô vẫn hiển thị cho humanoid xem.

Khối chặn kẻ thù
Khi một hình người được giấu sau một vật thể có thể nhìn thấy và NameOcclusion của nó được đặt thành NameOcclusion.EnemyOcclusion , tên và sức khỏe của nó chỉ bị che khuất khỏi kẻ thù người (người chơi trên một đối tượng khác Team ).
Trong trường hợp sau, cả Watchman và Octavia đều được giấu đủ phía sau các cột đá, và cả hai đều được đặt thành EnemyOcclusion .Con người quan sát và Watchman ở trên cùng một Team , vì vậy sự che khuất tên/sức khỏe không xảy ra.Tuy nhiên, tên và sức khỏe của Octavia , trong đội đối thủ, bị che khuất.

Sửa hiển thị nhân vật
Hình đại diện người dùng
Để thay đổi tên hoặc hiển thị sức khỏe cho mỗi avatar nhận được trong một trải nghiệm, kết nối các sự kiện Players.PlayerAdded và Player.CharacterAdded trong một Script và đặt tính năng hiển thị trên nhân vật của Humanoid .
Script - Tùy chỉnh toàn cầu
local Players = game:GetService("Players")
local function onPlayerAdded(player)
player.CharacterAdded:Connect(function(character)
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
-- Tặng mỗi humanoid đầy đủ quyền kiểm soát về tên/khoảng cách hiển thị sức khỏe của nó
humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.Subject
-- Đặt khoảng cách hiển thị tên lên 20 stud
humanoid.NameDisplayDistance = 20
-- Đặt khoảng cách hiển thị thanh sức khỏe lên 15 đinh tán
humanoid.HealthDisplayDistance = 15
-- Chỉ hiển thị thanh sức khỏe khi humanoid bị hư hại
humanoid.HealthDisplayType = Enum.HumanoidHealthDisplayType.DisplayWhenDamaged
end
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)
Bạn cũng có thể tùy chỉnh các thuộc tính dựa trên tên của người chơi Team, chẳng hạn như đặt tất cả các "bảo vệ" người chơi thành tên chung, và che giấu tên của tất cả các "ninja" người chơi.
Script - Tùy chỉnh đội
local Players = game:GetService("Players")
local function onPlayerAdded(player)
player.CharacterAdded:Connect(function(character)
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
-- Đặt tên của tất cả các bảo vệ thành chung "Bảo vệ"
if player.Team.Name == "Guards" then
humanoid.DisplayName = "Guard"
-- Ẩn tên cho tất cả các ninja
elseif player.Team.Name == "Ninjas" then
humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.None
end
end
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)
Nhân vật NPC
Đối với các nhân vật NPC đã được đặt trong thế giới 3D, bạn có thể chỉnh sửa tên/sức khỏe trực tiếp trên đối tượng Humanoid trong cửa sổ Tính năng.


Thay thế tên hiển thị
Mặc định, tên hiển thị của một humanoid phù hợp với tài khoản Roblox của người dùng Tên hiển thị duy nhất và riêng biệt với tài khoản của họ Tên người dùng .Để hiển thị một tên hoàn toàn tùy chỉnh không liên quan đến tài khoản của người dùng, bạn có thể bỏ qua thuộc tính Humanoid.DisplayName.
Đặt trực tiếp
Bạn có thể đặt thuộc tính DisplayName của bất kỳ Humanoid instance nào mà bạn có tham chiếu thông qua một Script , chẳng hạn như ví dụ tùy chỉnh đội , hoặc trực tiếp trên đối tượng NPC của đối tượng Humanoid của con người.
Đặt thông qua nhập của người dùng
Trong một số thể loại như trò chơi nhập vai hoặc chiến đấu, bạn có thể muốn cung cấp một phương pháp cho người dùng nhập tên nhân vật của riêng họ, tên nhân vật thú cưng, v.v.đó là cụ thể cho trải nghiệm và không bị ràng buộc với tên hiển thị tài khoản của họ.Bạn có thể thu thập đầu vào này trên phía khách thông qua một đầu vào tên TextBox.

Khi nhập được gửi, bạn có thể chuyển nó cho máy chủ thông qua một sự kiện remote và sau đó, trên phía máy chủ, lắng nghe sự kiện remote và gán tên lọc cho nhân vật người dùng của Humanoid.
LocalScript - Sự kiện bắn từ xa
local ReplicatedStorage = game:GetService("ReplicatedStorage")local changeNameEvent = ReplicatedStorage:WaitForChild("ChangeNameEvent")changeNameEvent:FireServer("Amory")
Tập lệnh - Gán tên bị lọc
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TextService = game:GetService("TextService")
-- Tạo sự kiện remote để nhận văn bản từ khách hàng để lọc
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)