ロブロックス(Roblox)でテレポートを作る方法|踏むと向こうの床へ移動するパッドを画像で解説

制作手順難易度: 入門所要時間: 約30分(目安)情報確認日: 2026年10月12日

「踏むと別の場所へ飛ぶ床を作りたい」「テレポートのスクリプトを書いたのに、思った場所に着かない」

ロブロックス(Roblox)でテレポートを作る方法を、実際の画像付きで誰でも簡単に分かるように解説します。ここでは、青いパッドを踏むと30スタッド(スタッドはロブロックスの長さの単位)先の赤いパッドへ、赤いパッドを踏むと青いパッドへ戻る仕掛けを作ります。テストで行き来できるかも確かめます。

入門ステップ21/24 前の記事:ロブロックス(Roblox)スタジオで音楽と効果音を入れる方法 全体の順番を見る

使うもの:Roblox Studioが起動するパソコン、マウス、キーボード。フォルダーやパーツ、スクリプトの入れ方はオビーの作り方で画像付きで解説しています。

今回の完成状態:下の画像のように、青いパッドを踏んだアバターが、赤いパッドの上に移動していれば成功です。

テレポートは2種類ある

ロブロックスの「テレポート」には、2つの意味があります。

種類どこへ移動するか使うものStudioのテストで試せるか
同じ場所の中の移動(この記事)同じマップの別の位置スクリプトでキャラクターを動かす(PivotTo)試せる
別のプレイスへの移動同じゲームの中の別のマップTeleportService試せない。公開してから試す

マップの中で「ここからあそこへ」飛ばしたいだけなら、1つめの方法で作れます。別のプレイスへの移動は、記事の後半で紹介します。

1. パッドを入れるフォルダーとパーツを置く

新しいBaseplateを開いたら、エクスプローラの「Workspace」にマウスを乗せて、右に出る「+」を押します(赤い枠)。

検索欄に「Folder」と入れ、一覧の「Folder」を押します(赤い枠)。

入ったFolderをエクスプローラで選んだままF2キーを押し、名前を「Teleporters」に変えます(赤い枠)。

続けてエクスプローラの「Teleporters」にマウスを乗せ、右に出る「+」(赤い枠)を押します。

検索欄に「Part」と入れ、一覧の「Part」(赤い枠)を押してパーツを入れます。

入ったPartの名前を、エクスプローラでF2キーを押して「PadA」に変えます(赤い枠)。

エクスプローラでPadAを選んだまま、プロパティの検索欄に「Size」と入力し、Sizeの欄を「6, 1, 6」に書き換えてEnterキーを押します(赤い枠)。

続けてPadAを選んだまま、プロパティの検索欄に「Position」と入力し、「▼CFrame」のすぐ下のPositionを「0, 0.5, -15」にしてEnterキーを押します(赤い枠)。スポーン地点の少し前に置かれます。

続けてPadAを選んだまま、プロパティの検索欄に「Color」と入力します。BrickColorとColorの2つの欄が並ぶので、下のColorの欄の数字を「13, 105, 172」に書き換えてEnterキーを押します。板が青くなり、上のBrickColorの欄が「Bright blue」に変わります(赤い枠)。

続けてPadAを選んだまま、プロパティの検索欄に「Anchored」と入力し、Anchoredにチェックを入れて固定します(赤い枠)。

エクスプローラでPadAを選んでCtrl+Dキーを押すと、同じ名前の「PadA」がもう1つできて、選ばれた状態になります(赤い枠)。

エクスプローラで選んだままF2キーを押し、名前を「PadB」に変えます(赤い枠)。

複製したPadBは、Size(6, 1, 6)とAnchoredのチェックがPadAと同じなので変えなくて大丈夫です。PadAとちょうど重なっているので、次に場所を変えます。

PadBを選んだまま、プロパティの検索欄に「Position」と入力し、「▼CFrame」のすぐ下のPositionを「0, 0.5, -45」にしてEnterキーを押します(赤い枠)。

