iT邦幫忙

2026 iThome 鐵人賽

DAY 6
0
Software Development

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

第 6 章:生成模型、材質與視覺風格

  • 分享至 

  • xImage
  •  

本章目標

第 5 章完成了冒險島的 playable greybox。

你現在有一個可以走、可以跳、可以測試方向感的關卡,但它看起來還像灰色積木。這是正確的。遊戲世界應該先能玩,再變漂亮。

這一章要做的是第一輪視覺升級:

  • 替主要平台套用更符合島嶼風格的材質。
  • 使用 Assistant 或 Material Generator 產生可重複使用的材質。
  • 使用 Assistant 的 mesh 生成能力,建立少量裝飾物件。
  • 理解 MaterialVariantMeshPartSurfaceAppearance 與 asset 的差異。
  • 建立一套生成後的檢查流程,避免美術資產破壞玩法、效能或專案結構。

本章不做完整美術。

本章也不追求把場景塞滿。

你只要把 AI Adventure Island 從「灰盒關卡」推進到「看得出主題的 playable prototype」。

Assistant 產生材質變化並套用到場景物件。

圖 6-1 Assistant 可依 prompt 產生材質變化;套用前仍要比較可讀性、效能與整體視覺風格。

Context Pack

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

這些文件共同描述了四種視覺資產來源:

  • Assistant 直接根據 prompt 生成或修改場景物件。
  • Material Generator 根據文字生成 MaterialVariant
  • Texture Generator 為特定 mesh 生成 texture,並套用 SurfaceAppearance
  • Toolbox / Creator Store / Asset Manager 匯入或管理外部 assets。

本章會把這些工具放進同一個開發流程,而不是把它們當成互相競爭的功能。

你要建立的習慣是:

先定義視覺目的
再限制 AI 生成範圍
然後檢查 Instance、材質、碰撞、效能與來源
最後再決定哪些資產值得保留

開場情境

目前的 Workspace.AdventureIsland 大致像這樣:

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
    Collectibles
      Crystal_01
      Crystal_02
      Crystal_03
    NPCs
      NPC_QuestGiver_Placeholder

這個結構已經可以支撐玩法測試。

但畫面還缺少三件事:

  • 材質差異:玩家看不出沙地、石頭、草地或神秘遺跡的感覺。
  • 視覺引導:玩家需要靠顏色、形狀和道具知道哪裡是主路線、哪裡是支線。
  • 世界感:少量樹、岩石、水晶、石柱或木箱能讓空間看起來像一座島,而不是一組測試平台。

這章的原則是:

視覺要幫助讀者理解關卡,不要干擾關卡測試。

因此,我們會避免三種常見錯誤:

  • 用高複雜度模型取代所有灰盒平台,導致碰撞變得不可預測。
  • 插入大量 Creator Store 模型,卻沒有檢查 scripts、授權、命名和效能。
  • 讓 AI 重新設計整座島,破壞前一章已經能玩的路線。

本章的工作是增量升級,不是重新生成。

第一個 Prompt

先從最保守的視覺升級開始:材質與少量裝飾。

在 Assistant 輸入以下 prompt:

【Ch06 主任務|統一模型材質風格】
我正在製作 Roblox Studio 專案 AI Adventure Island。

目前 Workspace.AdventureIsland 裡已經有:
- World.Blockout_Parts
- Path_01 到 Path_05
- SidePlatform_01 到 SidePlatform_03
- GoalPlatform
- Collectibles.Crystal_01 到 Crystal_03
- NPCs.NPC_QuestGiver_Placeholder

請幫我做第一輪視覺升級,但不要改變 gameplay layout。

限制:
1. 不要新增任何 Script。
2. 不要刪除或重新命名既有的 Path、SidePlatform、GoalPlatform、Crystal、NPC。
3. 不要移動主要平台的位置,除非只是非常小的視覺對齊。
4. 不要修改玩家可走路線的碰撞設定。
5. 所有新增物件都要放在 AdventureIsland.World.Visuals 裡。

