「オビーに乗ると消える床を入れたい」「床がすぐ消えて跳び移れない」「時間内に渡らないと消える橋を作りたい」
ロブロックス(Roblox)スタジオで消える床を作る方法を、実際の画像付きで誰でも簡単に分かるように解説します。ここでは、乗ると1秒かけて消え、消えてから3秒後に戻る黄色い床と、ボタンを踏むと残り秒数を数えながら出てくる青い橋を作ります。
中級ステップ7/28 前の記事:ロブロックス(Roblox)で回る床と動く床を作る方法 全体の順番を見る
使うもの:Roblox Studioが起動するパソコン、マウス、キーボード。パーツやスクリプトの入れ方はオビーの作り方、スクリプトの読み方はスクリプトの読み方で解説しています。
今回の完成状態:下の画像のように、赤いボタンを踏むと青い橋が出て、板に残りの秒数(画像の1)が出ます。数え終わる前に橋(画像の2)を渡りきれば成功です。

消える床は2種類ある
消える床には、大きく分けて2つの作り方があります。
| 種類 | 消えるきっかけ | 向いているもの |
|---|---|---|
| 乗ると消える床 | プレイヤーが乗ったとき | 急いで渡らせる足場、落とし穴 |
| 時間で消える床 | 決まった秒数ごと | タイミングを見て跳ぶ足場 |
どちらもTransparency(透明度)とCanCollide(当たり判定)の2つを切りかえて作ります。
| プロパティ | 0 または チェックあり | 1 または チェックなし |
|---|---|---|
| Transparency | 0で見える | 1で見えない |
| CanCollide | チェックありで乗れる | チェックなしですり抜ける |
見た目と当たり判定は別のプロパティなので、消すときは2つとも変えます。Transparencyだけを1にすると、見えないのに乗れる床になります。
ここでは、乗ると消える床をメインに作ります。時間で消える床は、最後のよくある質問で紹介します。
1. スタートの台を空中に上げる
新しいBaseplateを開きます。消える床から落ちたと分かるように、コースは空中に作ります。
エクスプローラの「Workspace」の左の三角を押して開き、「SpawnLocation」を押して選びます。SpawnLocationを選んだまま、プロパティの検索欄に「Position」と入力し、CFrameのすぐ下のPositionに「0, 8, 0」と入れます(赤い枠)。スタートの台が地面から浮き上がります。

2. 消える床のパーツを置く
エクスプローラの「Workspace」にマウスを乗せて、右に出る「+」(赤い枠)を押します。

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

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

FadingPlatformを選んだまま、プロパティの検索欄に「Size」と入力し、Sizeを「6, 1, 6」にします(赤い枠)。

プロパティの検索欄に「Position」と入力し、CFrameのすぐ下のPositionを「0, 8, -14」にします(赤い枠)。スタートの台の先に床が浮かびます。

プロパティの検索欄に「Color」と入力し、Colorの欄に「255, 200, 40」と入れて黄色にします(赤い枠)。

最後に、上の「固定」(画像の1)を押します。プロパティの検索欄に「Anchored」と入力すると、チェックが入っています(画像の2)。固定しないと、テストを始めた瞬間に床が下へ落ちます。

3. 乗ると消えるスクリプトを入れる
エクスプローラの「FadingPlatform」にマウスを乗せて、右に出る「+」(赤い枠)を押します。

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

FadingPlatformの中にScriptが入り、スクリプトの画面が開きます。エクスプローラで「Script」を押して選び、F2キーを押して名前を「FadeOnTouch」に変えます(赤い枠)。

FadeOnTouchを選んだまま、プロパティの検索欄に「RunContext」と入力し、「▼動作」の欄にあるRunContextの一覧から「Server」を選びます(赤い枠)。

