キャラクター名/ヘルスディスプレイ

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

Class.Humanoid インスタンスは、ユーザーアバターと NPC の両方に使用されます。 HumanoidModel の中に存在すると、Roblox はそのパーツの上に名前と/またはヘルスバーを表示します。

Character display information above an in-experience avatar

さまざまな Humanoid プロパティを通じて、フォロー中のことを変更できます:

  • ユーザーが自分のキャラクターのヒューマノイドと関連付けて他のヒューマノイドの名前/健康を見ることができる距離。
  • 人形の上に表示される ディスプレイ名
  • ヒューマノイドの ヘルスバー が常に表示されるか、表示されないか、または、ヒューマノイドがダメージを受けたときにのみ表示されます。
  • カメラと他のヒューマノイドの間のビューがブロックされている場合、名前とヘルスバーがブロックされている (隠れている) 場合、名前とヘルスバーがブロックされている (隠れている) 場合、名前とヘルスバーがブロックされている (隠れている) 場合、2>名前とヘルスバーがブロックされている2> (隠れている) 場合、5>名前とヘルスバー

プロパティを表示

ディスプレイ距離タイプ

Class.Humanoid.DisplayDistanceType プロパティは、ユーザーが自分のキャラクターと関連して他のキャラクターの名前/健康をどのように見るかを設定します。

ビューア

Class.Humanoid.DisplayDistanceType|Class.Humanoid.NameDisplayDistanceType|Class.Humanoid.HealthDisplayDistanceType 当人形の Class.Humanoid.NameDisplayDistanceType|Class.Humanoid.

次のシナリオで、ユーザーのキャラクター ( ビューアー ) は、NameDisplayDistance より大きな HealthDisplayDistance を持つ、円陣に示

件名

ヒューマノイドの DisplayDistanceTypeHumanoidDisplayDistanceType.Subject に設定されると、その

次のシナリオでは、 WatchmanOctaviaSubject に設定され、彼らの 1> Class.Humanoid.NameDisplayDistance|NameDisplayDistance1> 範囲はサークルによって表示されます。ユーザーのキャラクターが範囲の

なし

ヒューマノイドの DisplayDistanceTypeHumanoidDisplayDistanceType.None に設定されている場合、名前とヘルスバーはどの場合にも表示されません。次のシナリオでは、

健康ディスプレイタイプ

Class.Humanoid.HealthDisplayType プロパティは、キャラクターのヘルスバーの可視性をさらに制御します。バーは、キャラクターのヘルスバーの可視性を Health の要素として反射し、赤く変更します。ヘルスバーの減少に伴い、色が��

常にオン

ヒューマノイドの HealthDisplayTypeHumanoidHealthDisplayType.AlwaysOn に設定されると、健康バーが常に表示されます。

ダメージを受けたときに表示

人形 に HealthDisplayType を設定して HumanoidHealthDisplayType.DisplayWhenDamaged を表示

常にオフ

ヒューマノイドの HealthDisplayTypeHumanoidHealthDisplayType.AlwaysOff に設定されている場合、その健康バーはどの状況でも Class.Humanoid.HealthDisplayType|HumanoidHealthDisplayType.AlwaysOff の下に表示されません。

オクロージョン

人形名のオクルージョン(隠す)は、キャラクターの Humanoid.NameOcclusion プロパティによって制御されます。

NoOcclusion

人形が可視なオブジェクトの後ろに隠されているとき、その NameOcclusionNameOcclusion.NoOcclusion に設定されています。その名前と健康は、人形を表示するとき、人形の名前と健康は決して表示されません。

次のシナリオでは、 ウォッチマンオクタビアNoOcclusion に設定されています。両方とも石の柱の後ろに十分に隠されていますが、ビューヒューマノイドはまだ名前/健康ディスプレイを表示します。

すべてを除去

人形が可視なオブジェクトの後ろに隠されているとき、NameOcclusionNameOcclusion.OccludeAllに設定され、その名前と健康は常に人形を表示することなくClass.Humanoid.NameOcclusion されています。

次のシナリオでは、 WatchmanOctavia は石の柱の後ろに十分に隠されています。 Watchman は1>OccludeAll1> に設定されているため、名前と健康はビューモードの人間に表示されません。

敵の凝固

人形が可視なオブジェクトの後ろに隠されているとき、NameOcclusionNameOcclusion.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)