Skip to content

Latest commit

 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Grabby

一台可以在手機與電腦瀏覽器直接玩的物理娃娃機。把繩長、甩爪、爪力、摩擦力與玩偶堆疊做成可觀察、可調整,也真的會互相影響的遊戲系統。

Unity WebGL License

🎮 直接試玩: https://claw-machine-webgl.pages.dev/

我為什麼做 Grabby

我一直覺得娃娃機最好玩的地方,不只是把爪子移到目標上方再按下按鈕,而是移動停止時的擺動、繩子收放、三支爪子的受力,以及玩偶形狀和堆疊共同造成的結果。

Grabby 是我沿著這個想法持續調整的實驗:保留真實碰撞,不用「抓到就吸住」的方式作弊,並把原本藏在物理系統裡的參數整理成遊戲內可讀寫的控制介面。這樣不只可以玩,也能直接觀察「為什麼這次抓得住、下一次卻滑掉」。

目前可以玩到的內容

  • 真實繩索與甩爪:上方金屬導管、可收放繩索與動態爪頭共同形成擺動;下抓與收繩不是單純的位移動畫。
  • 兩段式爪力:分開設定初始爪力、收繩後第二段爪力與切換延遲,模擬機台抓起後降低力量的行為。
  • 即時力學讀值:顯示目前爪力、玩偶接觸反力,以及每支爪子的淨開力矩、角度與角速度。
  • 機台參數即時調整:金屬管、待機繩、下抓深度、下抓速度、爪子尺寸與摩擦力都能即時修改並保存。
  • 可配置流程:可選擇抓到後是否歸位、是否回洞口、是否顯示四面玻璃,並支援強制爪力除錯。
  • 獎品與台主操作:大熊、小玩偶與自訂長寬高方形體可指定位置落下,也能清空機台重新測試。
  • 實體掉落判定:獎品必須完整通過方形出口才算成功,而不是剛碰到洞口就直接得獎。
  • 手機與電腦操作:支援觸控按鈕、單指旋轉、雙指縮放,以及鍵盤方向鍵與 Enter
  • 瀏覽器版本:以 Unity WebGL 建置並部署至 Cloudflare Pages,手機可直接透過網址遊玩。

我在意的工程問題

問題 Grabby 的處理方式
繩子太短時容易數值爆炸或無限伸長 固定繩索兩端的物理關係,限制不合理行程,並讓導管與爪頭金屬維持可碰撞的停靠關係
爪力設為 0 卻仍可能靠幾何形狀卡住玩偶 保留碰撞與摩擦,分別觀察馬達閉合力、接觸反力與每支爪子的角度變化
只看總反力很難知道哪支爪子被撐開 將三支爪子的力矩、角度、角速度拆開顯示,方便逐爪分析
手機畫面容易被控制面板遮住 面板可收合、拖曳與記憶位置,遊戲視角支援觸控旋轉與縮放
WebGL 更新後瀏覽器可能混用舊資源 建置與部署流程固定輸出位置,正式站透過 Cloudflare Pages 發布與驗證

操作方式

電腦

  • 方向鍵:依目前視角移動爪車
  • Enter:開始下抓;下降途中再按一次可提前收爪
  • 滑鼠拖曳:旋轉視角
  • 滾輪:縮放視角

手機

  • 畫面虛擬方向鍵:移動爪車
  • 紅色下抓按鈕:開始下抓;下降途中再按一次可提前收爪
  • 單指拖曳:旋轉視角
  • 雙指縮放:調整遠近

技術組成

  • Unity 6000.2.10f1
  • C# / Unity Physics / Rigidbody / HingeJoint
  • Obi Rope 繩索模擬
  • TextMesh Pro 繁體中文介面
  • Unity WebGL
  • Cloudflare Pages / Pages Functions / Analytics Engine

在本機開啟

  1. 使用 Unity Hub 安裝 Unity 6000.2.10f1 與 WebGL Build Support。
  2. 開啟這個專案資料夾。
  3. 載入 Assets/Scenes/Game/Game.unity
  4. 進入 Play Mode,即可從遊戲內的控制面板調整機台參數。

批次建置 WebGL:

& "C:\Program Files\Unity\Hub\Editor\6000.2.10f1\Editor\Unity.exe" `
  -batchmode -quit `
  -projectPath "C:\path\to\Grabby" `
  -executeMethod CodexWebGLBuild.Build `
  -logFile "C:\path\to\Grabby\Logs\webgl-build.log"

輸出會放在 Builds/WebGL

專案來源與授權

Grabby 的原始碰撞架構與素材基礎來自 Unity3D Claw Machine,原作者為 Oleg Mikhailov,並依 MIT License 使用與延伸。

我在這個版本中持續加入繩索與爪力機制、力學讀值、機台調整、繁體中文介面、手機操作、獎品流程、WebGL 建置與雲端部署。原始授權文字保留於 LICENSE

延伸設計與實作:Ivan Wang

我喜歡把摸得到手感的物理互動做成能直接分享的網頁遊戲;如果你也在研究娃娃機、Unity 物理或 WebGL,歡迎試玩與交流。

About

我持續調整與分享的 Unity WebGL 物理娃娃機:真實繩索甩爪、兩段爪力、即時反力讀值、可調機台參數,支援手機觸控與電腦操作。

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages