Humanoid

非推奨を表示

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

ヒューマノイドは、モデルにキャラクターの機能を与える特別なオブジェクトで

R6

  • 6つの手足のために 6 個のパーツを使用する基本的なキャラクターリグ。
  • Head パーツは、Torso という名前のパーツに取り付けられる必要があります。そうしないと、人形はすぐに死亡します。
  • ボディパーツの見た目は、CharacterMesh オブジェクトを使用して適用されます。
  • 特定のプロパティ、例えば Humanoid.LeftLegHumanoid.RightLeg は、R6 でのみ機能します。

R15 の

  • R6 よりも複雑ですが、同時によりも柔軟であり、よりも強度の高いものです。
  • 15個のパーツで構成されています。
  • Head パーツは、UpperTorso または Humanoid という名前のパーツに取り付けられなければなりません。
  • ボディパーツの外観は直接組み立てる必要があります。
  • 人形の中にある特殊な NumberValue オブジェクトを使用して、サイズをダイナミックに変更できます。
  • ヒューマノイドは自動的に Vector3Value オブジェクトを作成し、各リンブ内に OriginalSize という名前のオブジェクトを自動的に作成します。
  • ヒューマノイドの中にある NumberValue が、フォロー中の名前の 1 つを持つ場合、スケーリング機能を制御するために使用されます:
    • ボディ深度スケール
    • ボディ高さスケール
    • ボディワイドスケール
    • ヘッドスケール

コードサンプル

Walking Camera Bobble Effect

local RunService = game:GetService("RunService")
local playerModel = script.Parent
local humanoid = playerModel:WaitForChild("Humanoid")
local function updateBobbleEffect()
local now = tick()
if humanoid.MoveDirection.Magnitude > 0 then -- Is the character walking?
local velocity = humanoid.RootPart.Velocity
local bobble_X = math.cos(now * 9) / 5
local bobble_Y = math.abs(math.sin(now * 12)) / 5
local bobble = Vector3.new(bobble_X, bobble_Y, 0) * math.min(1, velocity.Magnitude / humanoid.WalkSpeed)
humanoid.CameraOffset = humanoid.CameraOffset:lerp(bobble, 0.25)
else
-- Scale down the CameraOffset so that it shifts back to its regular position.
humanoid.CameraOffset = humanoid.CameraOffset * 0.75
end
end
RunService.RenderStepped:Connect(updateBobbleEffect)

概要

プロパティ

  • 並列読み取り

    モバイルデバイスのプレイヤーとして障害物にヒットすると、キャラクターが自動的にジャンプするかどうかを設定します。

  • 並列読み取り

    自動回転は、人形が自動的に回転して移動する方向に面を向けるかどうかを設定します。

  • 並列読み取り

    有効にすると、AutomaticScalingEnabled は、子スケールの値が変更されると、キャラクターのサイズを変更します。

  • 並列読み取り

    人形の関節が Enum.HumanoidStateType.Dead 状態にあるときに壊れるかどうかを決定します。

  • 並列読み取り

    カメラのサブジェクトポジションに適用されるオフセットが、このヒューマノイドに設定されたときにカメラのサブジェクトをこのオフセットで設定します。

  • 人形の名前と健康ディスプレイの距離ビークンを制御します。

  • 並列読み取り

    頭上の人形のテキストを設定します。

  • 並列読み取り
  • 読み取り専用
    複製されていません
    並列読み取り

    Class.Humanoid が今、Humanoid に乗っているのは、 Humanoid が今、1>Enumerate.Material1> の上に立っているかどうかです。 4>Class.Humanoid4> が今、7>Enumerate.Material7> の上に立っていない場合、このプロパティの値は Enum.Material0> になります。

  • 複製されていません
    並列読み取り

    距離 [0, Humanoid.MaxHealth] のヒューマノイドの現在の健康を説明します。

  • 並列読み取り

    Class.Humanoid.DisplayDistanceType|DisplayDistanceType プロパティと組み合わせて、人形のヘルスバーの見える距離を制御します。

  • ヒューマノイドのヘルスバーが表示されることができるようになるコントロール。

  • 並列読み取り

    Class.Humanoid.RootPart が置かれるべき場所の距離を決定します。

  • 複製されていません
    並列読み取り

    Class.Humanoid が上向きの力でジャンプする。

  • 並列読み取り

    Class.Humanoid ジャンプの高さにコントロールを提供します。

  • 並列読み取り

    ジャンプ時にHumanoidに適用される上向きの力を決めます。

  • 並列読み取り

    ヒューマノイドの Health の最大値。

  • 並列読み取り

    ヒューマノイドがスリップしないで歩ける最大スロープアングル。

  • 読み取り専用
    複製されていません
    並列読み取り

    Class.Humanoid が歩いている方向を説明します。

  • 並列読み取り

    Class.Humanoid.DisplayDistanceType プロパティと組み合わせて、ヒューマノイドの名前が見える距離を制御します。

  • 人形の名前とヘルスバーが壁や他のオブジェクトの後ろに表示されるかどうかを制御します。

  • 並列読み取り

    Class.Humanoid が現在 Enum.HumanoidStateType.PlatformStanding 状態にあるかどうかを決定します。

  • 並列読み取り

    開発者が Neck を Class.Motor6D 以外の場合、または一時的に離れたり切断されたりすると、プレイヤーが死亡する動作を無効にすることができます。

  • 並列読み取り

    この Humanoid がレガシー R6 キャラクターリグを使用しているか、新しい R15 キャラクターリグを使用しているかを説明します。

  • 読み取り専用
    複製されていません
    並列読み取り

    ヒューマノイドの HumanoidRootPart オブジェクトに参照。

  • 読み取り専用
    複製されていません
    並列読み取り

    現在、Humanoid が座っている座に参照します。

  • 並列読み取り

    現在 Humanoid が座っているかどうかを記述します。

  • 並列読み取り

    Class.Player が Humanoid をコントロールしている 3D ポジションを説明します。Tool を使用しています。

  • 並列読み取り

    Class.Humanoid.JumpHeight|JumpHeight (Humanoid.JumpPower) を使用するかどうかを決定します。

  • 並列読み取り

    人形の最大移動速度をスタッドで毎秒表示します。

  • 並列読み取り

    人形によって到達しようとしている部分の参照。

  • 並列読み取り

    人形の位置が、Humanoid:MoveTo() の呼び出し後に試行している位置です。

方法

イベント

プロパティ

AutoJumpEnabled

並列読み取り

AutoJumpEnabled は、Humanoid が、歩いている障害物を自動でジャンプするかどうかを設定します。

現在、このプロパティは、次のコンディションが満たされているときにのみ機能します:

  • ヒューマノイドのキャラクターモデルは、Player.Character の Class.Player の Player です。
  • 問題のプレイヤーは、タッチコントロールを使用しています。

プレイヤーのキャラクターがスポーンすると、プロパティの値はプレイヤーの Player.AutoJumpEnabled プロパティに一致します - これにより、 StarterPlayer.AutoJumpEnabled プロパティと一致します。

コードサンプル

Auto-Jump Toggle

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local button = script.Parent
local function update()
-- Update button text
if player.AutoJumpEnabled then
button.Text = "Auto-Jump is ON"
else
button.Text = "Auto-Jump is OFF"
end
-- Reflect the property in the player's character, if they have one
if player.Character then
local human = player.Character:FindFirstChild("Humanoid")
if human then
human.AutoJumpEnabled = player.AutoJumpEnabled
end
end
end
local function onActivated()
-- Toggle auto-jump
player.AutoJumpEnabled = not player.AutoJumpEnabled
-- Update everything else
update()
end
button.Activated:Connect(onActivated)
update()

AutoRotate

並列読み取り

オートローテートプロパティは、ヒューマノイド が自動的に回転して、移動する方向に面を向けるかどうかを記述します。オートローテート を「真」に設定すると、キャラクターモデルは、ヒューマノイド が周りを回転する方向に自動的に回転します。2>

キャラクターモデルがプレイヤーのキャラクターになると、ヒューマノイドの回転タイプは、UserGameSettings の RotateType プロパティによって影響されます。

オートローティングプロパティが「真」に設定されると、「人形」の回転には次の効果があります:


<tbody>
<tr>
<td>移動関数</td>
<td />
<td />
</tr>
<tr>
<td>カメラライト</td>
<td>キャラクターはカメラの方向に回転します。</td>
<td>プレイヤーのカメラは 1人称 にズームされているか、またはシフトロックモードにあります。</td>
</tr>
</tbody>
回転タイプ動作コンテキスト

コードサンプル

AutoRotate Button

local button = script.Parent
local enabled = true
local ON_COLOR = BrickColor.Green()
local OFF_COLOR = BrickColor.Red()
local function touchButton(humanoid)
if enabled then
enabled = false
button.BrickColor = OFF_COLOR
if humanoid.AutoRotate then
print(humanoid:GetFullName() .. " can no longer auto-rotate!")
humanoid.AutoRotate = false
else
print(humanoid:GetFullName() .. " can now auto-rotate!")
humanoid.AutoRotate = true
end
task.wait(1)
button.BrickColor = ON_COLOR
enabled = true
end
end
local function onTouched(hit)
local char = hit:FindFirstAncestorWhichIsA("Model")
if char then
local humanoid = char:FindFirstChildOfClass("Humanoid")
if humanoid then
touchButton(humanoid)
end
end
end
button.Touched:Connect(onTouched)
button.BrickColor = ON_COLOR