請完成:
1. 建立 AdventureIsland.World.Visuals folder。
2. 將 Path_01 到 Path_05 設定成適合冒險島路線的石板或土石風格。
3. 將 SidePlatform_01 到 SidePlatform_03 設定成比較自然的岩石或草地風格,讓玩家看得出它們是支線探索點。
4. 將 GoalPlatform 設定成神秘遺跡或終點祭壇風格。
5. 在 Visuals 裡新增少量非玩法裝飾物:
   - 3 到 5 個小岩石
   - 2 到 4 個低矮植物或樹叢
   - 2 個遺跡石柱
6. 裝飾物不要擋住主路線,不要放在玩家必須跳躍落地的位置。
7. 如果你使用 MeshPart 或 generated mesh,請讓它們 Anchored=true,並使用保守的 collision 設定。

完成後請列出:
- 你新增了哪些 Instance
- 你修改了哪些材質
- 哪些物件是 MeshPart
- 哪些物件可能需要我手動檢查 collision 或 performance
- Playtest 時我應該檢查什麼

這個 prompt 的重點不是「幫我變漂亮」。

它真正做的事是建立邊界:

  • 不動 layout。
  • 不寫 Script。
  • 新增物件集中放在 Visuals
  • 裝飾物只能輔助場景。
  • 生成後要回報可檢查項目。

這些限制會讓 Assistant 比較像製作團隊裡的美術助理,而不是重新接管整個專案的人。

Assistant 可能產生的結果

完成後,你希望 Explorer 接近這樣:

Workspace
  AdventureIsland
    World
      Blockout_Parts
        Path_01
        Path_02
        Path_03
        Path_04
        Path_05
        SidePlatform_01
        SidePlatform_02
        SidePlatform_03
        GoalPlatform
      Visuals
        Rocks
          Rock_Small_01
          Rock_Small_02
          Rock_Small_03
        Plants
          Bush_01
          Bush_02
          Bush_03
        Ruins
          RuinPillar_01
          RuinPillar_02
    Collectibles
      Crystal_01
      Crystal_02
      Crystal_03
    NPCs
      NPC_QuestGiver_Placeholder

你也可以接受 Assistant 建立 MaterialsGeneratedAssetsDecorations 等資料夾。

但你要避免這種結果:

Workspace
  Rock
  MeshPart
  MeshPart
  Tree
  Part
  Script
  Model

視覺資產如果散落在 Workspace 根目錄,後續要調整、刪除、檢查效能都會變麻煩。

這一章開始,你要把「生成成功」和「工程可維護」分開看。

Assistant 產生出看起來像樹的物件,不代表它已經適合放進專案。

它還需要被命名、分組、檢查、測試。

元件拆解

Material

Material 是 Roblox 中最基本的表面材質設定之一。

Part 來說,材質不只是顏色。它也會影響表面的質感與部分物理表現。常見的材質包含:

Material Manager 中將選定材質套用到已選取 Parts 的按鈕。

圖 6-2 在 Material Manager 選好材質後,用 Apply to Selected Parts 套用到目前物件;套用前先確認選取範圍,避免整批場景被改色。

  • Grass
  • Sand
  • Rock
  • Slate
  • Wood
  • Metal

在灰盒階段,你可能只用顏色區分平台。

進入視覺升級後,材質可以用來傳達用途:

主路線石板 = 玩家應該往前走
草地支線 = 可以探索,但不是主路線
遺跡材質 = 終點或重要地點
水晶附近較亮 = 提醒玩家這裡有可收集物

這比單純把所有東西變成「好看」更重要。

你可以讓 Assistant 直接修改 MaterialColor,例如:

請把 Path_01 到 Path_05 設定為 Slate 或 Rock 材質,顏色偏暖灰。
請把 SidePlatform_01 到 SidePlatform_03 設定為 Grass 或 Ground 材質,顏色比主路線略綠。
請把 GoalPlatform 設定為 Slate 或 Marble 材質,顏色更亮,讓它像終點祭壇。

這種基本材質調整不一定需要 AI 生成圖片。

很多時候,最穩的第一步就是使用 Roblox 內建材質,先讓關卡資訊變清楚。

MaterialVariant

當你想要更特定的材質風格時,可以使用 MaterialVariant

官方文件說明,Material Generator 可以根據文字 prompt 產生 custom material。產生後的結果會成為 MaterialVariant,可被套用到 Parts 上。

