童年經(jīng)典,任天堂的紅白機(jī)游戲《拳無虛發(fā)》,在 AI 姿態(tài)檢測的加持下又有了新玩法。
近期一位油管博主 Ian Charnas,就把它改造成了一款體感游戲:
可以通過做出上勾拳,閃避,防御等動作控制游戲中的角色。
并且在線可玩,你做啥動作,游戲人物就做啥動作(可能因?yàn)閯幼鞑粯?biāo)準(zhǔn)導(dǎo)致看起來并不一致……)。
基礎(chǔ)動作一共有三個。
格擋:雙手護(hù)頭,可以抵消一次對方的攻擊:
閃避:兩臂置于身前轉(zhuǎn)身。注意閃避的窗口時間很短,要把握好時機(jī)才能閃過。
出擊:向上出拳,對方?jīng)]有防御姿態(tài)的時候就可以出擊了:
有了這三個動作,就可以一步步挑戰(zhàn)各路拳手,最后打敗最終 BOSS 泰森了。
童年游戲改造計(jì)劃
不過要完成這樣的改造,著實(shí)需要花費(fèi)一番功夫。
因?yàn)椤度瓱o虛發(fā)》發(fā)行于 1987 年,年代太過久遠(yuǎn),硬件軟件都必須重新調(diào)整。
再加上姿態(tài)檢測部分,共有三部分內(nèi)容需要改進(jìn)。
先來說姿態(tài)檢測部分。
Ian Charnas 使用的是谷歌研究院推出的姿態(tài)檢測模型 MoveNet。
它的特點(diǎn)是可以又快又準(zhǔn)地定位人體中的 17 個關(guān)鍵點(diǎn),所以可以用來做實(shí)時的姿態(tài)檢測分析。
為了實(shí)現(xiàn)姿態(tài)檢測的目的,MoveNet 會并行計(jì)算以下幾個部分:
首先根據(jù)熱圖定位出人體的幾何中心。
然后由中心向外預(yù)測初始的關(guān)鍵點(diǎn)集。
再對關(guān)鍵點(diǎn)熱圖中每個像素點(diǎn)加權(quán),確保不受背景人物的干擾。
最后給出關(guān)鍵點(diǎn)坐標(biāo)的最終集合,并用局部 2D 偏移量進(jìn)行修正。
感受一下 MoveNet 的效果:
有了姿態(tài)檢測,就可以開始改進(jìn)游戲本身了。
為了能讓游戲在網(wǎng)頁上運(yùn)行,得先把它“拿出來”。
但是游戲發(fā)行的時候連 USB 接口都沒有。
不過沒關(guān)系,Charnas 直接拆機(jī),把 CPU 拆出來,在 CPU 和主板之間加一塊新電路。
然后就可以把二進(jìn)制代碼都下載出來了。
最后,需要用 Emscripten 把軟件部分編成 JavaScript,還必須拆解掉之前的代碼恢復(fù)初始的源代碼,以便在網(wǎng)頁瀏覽器上運(yùn)行。
在優(yōu)化了軟件之后,就可以來體驗(yàn)有氧運(yùn)動了~
再加一點(diǎn)刺激體驗(yàn):電擊綁帶。
在沒有躲掉對方的攻擊時會產(chǎn)生微弱的電擊,這也太真實(shí)了。
Ian Charnas 在 Reddit 上發(fā)布這個項(xiàng)目之后,收獲了許多網(wǎng)友的好評。
這就是未來啊
比很多健身連鎖店好多了
Charnas 還表示可能接下來會做街頭霸王:
這么好玩的游戲還不快來試試~
直接在線就可以試玩,點(diǎn)擊最右邊的按鈕進(jìn)入界面。
在線鏈接:https://reallifepunchout.com/
參考鏈接:
[1]https://reallifepunchout.com/
[2]https://www.reddit.com/r/MachineLearning/comments/qpenkt/project_google_movenet_realtime_pose_estimation/
[3]https://mp.weixin.qq.com/s/Ri1BnS5nbGbxDDemMIFuJA#at
[4]https://reallifepunchout.com/
廣告聲明:文內(nèi)含有的對外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。