← 所有教學
第 1 篇教學

做出你的第一個 Obby

有岩漿、檢查點、會消失的平台和終點線的障礙賽。

免費45 分鐘 · 初學者 · Roblox Studio
1
步驟 1 / 10

建立新的場景

  1. 打開 Roblox Studio 並登入。
  2. 點 New Experience,然後選 Baseplate 範本。
  3. 現在你有一片平坦的灰色地板。你的關卡會蓋在上面。

更多細節

  • Roblox Studio 是適用於 Windows 和 Mac 的免費程式。如果還沒安裝,請從 create.roblox.com 下載,並用你的 Roblox 帳號登入。
  • Baseplate 範本在開始畫面的範本清單裡。它顯示的是一片空的灰色地板。
  • 場景會在一個分頁裡打開。分頁的名稱就是你的場景的名稱。
  • 在 Mac 上,每當教學說 Ctrl 的時候,都改用 Cmd 鍵。
小提示. 常常用 File → Save to Roblox 存檔。Studio 會保留舊版本,所以你隨時可以回到以前的樣子。
這一步我做不出來

先檢查這三件事

  • 每個零件和腳本的名字都要和教學裡的完全一樣,大小寫也要一樣。
  • 腳本要放在正確的物件裡面。看看程式碼框上方的標籤。
  • 從 Window 選單打開 Output 視窗。紅色的字會告訴你哪個腳本、哪一行有問題。

還是不行嗎?寫信給我們 →

2
步驟 2 / 10

認識三個面板

  1. 中間那個大大的 3D 畫面是 Viewport。這就是你的遊戲世界。
  2. Explorer 會列出遊戲裡的每個物件。Properties 會顯示你選取的物件的設定。
  3. 移動鏡頭:按住滑鼠右鍵可以環顧四周,用 W A S D 飛行,用 Q 和 E 往下和往上。
  4. 迷路了嗎?選取任何一個 Part,然後按 F。鏡頭就會跳到它那裡。

更多細節

  • Explorer 和 Properties 在視窗的右邊。Explorer 在上面,Properties 在它下面。
  • 在 Viewport 裡點一個物件,它在 Explorer 裡也會反白。在 Explorer 裡點它的名稱,它在 Viewport 裡也會被選取。
  • 那塊上面有圓形符號的平坦平台就是 SpawnLocation。遊戲開始時,玩家會出現在它上面。不要動它。
  • 做錯了嗎?按 Ctrl+Z 復原你做的上一件事。再按一次,就再退回一步。
小提示. 如果少了某個面板,可以從 Window 選單打開它。在舊版本裡,它在 View 分頁。
這一步我做不出來

先檢查這三件事

  • 每個零件和腳本的名字都要和教學裡的完全一樣,大小寫也要一樣。
  • 腳本要放在正確的物件裡面。看看程式碼框上方的標籤。
  • 從 Window 選單打開 Output 視窗。紅色的字會告訴你哪個腳本、哪一行有問題。

還是不行嗎?寫信給我們 →

3
步驟 3 / 10

做出起點平台

  1. 在 Home 分頁點 Part。一塊灰色的方塊就出現了。
  2. 在 Properties 把 Size 設成 12, 1, 12,並把這個 Part 改名為 Start。
  3. 打開 Anchored。固定住的 Part 不會掉下去,也不會移動。
  4. 用 Color 按鈕選一個你喜歡的顏色。

更多細節

  • 新的零件會出現在鏡頭前面,它在 Explorer 裡的名稱是 Part。
  • 要改名,在 Explorer 裡點它一下,按 F2,輸入 Start,然後按 Enter。
  • 在 Properties 裡點 Size 欄位,輸入 12, 1, 12,然後按 Enter。這三個數字分別是寬、高和深。
  • Anchored 是 Properties 裡的一個核取方塊。打勾就表示打開了。
  • 用 Move 工具 (Ctrl+2) 把平台放到 SpawnLocation 旁邊,這樣玩家就能走上去。
常見的錯誤. 忘了打開 Anchored。編輯的時候看起來沒問題,但遊戲一開始它就會掉進虛空。
這一步我做不出來

先檢查這三件事

  • 每個零件和腳本的名字都要和教學裡的完全一樣,大小寫也要一樣。
  • 腳本要放在正確的物件裡面。看看程式碼框上方的標籤。
  • 從 Window 選單打開 Output 視窗。紅色的字會告訴你哪個腳本、哪一行有問題。

還是不行嗎?寫信給我們 →

