Unity中vuforia官网的AR问题trackable xxxx lost

404 Not Found
404 Not Found使用高通Vuforia开发AR增强现实游戏之Single Image Target单一图片识别(一)
博客专家
使用高通Vuforia开发AR增强现实游戏之Single Image Target单一图片识别(一)
游戏开发与原理
之前开篇已经做好了开发vuforia增强现实游戏的准备工作,现在接着可以正式开发AR游戏。我们理想情况期望的是在游戏中能够像人一样识别某一样物体,比如一棵树,不管是什么样的树,我们都能知道这是一棵树,这棵树上可能会出现一只小鸟,这种复杂的情况非常智能化,应该叫模型识别,而不是匹配同一样东西。而这里的image target的识别其实就是图片的匹配,对一个场景或物体拍一个照片并存入库中,然后当摄像头再次出现该场景或物体时能够识别出来并识别其位置在预设的位置添加虚拟3d物体或人物等。同时,系统对这个预存到数据库的图片也有要求,需要图片特征明显,有足够多的特征点,对比度明显,帮助提高识别的效率,对光线的要求也比较高,关于如何选择特征明显的图存图片后面有具体的介绍。
这里我们就在vuforia服务器添加数据库,并在数据库中添加single image target,图片我们就拍一张笔记本的键盘,然后实现识别笔记本键盘并在键盘上出现一个虚拟的3d人物动画,并和我们问好:
官方视频教程:
一、准备工作
之前已经介绍了如何搭建开发环境,此处不再具体重复,新建unity工程,导入vuforia sdk包,新建scene删除原有的main camera换成prefabs中的ARC
在vuforia开发者网站创建一个数据库后,添加一个single image target,导入笔记本键盘的照片,注意照片的格式:
然后选中该target,下载相应的database(选择unity版本):
然后将该database数据库包导入工程,导入后在project面板,Editor-QCAR文件夹下可以看到已有的数据库:
二、ARCamera的设置
1.将申请的license key复制到ARCamera上vuforia behavior脚本变量中,这样工程就可以使用vuforia sdk了;
2.然后在database load behaviour脚本中可以看到已经添加的数据库的选项,打勾选中load 相应的的database,并选择active激活;
至此ARCamera基本设置结束。
三、Image Target设置
1.在场景中拖入一个Image Target后,调整其位置使其显示在ARCamera视口中央,简单的设置z坐标为1.5,扰x轴旋转-90度即可将其显示在ARCamera中央;
2. 然后在image target bahaviour脚本参数中选择添加之前导入的识别数据库,可以发现场景中马上有效果,下面的width可以重新调整;
3.添加虚拟人物
现在在unity中添加一个虚拟人物,用于在摄像头识别出笔记本键盘后在键盘上显示一个3d人物和我们问好;
在场景添加一个人物模型对象,作为image target的子物体,调整人物的位置和旋转,使其看上去正好站在键盘上,这样识别出来后人物会在屏幕上显示在我们设置的位置上,看上去更真实;
调整好位置后将人物设置为不可见,然后我们要获取事件控制3d人物的出现和消失,当摄像头对准笔记本键盘时,人物出现,移开时人物消失;
选中image target,其上绑定着一个DefaultTrackableEventHandler脚本,里面有识别到物体和离开识别物体的代理事件,只要在事件中控制3d人物的setactive属性即可控制3d人物的出现和消失,以及播放声音和我们说话。这里简单直接在DefaultTrackableEventHandler脚本中修改,真正开发应该创建新脚本继承DefaultTrackableEventHandler然后添加我们的代码,简单示例如下:
绑定人物对象:
然后即可打包到xcode工程在iphone上运行看效果了,尽量光线充足,晚上的话会不稳定。如果屏幕上始终不出现3d人物,要么是unity工程设置有问题,需要对照步骤检查一下,要么是选择的识别图片有问题了,开始我选用了如下识别图片,结果识别不出来,应该是键盘的每个按键属于样式重复的,特征点多也不行,换成自己拍的就好多了。
@总结与强调
实现识别单一图片并渲染3d人物模型,看上去好像在自己笔记本上出现了一个3d人物动画特效的关键点有一下几个:
1.确保ARCamera上的License Key正确设置了;
2.确保ARCamera上Load了相应的识别database数据库;
3.确保Image Target位置调整到位显示在ARCamera的视野里,运行之前能在Game窗口看到最终的效果;
4.确保DefaultTrackableEventHandler脚本编写正确,在合适的时机及时控制3d模型的显示与隐藏;
如何选择特征点多并且容易识别的图片:
之后有时间的话给翻译一下……^_^
我的热门文章
即使是一小步也想与你分享

参考资料

 

随机推荐