MaterialVariant 適合這些情境:

  • 你想要一種可重複使用的石板材質。
  • 你希望多個平台使用同一種自訂草地或沙地。
  • 你需要可以 tile 的表面,而不是只貼在單一 mesh 上的 texture。
  • 你想把視覺材質和物理材質一起管理。

本章可以建立三個自訂材質方向:

IslandPath_StoneMoss
  用途:Path_01 到 Path_05
  風格:有苔蘚的冒險島石板

IslandSide_GrassRock
  用途:SidePlatform_01 到 SidePlatform_03
  風格:草地與岩石混合的自然平台

IslandGoal_AncientSlate
  用途:GoalPlatform
  風格:古代遺跡石板,略微明亮

如果使用 Material Generator,你可以輸入類似:

mossy stone path tile, stylized adventure island, readable surface, not too noisy, game-ready

或:

ancient slate temple floor, subtle cracks, stylized, clean tiling, low visual noise

注意 prompt 裡的 readable surfacenot too noisyclean tiling

遊戲材質不只是要精細。玩家還要看得清楚地形邊界、可走區域和互動方向。

生成後要檢查:

  • 材質是否太花,導致平台邊緣看不清楚。
  • tiling 是否太密或太大。
  • 色彩是否和水晶、NPC、終點混在一起。
  • 是否套用到正確的 Part。
  • 是否需要調整 Studs Per Tile

如果材質很漂亮但讓玩家看不出路線,它就不適合現在使用。

Texture Generator 與 SurfaceAppearance

Texture Generator 適合處理另一種問題:替特定 mesh 產生 texture。

官方文件說明,Texture Generator 會針對選取的 MeshPart 或由 MeshPart 組成的 Model 產生 texture,並透過 SurfaceAppearance 套用。

這和 MaterialVariant 不一樣。

你可以用這個分法判斷:

MaterialVariant = 可重複鋪在很多 Part 上的材質
SurfaceAppearance = 貼合特定 MeshPart UV 的外觀

例如:

  • 石板平台:適合 MaterialVariant
  • 一顆特殊水晶:適合 SurfaceAppearance
  • 一座遺跡石柱:可能適合 SurfaceAppearance
  • 大量草地或沙地:適合 MaterialVariant

在本章,你不需要大量使用 Texture Generator。

更好的做法是選一個小範圍實驗:

請針對 RuinPillar_01 產生 stylized ancient stone texture。
保持顏色低飽和,不要有文字,不要有複雜圖案。

生成後,檢查兩件事:

  • texture 是否跟 mesh 的方向對得上。
  • SurfaceAppearance 是否只套用在應該套用的 MeshPart 上。

如果你還沒有穩定的 mesh,不要急著大量做 texture。

先把形狀和碰撞確認好,texture 才有意義。

MeshPart

MeshPart 是 Roblox 中用來呈現 mesh 的物件。

和一般 Part 相比,MeshPart 可以有更複雜的形狀。岩石、樹、石柱、寶箱、武器、建築裝飾,都常見於 mesh。

但 mesh 也帶來新的檢查項目:

  • triangle count
  • size
  • pivot
  • collision fidelity
  • level of detail
  • texture
  • asset ID
  • moderation status

Assistant 的 guide 說明,/generate_mesh 可以用文字 prompt 或圖片生成 mesh。如果你先選取一個 Part,它可以把這個 Part 當成 bounding box,讓生成結果符合既有位置和尺寸。

這很適合本章。

你可以先建立一個簡單 placeholder Part,命名為 RuinPillar_Bounds_01,放到你想要的地點。然後讓 Assistant 以它為範圍生成 mesh:

/generate_mesh stylized ancient stone pillar, broken top, adventure island ruins, low poly, max 2500 triangles

如果 Assistant 支援你在對話中指定更多條件,可以補充:

【Ch06 生成|依 Bounding Box 建立 Mesh】
請使用我選取的 Part 作為 bounding box。
生成後命名為 RuinPillar_01。
Anchored=true。
不要加入 Script。
不要讓 collision 擋住主路線。

這比直接要求「幫我放幾根漂亮柱子」穩定。

你先控制位置和尺寸,再讓 AI 生成外觀。

對遊戲開發來說,這是很重要的順序。

triangle count 與 segmentation