AutomaticScalingEnabled

並列読み取り

ヒューマノイドには、BodyDepthScaleBodyHeightScaleBodyProportionScale、2>BodyTypeScale2>、5>BodyWidthScale5>、8>HeadScale8>などの子スケール値が含まれていま

BreakJointsOnDeath

並列読み取り

人形の関節が Enum.HumanoidStateType.Dead 状態にあるときに壊れるかどうかを決定します。デフォルトは true です。

CameraOffset

並列読み取り

CameraOffset プロパティは、カメラの対象ポジションにオフセットを指定します。この Camera.CameraSubjectHumanoid に設定されているとき、カメラの Camera はこのオフセットをオフセットオフセットオフセットオフセットオフセットオフセットオフセットオフセットオフセットオフセットオフセットオフセットオフセットオフセットオフセットオフセットオフセッ

オブジェクトスペースでオフセットは、ヒューマノイドの ヒューマノイドルートパーツ の向きに対して適用されます。たとえば、 Datatype.Vector3 のオフセット値は、0> (0、10、0)0> のオフセットでプレイヤーのカメラを 10 スタッド上のプ

コードサンプル

Walking Camera Bobble Effect

local RunService = game:GetService("RunService")
local playerModel = script.Parent
local humanoid = playerModel:WaitForChild("Humanoid")
local function updateBobbleEffect()
local now = tick()
if humanoid.MoveDirection.Magnitude > 0 then -- Is the character walking?
local velocity = humanoid.RootPart.Velocity
local bobble_X = math.cos(now * 9) / 5
local bobble_Y = math.abs(math.sin(now * 12)) / 5
local bobble = Vector3.new(bobble_X, bobble_Y, 0) * math.min(1, velocity.Magnitude / humanoid.WalkSpeed)
humanoid.CameraOffset = humanoid.CameraOffset:lerp(bobble, 0.25)
else
-- Scale down the CameraOffset so that it shifts back to its regular position.
humanoid.CameraOffset = humanoid.CameraOffset * 0.75
end
end
RunService.RenderStepped:Connect(updateBobbleEffect)
並列読み取り

DisplayDistanceType プロパティは、ヒューマノイドの名前と体力ディスプレイの距離の動作を制御します。このプロパティは、Enum.HumanoidDisplayDistanceType 枚のエンジェンを使用して、それぞれのルールを持つ 3つの可用値を含む、 Ennum.HumanoidDisplayDistanceType 枚を使用しています:

  • NameDisplayDistance と NameDisplayDistance の間の他のヒューマノイドの名前/健康を見ると、ヒューマノイドは自分の HealthDisplayDistance と 1>HealthDisplayDistance1> の範囲内の他のヒューマノイドの名前/健康を見ることができます。
  • NameDisplayDistance および HealthDisplayDistance 値のセットに設定されると、ヒューマノイドは自分の名前と健康ディスプレイを通じて 完全にコントロールされます。
  • En.HumanoidDisplayDistanceType|None に設定されると、ヒューマノイドの名前とヘルスバーは、どの場合にも表示されません。

キャラクター名/ヘルスディスプレイ を参照して、キャラクター名とヘルスバーの見た目をコントロールする方法について説明します。

コードサンプル

Displaying a Humanoid's Health and Name

local humanoid = script.Parent
humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.Viewer
humanoid.HealthDisplayDistance = 0
humanoid.NameDisplayDistance = 100

DisplayName

並列読み取り

DisplayName は、ヒューマノイドの名前を表示するプロパティです。デフォルトでは、新しいヒューマノイドは空のストリン文字列の値を持つことになります。如果 DisplayName が空のストリン文字列である場合、ヒューマノイドの名前は親の名前のプロパティにデフォルトします。

プレイヤーキャラクターの読み込み

プレイヤーがそのキャラクターを読み込むと、エンジンによって作成されるヒューマノイドの Class.Player:LoadCharacter()|LoadCharacter() を通じて、エンジンが作成する DisplayName プロパティがプレイヤーの DisplayName プロパティに設定されます。

スターターキャラクターとスターターヒューマノイド

Class.Humanoid という名前の StarterHumanoid が親になったり、Class.St

EvaluateStateMachine

並列読み取り

FloorMaterial

読み取り専用
複製されていません
並列読み取り

これは、Enum.Material が現在立っている Humanoid についての読み取りのみのプロパティです。これは、Parts と 2>Class.Terrain2> の両方のボクセルで動作します。

コードサンプルは、Object:GetPropertyChangedSignal() を使用して、このプロパティが変更されるときに聞く方法を示しています。 人形の上にある素材が変更されると、新しい素材が上に印刷されるメッセージが表示されます。


local Humanoid = route.to.humanoid
Humanoid:GetPropertyChangedSignal("FloorMaterial"):Connect(function()
print("New value for FloorMaterial: " .. tostring(Humanoid.FloorMaterial))
end)

洞窟

  • Class.Humanoid が床に立っていない場合、このプロパティの値は Air に設定されます。
    • これは、列挙プロパティに空の値があることができないためです。
    • これは、部品の材料が空気に設定されている場合、部品が実際にはその材料を最初プレース使用しないことがあります。
  • Class.Humanoid のキャラクターモデルは、床と衝突する必要があります。そうしないと、Class.Humanoid は検出されません。
    • Class.Humanoid がこのプロパティで泳いでいるかどうかをテストすることはできません。代わりに、Humanoid:GetState() 機能を使用してください。

Health

複製されていません
並列読み取り

このプロパティは、Humanoid の現在の健康を表します。値は、MaxHealth の範囲の間に制限されています。Class.Humanoid が死亡している場合、このプロパティは常に 0 に設定されます。

Class.Humanoid:TakeDamage()|TakeDamage() 関数は、Health を直接設定する代わりに、Class.Humanoid:TakeDamage() から減算できます。

体力再生

デフォルトで、パッシブな健康再生スクリプトは自動的にヒューマノイドに挿入されます。これにより、死んでいないプレイヤーのキャラクターが、1秒ごとに MaxHealth の 1%を再生します。この再生動作を無効にするには、空の <

ヘルスバーの表示

Class.Humanoid.MaxHealth|MaxHealth が MaxHealth より小さいと、エクスペリエンス中にヘルスバーを表示します。ヘルスバーの表示動作は HealthDisplayDistance と 1>Class.Humanoid.HealthDisplayType|HealthDisplay

キャラクター名/ヘルスディスプレイ を参照して、キャラクター名とヘルスバーの見た目をコントロールする方法について説明します。

キャラクターの健康値が 0 に達すると、Humanoid は自動的に Enum.HumanoidStateType.Dead 状態に切り替わります。この状態では、Health は死のヒューマノイドの状態にロ

HealthDisplayDistance

並列読み取り

このプロパティは、DisplayDistanceType プロパティと一緒に使用されて、ヒューマノイドのヘルスバーの表示可能な距離を制御します。

キャラクター名/ヘルスディスプレイ を参照して、キャラクター名とヘルスバーの見た目をコントロールする方法について説明します。

並列読み取り

このプロパティは、ヒューマノイドの健康バーが表示されるかどうかを制御します。デフォルトでは、このプロパティは

このプロパティは、HealthDisplayDistance プロパティによって独立して、特定の距離で健康バーをフェードアウトするために責任を負っています。 Humanoid.HealthDisplayType|HealthDisplayDistance

キャラクター名/ヘルスディスプレイ を参照して、キャラクター名とヘルスバーの見た目をコントロールする方法について説明します。

HipHeight

並列読み取り

Class.Humanoid.RootPart|RootPart が地面から RigType に立っているときの距離 (in studs) を決定します。Class.Humanoid.RigType|RigType は、このプロパティの動作を影響させます。

R15 のリグには、RootPart の高さを保証するために、適切なヒップ高度がプリセットされています。脚の高さは使用されません。人形の高さは、次の式によって記述されることができます:


Height = (0.5 * RootPart.Size.Y) + HipHeight

R6 のリグには、HipHeight ではなく、相対オフセットを記述します。ヒューマノイドの全体高度は次の式で記述できます:


Height = LeftLeg.Size.Y + (0.5 * RootPart.Size.Y) + HipHeight

Jump

複製されていません
並列読み取り

Class.Humanoid ジャンプは、 Class.Humanoid.JumpPower の値と高さに等しい上向きの力でジャンプします。 Japanese: true 、 Class.Humanoid.JumpPower または Class.Humanoid.JumpHeight 、1> Class

JumpHeight

並列読み取り

Class.Humanoid ジャンプの高さに制御を提供します。このプロパティのスタート値は、StarterPlayer.CharacterJumpHeight の値によって決定されます。デフォルトは 7.2 です。

このプロパティを 0 に設定すると、人形がジャンプするのを効果的に防ぐことができますが、Enum.HumanoidStateType.Jumping を通じて Humanoid:SetStateEnabled() 状態を無効にすることをお勧めします。

このプロパティは、Class.Humanoid.UseJumpPower が Humanoid.UseJumpPower に設定されている場合の プロパティ ウィンドウにのみ表示されます。そうでない場合、2>Class.Humanoid.JumpPower2> が使用されています。

JumpPower

並列読み取り

