Scratch x Teachable Machine:帶孩子做出 AI 體感遊戲的完整教學
上次在兒童程式營教小朋友做 AI 遊戲的時候,有個孩子做完之後大喊「我用手揮一下角色就會跳起來耶!」那個興奮的表情我到現在還記得。今天就來分享怎麼用 Scratch 搭配 Google Teachable Machine,帶孩子做出一個真正的 AI 體感遊戲。
什麼是 AI 體感遊戲
體感遊戲就是用身體動作來控制遊戲,不需要鍵盤也不需要滑鼠。想像一下,你在鏡頭前揮手,遊戲裡的角色就會跟著揮手;你蹲下,角色就閃避障礙物。聽起來很酷對吧?
以前要做這種東西需要很複雜的程式碼跟影像辨識技術,但現在有了 Google 的 Teachable Machine,連小學生都能自己訓練 AI 模型。再搭配 Scratch 的視覺化程式積木,整個過程就變得超級平易近人。
之前我們有做過圖像辨識遊戲的教學,那篇是用圖片分類來做的。今天這篇會更進一步,用「姿勢辨識」來做體感控制,玩起來更有趣!
認識工具:Teachable Machine 與 Scratch
Teachable Machine 是 Google 開發的免費線上工具,讓你不寫任何程式碼就能訓練機器學習模型。它支援三種類型:圖片分類、聲音分類跟姿勢辨識。我們今天會用到的是「姿勢」(Pose)專案。
Scratch 就不用多介紹了,MIT 開發的視覺化程式語言,用積木拼接的方式寫程式。重點是它有一個叫 TM2Scratch 的擴充模組,可以直接把 Teachable Machine 訓練好的模型接進來用。
這兩個工具都是免費的,只需要一台有鏡頭的電腦就能開始。不需要安裝任何東西,全部在瀏覽器裡完成。
Step 1:訓練你的動作辨識模型
首先打開 Teachable Machine 的網站,選「姿勢專案」(Pose Project)。接下來你需要設定幾個「類別」(Class),每個類別代表一個動作。
建議從三個基本動作開始:站立不動(idle)、雙手舉高(jump)、蹲下(duck)。每個動作需要錄製大約 50 到 100 張訓練樣本。錄製的時候記得稍微變化一下角度跟距離,這樣模型會比較準。
一個小技巧:背景盡量單純乾淨,不要有太多雜物。如果背景太複雜,模型可能會把背景的東西也當成判斷依據,導致辨識不準確。
訓練完成後,先在 Teachable Machine 的預覽畫面測試一下。如果辨識率不夠高,可以增加訓練樣本或是調整動作的差異性。模型滿意後,點「Export Model」匯出,選「Upload」把模型上傳到雲端,會拿到一個模型的網址。
Step 2:把模型接進 Scratch
接下來打開 Scratch 的 TM2Scratch 版本(可以在網路上搜尋 TM2Scratch 找到)。在左下角的擴充模組中找到 Teachable Machine 的積木,把剛才拿到的模型網址貼進去。
連接成功後,你就能在 Scratch 裡面使用這些積木了。最關鍵的是「when class ○○ detected」這個事件積木,它會在偵測到特定動作的時候觸發。
在接模型之前,建議先確認鏡頭有正常啟動。有時候瀏覽器會擋攝影機的權限,記得要允許。
Step 3:設計體感遊戲機制
模型接好了,接下來就是最好玩的部分——設計遊戲!我來分享一個簡單但超好玩的「閃避障礙物」遊戲。
遊戲規則很簡單:畫面右邊會不斷飛出障礙物,玩家要透過舉手(跳躍)或蹲下來閃避。站著不動的時候角色就站在中間。
具體的 Scratch 積木邏輯:當偵測到「jump」動作時,角色 Y 座標增加 100(跳起來),偵測到「duck」時 Y 座標減少 100(蹲下),偵測到「idle」時回到原本位置。障礙物則是用另一個角色,設定好移動速度跟隨機高度就好。
碰撞偵測用 Scratch 內建的「碰到」積木就能實現,碰到障礙物就遊戲結束並顯示分數。分數的計算可以用一個變數,每躲過一個障礙物就加一分。
常見問題與除錯技巧
辨識不靈敏怎麼辦?最常見的原因是訓練樣本不夠或是環境光線不足。試著增加訓練樣本到 200 張以上,然後確保房間光線充足。另外,動作之間的差異要夠大,如果兩個動作太相似,模型會搞混。
延遲太嚴重?Teachable Machine 的模型是在瀏覽器裡跑的,如果電腦比較舊,可能會有延遲。建議關掉不必要的分頁跟程式,把資源留給 Scratch。
鏡頭畫面是反的?這是正常的,因為鏡頭通常是鏡像模式。如果覺得操作起來不直覺,可以在 Teachable Machine 訓練的時候就用鏡像畫面訓練,這樣模型就會適應鏡像的動作。
如果你想用硬體感測器來取代鏡頭辨識,也可以參考micro:bit 結合 Scratch 的教學,用加速度感測器來偵測動作。
延伸創意:更多 AI 遊戲點子
體感閃避遊戲只是個開始,這個技術組合能做的事情多得很:
AI 舞蹈遊戲:設定幾個舞蹈姿勢,玩家要跟著螢幕上的提示做出正確姿勢,類似 Just Dance 的概念。
手勢音樂盒:不同的手勢觸發不同的音效或音樂片段,孩子可以用身體「演奏」音樂。
AI 體適能挑戰:設定開合跳、深蹲等動作,讓 AI 來計算做了幾下,做成健身小遊戲。
如果孩子對遊戲開發越來越有興趣,也可以挑戰看看Roblox Studio 的 3D 遊戲開發,或是用 Python Pygame 做更進階的遊戲。不管用什麼工具,最重要的是讓孩子在玩的過程中學到東西,培養對科技的好奇心。
AI 加上程式設計再加上遊戲,這三者結合在一起的威力真的很驚人。看到孩子們用自己的身體控制自己寫的遊戲時,那種成就感是任何分數都比不上的。趕快帶你家的小朋友一起試試吧!
繼續閱讀
Scratch 音樂節奏遊戲教學:帶孩子用程式做出自己的節拍遊戲
相關文章
你可能也喜歡
探索其他領域的精選好文