キャラクターやHumanoidが見つからないとき

入門トラブル更新日:2026年11月13日Luauの型チェック済み

ひとことで言うと

プレイヤーのキャラクターやHumanoidを取得しようとしてnilになるときの原因と直し方です。

この記事で使うAPI

Player・Humanoid

原因

プレイヤーが参加した瞬間には、まだキャラクターが登場していないことがあります。また、やられて復活すると、キャラクターは新しく作り直されます。

直し方

CharacterAddedイベントを使うと、キャラクターが登場するたびに処理できます。

local Players = game:GetService("Players")

Players.PlayerAdded:Connect(function(player)
	player.CharacterAdded:Connect(function(character)
		local humanoid = character:WaitForChild("Humanoid")
		humanoid.WalkSpeed = 24
	end)
end)

LocalScriptで自分のキャラクターを使うときは、次の書き方がよく使われます。

local player = game:GetService("Players").LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()

詳しくはHumanoidとCharacterのしくみをご覧ください。

執筆・動作確認:鈴木孝昌官公庁のWeb・システム開発を担当する現役プロジェクトマネージャー。沖縄マイクラ部 クロスウェーブで、ロブロックス(Roblox)・マインクラフト(マイクラ)・Scratchなどのプログラミングを指導。マイクラカップ沖縄代表チームを指導(第6回・第7回、第7回TBS賞)。
沖縄マイクラ部で、子どもたちにロブロックス(Roblox)やマインクラフト(マイクラ)のプログラミングを教えています。プロフィールと編集方針
Instagramで教室の様子を見る
noteで記事を読む