スクリプトの画面で中身を全部消して、次のコードを貼り付けます。
-- 乗った床が1秒かけて消え、3秒後に戻る(FadingPlatform の中の Script「FadeOnTouch」)
local platform = script.Parent
local isTouched = false -- 今、消えている途中かどうか
local function fade(otherPart)
-- 触れたのがアバターの体のときだけ動かす
local humanoid = otherPart.Parent:FindFirstChildWhichIsA("Humanoid")
if humanoid and not isTouched then
isTouched = true
-- 0.1秒ごとに透明度を0.1ずつ上げる(10回で見えなくなる)
for count = 1, 10 do
platform.Transparency = count / 10
task.wait(0.1)
end
platform.CanCollide = false -- すり抜けて落ちる
task.wait(3)
platform.CanCollide = true
platform.Transparency = 0
isTouched = false
end
end
platform.Touched:Connect(fade)

このコードは床に何かが触れるたびに動き、次の順で床を消して戻します。
| 順番 | していること |
|---|---|
| 1 | 触れたのがアバターかを確かめる(Humanoidがあるか) |
| 2 | isTouchedをtrueにして、消えている途中だと記録する |
| 3 | forで10回くり返し、Transparencyを0.1、0.2…1.0と上げる |
| 4 | CanCollideをfalseにして、すり抜けるようにする |
| 5 | 3秒待ってから、CanCollideとTransparencyを元に戻す |
| 6 | isTouchedをfalseに戻し、また消えられるようにする |
一瞬で消さずに、1秒かけて消す理由
Transparencyをいきなり1にすると、乗った瞬間に床が消えて、次の床へ跳ぶひまがありません。forで0.1秒ごとに少しずつ透明にすると、0.1秒×10回で、消えるまでに1秒の余裕ができます。透けていく床を見て「急がないと」と分かるのも、遊ぶ人にとって親切です。
count / 10 は、countが1のとき0.1、10のとき1.0になります。消える速さは、task.wait(0.1) の秒で変えます。0.05にすると0.5秒で、0.2にすると2秒で消えます。forの回数を変えるときは、count / 10 の10も同じ数にします。回数だけ変えると、半分透けたまま床がすり抜けるようになります。
isTouchedで、何度も動かないようにする(デバウンス)
Touchedは足・すね・胴体など、体の部品が1つ触れるたびに動きます。床の上を歩くだけで何度も動くので、そのままでは消えている途中でも最初からやり直してしまいます。
そこで「今動いている途中か」を表すisTouchedという目印を使い、途中のときは何もしないようにしています。このように、同じ処理が何度も重なって動くのを防ぐ書き方をデバウンスと呼びます。
| 書き方 | 意味 |
|---|---|
not isTouched | isTouchedがfalseのとき(isTouched == false と同じ動き) |
isTouched = true | 消え始める前に「途中」の印を付ける |
isTouched = false | 床が戻ったあとに印を外す |
Humanoidを確かめる理由
FindFirstChildWhichIsA("Humanoid") は、触れた部品の親(アバターのモデル)の中にHumanoidがあるかを調べます。アバターでない部品が当たっても床が消えないようにするためです。アバターでない部品を床に載せて試すと、床は消えずに残りました。
4. テストで、乗ると消えて戻るか確かめる
3D画面の上の作品のタブ「Place1」を押して3D画面に戻り、F5キーでテストを始めます(タブの名前はパソコンによって違います)。
スタートの台の上で、Wキーで前へ進みながらスペースキーでジャンプして、黄色い床に乗ります。乗るとすぐに床が少し透けはじめます(赤い枠)。

そのまま待つと、床がさらに透けていきます(赤い枠)。

さらに待つと、床が見えなくなります(赤い枠)。このあと床をすり抜けて、アバターは下の地面へ落ちます。

落ちてから少し待つと、床が元の場所に戻ります(赤い枠)。また乗ると、同じように消えます。

下の地面に落ちたらShift + F5キーでテストを停止します。もう一度F5キーで始めると、スタートの台から遊び直せます。
5. 床を3枚に増やす
Shift + F5キーでテストを停止します。
エクスプローラで「FadingPlatform」を押して選び、Ctrl + Dキーを押します。同じ設定の「FadingPlatform」がもう1つでき、選ばれた状態になります(赤い枠)。中のFadeOnTouchも一緒に複製されます。

