欢迎进入Allbet官网。Allbet官网开放Allbet登录网址、Allbet开户、Allbet代理开户、Allbet电脑客户端、Allbet手机版下载等业务。

首页科技正文

usdt无需实名(www.caibao.it):程序员奶爸为儿子自制视觉互动游戏,相关代码已开源

admin2021-04-1078

USDT第三方支付平台

菜宝钱包(caibao.it)是使用TRC-20协议的Usdt第三方支付平台,Usdt收款平台、Usdt自动充提平台、usdt跑分平台。免费提供入金通道、Usdt钱包支付接口、Usdt自动充值接口、Usdt无需实名寄售回收。菜宝Usdt钱包一键生成Usdt钱包、一键调用API接口、一键无实名出售Usdt。

一位名为 Agustinus Nalwan 的奶爸曾经从事游戏开发、盘算机视觉、3D 动画等方面的事情,疫情时代,他为两岁半的儿子 Dexie 制作了一款名为 Griffin 的视觉互动游戏。

图丨 Dexie 的游戏体验

Griffin 本意为狮身鹰脸的神兽,在《哈利波特》中,格兰芬多学院(Gryffindor)即指金色的 Griffin。Nalwan 的儿子 Dexie 异常喜欢老鹰,以是 Nalwan 便以 Griffin 为原型制作了这样一款游戏。在 Medium 上,他宣布了制作历程的细节并宣布了游戏的开源代码。本文着重先容其制作历程。

图丨传说中的 griffin

所需模块:3D 游戏引擎;身体姿势估量;动作映射和手势识别;通讯系统。

所需硬件:NVIDIA Jetson AGX Xavier;显示器;Sony IMX327 摄像头;万能胶带。

图丨 NVIDIA Jetson AGX Xavier、Sony IMX327 摄像头和万能胶带

制作历程

一、构建 3D 游戏引擎

Griffin 系统用第三视角渲染 3D 天下,既可以看到雄鹰的同党随着玩家同步摆动,又可以加倍逼真地模拟真实航行。专业的 3D 游戏引擎有 Unity 和 Unreal,但都不能在 Ubuntu OS 或 ARM 上运行,因此 Nalwan 找到了一个可以在 OpenGL 上运行的 C++ 开源航行模拟器,并对其作出了一些修改。

首先,他将基于按键的航行控制系统改成了基于手势识别的飞控。

其次,他重构了静态 3D 模子,来相符鹰的身体结构。原始的航行器模子与鹰差别的是,航行器是一个保持稳定的形体,以机身为轴线转动,而鹰则有一对不停运动的同党。因此,他使用 3D 作图工具 Blender,改变了原始机身的骨骼动画系统,把机翼作为两个单独的 3D 模子加到机身上,作为鹰的两翼。

图丨 Blender 中编辑的鹰的 3D 模子

接着,他设置了差别的游戏状态,使得可以通过玩家的动作直接重新开始游戏。游戏中的鹰有两种状态,或站立在树枝上,或飞翔在蓝天里。

最后,他使用 libSFML 添加了音效,当鹰一腾飞,就会伴随着鹰的啸声和急促的风声。

二、构建身体姿势识别

这一模块是通过对身体各个部位的确认,来识别差别的身体姿势,以代表差别的游戏指令。通过检测手臂的姿态、脸部的位置等,系统就能确定玩家的特定姿势,触发动画中鹰的动作效果。

其中涉及到一个名为 OpenPose 的开源库,其包罗种种手势识别、姿势识别、面部识别的 AI 模子,而 Nalwan 使用了名为 COCO 的身体姿势模子。该模子含有 18 个骨骼节点捕捉器,能实时识别人体的 18 个枢纽,Griffin 用到了其中 6 个枢纽。

图丨 COCO 枢纽点图

OpenPose 建立在 PyTorch 框架之上,该框架在 NVIDIA AGX Xavier 中运行帧率很低,只有 4FPS。Nalwan 则使用 torch2trt 工具,将 PyTorch 模子移植到 TensorRT 中,大大加速了帧率,到达 100FPS。

图丨人体姿态识别

不外,该模子的枢纽识别有时刻会失足,偶然会识别到一些其他物件,而不是玩家本人。为此,Nalman 添加了辅助 AI 模子来解决这个问题,他使用 Amazon SageMaker JumpStart,这是 AWS 克日宣布的一款工具,可以容易在 TensorFlowHub 和 PyTorchHub 部署 AI 模子,一共有 150 多种型号可选。

图丨错误情形

这种 AI 辅助模子具有工具检测功效,可以确定玩家主体的界限框,这样系统就不会把一些杂物识别成人物枢纽了。

图丨人体边框以外的枢纽点被清扫在外

,

Usdt第三方支付接口

