All tutorials

將 prop 帶入 Engine

Intermediate 15 min engine

將已上材質的 asset 匯入場景,賦予它物理元件,在 Play 模式下測試,並在不離開應用程式的情況下把它送回去修改。

你將學到什麼#

你會把你的 prop 放進 Engine 裡一個真實的場景,賦予它物理效果,在 Play 模式下測試,並使用能把它送回 SculptPigment 修改的雙向流程。

開始之前#

  • 先完成《在 Pigment 中為 prop 上材質》,或準備好任何已上材質的 mesh。
  • Engine 是需要贊助的模組。瀏覽器有 WebGPU 時它會使用 WebGPU,沒有時則退回 WebGL2,所以不管哪一種情況它都能開啟。
  • 值得了解的一點:Engine 是一個完整的遊戲引擎。一個場景是 Scene Graph 裡的一棵實體樹,每個實體都是一組元件(Transform、Model、Light、Camera、RigidBody、Collider、Script)。

步驟#

  1. 開啟 Engine,選擇從空白場景開始,或載入其中一個示範範本,直接取得現成的地面和燈光。

    警告: 示範場景不會被儲存。如果你在它之上繼續建構,離開模組前請先把它另存為自己的專案。

  2. 匯入你的 prop。從 Pigment 把它送過來,或直接匯入 .glb 檔案。它抵達時會是一個已經附有 Transform 和 Model 元件的實體。

  3. Scene Graph 裡選取這個實體,在 inspector 中檢查它的 Transform。現在就把它放到地面上並設定合理的縮放,因為之後的每一步都會繼承這個設定。

  4. Add Component 加入一個 Collider。少了它,prop 雖然有看得見的形狀,卻沒有任何東西讓物理系統碰得到。

    提示: 讓碰撞體符合用途。用一個近似 prop 形狀的簡單形狀,執行期的成本比精確的 mesh 碰撞體低,而對一顆岩石來說,沒有人會注意到差異。

  5. 如果 prop 應該受物理影響,就加入一個 Rigidbody。對於永遠不會移動的場景物件,不要加,因為靜態幾何體的成本更低。

  6. 按下 Play。這個模式下物理是真的在運作,所以帶有 Rigidbody 和碰撞體的 prop 會落下、著地並靜止下來。

  7. 觀察落地時發生的狀況。一個穿過地板、抖動或用奇怪方式彈跳的 prop,代表它的碰撞體或質量設定有問題。

  8. 按下停止並調整。Play 模式是用來測試的,不是用來製作的。

  9. 不用離開 Engine 就能修正建模問題:在 Scene Graph 裡右鍵點擊 prop,用 Edit inSculptPigmentRetopo 中開啟它。你的修改完成後會回到原本的位置,直接更新這個 prop。

    提示: 你可以用 Shift+click 或在 Mac 上用 Cmd+click 進行多選,把好幾個物件合併送出。在 Mac 上,Ctrl+click 會開啟右鍵選單,不會改變選取狀態。

  10. 儲存場景,並用 Save to Cloud 讓專案跟著你的帳號走。

結果#

你的 prop 現在存在於一個可遊玩的場景裡:它有實際的物理存在感,會在真實物理下產生行為,而且你隨時都能把它送回上游修改,不需要匯出或重新匯入任何東西。

更進一步#

  • 用腳本賦予 prop 行為。Engine 提供了生命週期鉤子,例如 startupdate(dt)onCollisiononTrigger,這些來自一個橫跨 50 個命名空間、共 538 個成員的 API。
  • 如果你想用視覺化的方式建立邏輯,而不是用寫的,可以試試 Blueprints
  • 探索地形編輯器和 Sky & Atmosphere 面板,在 prop 周圍打造一個環境。