Assistant 的 mesh 生成可以設定最大 triangle count。預設值可能比你現在需要的還高。

在 playable prototype 階段,你不需要超高精度模型。

可以用這樣的規則:

小石頭:500 到 1500 triangles
低矮植物:1000 到 2500 triangles
遺跡石柱:1500 到 4000 triangles
重要展示物:視需要提高,但先不要大量使用

低 triangle count 的結果可能比較低面數,也可能比較 stylized。這不一定是缺點。對本書的冒險島專案來說,清楚、可讀、效能穩定比細節密度更重要。

如果你要產生比較複雜的物件,Assistant 的 segmentation 可以把生成 asset 分成最多 8 個部分。

例如一個小祭壇可以分成:

Base
TopStone
LeftPillar
RightPillar
CrystalHolder

這樣做的好處是:

  • 後續可以單獨調整某個部分。
  • 命名更清楚。
  • 材質可以分別套用。
  • 如果某部分碰撞有問題,可以單獨處理。

但 segmentation 也會讓 Explorer 變複雜。

所以本章只在重要裝飾物上使用,不要把每一顆小石頭都切成很多段。

Creator Store、Toolbox 與 Asset Manager

你不一定要全部自己生成。

Roblox Studio 的 Toolbox 可以瀏覽 Creator Store、Inventory、Recent、Creations 等來源。你可以從中加入模型、mesh、audio、image、plugin、font 等資產。

Asset Manager 則適合管理專案中的 assets,例如 image、mesh、audio 等。

但使用外部或社群資產時,要多一層檢查。

至少檢查:

  • 來源是否可信。
  • asset 是否符合使用權限。
  • asset 是否仍可在你的 experience 中使用。
  • 匯入或發布時是否通過 moderation。
  • model 裡是否包含 Script。
  • 命名是否符合專案結構。
  • mesh 是否太大或 triangle count 過高。
  • collision 是否會干擾玩家。

Toolbox 文件特別提醒,有些 assets 會包含 scripts。如果你只是想使用外觀,不想讓它執行行為,可以在 Explorer 中對物件使用 Disable Scripts。

這對 AI workflow 很重要。

Assistant 可能幫你插入一個看起來很適合的遺跡模型,但那個模型內部可能包含:

Script
LocalScript
Sound
ParticleEmitter
大量 MeshPart
未命名 Model

不要直接接受。

先把它移到 AdventureIsland.World.Visuals.Imported,再逐項檢查。

如果你不確定某個 asset 的來源或內容,先不要把它放進主要專案結構。

Playtest

視覺不應破壞可玩性

完成第一輪視覺升級後,立刻 Playtest。

這次 Playtest 不只檢查能不能走到終點,還要檢查視覺是否干擾玩法。

請用這份清單:

Spawn_Start
- 玩家出生後是否能立刻看出前進方向?
- 新增的植物、岩石或石柱是否擋住視線?

Path_01 到 Path_05
- 平台邊界是否清楚?
- 材質是否太花,讓玩家看不出落腳點?
- 裝飾物是否擋住跳躍路線?

SidePlatform_01 到 SidePlatform_03
- 支線平台是否看得出是可探索區域?
- 水晶是否比背景醒目?
- 玩家跳上去後是否會卡在裝飾 mesh 上?

GoalPlatform
- 終點是否比一般平台更有辨識度?
- 遺跡材質或石柱是否暗示這是重要位置?
- 玩家抵達時是否有足夠站立空間?

Performance
- 視角轉向有沒有明顯卡頓?
- 場景裡是否出現大量不必要的 MeshPart?
- 是否有看不見但仍存在的高複雜度物件?

如果你發現玩家被裝飾物卡住,不要先修 Script。

這章沒有 Script。

你應該先做三件事:

  • 移動裝飾物。
  • 調整 collision。
  • 把太複雜的裝飾換成簡單版本。

美術資產不能讓關卡變得比較難測。

修正 Prompt

如果 Assistant 生成的結果太散亂,可以用整理型 prompt:

【Ch06 修正 1|整理 Visuals 結構】
請整理 AdventureIsland.World.Visuals。