Class.Humanoid をジャンプするときに適用される上向きの力を決めます。このプロパティのスタート値は、StarterPlayer.CharacterJumpPower の値によって決まります。このプロパティは、Workspace.Gravity プロパティによ

このプロパティを 0 に設定すると、人形がジャンプするのを効果的に防ぐことができますが、Enum.HumanoidStateType.Jumping を通じて Humanoid:SetStateEnabled() 状態を無効にすることをお勧めします。

このプロパティは、Class.Humanoid.UseJumpPower が設定されている場合、Humanoid.UseJumpPower が使用されている場合、およびClass.Humanoid.JumpHeight が使用されている場合にのみ表示されます。2>Class.Humanoid.JumpHeight2> が使用されていない場合、5>Class.Humanoid.UseJ

MaxHealth

並列読み取り

ヒューマノイドの Health の最大値。

このプロパティの値は、Health プロパティと一緒に使用されて、デフォルトのヘルスバーの表示サイズをサイズ変更します。Health が到達すると、ヘルスバーが表示されない

MaxSlopeAngle

並列読み取り

このプロパティは、ヒューマノイドが登ることのできる最大スロープアングルを決定します。スロープの角度がヒューマノイドの最大スロープアングルより大きい場合、傾斜が下にスライドされます。

キャラクターがスポーンすると、このプロパティは StarterPlayer.CharacterMaxSlopeAngle の値に基づいて設定されます。

このプロパティの値は、0°から 89°の間の値に制限されています。デフォルトは 89°ですので、ヒューマノイドはデフォルトでほとんどの傾斜を登ることができます。

コードサンプル

Limiting The Slope a Humanoid Can Walk Up

local player = game.Players.LocalPlayer
local char = player.CharacterAdded:wait()
local h = char:FindFirstChild("Humanoid")
h.MaxSlopeAngle = 30

MoveDirection

読み取り専用
複製されていません
並列読み取り

MoveDirection は、Humanoid が歩いている方向を、単位ベクトルまたはゼロベクトルで表現する読み取り専用プロパティです。方向は、世界空間で説明されています。

このプロパティは読み取りのみなので、Script または LocalScript によって設定できません。

コードサンプル

Walking Camera Bobble Effect

local RunService = game:GetService("RunService")
local playerModel = script.Parent
local humanoid = playerModel:WaitForChild("Humanoid")
local function updateBobbleEffect()
local now = tick()
if humanoid.MoveDirection.Magnitude > 0 then -- Is the character walking?
local velocity = humanoid.RootPart.Velocity
local bobble_X = math.cos(now * 9) / 5
local bobble_Y = math.abs(math.sin(now * 12)) / 5
local bobble = Vector3.new(bobble_X, bobble_Y, 0) * math.min(1, velocity.Magnitude / humanoid.WalkSpeed)
humanoid.CameraOffset = humanoid.CameraOffset:lerp(bobble, 0.25)
else
-- Scale down the CameraOffset so that it shifts back to its regular position.
humanoid.CameraOffset = humanoid.CameraOffset * 0.75
end
end
RunService.RenderStepped:Connect(updateBobbleEffect)

NameDisplayDistance

並列読み取り

NameDisplayDistance プロパティは、Humanoid.DisplayDistanceType プロパティと共同して使用されています。これにより、ヒューマノイドの名前が見える距離を制御できます。

キャラクター名/ヘルスディスプレイ を参照して、キャラクター名とヘルスバーの見た目をコントロールする方法について説明します。

NameOcclusion

並列読み取り

人形の名前とヘルスバーが壁や他のオブジェクトの後ろに表示されるかどうかを制御します。これは、Enum.NameOcclusion値であり、すべての名前、敵の名前、または完全にオクルージョンを無効にすることを設定できます。

Class.Players.LocalPlayer|LocalPlayer に Humanoid が付属していない場合、このプロパティは Humanoid の対象に適用されます。

キャラクター名/ヘルスディスプレイ を参照して、キャラクター名とヘルスバーの見た目をコントロールする方法について説明します。

コードサンプル

Occlude Player Names

local Players = game:GetService("Players")
local function onCharacterAdded(character)
local humanoid = character:WaitForChild("Humanoid")
humanoid.NamOcclusion = Enum.NameOcclusion.OccludeAll
end
local function onPlayerAdded(player)
player.CharacterAdded:Connect(onCharacterAdded)
end
Players.PlayerAdded:Connect(onPlayerAdded)

PlatformStand

並列読み取り

Class.Humanoid が Enum.HumanoidStateType.PlatformStanding の状態にあるかどうかを決定します。true の場合、ヒューマノイドは自由落下し、移動できない状態にあります。この状態は、座っているように、または座っているように、ジャンプするとヒューマノイドが状態から解放されます

RequiresNeck

並列読み取り

開発者が Neck を取り外したり、ディスコネクトしたりしたときにプレイヤーが Character|character 死亡する動作を無効にすることができます。このプロパティは、Motor6D が削除されたり、ディスコネクトされたりした瞬時にもデフォルトでは true に設定されています。

並列読み取り

RigType は、Humanoid がレガシー R6 キャラクターリグを使用しているか、新しい R15 キャラクターリグを使用しているかを記述します。

R6 装置は、6つの可視な Parts を使用し、R15 装置は、15つの可視な Parts を使用します。R15 装置は、R6 装置よりも多くの関節を持つため、アニメーション中によりも多くの機能性を持つようになります。

このプロパティを不正に設定すると、Humanoid は正しく機能しません。たとえば、R15のヒューマノイドの RigType がR6に設定されている場合、 Class

RootPart

読み取り専用
複製されていません
並列読み取り

ヒューマノイドの HumanoidRootPart オブジェクト、ヒューマノイドの動作を 3D 世界を通じて制御する Humanoid の根ドライブ部分。この部分は通常見えません。

プレイヤーのキャラクターの場合、 ルートパート は、Model.PrimaryPart モデルの Player.Character と同じです。

SeatPart

読み取り専用
複製されていません
並列読み取り

SeatPart は、Humanoid が現在座っている座席に参照します。このプロパティの値は、Seat または VehicleSeat です。1> が座っていない場合は、4>nil4> です。

注:

  • Class.Humanoid が現在座っているかどうかを記述するブールを使用するには、Humanoid.Sit を参照してください。

Sit

並列読み取り

The Sit プロパティは、Humanoid が現在座っているかどうかを指すBooleanです。Humanoids は、このプロパティの値を true に設定することで座っている状態に強制されます。<

注:

  • Class.Humanoid.SeatPart プロパティを使用すると、VehicleSeat または Humanoid の Class.Humanoid が座っていることがわかります。
  • Class.Humanoid.Seated イベントに接続することで、ヒューマノイド が座るかどうかを検出することができます。

TargetPoint

並列読み取り

使用しない このプロパティは、完全に廃止された試作モードにのみ使用できます。

このプロパティは、Player がこの Humanoid をコントロールしている 3D 位置を記述します。この Tool を装備している状態で、2>Class.Humanoid2> を最後にクリックしました。

このプロパティは、クラシックツールによって使用されることが多く、ツールを有効にすると、人形がターゲットを選択するときにターゲットポイントを決定するのに使用されます。NPC にクラシックロケットランチャーを与えると、ツールの Class.Tool:Activate() 関数を呼び出し、NPC がロケットをターゲットポ

UseJumpPower

並列読み取り

キャラクターがスポーンすると、このプロパティは StarterPlayer.CharacterUseJumpPower の値に設定されます。デフォルトは、「はい」です。

ジャンプ時、このセットを true に設定すると、Humanoid.JumpHeight 値が使用されて、人形のジャンプがその高さに確保されます。このセットを false に設定すると、Humanoid.JumpPower 値が上昇力を適用します。

WalkSpeed

並列読み取り

このプロパティは、Humanoid が1秒あたりのスタッドでどれくらい速く歩行できるかを記述します。デフォルトは、StarterPlayer.CharacterWalkSpeed (16) です。つまり、プレイヤーキャラクターは1秒につき16スタッドを移動できます。

注意

  • モバイルデバイスまたはゲームパッドで制御されると、人形は、制御の親指が中央から傾いている場合、WalkSpeed よりも速く歩くことができます。
  • Class.Humanoid.WalkSpeed|WalkSpeed を 0 に設定することで、人間形状を凍結することができます。これにより、コントロールプレイヤーがデフォルトの移動メカニズムを通じて動かすことができません。
  • デフォルトのアニメーションスクリプトは、人形の移動アニメーションをデフォルトの速度の 16 スタッド/秒に基づいてスケールします。
  • Class.Humanoid が現在歩いている速度は、Running イベントを使用して取得できます。

WalkToPart

並列読み取り

WalkToPart は、Humanoid が試みている部分に対する参照です。このプロパティは通常、Humanoid の Humanoid:MoveTo() 関数の 2つ目の引数として設定されます。

WalkToPart が設定され、人形がパートに積極的に到達しようとしているとき、そのベクトル3 の目標を更新し続けることで、パーツの位置と、パーツを回転する相対のオブジェクトスペースに翻訳された Humanoid.WalkToPoint を保持します。

これは Lua で次のように記述できます:


goal = humanoid.WalkToPart.CFrame:pointToObjectSpace(humanoid.WalkToPoint)

