童年經典,任天堂的紅白機遊戲《拳無虛發》,在AI姿態檢測的加持下又有了新玩法。
作者| 行早
近期一位油管博主Ian Charnas,就把它改造成了一款體感遊戲:
並且在線可玩,你做啥動作,遊戲人物就做啥動作(可能因為動作不標準導致看起來並不一致……)。
基礎動作一共有三個。
格擋:雙手護頭,可以抵消一次對方的攻擊:
閃避:兩臂置於身前轉身。注意閃避的窗口時間很短,要把握好時機才能閃過。
出擊:向上出拳,對方沒有防禦姿態的時候就可以出擊了:
有了這三個動作,就可以一步步挑戰各路拳手,最後打敗最終BOSS泰森了。
童年遊戲改造計劃
不過要完成這樣的改造,着實需要花費一番功夫。
因為《拳無虛發》發行於1987年,年代太過久遠,硬件軟件都必須重新調整。
再加上姿態檢測部分,共有三部分內容需要改進。
先來說姿態檢測部分。
Ian Charnas使用的是谷歌研究院推出的姿態檢測模型MoveNet。
它的特點是可以又快又准地定位人體中的17個關鍵點,所以可以用來做實時的姿態檢測分析。
為了實現姿態檢測的目的,MoveNet會并行計算以下幾個部分:
首先根據熱圖定位出人體的幾何中心。
然後由中心向外預測初始的關鍵點集。
再對關鍵點熱圖中每個像素點加權,確保不受背景人物的干擾。
最後給出關鍵點坐標的最終集合,並用局部2D偏移量進行修正。
感受一下MoveNet的效果:
有了姿態檢測,就可以開始改進遊戲本身了。
為了能讓遊戲在網頁上運行,得先把它“拿出來”。
但是遊戲發行的時候連USB接口都沒有。
不過沒關係,Charnas直接拆機,把CPU拆出來,在CPU和主板之間加一塊新電路。
然後就可以把二進制代碼都下載出來了。
最後,需要用Emscripten把軟件部分編成JavaScrip,還必須拆解掉之前的代碼恢復初始的源代碼,以便在網頁瀏覽器上運行。
在優化了軟件之後,就可以來體驗有氧運動了~
再加一點刺激體驗:電擊綁帶。
在沒有躲掉對方的攻擊時會產生微弱的電擊,這也太真實了。
Ian Charnas在Reddit上發布這個項目之後,收穫了許多網友的好評。
這就是未來啊
比很多健身連鎖店好多了
Charnas還表示可能接下來會做街頭霸王:
這麼好玩的遊戲還不快來試試~