童年经典,任天堂的红白机游戏《拳无虚发》,在 AI 姿态检测的加持下又有了新玩法。
近期一位油管博主 Ian Charnas,就把它改造成了一款体感游戏:
可以通过做出上勾拳,闪避,防御等动作控制游戏中的角色。
并且在线可玩,你做啥动作,游戏人物就做啥动作(可能因为动作不标准导致看起来并不一致……)。
基础动作一共有三个。
格挡:双手护头,可以抵消一次对方的攻击:
闪避:两臂置于身前转身。注意闪避的窗口时间很短,要把握好时机才能闪过。
出击:向上出拳,对方没有防御姿态的时候就可以出击了:
有了这三个动作,就可以一步步挑战各路拳手,最后打败最终 BOSS 泰森了。
童年游戏改造计划
不过要完成这样的改造,着实需要花费一番功夫。
因为《拳无虚发》发行于 1987 年,年代太过久远,硬件软件都必须重新调整。
再加上姿态检测部分,共有三部分内容需要改进。
先来说姿态检测部分。
Ian Charnas 使用的是谷歌研究院推出的姿态检测模型 MoveNet。
它的特点是可以又快又准地定位人体中的 17 个关键点,所以可以用来做实时的姿态检测分析。
为了实现姿态检测的目的,MoveNet 会并行计算以下几个部分:
首先根据热图定位出人体的几何中心。
然后由中心向外预测初始的关键点集。
再对关键点热图中每个像素点加权,确保不受背景人物的干扰。
最后给出关键点坐标的最终集合,并用局部 2D 偏移量进行修正。
感受一下 MoveNet 的效果:
有了姿态检测,就可以开始改进游戏本身了。
为了能让游戏在网页上运行,得先把它“拿出来”。
但是游戏发行的时候连 USB 接口都没有。
不过没关系,Charnas 直接拆机,把 CPU 拆出来,在 CPU 和主板之间加一块新电路。
然后就可以把二进制代码都下载出来了。
最后,需要用 Emscripten 把软件部分编成 JavaScrip,还必须拆解掉之前的代码恢复初始的源代码,以便在网页浏览器上运行。
在优化了软件之后,就可以来体验有氧运动了~
再加一点刺激体验:电击绑带。
在没有躲掉对方的攻击时会产生微弱的电击,这也太真实了。
Ian Charnas 在 Reddit 上发布这个项目之后,收获了许多网友的好评。
这就是未来啊
比很多健身连锁店好多了
Charnas 还表示可能接下来会做街头霸王:
这么好玩的游戏还不快来试试~
直接在线就可以试玩,点击最右边的按钮进入界面。
在线链接: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/