iT邦幫忙

2026 iThome 鐵人賽

DAY 5
0
Software Development

Roblox Studio AI 協作開發大全系列 第 5

第 5 章:用 Assistant 建立地形與關卡灰盒

  • 分享至 

  • xImage
  •  

本章目標

第一部完成了四件事:

  • 你知道本書如何使用 Assistant。
  • 你完成了 Studio 與 AI 開發設定。
  • 你建立了 AI Adventure Island 的第一個場景骨架。
  • 你用 Planning Mode 把後續開發拆成可驗收階段。

第二部開始,我們要讓場景真的長出遊戲世界。

這一章的目標是把第 3 章的簡單平台路徑,變成更像「冒險島」的空間。你會建立兩層東西:

  • Terrain:島嶼、海面、沙地、草地這類自然環境。
  • Greybox:用簡單 Part 和 Model 規劃玩家行走、跳躍、探索的路線。

本章不追求漂亮。漂亮是第 6 章的事。

本章追求的是可玩性:

  • 玩家能從出生點開始。
  • 玩家能看出主要探索方向。
  • 玩家能走到水晶、NPC placeholder 和終點。
  • 平台不會掉落。
  • 平台不會讓玩家卡住。
  • 路線容易修改。

Roblox Studio 工具列中的 Terrain Editor。

圖 5-1 Terrain Editor 是建立與調整大型地形的主要入口;本章先用灰盒確認動線,再增加地形細節。

Context Pack

本章依據以下 Roblox 官方文件撰寫:

官方 core curriculum 對 Terrain 有一個很實用的提醒:地形創作是創意流程,筆刷、形狀、材質很難完全用 AI 精準重現。所以這一章不會假裝所有地形都能靠 Assistant 一鍵完成。

我們會採用更務實的分工:

  • Terrain:你在 Studio 裡用 Terrain Editor 建立大輪廓。
  • Greybox:讓 Assistant 協助產生可驗收、可命名、可修改的 Part / Model 結構。

開場情境

目前你的 Workspace.AdventureIsland 裡有:

  • Spawn_Start
  • Path_01Path_05
  • Crystal_01Crystal_03
  • NPC_QuestGiver_Placeholder
  • GoalPlatform

這是一條路,不是一座島。

這章要把它整理成一個更合理的探索空間:

  • 出生點在島的一側。
  • 玩家沿著平台或路徑前進。
  • 水晶放在路線旁,引導玩家探索。
  • NPC 在中段,讓玩家知道之後會有任務。
  • 終點在較高或較遠的平台上,讓玩家有方向感。

但我們先不做完整美術,不放最終樹木、岩石、橋、房子,也不加入收集 Script。

灰盒階段最怕兩件事:

  • 太早美化,導致修改路線成本變高。
  • 太早寫程式,導致 layout 還沒穩定就開始修 bug。

這章只處理空間。

第一個 Prompt

在開始之前,先決定 Terrain 由你手動建立,Assistant 負責整理灰盒。

你可以先手動使用 Terrain Editor 做出一個簡單島嶼:

  1. 開啟 Terrain Editor
  2. Draw 工具在 Spawn_Start 附近建立一塊沙地或草地。
  3. Flatten 工具把玩家出生和第一段路徑附近壓平。
  4. SculptSmooth 稍微整理邊緣。
  5. Paint 把中心區域塗成草地,邊緣保留沙地。
  6. 視需要用 Sea LevelFill 建立低於島面的水面。

Terrain Editor 的 Edit 分頁與 Draw 工具。

圖 5-2 先在 Terrain Editor 的 Edit 分頁選 Draw 建立大形,再用 Flatten、Sculpt、Smooth 與 Paint 逐步修整,不要一開始就追求細節。

手動 Terrain 完成後,再請 Assistant 建立灰盒。

輸入以下 prompt:

【Ch05 主任務|整理 Terrain 灰盒】
我目前有 Workspace.AdventureIsland,裡面已有:
- Spawn_Start
- Path_01 到 Path_05
- Crystal_01 到 Crystal_03
- NPC_QuestGiver_Placeholder
- GoalPlatform