複製した床は元の床と同じ場所に重なっています。複製した床を選んだまま、プロパティの検索欄に「Position」と入力し、CFrameのすぐ下のPositionを「0, 8, -24」にします(赤い枠)。2枚の床が並びます。

位置を数字で入れると、床のすき間を同じ幅にそろえられます。
同じように、2枚目の床を選んだままCtrl + Dキーを押して3枚目を作ります(赤い枠)。

3枚目のPositionは「0, 8, -34」にします(赤い枠)。黄色い床が3枚、同じ間かくで並びました。

床どうしのすき間は4スタッドにしています。床ごとにtask.waitの秒を変えると、先へ進むほど早く消えるコースにできます。
6. 時限の橋のパーツを置く
次は、ボタンを踏むと出てくる橋を作ります。使う部品は次の5つです。
| 名前 | Size | Position | Color | 役目 |
|---|---|---|---|---|
| MiddleFloor | 12, 1, 12 | 0, 8, -46 | 変えない(灰色) | 消える床の先の足場 |
| ButtonBridge | 4, 0.4, 4 | 0, 8.7, -49 | 255, 60, 60 | 踏むと橋が出るボタン |
| TimerDisplay | 6, 4, 1 | -6, 12, -52 | 30, 30, 30 | 残りの秒数を出す板 |
| Bridge | 6, 1, 30 | 0, 8, -67 | 50, 120, 255 | 時間だけ渡れる橋 |
| GoalFloor | 12, 1, 12 | 0, 8, -88 | 80, 200, 90 | ゴールの足場 |
表の上から順に、1つずつ作ります。入れ方は手順2の床と同じです。
MiddleFloor(消える床の先の足場)
エクスプローラの「Workspace」にマウスを乗せて、右に出る「+」を押します。検索欄に「Part」と入力し、一覧の「Part」を押します。
エクスプローラに入った「Part」を押して選び、F2キーを押して名前を「MiddleFloor」に変えます。
MiddleFloorを選んだまま、プロパティの検索欄に「Size」と入力し、Sizeを「12, 1, 12」にします。続けて検索欄に「Position」と入力し、CFrameのすぐ下のPositionを「0, 8, -46」にします。
色は灰色のまま変えません。
最後に、上の「固定」を押します。固定は押すたびに入・切が切りかわるので、プロパティの検索欄に「Anchored」と入力し、チェックが入っているかを確かめます。
ButtonBridge(踏むと橋が出るボタン)
もう一度、エクスプローラの「Workspace」の「+」を押し、一覧の「Part」を押します。
エクスプローラに入った「Part」を押して選び、F2キーを押して名前を「ButtonBridge」に変えます。
ButtonBridgeを選んだまま、プロパティの検索欄に「Size」と入力し、Sizeを「4, 0.4, 4」にします。続けて検索欄に「Position」と入力し、CFrameのすぐ下のPositionを「0, 8.7, -49」にします。
プロパティの検索欄に「Color」と入力し、Colorの欄に「255, 60, 60」と入れます。
最後に、上の「固定」を押します。固定は押すたびに入・切が切りかわるので、プロパティの検索欄に「Anchored」と入力し、チェックが入っているかを確かめます。
TimerDisplay(残りの秒数を出す板)
もう一度、エクスプローラの「Workspace」の「+」を押し、一覧の「Part」を押します。
エクスプローラに入った「Part」を押して選び、F2キーを押して名前を「TimerDisplay」に変えます。
TimerDisplayを選んだまま、プロパティの検索欄に「Size」と入力し、Sizeを「6, 4, 1」にします。続けて検索欄に「Position」と入力し、CFrameのすぐ下のPositionを「-6, 12, -52」にします。
プロパティの検索欄に「Color」と入力し、Colorの欄に「30, 30, 30」と入れます。
最後に、上の「固定」を押します。固定は押すたびに入・切が切りかわるので、プロパティの検索欄に「Anchored」と入力し、チェックが入っているかを確かめます。
Bridge(時間だけ渡れる橋)
もう一度、エクスプローラの「Workspace」の「+」を押し、一覧の「Part」を押します。
エクスプローラに入った「Part」を押して選び、F2キーを押して名前を「Bridge」に変えます。
Bridgeを選んだまま、プロパティの検索欄に「Size」と入力し、Sizeを「6, 1, 30」にします。続けて検索欄に「Position」と入力し、CFrameのすぐ下のPositionを「0, 8, -67」にします。
プロパティの検索欄に「Color」と入力し、Colorの欄に「50, 120, 255」と入れます。
最後に、上の「固定」を押します。固定は押すたびに入・切が切りかわるので、プロパティの検索欄に「Anchored」と入力し、チェックが入っているかを確かめます。
GoalFloor(ゴールの足場)
もう一度、エクスプローラの「Workspace」の「+」を押し、一覧の「Part」を押します。
エクスプローラに入った「Part」を押して選び、F2キーを押して名前を「GoalFloor」に変えます。
GoalFloorを選んだまま、プロパティの検索欄に「Size」と入力し、Sizeを「12, 1, 12」にします。続けて検索欄に「Position」と入力し、CFrameのすぐ下のPositionを「0, 8, -88」にします。
プロパティの検索欄に「Color」と入力し、Colorの欄に「80, 200, 90」と入れます。
最後に、上の「固定」を押します。固定は押すたびに入・切が切りかわるので、プロパティの検索欄に「Anchored」と入力し、チェックが入っているかを確かめます。
橋は最初、半透明で乗れない状態にしておきます。エクスプローラで「Bridge」を押して選び、プロパティの検索欄に「Transparency」と入力し、Transparencyを「0.8」にします(赤い枠)。橋がうっすら透けて見えます。

