用 ScriptGraph 把遊戲互動從程式碼拉進 Reality Composer Pro 3
這場 session 示範如何在 Reality Composer Pro 3 裡用節點式事件邏輯做出一個 visionOS 小遊戲:拖曳松鼠的堅果、加入物理感、讓角色反應,最後把 SwiftUI 對話泡泡接回場景。
Apple 想讓互動原型、手感調整與部分 gameplay logic 不必每次回到 Xcode;ScriptGraph 變成設計師與工程師共同調整 RealityKit 遊戲體驗的視覺層。
這支影片其實在拆四個創作摩擦
互動想法不該卡在 build loop
ScriptGraph 讓創作者用事件節點、資料節點與 set nodes 直接驅動 Entity / Component 狀態,並在 Reality Composer Pro 3 的 viewport 或 Vision Pro preview 裡即時試手感。
參數要可以邊玩邊調
影片用 public input variable 調整 dragSpeed,並說明 override 如何讓同一個 ScriptGraph 在不同 entity 上保有不同數值。
視覺節點也需要工程化
當 graph 開始變複雜,影片不是把線越拉越多,而是用 Subgraph 與 Prototyped Subgraph 把常用邏輯封裝成可重用節點。
no-code 不是排斥 Swift
ScriptGraph 可以送 custom scene event 給 Swift,SwiftUI attachment 再把 speech bubble 放回 Entity 上。價值在於用事件邊界協作。
從一個可拖曳物件長成一段 gameplay
先讓物件可被互動系統看見
Nut entity 加上 Input Target、Collision 與 Hover Effect,讓 gaze、pinch/drag 與 hover feedback 有明確命中區域。
用 On Drag 事件驅動 Transform
第一版把 On Drag 的 scene location 接到 Set Transform,快速證明拖曳邏輯可行。
把手感參數公開到 component 上
透過 input variable 與 override,設計者可以在同一份 graph 邏輯下替不同 entity 微調速度或阻尼。
從直接位移改成物理力
加入 Physics Body、Add Force、drag delta、重力與 damping 控制,讓拖曳變得能拋、能落下,也更像真的物體。
用事件讓角色與 UI 反應
Nut graph 發送 custom event,Squirrel graph 轉頭與改材質;最後用 scene event 讓 SwiftUI speech bubble 顯示角色台詞。
ScriptGraph 的核心模型是 event-driven component editing
影片把 ScriptGraph 定義成 Reality Composer Pro 的 node-based visual scripting。它不是完整取代 RealityKit 程式碼,而是讓互動邏輯從「事件觸發」開始,讀取事件資料,再透過 set nodes 改 Entity、Transform、PhysicsBodyComponent、Material parameter 等狀態。
導入時要先問:哪些互動需要快速試手感?哪些邏輯適合由設計者在場景編輯器調整?哪些仍應留在 Swift / RealityKit 系統層維護?
視覺 scripting 仍需要抽象邊界
影片進到進階技巧時,最重要的訊號是 Subgraph 與 Prototyped Subgraph。當 graph 開始包含「檢查 bool 是否變化」這類常用邏輯,如果不封裝,視覺 scripting 會很快變成難讀、難 review、難複用的線團。
Custom Event 是設計層與程式層的契約
Nut 被拖曳時,ScriptGraph 發出 nutIsDragged custom event,Squirrel 的 graph 接收位置資料並驅動轉向。到 SwiftUI 對話泡泡時,ScriptGraph 送出 squirrelTalk scene event,Swift 端 subscribe event 並更新 attachment。
事件名稱、payload 欄位與觸發時機要被當成 API 設計。當設計者可以新增事件,工程師也要能 review 它是否穩定、是否會被多次觸發、是否需要節流或狀態同步。
風險與遷移注意事項
nutPosition、sayThis 這類欄位要有穩定型別與 fallback。來源
主要來源為 Apple Developer 官方影片頁、官方 transcript、章節與 code snippet;YouTube 影片頁用於 iframe 與發布 metadata。官方頁:Design no-code games with Reality Composer Pro 3 - WWDC26。YouTube:WWDC26: Design no-code games with Reality Composer Pro 3 | Apple。
- →ScriptGraph 讓 Reality Composer Pro 3 成為互動原型與 gameplay feel 調整環境。
- →事件節點、Set nodes、public variables 與 overrides 是影片示範的核心工作流。
- →Subgraph / Prototyped Subgraph 是避免視覺 scripting 失控的工程化關鍵。
- →Custom Event 與 SwiftUI attachment 顯示 no-code 與 Swift code 應該用清楚事件契約協作。