菜宝钱包(caibao.it)是使用TRC-20协议的Usdt第三方支付平台,Usdt收款平台、Usdt自动充提平台、usdt跑分平台。免费提供入金通道、Usdt钱包支付接口、Usdt自动充值接口、Usdt无需实名寄售回收。菜宝Usdt钱包一键生成Usdt钱包、一键调用API接口、一键无实名出售Usdt。

,

三、构建动作映射和手势识别

该模块将通过玩家的 6 个枢纽识别出游戏的种种指令:

第一,身体倾斜。玩家通过倾斜身体控制鹰在航行途中的转向。系统凭据手臂与水平面的角度来盘算倾斜水平,从而控制转向幅度。在这里 Nalwan 选择了肘枢纽作为参考点,而非腕枢纽,是由于腕枢纽经常出画或被遮挡。

第二,手臂旋转。在站立时旋转手臂,鹰也会随着拨动同党,这单纯是一个趣味性互动画面。系统凭据手肘与水平面的夹角盘算鹰翼的倾角,同时再增添 15 度,使得画面加倍生动。

图丨身体倾斜和手臂旋转的动作映射

第三,下蹲。这也是一个没有详细功效的动作,代表雄鹰腾飞前的起势动作。系统盘算颈部到鼻子的长度与肩膀长度的比例,作为蹲伏偏移量。蹲的幅度越大,颈部到鼻子的距离就越小,而肩膀长度稳定。之以是不直接盘算颈部到鼻子的长度,是由于玩家到相机的距离差别,这个长度也差别,会影响到就算效果,从而不能触发雄鹰的下蹲动作。

图丨下蹲动作映射

第四,腾飞姿势。该姿势识别通过两肩的中心点的探测,如果在一秒内该点上下移动的幅度大于阈值,则判断为腾飞姿势。触发腾飞姿势后,雄鹰就会跳出树枝,腾空而起。

第五,重新启动姿势。当玩家转身背对相机,左右肩交流位置,系统判断为重新启动。重新启动后,雄鹰将再次站在树枝上,守候腾飞。

图丨腾飞和复位姿势识别

四、整合系统

在完成了上述三个模块的基础上,下一步就是把三者整合起来。毗邻枢纽识别模块和手势识别模块不难,由于两者都是由 Python 编写。但把这两者和 3D 引擎连系就泛起了难题,由于 3D 引擎是由 C++ 编写的,而用 Python 接见 OpenGL 基本是不可能的。

为此,Nalwan 选择通过 socket 来整合该系统,这是 TCP 协议使用的一种低级通讯机制。由于两个模块在统一电脑中运行,延迟将被控制在 5 毫秒以内。通讯层由一个在 Python 应用中的客户端模块、和一个在 C++ 应用中的服务器模块组成。

图丨 Griffin 的整体架构图

校准与测试

一切准备好后,Nalwan 对 Griffin 系统进行了测试,在执行以上的节点捕捉、姿势识别和 3D 渲染的同时,整体的帧率到达 60FPS。

Nalwan 向儿子 Dexie 演示了若何玩这个游戏,儿子看着电视里的雄鹰和爸爸是一样的姿势,感应十分兴奋。Dexie 上手玩的时刻,一下子就玩了半个小时,饰演着雄鹰的身份,在蓝天下飞翔、在峡谷里逃避。

图丨 Dexie 的航行体验

对于 Nalwan 来说,这也是好事,一方面儿子玩的开心了,另一方面,儿子玩累了睡得很早,晚上 Nalwan 就不会被熊孩子打扰了。

总结

在 Nalwan 看来,这次制作游戏的实践也让他受益匪浅,他总结了如下的一些收获。

1.Torch2trt 能自动将 PyTorch 模子移植到 TensorRT 中去,大大加速 AI 模子的运行速率。

2.NVIDIA Jetson AGX Xavier 性能异常强劲,可以连贯地运行包罗 30 个实时 1080p 视频的视觉模子。

3.Amazon SageMaker JumpStart 提供了海量的盛行 AI 模子供开发者使用。

4.构建 3D 游戏引擎让他回忆起了之前作为游戏和影戏 SFX 开发者的身份,刷新了对自己 OpenGL、C++ 和盘算机图形学能力的认知。

5. 他本可以通过 Unity Engine 和 Kinect sensor 在 Xbox 中构建 Griffin,然则自己着手 DIY 一个游戏远比这有趣得多。

6. 在游戏里饰演一只老鹰是很累人的,要一直举着自己的手臂。然而,真正的老鹰会借助气流,保持它们滑翔的姿态。

-End-

参考:

网友评论

1条评论
  • 2021-04-10 00:00:40

    欧博allbet客户端欢迎进入欧博allbet客户端(Allbet Game),欧博官网是欧博集团的官方网站。欧博官网开放Allbet注册、Allbe代理、Allbet电脑客户端、Allbet手机版下载等业务。就是很好,谁损也没用

最新评论