Bridgeを選んだまま、プロパティの検索欄に「CanCollide」と入力し、CanCollideのチェックを外します(赤い枠)。これで橋は見えても乗れない状態になります。

透明にしきらず0.8にしているのは、「ここに橋が出る」と遊ぶ人に見せるためです。
7. 残り秒数を出す板を作る
黒い板に、数字を出すための部品を2つ入れます。
エクスプローラの「TimerDisplay」にマウスを乗せて、右に出る「+」(赤い枠)を押します。

検索欄に「SurfaceGui」と入力し、一覧の「SurfaceGui」(赤い枠)を押します。SurfaceGui(サーフェスジーユーアイ)は、パーツの面に文字や画像を貼るための部品です。

次に、エクスプローラの「SurfaceGui」にマウスを乗せて「+」を押します。検索欄に「TextLabel」と入力し、一覧の「TextLabel」(赤い枠)を押します。TextLabelは、文字を出すための部品です。

エクスプローラのSurfaceGuiの中にTextLabel(画像の2)が入りました。ただし、3D画面の板(画像の1)は黒いままです。SurfaceGuiは最初、板の「Front」の面に貼られます。Frontは、スタートの台から来るプレイヤーには見えない裏側の面なので、こちらからは文字の欄が見えません。

エクスプローラの「SurfaceGui」を押して選び、プロパティの検索欄に「Face」と入力し、Faceの一覧から「Back」を選びます(赤い枠)。Faceは、板のどの面に貼るかを決めるプロパティです。Backにすると、スタートの台から見える面に変わり、板の左上に白い小さな文字の欄が見えるようになります。

エクスプローラの「TextLabel」を押して選び、プロパティの検索欄に「Size」と入力し、Sizeに「{1, 0},{1, 0}」と入れます(赤い枠)。左上の小さな文字の欄が板の面いっぱいに広がり、3D画面の板が白くなります。

プロパティの検索欄に「TextScaled」と入力し、チェックを入れます(赤い枠)。文字が欄の大きさに合わせて大きくなり、板に「Label」と出ます。