続けてPadBを選んだまま、プロパティの検索欄に「Color」と入力し、下のColorの欄の数字を「255, 0, 0」に書き換えてEnterキーを押します。板が赤くなり、上のBrickColorの欄が「Really red」に変わります(赤い枠)。

見直し用に、2つのパッドの値を表にまとめます。

名前SizePosition(▼CFrameのすぐ下)色Anchored
PadA6, 1, 60, 0.5, -15Color 13, 105, 172(Bright blue(青))チェックあり
PadB6, 1, 60, 0.5, -45Color 255, 0, 0(Really red(赤))チェックあり

2. テレポートのスクリプトを入れる

エクスプローラのServerScriptServiceにマウスを乗せて「+」を押します(赤い枠)。

検索欄に「Script」と入れ、一覧の「Script」を押します(赤い枠)。

エクスプローラでServerScriptServiceの中に入った「Script」を選んだ状態でF2キーを押し、名前を「TeleportPads」に変えます。

TeleportPadsを選んだまま、プロパティの検索欄に「RunContext」と入力し、「▼動作」の欄にあるRunContextの一覧から「Server」を選びます(赤い枠)。RunContextは、スクリプトをサーバーとプレイヤーのどちらで動かすかを決める設定です。

エクスプローラのTeleportPadsをダブルクリックして開き、中身を全部消して、次のコードを貼り付けます。

local Players = game:GetService("Players")
local teleporters = workspace:WaitForChild("Teleporters")
local padA = teleporters:WaitForChild("PadA")
local padB = teleporters:WaitForChild("PadB")

local COOLDOWN = 2 -- 一度移動したら、次に移動できるまでの秒数
local HEIGHT = 4 -- 行き先のパッドより何スタッド上に出すか

local lastTeleport = {} -- 人ごとの「最後に移動した時刻」

-- fromPad を踏んだ人を toPad の上へ動かす
local function connectPad(fromPad, toPad)
	fromPad.Touched:Connect(function(hit)
		-- 触れたのがプレイヤーのキャラクターか確かめる
		local character = hit.Parent
		local player = Players:GetPlayerFromCharacter(character)
		if not player then return end
		local humanoid = character:FindFirstChildOfClass("Humanoid")
		if not humanoid or humanoid.Health <= 0 then return end

		-- 移動したばかりの人は、COOLDOWN 秒たつまで動かさない
		local now = os.clock()
		local last = lastTeleport[player]
		if last and now - last < COOLDOWN then return end
		lastTeleport[player] = now

		-- キャラクター全体を、行き先のパッドの少し上へ動かす
		character:PivotTo(toPad.CFrame + Vector3.new(0, HEIGHT, 0))
	end)
end

connectPad(padA, padB) -- 青を踏むと赤へ
connectPad(padB, padA) -- 赤を踏むと青へ

-- 抜けた人の記録を消す
Players.PlayerRemoving:Connect(function(player)
	lastTeleport[player] = nil
end)
コードの部分していること
GetPlayerFromCharacterパッドに触れたのがプレイヤーかを確かめる。ボールなどが触れても動かさない
PivotTo(ピボットトゥ)キャラクターの体を全部まとめて、行き先へ動かす
HEIGHTパッドに埋まらないよう、HEIGHTで決めた4スタッドだけ行き先のパッドより上に出す
lastTeleport・COOLDOWN人ごとに最後に移動した時刻を覚え、COOLDOWNで決めた2秒たつまで次の移動をしない

キャラクターを動かすときは、PivotToを使います。公式の説明でも、プレイヤーのキャラクターをテレポートさせるときなど、モデル全体を動かすときはPivotToを使うよう勧めています。

3. テストで行き来できるか確かめる

3D画面の上の作品のタブ「Place5」を押して3D画面に戻り、F5キーでテストを始めます(タブの名前はパソコンによって違います)。正面に青いパッド、その奥に赤いパッドが見えます(赤い枠)。