我已經用 Terrain Editor 建立了一個簡單島嶼。請不要修改 Terrain,也不要新增 Script。

請幫我把 AdventureIsland 整理成更清楚的關卡灰盒結構:

1. 在 AdventureIsland 裡建立一個 Folder,名稱為 World。
2. 在 World 裡建立一個 Model,名稱為 Blockout_Parts。
3. 把 Path_01 到 Path_05 和 GoalPlatform 移到 Blockout_Parts 裡。
4. 如果現有 Path 平台太小或排列不清楚,請調整它們的 Size 和 Position,讓玩家可以從 Spawn_Start 一路走或跳到 GoalPlatform。
5. 請新增 3 個灰盒平台,名稱為 SidePlatform_01 到 SidePlatform_03。
   - 使用 Part
   - 放在主路線旁邊,作為可選探索點
   - 每個平台 Anchored=true,CanCollide=true
6. 請把 Crystal_01 到 Crystal_03 分別放在 SidePlatform_01 到 SidePlatform_03 上或旁邊。
7. 請把 NPC_QuestGiver_Placeholder 放在 Path_03 旁邊,讓玩家走主路線時容易看到。
8. 所有新建或修改的 Part 都要有清楚名稱,不要留下 Part、Part1、Part2 這類名稱。

完成後請列出:
- Explorer 中的最終階層
- 你調整了哪些 Instance
- 每個主要平台的用途
- Playtest 時我要檢查什麼

這個 prompt 把 Terrain 和 greybox 分開。

它也保留了第 3 章的東西,不要求 Assistant 重做整個場景。這很重要。AI 生成工作流不是每次都從零開始,而是在既有 DataModel 上做小步修改。

Assistant 可能產生的結果

完成後,你希望 Explorer 大致像這樣:

Workspace
  Terrain
  AdventureIsland
    Spawn_Start
    World
      Blockout_Parts
        Path_01
        Path_02
        Path_03
        Path_04
        Path_05
        SidePlatform_01
        SidePlatform_02
        SidePlatform_03
        GoalPlatform
    Crystal_01
    Crystal_02
    Crystal_03
    NPC_QuestGiver_Placeholder

你也可以接受 Assistant 多建立一個 Collectibles Folder 或 NPCs Folder,例如:

AdventureIsland
  World
    Blockout_Parts
  Collectibles
    Crystal_01
    Crystal_02
    Crystal_03
  NPCs
    NPC_QuestGiver_Placeholder

這甚至更乾淨。

但你不希望看到:

Workspace
  Part
  Part
  Script
  Model
  Crystal
  Path
  NPC

這種結果代表 Assistant 生成了東西,但沒有維護結構。後續章節會很難延伸。

元件拆解

Terrain

Terrain 適合處理自然環境。

官方 Terrain 文件說明,Studio Terrain 由 4x4x4 studs 的 voxels 組成。它適合用來生成和雕塑山丘、水、草地、沙地、平原等自然空間。

在 AI Adventure Island 中,Terrain 的用途是:

  • 建立島嶼輪廓。
  • 建立海面或水域。
  • 用草地、沙地、岩石等材質暗示環境。
  • 提供自然背景,而不是精準平台。

Terrain 不適合承擔本章所有 gameplay layout。

原因是 Terrain 的形狀更有機、更自由,但也較難精準指定「這個平台剛好離下一個平台 12 studs」。如果你要測試玩家能不能跳過去,用 Part 灰盒會更直接。

所以本書採用這個分工:

Terrain = 氣氛與自然環境
Part greybox = 可測試的玩法路線

這樣做可以讓你一邊保有冒險島的視覺輪廓,一邊用簡單幾何確保關卡可以玩。

Greybox

官方 greybox 文件說明,greyboxing 是在投入 scripting 或 final art assets 前,先用簡單形狀建立關卡。這樣可以快速測試 gameplay、找出 layout 問題,並在環境還容易修改時調整。

這正是本章的目的。

我們現在不需要最終橋樑、石柱、木板、寶箱。先用 Part 表示:

  • 主路線平台。
  • 側邊探索平台。
  • 終點。
  • 之後可能放 NPC 或水晶的位置。

