前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >从 Pokémon Go 谈 AR 游戏开发

从 Pokémon Go 谈 AR 游戏开发

作者头像
WeTest质量开放平台团队
修改于 2017-06-30 08:58:41
修改于 2017-06-30 08:58:41
2.9K0
举报

Pokémon Go 一出,新鲜的玩法、经典的 IP 效应让这款使用了 Unity 以及 AR 技术的手游火遍了“大洋”南北。可惜的是这款新鲜的游戏还没有惠及中国市场的玩家们。腾讯内部的 AR 专家秉持着“一言不合就自己开发”的原则,自发对 AR 游戏进行了预研,本文将通过在 Unity 中对 OpenCV 及 Vuforia 库的使用,简单介绍制作 AR 游戏的一系列流程。

如果你在街头巷尾

看到这样拿着手机到处晃悠的景象

他们一定是在抓小精灵!

AR 技术是什么?

增强现实(Augmented Reality,简称 AR ),是一种实时地计算摄影机影像的位置及角度并加上相应图像的技术,这种技术的目标是在屏幕上把虚拟世界套在现实世界并进行互动。简单的说,在 Pokémon Go 这款 AR 游戏中,精灵是虚拟的, 地图是真实的,虚拟的精灵出现在了真实的地图之中,给了玩家十分新鲜的体验。

于是 Pokemon Go 拯救了无数的死宅们,大家上街抓

上厕所也抓

不过,Pokémon Go现在还拯救不了国内的死宅们,

目前Pokémon Go在国内已被锁区,

而解锁的时间还不确定......

然而!腾讯的技术大牛在遇到新鲜事物的时候是拦不住的!秉持着“一言不合就自己开发”的原则,大牛决定,自己做一个 AR 游戏!!

Pokémon Go 的游戏引擎用到了 Unity 技术,在腾讯大牛预研的 AR 游戏中,分别用到了 OpenCV 及 Vuforia 库,下面将简单分享下两个库的使用。

想收服小萝莉吗?

一.OpenCV 篇

OpenCV 是英特尔发起并参与开发的计算机视觉库,在图像处理、模式识别及计算机视觉领域被广泛使用,这里就不做过多介绍了。

OpenCVForUnity

Unity 有现成的 OpenCV 库,使用起来很方便。

具体使用方法:

  1. 导入 OpenCV for Unity.unitypackage
  2. 将导入后 OpenCVForUnity 目录下的 Plugins 和 StreamingAssets 文件夹移到 Assets 目录下

OpenCVForUnity 目录下的 Samples 里有很多写好的示例,比如阈值分割、霍夫变换检测直线、人脸检测等,如果想运行需要在 Build Settings 里添加好对应场景,其中有的需要用到摄像头。

OpenCV 在 Unity 中的应用

背景是组里基于 Unity 做的一个 AR 小游戏——打飞碟,其中使用 OpenCV 实现了红外效果及人脸检测:

红外模式:

当场景中出现了半透明的敌机时,可开启红外模式看清隐形敌机的位置。

这里主要用 OpenCV 对摄像头获取的图像做了颜色变换:首先将图像转为灰度图( cvtColor ),然后基于某个色谱,根据不同的灰度值映射为不同的颜色( applyColorMap )。

对于此类滤镜也可以通过 Unity 的 Shader 来做(如下图),相比 OpenCV 性能要好些,但 OpenCV 做图像处理更灵活,也可以尽量去优化:

  1. 限制图像的更新频率;
  2. 降低图像的分辨率(OpenCV可以用resize);

  1. 对于必要的Mat可以在类初始化时申请好空间,不用每次处理图像都申请再释放;
  2. 利用多线程(主要用在了人脸检测模块)。

好友助战:

遇到强大Boss时,可将摄像头对准好友(人脸),当检测到人脸时,会出现好友助战剧情,协助攻击Boss。

面具怪:

同好友助战模式也利用了人脸检测,当在图像中检测到人脸时,会出现附着在人脸上的面具怪,并跟随其移动。

首先,简单区分下人脸检测和人脸识别这两个概念:人脸检测是找到图像中人脸的位置、大小,而人脸识别不仅要检测出人脸,还要知道这人是谁。

OpenCVForUnity 中的人脸检测示例用到了基于 Haar 特征及 LBP 特征的两种分类器来检测人脸(已经训练好的分类器,想自己训练或者自己实现性能更优的算法可以去咨询优图~),同时也用到了多线程来异步计算,对于在性能较差的移动设备上来实现人脸检测具有较好的参考性。