4
步驟 4 / 10

加上跳躍平台

  1. 選取 Start,按 Ctrl+D 複製它。用 Move 工具 (Ctrl+2) 把複製品往前拉。
  2. 用 Scale 工具 (Ctrl+3) 把它縮小。大小 6, 1, 6 就很好用。
  3. 平台之間留 5 到 7 studs 的空隙。重複做,直到有 6 到 8 個平台。
  4. 把一些平台稍微墊高,讓關卡慢慢往上爬。

更多細節

  • 複製品會剛好出現在原件上面,所以看起來好像什麼都沒發生。拖動 Move 工具的藍色或紅色箭頭,複製品就會滑出來。
  • 用 Scale 工具,拖動零件上的小圓球就能改變它的大小。你也可以直接在 Properties 裡輸入大小。
  • Properties 裡的 Position 欄位會顯示零件在哪裡。比較兩個平台的數字,就能量出它們之間的空隙。
  • 每個平台都必須 Anchored。固定住的零件的複製品也是固定住的,所以只需要檢查你新建的零件。
  • 按 F5 自己試試這些跳躍,按 Shift+F5 停止。每做兩三個平台就試一次。
小提示. 預設的角色可以跳 7.2 studs 高,往前大約能跳過 8 studs。空隙超過 8 studs 幾乎跳不過去。
這一步我做不出來

先檢查這三件事

  • 每個零件和腳本的名字都要和教學裡的完全一樣,大小寫也要一樣。
  • 腳本要放在正確的物件裡面。看看程式碼框上方的標籤。
  • 從 Window 選單打開 Output 視窗。紅色的字會告訴你哪個腳本、哪一行有問題。

還是不行嗎?寫信給我們 →

5
步驟 5 / 10

加上會讓玩家重來的岩漿

  1. 在兩個平台之間新增一個 Part。把它變成紅色,把 Material 設成 Neon,打開 Anchored,並命名為 Lava。
  2. 在 Explorer 把滑鼠移到 Lava 上,點 + 按鈕,然後選 Script。
  3. 刪掉原本就有的那一行,貼上這段程式碼。
Lava > Script
local lava = script.Parent

lava.Touched:Connect(function(hit)
	local humanoid = hit.Parent:FindFirstChildOfClass("Humanoid")
	if humanoid then
		humanoid.Health = 0
	end
end)

每一段在做什麼

  • script.Parent 是放著這個腳本的那個 Part。在這裡就是岩漿。
  • Touched 會在每次有東西碰到這個 Part 時執行。hit 是碰到它的東西,例如一隻腳。
  • hit.Parent 是整個角色。如果它有 Humanoid,就表示是玩家,所以腳本會把 Health 設成 0。

更多細節

  • Material 是 Properties 裡的一個清單。點開它,選擇 Neon。Neon 會讓零件發光。
  • 加入 Script 之後,它會在新的分頁裡打開,裡面有一行程式碼。點一下程式碼裡面,按 Ctrl+A 全選,再按 Ctrl+V 貼上覆蓋。
  • 點一下寫著你的場景名稱的分頁,就回到你的世界了。
  • 測試一下:按 F5,走進岩漿。你的角色會散開,然後在起點重新出現。
  • 把岩漿做得又寬又扁,例如 Size 12, 1, 6,再放得比平台低一點,這樣沒跳過去的人就會掉進去。
這一步我做不出來

先檢查這三件事

  • 每個零件和腳本的名字都要和教學裡的完全一樣,大小寫也要一樣。
  • 腳本要放在正確的物件裡面。看看程式碼框上方的標籤。
  • 從 Window 選單打開 Output 視窗。紅色的字會告訴你哪個腳本、哪一行有問題。

還是不行嗎?寫信給我們 →

6
步驟 6 / 10

加上檢查點

  1. 在 Explorer 把滑鼠移到 Workspace 上,點 +,新增一個 Folder。把它命名為 Checkpoints。
  2. 沿著關卡放三個固定住的 Part,並把它們拖進這個 Folder。分別命名為 1、2 和 3。1 號放在起點平台上。
  3. 把滑鼠移到 ServerScriptService 上,點 +,新增一個 Script。貼上這段程式碼。
ServerScriptService > Script
local Players = game:GetService("Players")
local checkpoints = workspace:WaitForChild("Checkpoints")

