作者:品质保障部_VR讲师_王严
内容提要:本文主要是介绍如何实现《AR集五福》的应用功能
2017年支付宝继续开展集五福活动,17年版本和16年版本大的不同是添加了AR扫福的部分,本文将一步一步讲解如何进行实现这些功能。
【前言:技术效果以及简述】
下图即是应用效果,使用了Hiar SDK进行图片识别。目前主要的图片识别SDK厂商大部分都是是基于opencv +机器学习来进行的图像识别功能准度的调校,然后再其上进行对于各个产品的优化和调整。目前比较流行使用的是美国的高通SDK(现称Vuforia),的话有easyAR和hiar,这些SDK使用流程大同小异,基本都是分为识别图上传和识别数据下载。使用各种AR SDK都可以,目前来说,AR技术还处于初级阶段,高通SDK识别效果比较好,但是现在已经变成了收费项目,如果不付钱很难进行商业级别的使用。
另:附件中有gif图片,可以直接查看动态效果。
【1-HIar SDK下载】
首先我们需要到Hiar官网去下载一个适合Unity使用的SDK
http://www.hiar.com.cn/doc-v1/main/home/
在官网中我们需要进行账号注册,并且选中SDK进行下载
【2-新建一个项目并制作图集】
我们需要点击基本管理添加应用。
注册应用置换后我们需要记住APPkey以及Secret,备用。
然后我们需要去添加新的图集,大家可以注意到,这个图集ID是4527,也就是说其实现在总的图集数量并不多,目前开发者的活跃数还处于初级阶段。
在图集中,我们需要上传我们想要去识别的福字,这里需要注意的是,我们可以上传很多福字,都可以进行识别
【3-关联图集,并下载识别图数据】
我们将上传好的图集关联到我们创建的五福应用,关联之后我们再次进入图集,下载我们的图集数据
【4-导入HiarSDK以及图集数据】
新建一个Unity工程,然后双击我们下载的HiAR SDK以及图集数据,将数据导入到我们的Unity工程中
【5-在场景中新建并设置识别图】
我们在Asset文件夹下搜索HiarCamera预制物体,然后其中填写入我们的应用KEY和密码
然后搜索SDK中导入的ImageTarget物体,直接拖到场景中,可以改名字
然后在ImageTarget中设置识别图的图集和细节具体使用哪张图
这个时候,就可以在这张识别图下方创建任意子物体,然后这个时候点击Unity编辑器运行,就可以看到初步效果了,当识别图识别到对应的图片的时候,绑定在识别图下方的子物体就会显示出来。
【6-重写识别逻辑子类】
Hiar SDK为我们提供了一个父类和两个接口,用于实现识别的一整套机制。
需要继承的父类和接口如下
我们重写一个新的类去继承父类以及使用两个接口,然后我们重写其中的识别图识别和消失消息发出事执行的方法,在两个方法中,我们设定在识别图识别的时候,开启一个Gameobject的Active,在识别图消失的时候,关闭一个Active。
其中的Activeobj是我们在这个类中添加一个public 属性的gameobject,我们要在识别的时候去开关它。
【7-摆UI】
这块就不细说了,图片都是从百度图片中搜出来然后裁的,原汁原味
注意的是其实添加了动画,包括识别框旋转以及福字蹦出来的效果,这块也不细说了
放大缩小的效果。
【8-完成关联,运行打包】
关联二者,将我们的UI gameobject绑定到我们的脚本上
这个时候就可以看到完整的效果了
【9-其他细节】
限于篇幅,本文主要讲述了如何扫一张福出一个效果,,因为其他四福也是同理,我们在上传识别图的时候就可以选择多张图片,然后再逻辑中进行多重判断就可以了。本文的核心在于简述如何去实现“扫福识别的效果”,如果有任何问题,欢迎联系我提出。