对于移动设备,人脸检测计算量较大(Unity 本身开销已经不小了),所以不能对每帧图像都进行检测,可以利用多线程进行异步计算:

好友助战模式是检测到人脸后,在人脸上添加一些装饰物(copyTo 用装饰物的 PNG 图片做掩膜)作为剧情的一部分;而面具怪则是根据检测到人脸的位置和大小来改变怪物的位置和大小。此外,如果进一步需要进行人脸识别,那不建议在移动设备上做,性能肯定吃不消了,可以用云,将计算放在服务器上。

二.Vuforia 篇

Vuforia 是高通的增强现实库,对 unity 支持好,使用起来简单方便,如下图所示为组内使用 Unity+Vuforia 开发的坦克大战 AR 版:通过识别预先设定的标志物(此处为 lena 头像),从而确定游戏世界所在的平面及大小,和实景结合展现出坦克大战游戏场景。

简要介绍下 Vuforia 在 Unity 中的使用:

  • 在官网注册账号后,首先注册一个 License ,并记下 License Key ;
  • 下载 Vuforia 库导入到 Unity 中;

  • 选取一张待识别图片上传到 Target Manager,如下图所示 创建 Database:
    添加待识别图片:
  • 生成库后,注意 Rating 的星级,越高越好(识别度越高);将库下载下来导入到 Unity 中。

  • 在 Unity 中搜索 ARCamera 和 ImageTarget ,并拖到场景中,ARCamera 中的 App License Key 填入刚才申请的 License Key , Database Load Behaviour( Script )中勾选” Load QQ Database ”(这里根据 Database 的名字有所不同)和” Activate ”,在 ImageTarget 中的 Database 选择刚才申请的识别图片Database的名字( QQ ),此时场景中会出现识别图片
  • 根据识别图片( ImageTarget )的相对位置将游戏物体或场景作为 ImageTarget 的子物体进行摆放。

  • 按照上述步骤即可在Unity中简单使用Vuforia库,如果有更多需求可以去了解下它的其他功能及API;例如,为了增强识别效果,可以加入摄像头的对焦:

Vuforia.CameraDevice.Instance.SetFocusMode(Vuforia.CameraDevice.FocusMode.FOCUS_MODE_TRIGGERAUTO);

在实际使用中, Vufroia 库简单易用,识别准确度较高,对手机性能消耗适中,但构建的虚拟场景容易因环境干扰发生一定抖动,影响玩家游戏体验;可同时识别多个物体,但准确度有所降低;长时间游戏会导致摄像头发烫。

为了避免以上手游性能方面对游戏的负面影响,可以利用一些现成的测试工具进行深度的检测,腾讯 WeTest 平台下的 Cube 工具可以帮助开发者发现游戏内分类资源的一个占用情况,尤其是对游戏场景中的 FPS、CPU、PSS 的变化趋势重点关注,帮助在游戏开发过程中不断改善玩家的体验。目前功能还在免费开放中。

体验地址:http://wetest.qq.com/cube

关于测试报告的问题:http://wetest.qq.com/guide/view/?id=267

使用帮助:http://wetest.qq.com/guide/view/?id=266

常见问题:http://wetest.qq.com/guide/view/?id=268

本文由腾讯WeTest授权发布,如需转载请联系腾讯WeTest获得授权。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Pokémon GO国内玩不了?腾讯AR专家教你自己做!
Pokémon Go一出,新鲜的玩法、经典的IP效应让这款使用了Unity以及AR技术的手游火遍了“大洋”南北。可惜的是这款新鲜的游戏还没有惠及中国市场的玩家们。腾讯内部的AR专家秉持着“一言不合就自己开发”的原则,自发对AR游戏进行了预研,本文将通过在Unity中对OpenCV及Vuforia库的使用,简单介绍制作AR游戏的一系列流程。
WeTest质量开放平台团队
2018/10/29
1.2K0
一、Vuforia_AR
        增强现实(Augmented Reality,简称AR),是一种将虚拟信息与真实世界巧妙融合的技术,广泛运用了多媒体、三维建模、实时跟踪及注册、智能交互、传感等多种技术手段,将计算机生成的文字、图像、三维模型、音乐、视频等虚拟信息模拟仿真后,应用到真实世界中,两种信息互为补充,从而实现对真实世界的“增强”。