洞窟

  • WalkToPart の値を設定するだけでは、パーツの後にヒューマノイドを開始することはできません。
  • ヒューマノイドは、WalkToPoint の値が変更されたときに目標に到達しようとし始めるように促されます。
  • これは将来変更される可能性があります。
  • ヒューマノイドの 達成目標 状態は、目標に到達しないと 8 秒後に時間切れとなります。
  • NPC が Humanoid.MoveToFinished を待っている間に発射できないようにします。
  • これが起こらないようにしたい場合は、MoveTo を繰り返し呼び出す必要があります。

WalkToPoint

並列読み取り

WalkToPoint は、ヒューマノイドが人形の Humanoid:MoveTo() 機能によって要求された後、人形が到達しようとしている 3D 位置を説明します。

人形の Humanoid.WalkToPart が設定する定されている場合、目標はパーツの位置と回転に対する WalkToPoint の変換で設定されます。WalkToPoint が設定する定されていない場合は、人形は直接 WalkToPoint に指定された 3D 位置に到達しようとします。

洞窟

  • WalkToPoint の値を変更すると、ヒューマノイドがそれに向かって歩き始めるようになります。
  • 人形のウォークを 0,0,0 に行う場合は、人形の移動を使用する必要があります。
  • これは将来変更される可能性があります。
  • ヒューマノイドの 達成目標 状態は、目標に到達しないと 8 秒後に時間切れとなります。
  • NPC が Humanoid.MoveToFinished を待っている間に発射できないようにします。
  • これが起こらないようにしたい場合は、MoveTo を繰り返し呼び出す必要があります。

コードサンプル

Humanoid MoveTo Without Time out

local function moveTo(humanoid, targetPoint, andThen)
local targetReached = false
-- listen for the humanoid reaching its target
local connection
connection = humanoid.MoveToFinished:Connect(function(reached)
targetReached = true
connection:Disconnect()
connection = nil
if andThen then
andThen(reached)
end
end)
-- start walking
humanoid:MoveTo(targetPoint)
-- execute on a new thread so as to not yield function
task.spawn(function()
while not targetReached do
-- does the humanoid still exist?
if not (humanoid and humanoid.Parent) then
break
end
-- has the target changed?
if humanoid.WalkToPoint ~= targetPoint then
break
end
-- refresh the timeout
humanoid:MoveTo(targetPoint)
task.wait(6)
end
-- disconnect the connection if it is still connected
if connection then
connection:Disconnect()
connection = nil
end
end)
end
local function andThen(reached)
print((reached and "Destination reached!") or "Failed to reach destination!")
end
moveTo(script.Parent:WaitForChild("Humanoid"), Vector3.new(50, 0, 50), andThen)

方法

AddAccessory

void

このメソッドは、指定された Accessory をヒューマノイドの親に付けます。

このメソッドが呼び出されると、Accessory は、 Class.Att

必要な Attachment が見つからない場合は、Accessory は、ヒューマノイドの親に残りますが、取り付けられません。

アクセサリーの接続は、通常、サーバーで作成されますが、特定の状況下では、クライアントによる AddAccessory() の呼び出しが必ずしも望ましい動作を生成するわけではありません。これらの状況では、 Class.Human

パラメータ

accessory: Instance

取り付ける Accessory


戻り値

void

コードサンプル

[Humanoid] AddAccessory Example

local playerModel = script.Parent
local humanoid = playerModel:WaitForChild("Humanoid")
local clockworksShades = Instance.new("Accessory")
clockworksShades.Name = "ClockworksShades"
local handle = Instance.new("Part")
handle.Name = "Handle"
handle.Size = Vector3.new(1, 1.6, 1)
handle.Parent = clockworksShades
local faceFrontAttachment = Instance.new("Attachment")
faceFrontAttachment.Name = "FaceFrontAttachment"
faceFrontAttachment.Position = Vector3.new(0, -0.24, -0.45)
faceFrontAttachment.Parent = handle
local mesh = Instance.new("SpecialMesh")
mesh.Name = "Mesh"
mesh.Scale = Vector3.new(1, 1.3, 1)
mesh.MeshId = "rbxassetid://1577360"
mesh.TextureId = "rbxassetid://1577349"
mesh.Parent = handle
humanoid:AddAccessory(clockworksShades)

BuildRigFromAttachments

void

このメソッドは、Motor6D のツリーのジョイントの Humanoid のツリーを作成します。Motor6D のジョイントは、2>Class.Animation|Animations2> のプレイバックに必要です。

人形の RootPart から開始するこのメソッドは、現在のパーツの名前が Attachments で終了する場合、パーツの親をす

Humanoid:BuildRigFromAttachments() は、キャラクターのサイズを拡大/縮小し、ボディの色を設定します。


戻り値

void

コードサンプル

Lua Port of BuildRigFromAttachments

local function createJoint(jointName, att0, att1)
local part0, part1 = att0.Parent, att1.Parent
local newMotor = part1:FindFirstChild(jointName)
if not (newMotor and newMotor:IsA("Motor6D")) then
newMotor = Instance.new("Motor6D")
end
newMotor.Name = jointName
newMotor.Part0 = part0
newMotor.Part1 = part1
newMotor.C0 = att0.CFrame
newMotor.C1 = att1.CFrame
newMotor.Parent = part1
end
local function buildJointsFromAttachments(part, characterParts)
if not part then
return
end
-- first, loop thru all of the part's children to find attachments
for _, attachment in pairs(part:GetChildren()) do
if attachment:IsA("Attachment") then
-- only do joint build from "RigAttachments"
local attachmentName = attachment.Name
local findPos = attachmentName:find("RigAttachment")
if findPos then
-- also don't make double joints (there is the same named
-- rigattachment under two parts)
local jointName = attachmentName:sub(1, findPos - 1)
if not part:FindFirstChild(jointName) then
-- try to find other part with same rig attachment name
for _, characterPart in pairs(characterParts) do
if part ~= characterPart then
local matchingAttachment = characterPart:FindFirstChild(attachmentName)
if matchingAttachment and matchingAttachment:IsA("Attachment") then
createJoint(jointName, attachment, matchingAttachment)
buildJointsFromAttachments(characterPart, characterParts)
break
end
end
end
end
end
end
end
end
local function buildRigFromAttachments(humanoid)
local rootPart = humanoid.RootPart
assert(rootPart, "Humanoid has no HumanoidRootPart.")
local characterParts = {}
for _, descendant in ipairs(humanoid.Parent:GetDescendants()) do
if descendant:IsA("BasePart") then
table.insert(characterParts, descendant)
end
end
buildJointsFromAttachments(rootPart, characterParts)
end
local humanoid = script.Parent:WaitForChild("Humanoid")
buildRigFromAttachments(humanoid)
R15 Package Importer

local AssetService = game:GetService("AssetService")
local InsertService = game:GetService("InsertService")
local MarketplaceService = game:GetService("MarketplaceService")
local PACKAGE_ASSET_ID = 193700907 -- Circuit Breaker
local function addAttachment(part, name, position, orientation)
local attachment = Instance.new("Attachment")
attachment.Name = name
attachment.Parent = part
if position then
attachment.Position = position
end
if orientation then
attachment.Orientation = orientation
end
return attachment
end
local function createBaseCharacter()
local character = Instance.new("Model")
local humanoid = Instance.new("Humanoid")
humanoid.Parent = character
local rootPart = Instance.new("Part")
rootPart.Name = "HumanoidRootPart"
rootPart.Size = Vector3.new(2, 2, 1)
rootPart.Transparency = 1
rootPart.Parent = character
addAttachment(rootPart, "RootRigAttachment")
local head = Instance.new("Part")
head.Name = "Head"
head.Size = Vector3.new(2, 1, 1)
head.Parent = character
local headMesh = Instance.new("SpecialMesh")
headMesh.Scale = Vector3.new(1.25, 1.25, 1.25)
headMesh.MeshType = Enum.MeshType.Head
headMesh.Parent = head
local face = Instance.new("Decal")
face.Name = "face"
face.Texture = "rbxasset://textures/face.png"
face.Parent = head
addAttachment(head, "FaceCenterAttachment")
addAttachment(head, "FaceFrontAttachment", Vector3.new(0, 0, -0.6))
addAttachment(head, "HairAttachment", Vector3.new(0, 0.6, 0))
addAttachment(head, "HatAttachment", Vector3.new(0, 0.6, 0))
addAttachment(head, "NeckRigAttachment", Vector3.new(0, -0.5, 0))
return character, humanoid
end
local function createR15Package(packageAssetId)
local packageAssetInfo = MarketplaceService:GetProductInfo(packageAssetId)
local character, humanoid = createBaseCharacter()
character.Name = packageAssetInfo.Name
local assetIds = AssetService:GetAssetIdsForPackage(packageAssetId)
for _, assetId in pairs(assetIds) do
local limb = InsertService:LoadAsset(assetId)
local r15 = limb:FindFirstChild("R15")
if r15 then
for _, part in pairs(r15:GetChildren()) do
part.Parent = character
end
else
for _, child in pairs(limb:GetChildren()) do
child.Parent = character
end
end
end
humanoid:BuildRigFromAttachments()
return character
end
local r15Package = createR15Package(PACKAGE_ASSET_ID)
r15Package.Parent = workspace

ChangeState

void

この関数は、Humanoid が現在実行しているアクティビティを記述する Enum.HumanoidStateType に入るようになります。