要求:
1. 所有岩石放到 Visuals.Rocks。
2. 所有植物放到 Visuals.Plants。
3. 所有遺跡裝飾放到 Visuals.Ruins。
4. 重新命名未命名或泛用名稱的 MeshPart,例如 Part、MeshPart、Model。
5. 不要刪除任何 Path、SidePlatform、GoalPlatform、Crystal、NPC。
6. 不要新增 Script。
7. 列出整理前後的 Explorer 階層差異。

如果材質太吵,可以用視覺修正 prompt:

【Ch06 修正 2|提高路徑材質可讀性】
目前 Path_01 到 Path_05 的材質太花,玩家不容易看出平台邊界。

請幫我降低主路線視覺噪音:
1. 保留冒險島石板風格。
2. 讓平台上表面比側面更清楚。
3. 顏色不要和 Crystal_01 到 Crystal_03 太接近。
4. 不要改變任何平台的位置、大小或碰撞。
5. 完成後說明你修改了哪些 Material、Color 或 MaterialVariant。

如果 mesh collision 有問題,可以用 collision 修正 prompt:

【Ch06 修正 3|移除裝飾 Mesh 碰撞】
玩家在 Visuals 裡的裝飾 mesh 附近會被卡住。

請檢查 AdventureIsland.World.Visuals 中所有 MeshPart:
1. 不要移動主要平台。
2. 不要改變 Path、SidePlatform、GoalPlatform 的碰撞。
3. 對純裝飾 MeshPart 使用保守 collision 設定,避免阻擋玩家。
4. 如果某個裝飾物靠主路線太近,請移到路線外側。
5. 列出你修改的 MeshPart 名稱與原因。

這些 prompt 都有共同特徵:

  • 描述問題。
  • 限定修改範圍。
  • 保護已完成的結構。
  • 要求 Assistant 回報變更。

這就是本書的核心方法。

你不是一次要求 AI 做出完成品,而是用 prompt 逐步收斂。

工程整理

完成本章後,請把 Explorer 整理到可持續開發的狀態。

建議結構如下:

AdventureIsland
  Spawn_Start
  World
    Blockout_Parts
      Path_01
      Path_02
      Path_03
      Path_04
      Path_05
      SidePlatform_01
      SidePlatform_02
      SidePlatform_03
      GoalPlatform
    Visuals
      Rocks
      Plants
      Ruins
      Imported
  Collectibles
    Crystal_01
    Crystal_02
    Crystal_03
  NPCs
    NPC_QuestGiver_Placeholder

如果你建立了 MaterialVariant,請記錄:

MaterialVariant name
用途
套用到哪些 Parts
是否由 Material Generator 產生
是否需要調整 Studs Per Tile

如果你使用了 generated mesh 或 Creator Store asset,請記錄:

Asset name
來源
用途
是否含 Script
是否已停用不需要的 Script
是否需要手動檢查授權或 moderation
是否可能影響 performance

這些紀錄現在看起來像額外工作。

但當你開始寫收集系統、NPC 任務、音效、UI、發布流程時,它會省下很多時間。

AI 生成會讓資產增加得很快。

工程整理就是避免專案被生成結果淹沒。

本章總結

這一章,你把 AI Adventure Island 從灰盒推進到第一輪視覺 prototype。

你學到:

  • Material 適合快速建立基本視覺差異。
  • MaterialVariant 適合可重複使用、可 tile 的自訂材質。
  • SurfaceAppearance 適合貼合特定 MeshPart 的 texture。
  • MeshPart 能呈現複雜形狀,但需要檢查 triangle count、collision、LOD 和來源。
  • Assistant 的 mesh generation 可以搭配 bounding box、triangle count 和 segmentation 控制結果。
  • Toolbox 和 Creator Store 可以補足資產來源,但要檢查 scripts、授權、moderation 和專案結構。
  • 視覺升級的第一原則是不能破壞可玩性。

本章完成後,你的島已經開始有主題、有材質、有裝飾。

下一步,我們要讓這些世界物件不只是看起來存在,而是開始形成可重用的模型與場景組件。


關於 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 點額度。名額有限,歡迎把握機會!


上一篇
第 5 章:用 Assistant 建立地形與關卡灰盒
下一篇
第 7 章:Procedural Model:可調整的 AI 模型
系列文
Roblox Studio AI 協作開發大全9
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言