如果你發現玩家跳不到某個平台,只要調整 Part 的 PositionSize。如果你已經把它換成精緻模型,修改就會麻煩很多。

灰盒不是偷懶。它是關卡設計裡很務實的中間層。

Model 與 Folder

第 3 章我們用 AdventureIsland Folder 管理整個場景。

第 5 章開始,場景裡的物件變多,需要更細的組織。

官方文件說,Model 適合幾何分組,像多個 Parts 組成的平台、建築或角色;如果只是沒有幾何意義的集合,則用 Folder 更合理。

因此本章使用:

AdventureIsland
  World
    Blockout_Parts

World 是一個 Folder,代表場景世界分類。

Blockout_Parts 是一個 Model,因為它包含一組幾何物件,這些物件一起構成目前的關卡灰盒。

後面第 6 章做視覺風格時,可以保留 greybox,也可以逐步用模型替換其中一部分。因為它們已經集中在 Blockout_Parts,替換和比較會比較容易。

Anchored、CanCollide、Size、Position

本章最常檢查的不是高深 API,而是四個屬性:

  • Anchored
  • CanCollide
  • Size
  • Position

對平台來說:

Anchored=true 表示它不會因物理模擬掉下去。

CanCollide=true 表示玩家可以站在上面,而不是穿過去。

Size 決定玩家可落腳面積。

Position 決定平台之間的距離、高度和探索節奏。

如果這四個屬性錯了,場景再漂亮也不能玩。

本章 Playtest 的大部分問題,都會回到這四個屬性。

Playtest

測空間,不測系統

按下 Play。

這一章只測空間:

  1. 玩家是否從 Spawn_Start 出生在合理位置?
  2. 玩家是否能走到 Path_01
  3. 玩家是否能沿主路線抵達 GoalPlatform
  4. 玩家是否看得到 SidePlatform_01SidePlatform_03
  5. 側邊平台是否像可探索點,而不是無意義散落?
  6. 水晶是否引導玩家探索,而不是擋住路?
  7. NPC placeholder 是否在主路線附近容易看到?
  8. 有沒有平台在 Play 時掉落?
  9. 有沒有平台碰撞失效,玩家穿過去?
  10. 從玩家視角看,路線是否太密、太空、太亂?

不要測:

  • 水晶能不能收集。
  • NPC 能不能對話。
  • 終點能不能完成關卡。
  • UI 能不能顯示任務。
  • 玩家資料能不能保存。

那些都不是本章範圍。

如果你現在就開始補那些功能,你會失去灰盒的價值。

修正 Prompt

Playtest 後,把觀察結果整理給 Assistant。

範例:

【Ch05 修正 1|調整灰盒路線】
我剛剛 Playtest 了 AdventureIsland 的灰盒場景。
請只修正灰盒 Part,不要修改 Terrain,不要新增 Script,不要新增最終美術 asset。

觀察結果:
1. Path_02 到 Path_03 距離太遠,玩家很難跳過去。
2. SidePlatform_02 太靠近主路線,看不出它是可選探索點。
3. Crystal_03 擋在 Path_04 中間,玩家容易卡住。
4. GoalPlatform 太小,玩家抵達時容易掉下去。

請修正:
1. 調整 Path_02、Path_03 的 Position 或 Size,讓玩家可以合理跳過去。
2. 把 SidePlatform_02 移到主路線右側,但保持玩家可看見。
3. 把 Crystal_03 移到 SidePlatform_03 上,不要擋主路線。
4. 放大 GoalPlatform,確保 Anchored=true、CanCollide=true。
5. 修正後列出你修改的 Instance 與 Properties。

這個 prompt 繼續維持本書的原則:

  • 指定觀察結果。
  • 限制修改範圍。
  • 不讓 Assistant 順手新增 Script。
  • 要求列出修改項目。

工程整理

灰盒完成後,做一次 Explorer 整理。

你希望主要結構接近:

Workspace
  AdventureIsland
    Spawn_Start
    World
      Blockout_Parts
    Collectibles
      Crystal_01
      Crystal_02
      Crystal_03
    NPCs
      NPC_QuestGiver_Placeholder