特定の状態についての詳細は、Enum.HumanoidStateTypeページを参照してください。これは、いくつかの名前が不正確であるため、特定の状態についての情報が不明瞭です。たとえば、Enum.HumanoidStateType.Runningは、人形の脚が地上にある状態を記述しています。これには、Ennum.HumanoidStateType、<

Class.Humanoid のデフォルト動作により、一部の状態は設定する定時に自動的に変更されます。たとえば:

また、Humanoid:SetStateEnabled() を参照して、特定の状態を有効にするか無効にするか、および Humanoid:GetState() を参照して、現在のヒューマノイド状態を取得すること。

パラメータ

Class.Humanoid が実行する Humanoid

既定値: "None"

戻り値

void

コードサンプル

Double Jump

local UserInputService = game:GetService("UserInputService")
local character = script.Parent
local humanoid = character:WaitForChild("Humanoid")
local doubleJumpEnabled = false
humanoid.StateChanged:Connect(function(_oldState, newState)
if newState == Enum.HumanoidStateType.Jumping then
if not doubleJumpEnabled then
task.wait(0.2)
if humanoid:GetState() == Enum.HumanoidStateType.Freefall then
doubleJumpEnabled = true
end
end
elseif newState == Enum.HumanoidStateType.Landed then
doubleJumpEnabled = false
end
end)
UserInputService.InputBegan:Connect(function(inputObject)
if inputObject.KeyCode == Enum.KeyCode.Space then
if doubleJumpEnabled then
if humanoid:GetState() ~= Enum.HumanoidStateType.Jumping then
humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
task.spawn(function()
doubleJumpEnabled = false
end)
end
end
end
end)

EquipTool

void

この関数は、Humanoid が与えられた Tool を装備します。

下の例では、 PlayerWorkspace の名前のついたツールを装備します。


local Players = game:GetService("Players")
local player = Players:FindFirstChildOfClass("Player")
if player and player.Character then
local humanoid = player.Character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
local tool = workspace:FindFirstChild("Tool")
if tool then
humanoid:EquipTool(tool)
end
end
end

この関数が呼び出されると、ヒューマノイドは自動的に装備している Tools を外します

装備されるかどうかにかかわらず、Tools のために、Tool.RequiresHandle がある場合、Class.Tool.Tool が装備されないことは、2> この機能を使用して装備するかどうかにかかわらず、5> true5> では機能しません。

参照してください:

パラメータ

tool: Instance

装備する Tool


戻り値

void

GetAccessories

この関数は、Accessory オブジェクトのアレイを返し、現在、ヒューマノイドの親が着用している Accessory オブジェクトを返します。すべての such Class.Accessory オブジェクトは含まれます、付属されているかどうかにかかわらず。

Class.Humanoid には Accessory オブジェクトがありませんので、空の配列が返されます。

また、Humanoid:AddAccessory() を参照して、Accessory をヒューマノイドの親に付ける。


戻り値

Class.Accessory オブジェクト の配列は、ヒューマノイドの親にリンクされています。

コードサンプル

Remove Accessories After Loading

local Players = game:GetService("Players")
local function onPlayerAddedAsync(player)
local connection = player.CharacterAppearanceLoaded:Connect(function(character)
-- All accessories have loaded at this point
local humanoid = character:FindFirstChildOfClass("Humanoid")
local numAccessories = #humanoid:GetAccessories()
print(("Destroying %d accessories for %s"):format(numAccessories, player.Name))
humanoid:RemoveAccessories()
end)
-- Make sure we disconnect our connection to the player after they leave
-- to allow the player to get garbage collected
player.AncestryChanged:Wait()
connection:Disconnect()
end
for _, player in Players:GetPlayers() do
task.spawn(onPlayerAddedAsync, player)
end
Players.PlayerAdded:Connect(onPlayerAddedAsync)

GetAppliedDescription

この関数は、HumanoidDescription のキャッシュを返し、現在の外観を説明する人形のコピーを返します。これは、キャラクターの外観を迅速に確認するために使用できます。これは、Humanoid:ApplyDescription() 機能を使用して、他のキャラクターに外観を割り当てるために、Class.Humanoid:ApplyDescription

参照してください


戻り値

GetBodyPartR15

この関数は、Enum.BodyPartR15 が、または、Part が、または、Enum.BodyPartR15.Unknown が、1>R15 ボディパーツであるかどうかにかかわらず、ボディパーツの名前を返します。この関数は、開発者が実際のボディパーツの名前ではなく、プレイヤーのボ

Class.Humanoid:ReplaceBodyPartR15 と Class.Humanoid:ReplaceBodyPartR15 の両方を使用することができます。たとえば、プレイヤーのボディ部分が何かに触れると、この関数は get a part instance を返します。開発者は、頭や腕などのボディ部分が何であったかを参照して、ゲ

この関数は、ヒット場所が重要なゲームで便利です。たとえば、これは、プレイヤーが足を打たれたかどうかを判断するのに使用できます。それに基づいて、怪我の重度に応じて速度を遅くします。

パラメータ

part: Instance

指定されたパーツが R15 ボディパーツであるかどうかをチェックしています。


戻り値

指定されたパーツの R15 ボディパーツタイプまたは未指定の場合。

GetLimb

この関数は、Enum.Limb に与えられた Part 枚数を返します。R15 と R6 の両方のリグで動作します。たとえば:


-- R15 用
print(humanoid:GetLimb(character.LeftUpperLeg)) -- enum.Limb.LeftLeg
print(humanoid:GetLimb(character.LeftLowerLeg)) -- enum.Limb.LeftLeg
print(humanoid:GetLimb(character.LeftFoot)) -- enum.Limb.LeftLeg
-- R6 用
print(humanoid:GetLimb(character:FindFirstChild("Left Leg"))) -- Enum.Limb.LeftLeg

注: Humanoid:GetLimb() は、パーツの親がヒューマノイドの親に設定されていない場合、エラーが発生します。

パラメータ

part: Instance

Class.Part の Class.Limb の Class.Limb を取得する必要があります。


戻り値

enum.Limb のパーツに対応する。

コードサンプル

Getting a Humanoid's Limbs

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
for _, child in pairs(character:GetChildren()) do
local limb = humanoid:GetLimb(child)
if limb ~= Enum.Limb.Unknown then
print(child.Name .. " is part of limb " .. limb.Name)
end
end

GetMoveVelocity


戻り値

並列書き込み

この関数は、Enum.HumanoidStateType が現在実行しているアクティビティ、ジャンプやスイミングなど、を記述する humanoid の現在の Humanoid を返します。

また、Humanoid:SetStateEnabled() を参照して、特定の状態を有効にするか無効にする、およびHumanoid:ChangeState() を参照して、現在のヒューマノイド状態を変更します。


戻り値

コードサンプル

Double Jump

local UserInputService = game:GetService("UserInputService")
local character = script.Parent
local humanoid = character:WaitForChild("Humanoid")
local doubleJumpEnabled = false
humanoid.StateChanged:Connect(function(_oldState, newState)
if newState == Enum.HumanoidStateType.Jumping then
if not doubleJumpEnabled then
task.wait(0.2)
if humanoid:GetState() == Enum.HumanoidStateType.Freefall then
doubleJumpEnabled = true
end
end
elseif newState == Enum.HumanoidStateType.Landed then
doubleJumpEnabled = false
end
end)
UserInputService.InputBegan:Connect(function(inputObject)
if inputObject.KeyCode == Enum.KeyCode.Space then
if doubleJumpEnabled then
if humanoid:GetState() ~= Enum.HumanoidStateType.Jumping then
humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
task.spawn(function()
doubleJumpEnabled = false
end)
end
end
end
end)

GetStateEnabled

並列書き込み

GetStateEnabled 関数は、Enum.HumanoidStateTypeHumanoid が有効であるかどうかを返します。

ヒューマノイド状態は、ヒューマノイドが現在実行しているアクティビティを説明します。

特定の Class.Humanoid:ChangeState() が無効になっているときは、人形はその状態に入ることはできません。これは、 Class.Humanoid:ChangeState() または Roblox 内部の人形コードを使用して状態を変更しようとしている場合も同様です。

参照してください:

  • ヒューマノイド状態が有効化されたり無効化されたりするときのイベントは、Humanoid.StateEnabledChanged を参照してください
  • Class.Humanoid:SetStateEnabled() を使用して、Humanoid:SetStateEnabled() 状態を有効化/無効化します

パラメータ

枚数.ヒューマノイド状態タイプ が与えられました。


戻り値

枚数.ヒューマノイド状態タイプ が有効化されているかどうか。

コードサンプル

Setting and Getting Humanoid States

local humanoid = script.Parent:WaitForChild("Humanoid")
-- Set state
humanoid:SetStateEnabled(Enum.HumanoidStateType.Jumping, false)
-- Get state
print(humanoid:GetStateEnabled(Enum.HumanoidStateType.Jumping)) -- false

Move

void

この関数は、Humanoid が、Vector3 の指定した方向に歩くようにします。

デフォルトでは、方向は世規約の言語ですが、relativeToCamera パラメーターが true である場合、CFrame の 12>Class.Workspace.CurrentCamera|CurrentCamera2> の方向


humanoid:Move(Vector3.new(0, 0, -1), true)