Wキーで歩いて青いパッドを踏むと、一瞬で赤いパッドの上に移動しました(赤い枠)。赤いパッドに着いたあとも、そのまま立っていられます。

着いてから2秒(COOLDOWNで決めた待ち時間)たったら赤いパッドから一度降りて、もう一度踏みます。今度は青いパッドへ戻りました(赤い枠)。奥に小さく見えるのが、さっきまでいた赤いパッドです。

Shift + F5キーでテストを停止します。

コードのCOOLDOWN(待ち時間)は、パッドの上で歩き回ったときに何度も続けて飛ばされないように入れています。

4. 着く場所を変える

コードの数を変えるときは、エクスプローラのTeleportPadsをダブルクリックして開き、コードの7行目「local HEIGHT = 4」の数字を書き換えます。パッドの場所を変えるときは、エクスプローラでPadBを選び、プロパティの検索欄に「Position」と入力して、「▼CFrame」のすぐ下のPositionを書き換えます。

変えたいこと変えるところ
もっと高い位置に出したいコードのHEIGHTの数を大きくする
行き先の場所を変えたい行き先のパッド(PadB)のPositionを変える

別のプレイスへ移動させたいとき

ゲームの中に別のマップ(プレイス)を作って、そこへ移動させたいときは、TeleportService(テレポートサービス)を使います。Robloxの公式の説明では、次のような決まりがあります。

決まり内容
StudioのテストTeleportServiceはStudioのテストでは動かない。公開して、ロブロックスのアプリで試す
呼べる場所TeleportAsyncはサーバーのScriptからだけ呼べる

この記事のパッドのように同じマップの中で動かすだけなら、TeleportServiceは要りません。ゲームの公開のしかたはゲームを公開する方法で解説しています。

テレポートしないときの確かめ方

症状見るところ直し方
踏んでも何も起きないスクリプトの場所ServerScriptServiceにあり、RunContextがServerか
踏んでも何も起きないパッドの名前Teleportersの中の名前が「PadA」「PadB」と同じか(大文字・小文字も)
踏んでも何も起きないパッドのCanTouchエクスプローラでPadAとPadBをそれぞれ選び、プロパティの検索欄に「CanTouch」と入力して、チェックが入っているか
着いた先で床に埋まるHEIGHT数を大きくする
別のプレイスへ飛ばないテストのしかたTeleportServiceはStudioのテストでは動かない。公開して試す

スクリプトが動いているか分からないときは、スクリプトが動かないときの確認手順で出力の見方を確かめてください。

AIに相談するときの伝え方

Roblox Studioで、Workspace/Teleporters/PadA を踏むと PadB の上へ、PadB を踏むと PadA の上へ移動する仕掛けを作りたいです。
ServerScriptServiceのScriptで、触れたのがプレイヤーか確かめ、キャラクターはPivotToで動かしてください。
人ごとに2秒の待ち時間を入れ、行き先のパッドより4スタッド上に出してください。

よくある質問

HumanoidRootPartのCFrameを書きかえる方法でもいい?

動かすことはできますが、公式の説明では、プレイヤーのキャラクターのようにモデル全体を動かすときはPivotToを使うよう勧めています。この記事のコードもPivotToを使っています。

MoveToとPivotToは何が違う?

Robloxの公式の説明によると、モデルのMoveToは、行き先にほかのパーツや地形があると、ぶつからない高さまで上にずらして置きます。向きもそのままにはなりません。決めた場所に、今の向きのまま動かしたいときは、PivotToを使います。

次のステップ(入門 22/24)

次は、ツールボックスのモデルを、使う前に安全か確かめます。

→ ロブロックス(Roblox)スタジオのツールボックスは安全?無料モデルの中のスクリプトを確かめる方法を画像で解説

次に知りたいことを選ぶ

次に読む記事