最後に、プロパティの検索欄に「Text」と入力し、Textの欄の「Label」を消して空にします(赤い枠)。数字は、このあとのスクリプトが入れます。

8. 橋を出すスクリプトを入れる
エクスプローラの「Bridge」にマウスを乗せて「+」を押します。検索欄に「Script」と入力し、一覧の「Script」(赤い枠)を押します。

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

TimedBridgeを選んだまま、プロパティの検索欄に「RunContext」と入力し、RunContextの一覧から「Server」を選びます(赤い枠)。

スクリプトの画面で中身を全部消して、次のコードを貼り付けます。
-- ボタンを踏むと橋が出て、残り秒数を数える(Bridge の中の Script「TimedBridge」)
local bridge = script.Parent
local button = workspace.ButtonBridge
local timerText = workspace.TimerDisplay.SurfaceGui.TextLabel
local timerDuration = 5 -- 橋に乗れる秒数
local timerActive = false -- 今、数えている途中かどうか
local function startTimer()
timerActive = true
bridge.Transparency = 0
bridge.CanCollide = true
-- 5から0まで、1ずつ減らしながら数える
for count = timerDuration, 0, -1 do
timerText.Text = count
task.wait(1)
end
-- 橋を半透明に戻し、乗れなくする
bridge.Transparency = 0.8
bridge.CanCollide = false
timerText.Text = ""
timerActive = false
end
local function buttonPressed(otherPart)
local humanoid = otherPart.Parent:FindFirstChildWhichIsA("Humanoid")
if humanoid and timerActive == false then
startTimer()
end
end
button.Touched:Connect(buttonPressed)

workspace.ButtonBridge と workspace.TimerDisplay.SurfaceGui.TextLabel は、エクスプローラの名前のとおりに書いています。名前が1文字でも違うと動かないので、手順6・7の名前をよく確かめてください。
forの3つ目の数で、数を減らしていく
消える床のforは for count = 1, 10 do で、1から10まで1ずつ増やしていました。橋のforは、3つ目に「-1」を書いています。
| 書き方 | countの変わり方 | 使っている場所 |
|---|---|---|
for count = 1, 10 do | 1、2、3…10(3つ目を書かないと1ずつ増える) | 消える床 |
for count = timerDuration, 0, -1 do | 5、4、3、2、1、0(1ずつ減る) | 時限の橋 |
1つ目が始まりの数、2つ目が終わりの数、3つ目が1回ごとに足す数です。3つ目をマイナスにすると、カウントダウンになります。
橋のforは5、4、3、2、1、0の6回まわり、1回ごとに1秒待ちます。そのため、timerDurationで決めた5秒のあと、0を出している1秒も橋に乗れて、全部で約6秒渡れます。
timerActiveで、数え直しを防ぐ
ボタンの上で足を動かすと、Touchedが何度も動きます。timerActiveがないと、踏み直すたびにカウントダウンが最初から重なって始まってしまいます。消える床のisTouchedと同じデバウンスの考え方で、数えている途中はボタンを踏んでも何も起きないようにしています。
9. テストで、時間内に橋を渡る
3D画面の上の作品のタブ「Place1」を押して3D画面に戻り、F5キーでテストを始めます(タブの名前はパソコンによって違います)。
消える床を渡って灰色の足場まで進み、赤いボタンを踏みます。橋が青くはっきり見えるようになり、板に「5」と出ます(画像の1・2)。

数字が1秒ごとに減っていく間に、橋を渡ります。下の画像は、板が「3」のときに橋の先のほうまで進んだところです(画像の1・2)。

0まで数え終わると板の数字が消え、橋は半透明に戻って乗れなくなります(橋に赤い枠)。もう一度ボタンを踏むと、また5から数え始めます。