Players.PlayerAdded:Connect(function(player)
	local stats = Instance.new("Folder")
	stats.Name = "leaderstats"
	stats.Parent = player

	local stage = Instance.new("IntValue")
	stage.Name = "Stage"
	stage.Value = 1
	stage.Parent = stats

	player.CharacterAdded:Connect(function(character)
		local root = character:WaitForChild("HumanoidRootPart")
		local point = checkpoints:FindFirstChild(tostring(stage.Value))
		if point then
			task.wait(0.1)
			root.CFrame = point.CFrame + Vector3.new(0, 4, 0)
		end
	end)
end)

for _, point in ipairs(checkpoints:GetChildren()) do
	point.Touched:Connect(function(hit)
		local player = Players:GetPlayerFromCharacter(hit.Parent)
		local stats = player and player:FindFirstChild("leaderstats")
		if not stats then return end

		local number = tonumber(point.Name)
		if number == stats.Stage.Value + 1 then
			stats.Stage.Value = number
		end
	end)
end

每一段在做什麼

  • leaderstats 是一個特別的資料夾名稱。放在裡面的值會顯示在玩家列表中,所以每個人都看得到自己的 Stage。
  • 角色出生時,腳本會把它移到名字和玩家 Stage 相同的那個檢查點。
  • 碰到檢查點時,只有它是下一個檢查點才會增加 Stage。這樣玩家就不能跳關。

更多細節

  • Folder 可以放其他物件,就像電腦裡的資料夾一樣。它自己在遊戲裡什麼也不做。
  • 要把零件拖進資料夾,就在 Explorer 裡把它的名稱拖到 Checkpoints 這個名稱上,然後放開。這個零件就會往右縮排一格,位於資料夾下面。
  • 把檢查點零件做得又薄又寬,例如 Size 6, 0.4, 6,然後放在平台上面。換一種顏色,玩家會更容易注意到它們。
  • 測試一下:按 F5,看右上角的玩家列表。它會顯示 Stage 1。碰一下 2 號檢查點,它就變成 2。
  • 檢查點必須按順序碰。先碰 3 再碰 2 是沒有用的。
常見的錯誤. 把 Part 命名成 Checkpoint1 或 One。腳本找的是 1、2 和 3 這幾個完全一樣的名字。
這一步我做不出來

先檢查這三件事

  • 每個零件和腳本的名字都要和教學裡的完全一樣,大小寫也要一樣。
  • 腳本要放在正確的物件裡面。看看程式碼框上方的標籤。
  • 從 Window 選單打開 Output 視窗。紅色的字會告訴你哪個腳本、哪一行有問題。

還是不行嗎?寫信給我們 →

7
步驟 7 / 10

做一個會消失的平台

  1. 選關卡中間的一個平台,在上面新增一個 Script。
  2. 貼上這段程式碼,然後按 Play 看它一閃一閃。
Platform > Script
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

每一段在做什麼

  • while true do 會一直重複下去。
  • task.wait(2) 會暫停 2 秒。
  • Transparency 設成 1 會讓 Part 變成透明。CanCollide 設成 false 會讓玩家穿過它掉下去。

更多細節

  • 要加入 Script,把滑鼠移到 Explorer 裡平台的名稱上,點 +,選擇 Script,和你替岩漿做的一樣。
  • 平台會顯示 2 秒,再消失 2 秒。玩家要算準時間再跳。
  • 第一個數字是平台顯示的時間。第二個數字是它消失的時間。
  • 不要把這個腳本放在起點平台或檢查點裡,否則玩家一到就會掉下去。
小提示. 改一改那兩個數字,就能讓平台變快或變慢。
這一步我做不出來

先檢查這三件事

  • 每個零件和腳本的名字都要和教學裡的完全一樣,大小寫也要一樣。
  • 腳本要放在正確的物件裡面。看看程式碼框上方的標籤。
  • 從 Window 選單打開 Output 視窗。紅色的字會告訴你哪個腳本、哪一行有問題。

還是不行嗎?寫信給我們 →

8
步驟 8 / 10

做出終點線

  1. 在最後面放一個大大的固定 Part,並命名為 Finish。把它變成金色,讓玩家一眼看到目標。
  2. 在 Finish 上新增一個 Script,貼上這段程式碼。
Finish > Script
local Players = game:GetService("Players")
local finish = script.Parent
local cooldown = {}

finish.Touched:Connect(function(hit)
	local player = Players:GetPlayerFromCharacter(hit.Parent)
	local stats = player and player:FindFirstChild("leaderstats")
	if not stats or cooldown[player] then return end

	cooldown[player] = true
	stats.Stage.Value = 1
	player:LoadCharacter()

	task.wait(2)
	cooldown[player] = nil
end)