酱紫安
2020/05/27
1.8K0
AR开发--(一)图片识别
这几天做AR的项目,所以用到了手势识别的功能,虽然之前已经通过相关的设计进行了相关的开发。但是本着技术的角度,我们需要更先进的技术支撑来满足以后需求。所以将代码贡献出来,作为参考!
孙寅
2020/06/02
3.6K0
动感光波发射!Unity AR开发之 3d 物体识别小记
本文介绍了如何使用Unity和Vuforia进行3D物体识别,通过在Unity中配置识别图,将3D物体放入识别图网格中,然后利用Vuforia的Object Recognition API进行识别。在识别过程中,可以使用Vuforia的Unity SDK提供的功能,如自动对焦,增强现实等。
郭诗雅
2017/07/14
6.7K1
动感光波发射!Unity AR开发之 3d 物体识别小记
【盘点】2016年AR大事件 苹果iPhone7也能上榜?
2016年AR大事件: Snapchat Ads、Pokémon Go、Microsoft Hololens、Tango、Apple iPhone 7 全文较长,建议阅读时间3分钟。 虽然虚拟现实(Virtual Reality,下文简称VR)在今年拥有激高的曝光度,不过相比VR之略显激进的好高骛远,增强现实(Augmented Reality,下文简称AR)才真正称得上脚踏实地,完成了里程碑式的跃进。无论是从新玩法的开发还是从大众接受度上看,2016年都算是AR的崛起之年 。   下面本文就试将列举
钱塘数据
2018/03/02
1.2K0
【盘点】2016年AR大事件 苹果iPhone7也能上榜?
硬纪元干货 | 视+AR联合创始人涂意:AR将是下一代计算平台
AR的呈现比VR更加容易,也正是如此AR带来的流量转化和交易转化会更加明显。 5月18日,由镁客网、IT耳朵联合举办的“2017中国VR/AR产业应用创新峰会”在北京朗丽兹西山花园酒店盛大举行。来自全
镁客网
2018/05/28
6950
Vuforia-PocketCat丨2. 完成Vuforia的自定义目标识别
本节讲述自定义目标识别的操作步骤和解析Vuforia自定义目标识别的代码含义,为后面设计做基础
星河造梦坊官方
2024/08/14
2130
Vuforia-PocketCat丨2. 完成Vuforia的自定义目标识别
技能之AR技术入门
AR真真假假,分不清~ 今天继续技能篇。往期技能文章有兴趣可以查阅: 5个用法,关于Gif。 技能之用iMovie制作预告片 AR跟VR都可以达到真假难辨的目的,VR需要对应的设备支持,要体验一把还是比较难的,所以谷歌才推出了廉价的vr眼镜,Cardboard。 AR的体验就方便多了,只要有部手机,开启相机就能体验。 目前来看,搞创作,关于AR、VR的选择,我还是倾向于AR,会更好玩一点,更接地气。 上个礼拜我还特意研究了下google的cardboard,组装了下,沉浸感还是有的,关键是比较廉价,原材料
mixlab
2018/04/17
1.9K0
技能之AR技术入门
到底有多强?苹果的增强现实框架:ARKit
写在前面 其实准备ARKit已经很久了,确切地说当WWDC开始介绍时就开始了。其后参加了苹果的ARKit workShop,加上自己有点事,所以文章一直没发出来,现在再发一篇上手文章,也没什么意义。
郭艺帆
2017/09/05
3.6K0
到底有多强?苹果的增强现实框架:ARKit
从轻测到上线,WeTest与《一起来捉妖》测试方案大公开
原文链接:https://wetest.qq.com/lab/view/455.html
WeTest质量开放平台团队
2019/04/26
8250
从轻测到上线,WeTest与《一起来捉妖》测试方案大公开
从轻测到上线,WeTest与《一起来捉妖》测试方案大公开
从2016年Pokémon GO引发的AR游戏热潮开始,国内就一直在期待新的一款具备代表性的AR游戏的头部作品。 4月11日的腾讯首款AR探索手游《一起来捉妖》不仅为国内市场注入了新的活力,也在上线后迅速登顶免费榜,获得了很好的收效。 合作背景 《一起来捉妖》游戏中利用定位与AR虚实结合,打破次元壁,刮起一阵出门捉妖的热风。在游戏中可以进行实景捉妖,在线组队,挑战擂台,聊天交友等娱乐玩法。游戏依托于陀螺仪结合ARKit技术,在将游戏与真实世界打通的同时,也给整体的游戏质量提出了全新的考验。 游戏内
WeTest质量开放平台团队
2019/05/16
6610
从轻测到上线,WeTest与《一起来捉妖》测试方案大公开
《C++开发 AR 游戏:开启未来娱乐新潮流》
在当今科技飞速发展的时代,增强现实(AR)技术正以惊人的速度改变着我们的生活和娱乐方式。从智能手机上的 AR 滤镜到沉浸式的 AR 游戏,这项技术的应用越来越广泛。而在众多编程语言中,C++以其高效、强大的性能在 AR 游戏开发领域占据着重要地位。本文将深入探讨 C++开发 AR 游戏的热门趋势,带你领略这一创新领域的魅力。
程序员阿伟
2024/12/09
1540
揭密微信跳一跳小游戏那些外挂
本着钻研技术的学习态度,我对目前几款比较火的外挂进行了源码分析,总结出了它们的一些破解思路。
WeTest质量开放平台团队
2018/01/18
2.7K2
揭密微信跳一跳小游戏那些外挂
AR培训丨零基础制作第一个AR应用——AR绘本
打开课前资源中的“01-Unity2017.4.4”文件夹,根据你电脑是苹果还是windows,选择对应的dmg还是exe安装包进行安装。
星河造梦坊官方
2024/08/15
2230
AR培训丨零基础制作第一个AR应用——AR绘本
Android开发者不可或缺的四大工具
Android开发者不可或缺的四大工具 android以其极强的开放性吸引着世界各地的开发者去开发各种各样的移动应用开发,而各种SDK更是为各个层次的开发者提供了一个可以尽情展示他们专业技能和创造性的平台。虽然Java是各种平台最常用的编程语言,但是一些其它的工具包只支持C、C++和Ruby。除此之外,所要开发应用的特性在一定程度上也决定了开发环境的选择。为此,特为广大的Android开发者整理了四款强大的Android开发工具: 1. Basic4Android Basic4Android是And
10JQKA
2018/05/09
1.1K0
基于加密货币和区块链,AR游戏也有新玩法
互联网最近掀起了加密货币和区块链的讨论,相信把它们广泛应用于游戏只是时间问题。现Reality Gaming首当其冲,把这些技术应用到其首款移动AR游戏《Reality Clash》中。 与《Ingress》和《Pokemon Go》类似,《Reality Clash》将成为iOS和Android设备的免费AR游戏。据了解,它将利用用户的手机摄像头,利用地理定位功能为现实世界渲染一个全息图。这意味着你必须前往真实世界的地点,并与其他玩家面对面对战。 为了更好地了解游戏机制,以及它如何与加密货币和区块链相
企鹅号小编
2018/01/23
9880
基于加密货币和区块链,AR游戏也有新玩法
(Unity3d)Vuforia开发基础
1、 下载Vuforia5.0.5版本(官方交流群的共享文件里面有)(现在最新版本是5.0.6,操作基本一致,有一点注意:License Key),直接解压,解压完之后,就会出现如下图所示的这些unitypackage文件。
bering
2019/12/02
8820
这几个人脸识别解决方案你用过没?
以上就是完成人脸识别所需的步骤,如果你想在这个基础上,做人脸比对或者身份证校验等拓展功能,可以借助用户的身份证、姓名等信息,再结合第三方的AI服务,比如腾讯云的人脸核身来完成,本质上底层数据支持来自公安的实名认证接口
树酱
2022/03/09
1.5K0
这几个人脸识别解决方案你用过没?
Web vs App(AR版)
关于更多机器学习、人工智能、增强现实、Unity、Unreal资源和技术干货,可以关注公众号:AIRX社区,共同学习,一起进步
三次方AIRX
2020/12/06
2.2K0
AR,我们从设计说起
腾讯ISUX isux.tencent.com 社交用户体验设计 今天给大家带来的分享是《AR,我们从设计说起》,希望大家通过这个分享能够快速了解AR的实现原理,AR的设计流程,以及在设计过程中遇到的问题,在最后会分享我这些年做AR设计的一些心得和技巧。 从2013年开始加入腾讯这个大家庭,加入这个大家庭后一直负责QQ相关的设计工作。从2015年开始参与研发短视频APP的设计工作,即是将QQ的社交内容娱乐化,同一些新的技术做结合。 关于AR AR这个词对大众而言并不是一个陌生的词,但是A
腾讯ISUX
2019/07/05
9870
AR,我们从设计说起
推荐阅读
相关推荐
Pokémon GO国内玩不了?腾讯AR专家教你自己做!
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档