如果 Assistant 沒有建立 CollectiblesNPCs,你可以要求它整理:

【Ch05 整理|建立 Explorer 分類】
請整理 AdventureIsland 的 Explorer 結構。
不要改變任何物件位置、尺寸、顏色或功能。

請建立:
1. World Folder
2. Blockout_Parts Model
3. Collectibles Folder
4. NPCs Folder

把 Path_*、SidePlatform_*、GoalPlatform 放到 World > Blockout_Parts。
把 Crystal_01 到 Crystal_03 放到 Collectibles。
把 NPC_QuestGiver_Placeholder 放到 NPCs。

整理後列出最終階層。

這種整理很值得做。

後面第 8 章要讓場景互動時,你會很容易找到水晶和 NPC。第 9 章寫第一個 Script 時,也比較不會對一堆散落的 Part 猜來猜去。

本章成果

完成本章後,你應該擁有:

  • 一個基本島嶼 Terrain。
  • 一條可 Playtest 的主路線。
  • 三個側邊探索平台。
  • 放在探索點附近的水晶 placeholder。
  • 放在主路線中段的 NPC placeholder。
  • 一個更明顯、更安全的終點平台。
  • 整理過的 Explorer 結構。

這一章仍然沒有寫 Script。

這是刻意的。因為在場景空間還沒有穩定前寫 Script,通常會讓你同時處理「路不好走」和「程式壞了」兩種問題。先讓空間可玩,再讓系統可互動。

本章總結

這一章把 AI Adventure Island 從一條簡單平台路徑,推進成一個可以開始探索的島嶼灰盒。

你學到 Terrain 和 Part greybox 的分工:

Terrain = 自然環境與氣氛
Part greybox = 可測試的玩法路線

你也開始用 WorldBlockout_PartsCollectiblesNPCs 這類結構整理場景。這不是形式主義,而是為後面的互動、Script、UI 和任務系統鋪路。

下一章,我們會在這個灰盒基礎上加入視覺風格:材質、模型、mesh、Creator Store asset,以及 Assistant 的生成素材能力。到時候場景會開始從「能玩」變成「看起來像一個冒險島」。


關於 Wolke

嗨!我是 Wolke,曾任 Google Developer Expert(GDE,2019–2023)LINE API Expert

我熱衷於研究 AI Agent、n8n 自動化工作流與全端開發架構,致力於將 AI 技術轉化為真正能落地的生產力工具。

如果你喜歡這篇文章,歡迎透過以下方式與我交流:

📚 技術著作
《實用的 Gemini API 開發點子書》:帶你運用 Gemini App、Google AI Studio、Gemini CLI 與 Antigravity IDE,打造 AI Agent 與實用產品。

📝 技術部落格
歡迎追蹤我的 Medium,我會持續分享 Agentic Automation、架構設計與實際開發的踩坑心得。

🎤 技術講座與合作
我持續受邀至技術社群及研討會,分享 AI Agent、自動化工作流、DevOps 與全端開發實戰。

我曾於 DevOpsDays Taipei 2026 主講「不再只是寫腳本!讓 AI 代理人成為你的 SRE 最佳夥伴」工作坊。

如果你的企業、社群或學校正在尋找相關主題講者,歡迎私訊聯繫,洽談講座與工作坊合作!

🎮 我的 Roblox 遊戲

🎁 免費贈送 OpenAI 或 Claude AI 額度

為了鼓勵大家實際動手打造自己的 Roblox 體驗,我每個月會開放:

  • 10 個名額
  • 每人 50 點 AI 額度
  • 名額送完為止

參加方式:

  1. 訂閱本系列文章。
  2. 分享任一篇系列文章。
  3. 私訊分享截圖及你的 AI 帳號 Email。

確認完成後,我會邀請你加入並設定 50 點額度。名額有限,歡迎把握機會!


上一篇
第 4 章:Planning Mode:先讓 AI 寫計畫再動手
下一篇
第 6 章:生成模型、材質與視覺風格
系列文
Roblox Studio AI 協作開發大全9
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言