この関数が呼び出されると、Humanoid は、機能が再び呼び出されるまでに移動します。ただし、デフォルトのコントロールスクリプトが使用されている場合、Characters に呼び出されると、この関数は Class.RunService:Bind

この関数はサーバーで呼び出すことができますが、これは人形のアセンブルのネットワーク所有権を持っているときにのみ行うべきです。

また、Humanoid:MoveTo() を参照して、Humanoid がポイントに歩き、Player:Move() がこの関数を実際に呼び出します。

パラメータ

moveDirection: Vector3

歩く方向。

relativeToCamera: bool

MoveDirection パラメーターが moveDirection に相対して取得される場合、CurrentCamera を設定します。

既定値: false

戻り値

void

コードサンプル

Moving a Humanoid Forwards

local RunService = game:GetService("RunService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
RunService:BindToRenderStep("move", Enum.RenderPriority.Character.Value + 1, function()
if player.Character then
local humanoid = player.Character:FindFirstChild("Humanoid")
if humanoid then
humanoid:Move(Vector3.new(0, 0, -1), true)
end
end
end)

MoveTo

void

この関数は、Humanoid が、Humanoid.WalkToPoint および Humanoid.WalkToPart プロパティを設定して、2>Class.Humanoid.WalkToPoint2> および 5>Class.Humanoid.WalkToPart5> に移動しようとします。

場所 location および part パラメータは、Humanoid.WalkToPoint および 1> Class.Humanoid.WalkToPart1> が設定される値と一致します。

Class.Humanoid パラメーターが指定されている場合、Humanoid はまだHumanoid の位置に歩きます。しかし、1>Class.Humanoid1> が移動すると、

ヒューマノイドの 達成目標状態 は、目標に到達しないと 8 秒後に時間切れとなります。これは、NPC が 2>Class.Humanoid.MoveToFinished2> を待っているのではなく、5>Class.Humanoid.MoveTo5> を呼び出すために再び呼び出されます。これを望まない場合は、

MoveTo() は、次のコンディションが適用される場合、終了します:

  • キャラクターは目的地に到着します。

  • キャラクターがステックされ、8秒のタイマーが切れます。

  • Class.Humanoid.WalkToPoint または Humanoid.WalkToPart の値が変更されます。

  • スクリプトは、新しい <a href="/reference/engine/databases">moveDirection</a> パラメーターで moveDirection を呼び出します。

  • スクリプトは、CFrameRootPart プロパティを変更します。

パラメータ

location: Vector3

Class.Humanoid.WalkToPoint を設定する位置。

part: Instance

Class.BasePart を設定して Humanoid.WalkToPart に。

既定値: "nil"

戻り値

void

コードサンプル

Humanoid MoveTo Without Time out

local function moveTo(humanoid, targetPoint, andThen)
local targetReached = false
-- listen for the humanoid reaching its target
local connection
connection = humanoid.MoveToFinished:Connect(function(reached)
targetReached = true
connection:Disconnect()
connection = nil
if andThen then
andThen(reached)
end
end)
-- start walking
humanoid:MoveTo(targetPoint)
-- execute on a new thread so as to not yield function
task.spawn(function()
while not targetReached do
-- does the humanoid still exist?
if not (humanoid and humanoid.Parent) then
break
end
-- has the target changed?
if humanoid.WalkToPoint ~= targetPoint then
break
end
-- refresh the timeout
humanoid:MoveTo(targetPoint)
task.wait(6)
end
-- disconnect the connection if it is still connected
if connection then
connection:Disconnect()
connection = nil
end
end)
end
local function andThen(reached)
print((reached and "Destination reached!") or "Failed to reach destination!")
end
moveTo(script.Parent:WaitForChild("Humanoid"), Vector3.new(50, 0, 50), andThen)

RemoveAccessories

void

この関数は、Accessory オブジェクトのうちのすべてを削除します。これは、プレイヤーの Characters にとって、すべての帽子や他のアクセサリーを削除します。

この関数は、Accessory オブジェクトを呼び出して Instance:Destroy() することで、アクセサリーのParent が 2>nil2> とロックされていることを意味します。

Class.Humanoid:AddAccessory() を参照して、Accessory を付ける、および Humanoid:GetAccessories() を取得して、1>Class.Accessory1> オブジェクトのすべてを得る。


戻り値

void

コードサンプル

Remove Accessories After Loading

local Players = game:GetService("Players")
local function onPlayerAddedAsync(player)
local connection = player.CharacterAppearanceLoaded:Connect(function(character)
-- All accessories have loaded at this point
local humanoid = character:FindFirstChildOfClass("Humanoid")
local numAccessories = #humanoid:GetAccessories()
print(("Destroying %d accessories for %s"):format(numAccessories, player.Name))
humanoid:RemoveAccessories()
end)
-- Make sure we disconnect our connection to the player after they leave
-- to allow the player to get garbage collected
player.AncestryChanged:Wait()
connection:Disconnect()
end
for _, player in Players:GetPlayers() do
task.spawn(onPlayerAddedAsync, player)
end
Players.PlayerAdded:Connect(onPlayerAddedAsync)

ReplaceBodyPartR15

ヒューマノイドの R15/Rthro リムボーン部分を別の部分にダイナミックに交換します。部分は自動的に正常にスケールされます。

この関数は、ゲームプレイ中にキャラクターを変更したり、ベースのリグからキャラクターを構築したりするのに便利です。関連する関数 GetBodyPartR15 は、この関数を使用すると便利になります。

パーツの名前は、パーツの名前と一致する必要があります。BodyPartR15Enum の名前と一致する必要がありません。

パラメータ

交換するボディパーツ。 Enum.BodyPartR15.Unknown が失敗します。

part: BasePart

キャラクターに親になる Part Instance


戻り値

SetStateEnabled

void

この関数は、Enum.HumanoidStateType に特定の Humanoid が有効になっているかどうかを設定します。Enum.HumanoidStateType が特定の 2>Enуム.H

サーバー上で SetStateEnabled() を使用すると、変更はクライアントに再プレートされません。

パラメータ

枚数.ヒューマノイド状態タイプ を有効にするか無効にする。

enabled: bool

true が有効になる場合、state が有効になる必要があります。false が有効になる必要があります。


戻り値

void

コードサンプル

Jump Cooldown

local character = script.Parent
local JUMP_DEBOUNCE = 1
local humanoid = character:WaitForChild("Humanoid")
local isJumping = false
humanoid.StateChanged:Connect(function(_oldState, newState)
if newState == Enum.HumanoidStateType.Jumping then
if not isJumping then
isJumping = true
humanoid:SetStateEnabled(Enum.HumanoidStateType.Jumping, false)
end
elseif newState == Enum.HumanoidStateType.Landed then
if isJumping then
isJumping = false
task.wait(JUMP_DEBOUNCE)
humanoid:SetStateEnabled(Enum.HumanoidStateType.Jumping, true)
end
end
end)

TakeDamage

void

この関数は、Humanoid.Health の Class.Humanoid の Humanoid を保護しないと、Class.Humanoid の 2>Class.ForceField2> の 5>Class.Humanoid5> の下にある 8>Class.ForceField8> の 1>Class.ForceField1> の下にある 4>Class.ForceField4> の下にある Humanoid.Health

この関数は、パラメーターのネガティブ値を受け入れます。これにより、人形の Humanoid.Health が増加します。ただし、ForceField が存在しない場合のみ、この効果は得られません。

ForceFields は TakeDamage に対してどのように保護されます

Class.Humanoid は、ForceField が次のクリテリオを満たしている場合、ForceField によって保護されます。

Class.Humanoid にダメージを与えるか、ForceFields が存在するかにかかわらず、Humanoid.Health を直接設定します。

For more information on how ForceFields protect Humanoids see the ForceField page

パラメータ

amount: number

ダメージ、または Humanoid.Health から差し引く額。


戻り値

void

コードサンプル

Damaging a Humanoid

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
humanoid:TakeDamage(99)

UnequipTools

void

この関数は、Tool に現在装備されているすべての Humanoid を装備解除します。

装備されていない Tool は、Backpack の上位にあり、Player が 1> Class.Humanoid1> に関連付けられています。

Class.Tool が装備されていない場合、この関数は何もしません。

NPC (Non Player Characters)は、Tools を装備できますが、この機能は、Humanoids に対応する Player のみで動作します。これは、2>Class.Backpack2> オブジェクトが、装備されていない 5>

参照してください:


戻り値

void

コードサンプル

Unequip Tool Keybind

local Players = game:GetService("Players")
local ContextActionService = game:GetService("ContextActionService")
local player = Players.LocalPlayer
ContextActionService:BindAction("unequipTools", function(_, userInputState)
if userInputState == Enum.UserInputState.Begin then
if player.Character then
local humanoid = player.Character:FindFirstChildOfClass("Humanoid")
if humanoid then
humanoid:UnequipTools()
end
end
end
end, false, Enum.KeyCode.U)

ApplyDescription

void
イールド

この関数は、キャラクターがパスされた HumanoidDescription に一致するように見えます。パスされた HumanoidDescription のコピーは、HumanoidDescription のための 1>Class.HumanoidDescription1> としてキャッシュされます。

この関数は、この関数だけがキャラクターの外観を変更するために使用されるという仮定に基づいて最適化されています。変更は、コールの間に他のメソッドを通じてキャラクターを更新する

参照してください

パラメータ

humanoidDescription: HumanoidDescription

キャラクターをマッチする HumanoidDescription インスタンス。

assetTypeVerification: Enum.AssetTypeVerification
既定値: "Default"

戻り値

void

ApplyDescriptionReset

void
イールド

この関数は、キャラクターがパスされた HumanoidDescription に一致するように見えるように、パスしたキャラクターの外観を HumanoidDescription に変更します。パスした HumanoidDescription のコピーは、1>Class.Humanoid1> のための 4>Class.HumanoidDescription</

この関数は、変更がキャラクターに適用されることを常に確認し

パラメータ

humanoidDescription: HumanoidDescription

キャラクターをマッチするように設定したい HumanoidDescription インスタン一致。

assetTypeVerification: Enum.AssetTypeVerification
既定値: "Default"

戻り値

void

PlayEmote

イールド

emoteName が人形の説明にありませんので、エモートを再生できませんでした。この API は、エモートが正常に再生されたことを示すために true を返します。

パラメータ

emoteName: string

プレイするエモートの名前。


戻り値

正常にプレイされました。

イベント

ApplyDescriptionFinished

パラメータ

description: HumanoidDescription

Climbing

Class.Humanoid がクライミングする速度が変わるときにファイアを起動します。

Humanoids は、Parts またはTrussParts でできた梯子を登ることができます。

Humanoids は、Humanoid.WalkSpeed の 70% でクライムします。

このイベントは、Humanoid がクライミングを停止するときには、常に速度 0 では発動しません。

参照してください:

  • For swimming and running see the Humanoid.Swimming and Humanoid.Running events
  • Class.Humanoid.StateChanged イベントを使用して、Humanoid.StateChanged がクライミングしているかどうかを検出することもできます
  • Class.Humanoid:SetStateEnabled() 関数を使用して、登山を無効にできます

パラメータ

speed: number

Class.Humanoid が現在クライミングする速度。


コードサンプル

Humanoid.Climbing

local Players = game:GetService("Players")
local function onCharacterClimbing(character, speed)
print(character.Name, "is climbing at a speed of", speed, "studs / second.")
end
local function onCharacterAdded(character)
character.Humanoid.Climbing:Connect(function(speed)
onCharacterClimbing(character, speed)
end)
end
local function onPlayerAdded(player)
player.CharacterAdded:Connect(onCharacterAdded)
end
Players.PlayerAdded:Connect(onPlayerAdded)

Died

このイベントは、Humanoid が死亡するときに発生します。通常、Humanoid.Health が 0 に達するときに発生します。これは、Humanoid.Torso から頭を離れるか、直接2>Class.Humanoid.Health2> を設定することにより、5>Class.Humanoid5> が死亡するときに

このイベントは、HumanoidWorkspace の子孫である場合にのみ発動します。Dead2>枚数.HumanoidStateType2> が無効になっている場合は、5>枚数.HumanoidStateType5> が無効になっています。


コードサンプル

Humanoid.Died

local Players = game:GetService("Players")
local function onPlayerAdded(player)
local function onCharacterAdded(character)
local humanoid = character:WaitForChild("Humanoid")
local function onDied()
print(player.Name, "has died!")
end
humanoid.Died:Connect(onDied)
end
player.CharacterAdded:Connect(onCharacterAdded)
end
Players.PlayerAdded:Connect(onPlayerAdded)

FallingDown

フォールダウンイベントは、HumanoidFallingDown に入ると、Enum.HumanoidStateType を離れるときに発生します。

The Humanoid は、GettingUp 状態が有効になる 3 秒後に、FallingDown 状態に入ります。このイベントが発生すると、1> アクティブな1>

パラメータ

active: bool

Class.Humanoid が FallingDown Enum.HumanoidStateType に入るかどうかを記述します。


FreeFalling

このイベントは、HumanoidFreefall に入るか、Enum.HumanoidStateType を離れるときに発生します。

パラメーター active は、HumanoidFreefall 状態に入るかどうかを表示します。

Class.Humanoid が地面に到達すると、一般的に Humanoid 状態が終了しますが、このイベントは、 1> Class.Humanoid

パラメータ

active: bool

Class.Humanoid が FreefallEnum.HumanoidStateType に入るかどうか。


GettingUp

このイベントは、HumanoidEnum.HumanoidStateType.GettingUp 状態に入るまたは離れるときに発生します。Humanoid が 2>Ennum.HumanoidStateType.FallingDown|

Class.Humanoid が再び起動しようとすると、このイベントは、active パラメータの true 以前に再び発動すると、1> 4>active4> パラメータの 7>7> 以前に発生する前に最初に発生します。

Class.Humanoid を強制的に落下させるには、Humanoid:ChangeState() 機能を使用し、Enum.HumanoidStateType.FallingDown で 1>Class.Humanoid1> を強制します。

パラメータ

active: bool

Class.Humanoid が GettingUp から入ったり、Enum.HumanoidStateType から去ったりしますか。


HealthChanged

このイベントは、Humanoid.Health が変更されると発動します。ただし、Humanoid.MaxHealth の健康が増加すると、このイベントは発動しません。

Class.Humanoid.Health がゼロに達すると、Humanoid は死んで、Humanoid.Died イベントが発生します。このイベントは、ゼロの値で発動します。

パラメータ

health: number

新しい値の Humanoid.Health


コードサンプル

Humanoid.HealthChanged

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local function onCharacterAdded(character)
local humanoid = character:WaitForChild("Humanoid")
local currentHealth = humanoid.Health
local function onHealthChanged(health)
local change = math.abs(currentHealth - health)
print("The humanoid's health", (currentHealth > health and "decreased by" or "increased by"), change)
currentHealth = health
end
humanoid.HealthChanged:Connect(onHealthChanged)
end
player.CharacterAdded:Connect(onCharacterAdded)
Health Bar

local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- Paste script into a LocalScript that is
-- parented to a Frame within a Frame
local frame = script.Parent
local container = frame.Parent
container.BackgroundColor3 = Color3.new(0, 0, 0) -- black
-- This function is called when the humanoid's health changes
local function onHealthChanged()
local human = player.Character.Humanoid
local percent = human.Health / human.MaxHealth
-- Change the size of the inner bar
frame.Size = UDim2.new(percent, 0, 1, 0)
-- Change the color of the health bar
if percent < 0.1 then
frame.BackgroundColor3 = Color3.new(1, 0, 0) -- black
elseif percent < 0.4 then
frame.BackgroundColor3 = Color3.new(1, 1, 0) -- yellow
else
frame.BackgroundColor3 = Color3.new(0, 1, 0) -- green
end
end
-- This function runs is called the player spawns in
local function onCharacterAdded(character)
local human = character:WaitForChild("Humanoid")
-- Pattern: update once now, then any time the health changes
human.HealthChanged:Connect(onHealthChanged)
onHealthChanged()
end
-- Connect our spawn listener; call it if already spawned
player.CharacterAdded:Connect(onCharacterAdded)
if player.Character then
onCharacterAdded(player.Character)
end

Jumping

このイベントは、HumanoidJumping``Enum.HumanoidStateType に入ると発生し、2>Container.Humanoid2> の状態を取得する。

Class.Humanoid がジャンプすると、このイベントは active パラメータの true が再び発射さ

Class.Humanoid:SetStateEnabled() 関数を使用して、ジャンプを無効にできます。

パラメータ

active: bool

Class.Humanoid が Jumping Enum.HumanoidStateType に入るか、それとも去るか。


MoveToFinished

このイベントは、Humanoid が、Humanoid.WalkToPoint および Humanoid.WalkToPart プロパティの歩行を終了したときに発生します。

Class.Humanoid.WalkToPoint と Humanoid.WalkToPart プロパティは個々に設定できます。または、Humanoid:MoveTo() 機能を使用してください。

Class.Humanoid が 8 秒以内に目標に到達すると、このイベントは 目標に到達した として戻ります。目標が 8 秒以内に到達されないと、Humanoid は歩きを停止し、1> 到達し

パラメータ

reached: bool

Class.Humanoid が目標に到達したかどうかを指定するBoolean。 True は、Humanoid が目標に到達した場合、 1> false1> は、4> walk4> が目標に到達する前に時間切れになった場合です。


コードサンプル

Humanoid MoveTo Without Time out

local function moveTo(humanoid, targetPoint, andThen)
local targetReached = false
-- listen for the humanoid reaching its target
local connection
connection = humanoid.MoveToFinished:Connect(function(reached)
targetReached = true
connection:Disconnect()
connection = nil
if andThen then
andThen(reached)
end
end)
-- start walking
humanoid:MoveTo(targetPoint)
-- execute on a new thread so as to not yield function
task.spawn(function()
while not targetReached do
-- does the humanoid still exist?
if not (humanoid and humanoid.Parent) then
break
end
-- has the target changed?
if humanoid.WalkToPoint ~= targetPoint then
break
end
-- refresh the timeout
humanoid:MoveTo(targetPoint)
task.wait(6)
end
-- disconnect the connection if it is still connected
if connection then
connection:Disconnect()
connection = nil
end
end)
end
local function andThen(reached)
print((reached and "Destination reached!") or "Failed to reach destination!")
end
moveTo(script.Parent:WaitForChild("Humanoid"), Vector3.new(50, 0, 50), andThen)

PlatformStanding

このイベントは、HumanoidPlatformStanding に入るか Enum.HumanoidStateType に離れるときに発生します。

Class.Humanoid は PlatformStanding 状態の間、Humanoid.PlatformStand プロパティは 1> 真です1>。

Class.Humanoid.PlatformStand が true に設定されている間、Humanoid は移動できません。詳細は、1> Class.Humanoid.PlatformStand1> のページを参照してください。

PlatformStand Enum.HumanoidStateType は、今は使用できない Platform 部分と関連付けられています。ただし、開発者はまだ使用できます。

パラメータ

active: bool

Class.Humanoid が PlatformStanding から入ったり、出たりしていますか。


Ragdoll

このイベントは、HumanoidRagdoll を入力または離れるときに発生します。Enum.HumanoidStateType

パラメータ active は、true または false を持つことで、入力または退出を表示します。

Class.Humanoid:SetStateEnabled() を使用して、GettingUp 状態を無効にして、ラグドール状態を保持します。

参照してください:

パラメータ

active: bool

Class.Humanoid が Ragdoll を入力したか、または Enum.HumanoidStateType を離れます。


Running

このイベントは、Humanoid が変更を実行する速度に応じて発生します。

Class.Humanoid|Humanoids のコバーを実行している間、平均して Humanoid.WalkSpeed は、/秒のスタッドで Class.Humanoid の速度を表します。

Class.Humanoid がこのイベントを実行していないときは、速度 0 で発動します。

参照してください:

パラメータ

speed: number

Class.Humanoid が実行される速度。


コードサンプル

Humanoid Running

local Players = game:GetService("Players")
local localPlayer = Players.LocalPlayer
local character = localPlayer.Character or localPlayer.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local function onRunning(speed: number)
if speed > 0 then
print(`{localPlayer.Name} is running`)
else
print(`{localPlayer.Name} has stopped`)
end
end
humanoid.Running:Connect(function(speed: number)
onRunning(speed)
end)

Seated

このイベントは、Humanoid が座っているか、Seat または VehicleSeat から立ち上がると発生します。

キャラクターが座席に接触すると、座席に接触し、座席に座るアニメーションがプレイされます。このテーマについての詳細は、Seatページを参照してください。

  • キャラクターが座っている場合、 active パラメーターは true であり、currentSeatPart は現在座っている座席です。
  • キャラクターが座から起きた場合、 active パラメーターは false であり、 currentSeatPart は nil です。

参照してください:

  • Humanoid.Sit 、これは現在ヒューマノイドが座っているかどうかを示します
  • Humanoid.SeatPart 、これは、座席が現在座っているヒューマノイドです。

パラメータ

active: bool

Class.Humanoid が座っている場合、True。

currentSeatPart: BasePart

座席 Class.Humanoid が座っている場合、Humanoid が座っています。


コードサンプル

Finding a Player's Seat

local character = script.Parent
local humanoid = character:WaitForChild("Humanoid")
local function onSeated(isSeated, seat)
if isSeated then
print("I'm now sitting on: " .. seat.Name .. "!")
else
print("I'm not sitting on anything")
end
end
humanoid.Seated:Connect(onSeated)

StateChanged

このイベントは、Humanoid の状態が変更されると発動します。

人間形態の状態が「待機」ないので、Humanoid.Running イベントを使用するか、RootPart 部分のVelocity を聞くことで、2> Class.Humanoid2> が動作します。

参照してください

パラメータ

ヒューマノイドの前の状入力タイプ。

ヒューマノイドの現在の状入力タイプ。


コードサンプル

Jumping Particles

local character = script.Parent
local primaryPart = character.PrimaryPart
-- create particles
local particles = Instance.new("ParticleEmitter")
particles.Size = NumberSequence.new(1)
particles.Transparency = NumberSequence.new(0, 1)
particles.Acceleration = Vector3.new(0, -10, 0)
particles.Lifetime = NumberRange.new(1)
particles.Rate = 20
particles.EmissionDirection = Enum.NormalId.Back
particles.Enabled = false
particles.Parent = primaryPart
local humanoid = character:WaitForChild("Humanoid")
local isJumping = false
-- listen to humanoid state
local function onStateChanged(_oldState, newState)
if newState == Enum.HumanoidStateType.Jumping then
if not isJumping then
isJumping = true
particles.Enabled = true
end
elseif newState == Enum.HumanoidStateType.Landed then
if isJumping then
isJumping = false
particles.Enabled = false
end
end
end
humanoid.StateChanged:Connect(onStateChanged)
Jump Cooldown

local character = script.Parent
local JUMP_DEBOUNCE = 1
local humanoid = character:WaitForChild("Humanoid")
local isJumping = false
humanoid.StateChanged:Connect(function(_oldState, newState)
if newState == Enum.HumanoidStateType.Jumping then
if not isJumping then
isJumping = true
humanoid:SetStateEnabled(Enum.HumanoidStateType.Jumping, false)
end
elseif newState == Enum.HumanoidStateType.Landed then
if isJumping then
isJumping = false
task.wait(JUMP_DEBOUNCE)
humanoid:SetStateEnabled(Enum.HumanoidStateType.Jumping, true)
end
end
end)

StateEnabledChanged

StateEnableChanged イベントは、 Humanoid:SetStateEnabled()Humanoid に呼び出されるときに発動します。

パラメータには、Enum.HumanoidStateType 以外の値が含まれており、この状態が有効になっているかどうかを示すブールが含まれています。

参照してください:

パラメータ

有効化された状態の Enum.HumanoidStateType に変更された。

isEnabled: bool

状態が有効になっている場合は、True です。


コードサンプル

Humanoid State Change Detector

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local function onStateEnabledChanged(state, enabled)
if enabled then
print(state.Name .. " has been enabled")
else
print(state.Name .. " has been disabled")
end
end
humanoid.StateEnabledChanged:Connect(onStateEnabledChanged)

Strafing

このイベントは Humanoid がストラフしているときは発動しませんが、開発者には使用しないでください

このイベントは、HumanoidStrafingNoPhysics に入るか、Enum.HumanoidStateType に離れるときに発生します。

Class.Humanoid が StrafingNoPhysics 状態に入ると、このイベントは アクティブ パラメータの 1> true1> で発動します。イベントは 4> active4> で発

このイベントは、<a href="https://developer.microsoft.com/en-us/microsoft-edge/microsoft-edge-common- InterestingLinks">Class.Humanoid</a> 状態と<a href="https://developer.microsoft.com/en-us/microsoft-edge/microsoft-edge-common- InterestingLinks">Class.Humanoid</

パラメータ

active: bool

Class.Humanoid が StrafingNoPhysicsEnum.HumanoidStateType に入るか、または去るか。


Swimming

このイベントは、Humanoid が水の中でTerrain でスイミングする速度が変わると発生します。

Humanoids は、Humanoid.WalkSpeed の 87.5%で泳ぐ。

このイベントは、Humanoidが泳ぐのをやめるときに必ず 0 のスピードで発動しません。

参照してください:

  • 実行と登山のためには、Humanoid.RunningHumanoid.Climbing イベントを参照してください
  • Class.Humanoid.StateChanged イベントを使用して、Humanoid.StateChanged が泳いでいるかどうかを検出することもできます
  • Class.Humanoid:SetStateEnabled() 関数を使用して、水泳を無効にできます

パラメータ

speed: number

現在、Humanoid が泳ぐ速度。


Touched

このイベントは、ヒューマノイドの 1つの limbs が別の BasePart に接触すると発生します。ヒューマノイドの limbs に触れている、リンクされた limbs 自体が与えられます。

このイベントは、Humanoid のリンクに接触すると発動しません。

代替

Class.Humanoid.Touched イベントは便利ですが、あなたのニーズに最適な代替があるかどうかを検討する必要があります。

  • ほとんどの場合、BasePart.Touched イベントをBasePartsの代わりに接続することをお勧めします。たとえば、ド
  • Class.Humanoid が地面に着陸したとき、Humanoid.StateChanged イベントが適しています。また、Humanoid.FloorMaterial をチェックして、人形が空気以外の素材に立っているかどうかを確認することもできます。

注意

  • このイベントに接続すると、すべてのリムブで TouchTransmitter を作成します。
  • 現在、 BasePart.TouchEnded の代わりに使用できるのはありません。

パラメータ

touchingPart: BasePart

Class.BasePart は Humanoid と接触しました。

humanoidPart: BasePart

Class.Humanoid のリングが触れたリング。


コードサンプル

Midas Touch

local character = script.Parent
local humanoid = character:WaitForChild("Humanoid")
local partInfo = {}
local debounce = false
local function onHumanoidTouched(hit, _limb)
if debounce then
return
end
if not hit.CanCollide or hit.Transparency ~= 0 then
return
end
if not partInfo[hit] then
partInfo[hit] = {
BrickColor = hit.BrickColor,
Material = hit.Material,
}
hit.BrickColor = BrickColor.new("Gold")
hit.Material = Enum.Material.Ice
debounce = true
task.wait(0.2)
debounce = false
end
end
local touchedConnection = humanoid.Touched:Connect(onHumanoidTouched)
local function onHumanoidDied()
if touchedConnection then
touchedConnection:Disconnect()
end
-- undo all of the gold
for part, info in pairs(partInfo) do
if part and part.Parent then
part.BrickColor = info.BrickColor
part.Material = info.Material
end
end
end
humanoid.Died:Connect(onHumanoidDied)