Shift + F5キーでテストを停止します。
うまく動かないときの直し方
| 症状 | 原因 | 直し方 |
|---|---|---|
| テストを始めると床や橋が落ちる | 固定していない | パーツを選んで「固定」を押す |
| 床が消えない | スクリプトがFadingPlatformの中にない | エクスプローラでFadeOnTouchがFadingPlatformの中にあるか確かめる |
| 床がすぐ消えて跳べない | forの回数やtask.waitの秒が小さい | for count = 1, 10 と task.wait(0.1) のままか確かめる |
| 橋が出ない | 名前が違う | 出力の赤い文字を見て、名前をエクスプローラと同じにする |
| 板に数字が出ない | Faceが別の面、Sizeが小さい、TextScaledが入っていない | 手順7をやり直す |
名前が違うと、出力に赤い文字でエラーが出ます。次の画像は、板の名前を「TimerDisplya」と打ち間違えたときの出力です。「TimerDisplay is not a valid member of Workspace」は、Workspaceの中にTimerDisplayという名前のものが見つからないという意味です(赤い枠)。最後の「TimedBridge:4」は、TimedBridgeの4行目でエラーが出たことを表します。

出力の見方は、スクリプトが動かないときの確認手順でくわしく解説しています。
AIに相談するときの伝え方
AIに消える床を頼むときは、消え方・戻る時間・連打への対策を指定します。
Roblox Studioで、プレイヤーが乗ると消えて、しばらくすると戻る床を作りたいです。
床のPartの中に入れるScriptで、forを使って1秒かけて少しずつ透明にし、そのあとCanCollideをfalseにして、3秒後に元に戻してください。
触れたのがプレイヤーのときだけ動くように、Humanoidがあるかを確かめてください。
消えている途中に何度も動かないよう、真偽値の変数でデバウンスしてください。
待つときはwaitではなくtask.waitを使ってください。
よくある質問
踏まなくても、時間で消えたり出たりする床にするには?
時間で消える床は、別のPartを置いて作ります。手順2と同じようにWorkspaceにPartを入れ、名前を「BlinkPlatform」、Sizeを「6, 1, 6」、Positionを「12, 8, -24」、Colorを「255, 140, 40」(オレンジ)にして固定します。BlinkPlatformの「+」からScriptを入れ、RunContextを「Server」にしたら、中身を全部消して次のコードを貼り付けます。while true doの中の行を、ゲームの間ずっとくり返します。2秒ごとに、消える・出るを交互にします。
-- 踏まなくても、2秒ごとに消えたり出たりする床
local platform = script.Parent
while true do
task.wait(2)
platform.Transparency = 1
platform.CanCollide = false
task.wait(2)
platform.Transparency = 0
platform.CanCollide = true
end
テストすると、床が見えている時間と消えている時間が2秒ずつ交互に来ました(赤い枠)。


while true doの中には、必ずtask.waitを入れます。待つ行がないと、くり返しが1回も休まずに回り続けてしまいます。
waitとtask.waitは何が違う?
どちらも指定した秒だけ待ちます。Robloxの公式リファレンスでは、古いwaitはtask.waitに置きかえられたとして、新しく書くコードでは使わないよう案内されています。ほかのサイトのコードにwaitが出てきたら、task.waitに書きかえて使ってください。
消える床と時限の橋を、別々のオビーで使ってもいい?
使えます。消える床はFadingPlatformごとコピーすれば、どの作品でもそのまま動きます。時限の橋は、ButtonBridgeとTimerDisplayをWorkspaceのすぐ下に置き、ButtonBridge・TimerDisplay・SurfaceGui・TextLabelの4つの名前をコードと同じにすれば動きます。TimedBridgeは橋のパーツの中に入れます。
次は、TweenServiceで、パーツや画面の枠をなめらかに動かします。次のステップ(中級 8/28)
次に知りたいことを選ぶ
- 次のステップ:TweenServiceで、パーツや画面の枠をなめらかに動かします → ロブロックス(Roblox)スタジオのTweenの使い方
- 乗ったまま運ばれる動く床も入れたい → ロブロックス(Roblox)で回る床と動く床を作る方法
- 落ちても途中から戻れるようにしたい → ロブロックス(Roblox)のチェックポイントの作り方
- if・for・関数の読み方をおさらいしたい → スクリプトの読み方