每一段在做什麼

  • GetPlayerFromCharacter 會找出是哪位玩家碰到終點。
  • cooldown 表可以避免程式碼在同一秒內執行很多次。
  • Stage 會回到 1,然後 LoadCharacter 會把玩家送回起點,再跑一次。

更多細節

  • 要把它變成金色,點 Properties 裡的 Color 欄位,選一個黃色。Material 設成 Neon 會讓它閃閃發亮。
  • Size 12, 1, 12 拿來當終點很合適。把它放在最後一次跳躍之後,比其他的稍微高一點。
  • 測試一下:按 F5,跑完關卡,踩上金色的零件。你會回到起點,Stage 又變回 1。
  • 設定 2 秒的冷卻時間,是因為踩一步就會多次碰到這個零件。
這一步我做不出來

先檢查這三件事

  • 每個零件和腳本的名字都要和教學裡的完全一樣,大小寫也要一樣。
  • 腳本要放在正確的物件裡面。看看程式碼框上方的標籤。
  • 從 Window 選單打開 Output 視窗。紅色的字會告訴你哪個腳本、哪一行有問題。

還是不行嗎?寫信給我們 →

9
步驟 9 / 10

測試你的遊戲

  1. 按 F5 開始玩。從頭到尾跑完整個關卡。
  2. 故意掉進岩漿。你應該會回到最後一個檢查點。
  3. 按 Shift+F5 停止。
  4. 從 Window 選單打開 Output 視窗。紅色的字表示腳本有錯誤,而且它會顯示第幾行。

更多細節

  • F5 會帶著你的角色開始遊戲。遊戲執行時,工具列會改變。
  • 遊戲執行時做的修改,停止後就會消失。一定要先按 Shift+F5,再去修改。
  • 在 Output 視窗裡點一下紅色的那一行,Studio 就會打開腳本,並跳到出錯的那一行。
  • 出問題時先檢查三件事:零件的名稱、腳本放在哪裡,還有 Anchored 有沒有打開。
常見的錯誤. 遊戲一開始平台就掉下去:Anchored 沒打開。碰到 Part 卻沒反應:腳本放錯物件了,或是名字打錯字。
這一步我做不出來

先檢查這三件事

  • 每個零件和腳本的名字都要和教學裡的完全一樣,大小寫也要一樣。
  • 腳本要放在正確的物件裡面。看看程式碼框上方的標籤。
  • 從 Window 選單打開 Output 視窗。紅色的字會告訴你哪個腳本、哪一行有問題。

還是不行嗎?寫信給我們 →

10
步驟 10 / 10

發布遊戲

  1. 選擇 File → Publish to Roblox。幫遊戲取個名字,再寫一小段說明。
  2. 在 Creator Hub 網站打開你的遊戲,填寫 Maturity 問卷。Roblox 要有這份問卷,其他人才能玩你的遊戲。
  3. 把遊戲設成 Public,然後把連結傳給朋友。

更多細節

  • 第一次發布時,Studio 會問你要一個名稱和一段說明。點 Create。之後用 File → Publish to Roblox 就能送出你最新的修改。
  • Creator Hub 就是網站 create.roblox.com。用同一個帳號登入,然後在清單裡點你的遊戲。
  • Maturity 問卷會問你的遊戲裡有什麼內容。請誠實回答。像這樣的 Obby 沒有暴力,也沒有嚇人的東西。
  • 遊戲公開之前,Roblox 可能還會要求更多資料,例如對帳號做年齡驗證。頁面會告訴你還缺什麼。
  • 如果你未滿 18 歲,請和爸媽一起完成這一步。
小提示. 請朋友來玩,你在旁邊看。他們卡住的地方,就是最先要修改的地方。
這一步我做不出來

先檢查這三件事

  • 每個零件和腳本的名字都要和教學裡的完全一樣,大小寫也要一樣。
  • 腳本要放在正確的物件裡面。看看程式碼框上方的標籤。
  • 從 Window 選單打開 Output 視窗。紅色的字會告訴你哪個腳本、哪一行有問題。

還是不行嗎?寫信給我們 →

現在自己改改看

  • 加上第四個檢查點。你要把它命名為什麼?
  • 做三個會消失的平台,讓它們用不同的速度閃爍。
  • 把岩漿改成只扣一半的生命值。提示:humanoid.Health = humanoid.Health - 50