Class.Humanoid インスタンスは、ユーザーアバターと NPC の両方に使用されます。 Humanoid が Model の中に存在すると、Roblox はそのパーツの上に名前と/またはヘルスバーを表示します。
さまざまな Humanoid プロパティを通じて、フォロー中のことを変更できます:
- ユーザーが自分のキャラクターのヒューマノイドと関連付けて他のヒューマノイドの名前/健康を見ることができる距離。
- 人形の上に表示される ディスプレイ名 。
- ヒューマノイドの ヘルスバー が常に表示されるか、表示されないか、または、ヒューマノイドがダメージを受けたときにのみ表示されます。
- カメラと他のヒューマノイドの間のビューがブロックされている場合、名前とヘルスバーがブロックされている (隠れている) 場合、名前とヘルスバーがブロックされている (隠れている) 場合、名前とヘルスバーがブロックされている (隠れている) 場合、2>名前とヘルスバーがブロックされている2> (隠れている) 場合、5>名前とヘルスバー
プロパティを表示
ディスプレイ距離タイプ
Class.Humanoid.DisplayDistanceType プロパティは、ユーザーが自分のキャラクターと関連して他のキャラクターの名前/健康をどのように見るかを設定します。
ビューア
Class.Humanoid.DisplayDistanceType|Class.Humanoid.NameDisplayDistanceType|Class.Humanoid.HealthDisplayDistanceType 当人形の Class.Humanoid.NameDisplayDistanceType|Class.Humanoid.
次のシナリオで、ユーザーのキャラクター ( ビューアー ) は、NameDisplayDistance より大きな HealthDisplayDistance を持つ、円陣に示
件名
ヒューマノイドの DisplayDistanceType が HumanoidDisplayDistanceType.Subject に設定されると、その
次のシナリオでは、 Watchman と Octavia は Subject に設定され、彼らの 1> Class.Humanoid.NameDisplayDistance|NameDisplayDistance1> 範囲はサークルによって表示されます。ユーザーのキャラクターが範囲の
なし
ヒューマノイドの DisplayDistanceType が HumanoidDisplayDistanceType.None に設定されている場合、名前とヘルスバーはどの場合にも表示されません。次のシナリオでは、
健康ディスプレイタイプ
Class.Humanoid.HealthDisplayType プロパティは、キャラクターのヘルスバーの可視性をさらに制御します。バーは、キャラクターのヘルスバーの可視性を Health の要素として反射し、赤く変更します。ヘルスバーの減少に伴い、色が��
常にオン
ヒューマノイドの HealthDisplayType が HumanoidHealthDisplayType.AlwaysOn に設定されると、健康バーが常に表示されます。
ダメージを受けたときに表示
人形 に HealthDisplayType を設定して HumanoidHealthDisplayType.DisplayWhenDamaged を表示
常にオフ
ヒューマノイドの HealthDisplayType が HumanoidHealthDisplayType.AlwaysOff に設定されている場合、その健康バーはどの状況でも Class.Humanoid.HealthDisplayType|HumanoidHealthDisplayType.AlwaysOff の下に表示されません。
オクロージョン
人形名のオクルージョン(隠す)は、キャラクターの Humanoid.NameOcclusion プロパティによって制御されます。
NoOcclusion
人形が可視なオブジェクトの後ろに隠されているとき、その NameOcclusion は NameOcclusion.NoOcclusion に設定されています。その名前と健康は、人形を表示するとき、人形の名前と健康は決して表示されません。
次のシナリオでは、 ウォッチマン と オクタビア は NoOcclusion に設定されています。両方とも石の柱の後ろに十分に隠されていますが、ビューヒューマノイドはまだ名前/健康ディスプレイを表示します。
すべてを除去
人形が可視なオブジェクトの後ろに隠されているとき、NameOcclusion はNameOcclusion.OccludeAllに設定され、その名前と健康は常に人形を表示することなくClass.Humanoid.NameOcclusion されています。
次のシナリオでは、 Watchman と Octavia は石の柱の後ろに十分に隠されています。 Watchman は1>OccludeAll1> に設定されているため、名前と健康はビューモードの人間に表示されません。
敵の凝固
人形が可視なオブジェクトの後ろに隠されているとき、NameOcclusion はNameOcclusion.EnemyOcclusion に設定されており、その名前と健康は、他のプレイヤーのTeam からのみ隠されます。
次のシナリオでは、 ウォッチマン と オクタビア は石の柱の後ろに十分に隠されていますが、両方とも 敵のオクロージョン に発生定されています。1>名前/体力のオ
キャラクターのディスプレイを変更する
ユーザーアバター
エクスペリエンス内のすべての入ってくるアバターの名前またはヘルスディスプレイを変更するには、Players.PlayerAdded および Player.CharacterAdded イベントを Script に接続し、2>ディスプレイプロパティ2> をキャラクターの
スクリプト - グローバルカスタマイズ
local Players = game:GetService("Players")
local function onPlayerAdded(player)
player.CharacterAdded:Connect(function(character)
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
-- 各ヒューマノイドに名前/体力ディスプレイ距離の完全なコントロールを与える
humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.Subject
-- 名前の表示距離を 20 スタッドに設定
humanoid.NameDisplayDistance = 20
-- ヘルスバーの表示距離を 15 スタッドに設定
humanoid.HealthDisplayDistance = 15
-- 人形がダメージを受けたときのみヘルスバーを表示する
humanoid.HealthDisplayType = Enum.HumanoidHealthDisplayType.DisplayWhenDamaged
end
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)
また、プレイヤーの Team など、プロパティをカスタマイズできます。たとえば、すべての「guard」プレイヤーを一般的な名前に設定し、すべての「ninja」プレイヤーの名前を非表示にするなどです。
スクリプト - チームカスタマイズ
local Players = game:GetService("Players")
local function onPlayerAdded(player)
player.CharacterAdded:Connect(function(character)
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
-- すべてのガードの名前を「Guard」に設定
if player.Team.Name == "Guards" then
humanoid.DisplayName = "Guard"
-- すべての忍者の名前を非表示にする
elseif player.Team.Name == "Ninjas" then
humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.None
end
end
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)
NPC キャラクター
3D 世界にすでに配置された NPC キャラクターの場合、Humanoid オブジェクトの直接名前/体力を プロパティ ウィンドウで編集できます。
ディスプレイ名をオーバーライドする
デフォルトでは、ヒューマノイドのディスプレイ名は、ユーザーの Roblox アカウント ディスプレイ名 に一致します。これは、ユーザーのアカウントからユニークで分離されています ユーザー名 。関連しないユーザー名を表示するには、 Class.Humanoid.DisplayName プロパティ
直接設定
Class.Humanoid.DisplayName|DisplayName プロパティのいずれかを設定すると、Humanoid インスタンスの参照先として、Script の例、または直接 1>NPC1> キャラクターの 4>Humanoid4> オブジェク
ユーザーの入力によって設定
ロールプレイや戦格闘などのいくつかのジャンルで、ユーザーが自分のキャラクター名、ペットキャラクター名などを入力する方法を提供する表示名とがあります。これは、エクスペリエンスに特定されており、アカウントのディスプレイ名には関連付けられていません。クライアント側で TextBox を
入力が送信されると、リモートイベントを通じてサーバーに送信し、サーバー側でリモートイベントを聞き、ユーザーキャラクターのHumanoidに2>フィルター2>された名前を割り当てることができます。
ローカルスクリプト - リモートイベントをファイア
local ReplicatedStorage = game:GetService("ReplicatedStorage")local changeNameEvent = ReplicatedStorage:WaitForChild("ChangeNameEvent")changeNameEvent:FireServer("Amory")
スクリプト - フィルター名を割り当てる
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TextService = game:GetService("TextService")
-- クライアントからフィルターにテキストを受信するリモートイベントを作成
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)