Vuforia开发完全指南—不懂编程也能做AR程序

可能一听到要做AR程序,很多人都会想到这是程序员的事。如果不懂编程,不会写代码,是做不了AR程序的。其实,Vuforia的Unity SDK非常人性化,即使你不会编程,也能做出简单的AR程序。只要按着这篇教程一步一步来,你就能做出一个简单的识图AR App。

在开始做AR App之前,你需要准备好制作工具,磨刀不误砍柴工嘛。由于本篇教程是生成在iOS平台,所以选择的操作系统是Mac OS,然后需要下载Unity和Xcode。如果你是想做Android程序,在Windows上用Unity可以直接生成APK包。做一个简单的识图AR需要的大致步骤分为这样几步:

  1. 登录Vuforia官网,注册开发者账号

  2. 在Vuforia的开发者平台中,创建AR App的license Key

  3. 在对象数据库中上传你需要识别的图像,下载图片SDk

  4. 下载Vuforia的Unity SDK,将Unity SDK导入到Unity中

  5. 将图片SDK导入Unity中,拖入Vuforia预设体,导入模型,进行一系列参数设置

  6. 用Unity生成Xcode工程,再用Xcode编译链接,在iOS设备上运行;或者在Windows平台上,直接用Unity生成APK包。

在这里,我采用的图片是这张Unity社区中很有名的Unity Chan,



进入之后点击右上角的Register进行账号注册,



之后会进入开发者界面,会有两个主要的选项:

  • License Manager:这是App的License管理界面,因为Vuforia对每个App都会有一个唯一的License Key,在Unity的设置中需要输入这个长串的Key,才能开启Vuforia的识别功能。点击“Get Development Key”获取免费的开发license,用免费的key的话程序左下方会一直有Vuforia的水印,而且一些功能会有些限制,但是用来学习足够了;



上传识别图像,下载图像SDK

点击创建好的数据库,进入之后点击“Add Target”添加图片对象,



  • Type:这里选择Single Image,因为只是一个简单的图片识别;

  • File:中从电脑本地中选择识别图片,这里选择之前的Unity Chan图片;

  • Width:输入识别图片的宽度。这个是为了建立Unity场景中的单位长度,场景中所有其他物体的大小是以这个值为参照建立的。Vuforia中的单位长度是以米来计算。输入之后,图片的高度会以这个宽度来自动计算。这个值可以是任意的,但是最好比Camera的Near Clip值要大,不然在镜头靠近时你可能会看不到相关内容。这里输入为1;

  • Name:识别图的名字。这个很重要,每张识别图对象都有一个唯一的名字,而且Vuforia可以同时识别多张不同的图片,因此如果以后要用代码来控制选择是哪个对象的话,就是用这个名字来查找是哪张识别图,所以最好取一个能方便认识的名字。这里就输入”Unity_Chan“。

全部信息填完之后,点击”Add“就能将识别图上传到对象数据库,之后就能在对象管理界面中看到已经上传成功的识别图,这里要注意的是”Rating“的星星数量,这个是对图像识别度的评级,满分是5颗星,一般来说最低要有3颗星才能被准确识别。所以上传图片的时候Rating要保证在3颗星以上。然后勾选住最左边的checkbox,点击上方的”Download Database“按钮,在弹出的界面中选择Unity Editor,下载图片的Unity Package。双击这个Package将图片SDK导入到Unity中。将对象数据库导入到Unity中需要注意的是,一定要保证Editor/Vuforia/ImageTargetTextures中的文件被拷贝进Unity中,这是后面将要导入到Unity中ImageTarget的纹理。

下载Vuforia Unity SDK,进行工程设置

之后就需要下载Vuforia的Unity SDK,在开发者平台的Download界面下载最新的Unity SDK,这里最新的版本号是6-2-10。下载完成之后,双击SDK的Package,将Vuforia SDK导入到Unity中。导入之后会在Unity的Project面板中出现Vuforia的相关文件夹,如下图所示,这其中也包含了之前导入的图片SDK相关文件:



之后就进行以下步骤的设置:

  1. 选中被拖入场景中的ARCamera,在其属性面板中点击”Open Vuforia Configuration“,进行Vuforia的设置:
  • 在“App License Key”中,将之前申请的App license复制到输入框中



  1. 然后选中场景中的ImageTarget,在其属性面板中将“Database”和“Image Target”分别选为之前设置好的数据库和图片对象,注意这里的“Image Target”中显示的是之前在上传图片时填入的识别图片的名字,Unity中就是靠这个名字来区分单个图片对象的。原先场景中的ImageTarget是个灰色的平面,这是识别图片对象的占位符,当你在这里勾选上相应的图片对象之后,这个占位符会选择StreamingAssets文件夹中相应的datasets,这样这个ImageTarget就会按照datasets中图片的大小和形状来作为其纹理。其他设置采用默认参数。



  1. 现在工程设置就已经全部完成了,到目前为止没有写一行代码。现在你可以在Unity中直接点击Play运行测试,Vuforia会自动调用电脑的摄像头。如果摄像头没有调用,在ARCamera的属性面板中,WebCam选项中选择对应的摄像头,需要注意的是不要勾选Disable Vuforia Play Mode,这样会禁止在Unity Editor中进行测试。



连上iPhone,编译链接,将程序拷到手机中。之后,拿着你的手机向你的家人朋友炫耀吧,看,这是我做的神奇AR App!