基于Unreal Engine中ARKIT插件的iOS平台AR图像识别应用程序开发

2019-03-28 13:53毛丰
新媒体研究 2019年3期

毛丰

摘  要  文章主要通过使用UE4中的ARKIT插件在iOS平台开发AR应用程序,并在UE为我们提供的Handheld AR模版基础之上,添加了图像检测功能。以该应用程序为例介绍了iOS平台开发的准备和UE4中图像检测功能的实现。

关键词  Unreal Engine;ARKIT;AR

中图分类号  G2      文献标识码  A      文章编号  2096-0360(2019)03-0029-02

随着增强现实技术不断的发展和完善,增强现实已经成为各学校和企业的研究方向,与虚拟现实技术不同,增强现实是将我们制作出来的虚拟物体与现实中的场景或物体相结合,将虚拟世界物体融合到现实世界中并进行一系列的互动。

1  发布程序到iOS平台前准备工作

1.1  生成签名证书

首先在mac程序坞中找到启动台,点击进入找到“钥匙串访问”。在左上角的菜单栏中找到“钥匙串访问”—“证书助理”—“从证书颁发机构请求证书”。输入邮箱,选择“存储到磁盘”并继续,选择存储位置之后点击“存储”。然后我们就能够在存储位置找到我们刚刚保存的.csr文件。

1.2  证书申请

登录https://developer.apple.com/,注册Apple开发者账号。之后选择“Certificates,Identifiers&Profiles”。点击“Certificates”下的“All”,在右侧页面中会显示我们已经添加的证书,点击“+”按钮,点击选择“iOS App Development”,然后下拉到窗口底部选择“Continue”。在跳转到的页面中提示我们如何从mac中获取.csr文件,也就是我们在1.1中提到的方法。点击“Continue”下一步。在弹出的页面中点击“Choose File”选择刚刚下载好的.csr文件并上传。点击“Continue”下一步就能够下载我们所必要的证书文件。将证书保存到本地。

1.3  添加设备

点击“Devices”下的“All”,在右侧页面中会显示我们已经添加的设备,想要添加新设备,则需要点击“+”按钮。在跳转的页面中输入想要添加设备的显示名字和UDID。添加好之后,在右侧的设备列表中就会看到新的设备名字以及UDID号。每一个Apple Developer账号可以添加不超过100台设备。

1.4  申请iOS App IDs

iOS App IDs是一个分为两部分的字符串,用于辨认一个或者多个应用程序。点击“Identifiers”下的“App IDs”,在右侧页面中会显示我们已经添加好的App ID,想要创建新的App ID,则需要点击“+”按钮,在跳转的页面中输入App ID的名称。这里我们使用Wildcard App ID,最后一位用“*”代替。下方的App Services(应用程序服务)保持默认并点击“Continue”。添加好之后在右侧的列表中就会看到新添加的App ID。

1.5  下载配置文件

点击“Provisioning Profiles”下的“ALL”,在右侧页面中会显示我们已经添加好的配置文件,想要添加新的配置文件,则需要点击“+”按钮,在跳转的页面中选择“iOS App Development”,也就是iOS应用程序开发,并点击“Continue”。

在Select App ID页面中选择刚刚创建好的App ID,并点击“Continue”。Select certificates页面中选择之前创建好的签名证书,并点击“Continue”。Select devices页面中选择我们需要安装或者发布测试的设备,并点击“Continue”。最后,输入配置文件名称并点击“Continue”,将配置文件下载到计算机中。

2  AR图像识别应用程序设计流程

2.1  创建图像数据资产

制作此类AR应用程序的第一步是导入我们想要在场景当中搜索的图像。在Unreal Engine中,我们需要将图像拖放到内容浏览器当中作为识别图资产。完成上面的操作后,我们需要对图像的默认参数配置进行一些简单的修改。在将图像作为ARKIT识别图之前,将Compression Settings改为UserInterface2D。将Mip Gen Settings改為NoMipmaps,因为我们使用该图像仅仅是用于在场景中被检测。另外将Texture Group更改为UI,因为该贴图组通常不会改变图像。

现在我们已经成功导入图像并修改完图像参数,下一步是使用该图像创建一个图像数据资产来为ARKIT识别提供信息,作为ARKIT使用其来创建锚点的图像。这个数据资产的类型为ARCandidateImage,这是在创建新的数据资产时选择的类型。右键内容浏览器空白处,选择Miscellaneous——Data Asset,然后选择ARCandidateImage。双击打开创建好的ARCandidateImage资产,这里面需要选择图像的定位是Landscape(风景)还是Portrait(肖像)。还需要输入图像在现实世界中的width(宽度)和height(高度),ARKIT使用这些信息在三维空间中正确放置图像的定位点,如果给出不正确的尺寸可能会导致锚定位置距离摄像机太近或者太远。

2.2  创建ARSessionConfig资产

UE中启动ARKIT需要使用ARSessionConfig配置,创建方法与数据资产的创建同理。右键内容浏览器空白处,选择Miscellaneous——Data Asset,然后选择ARSessionConfig。下一步是将之前创建好的图像数据资产添加到ARSessionConfig当中,通过向Candidate Images(候选图像)添加一个数组元素并设置为ARCandidateImage图像资产来完成。双击创建好的ARSessionConfig,点击Candidate Images右侧的“+”按钮添加一个数组元素,并选择之前创建好的图像数据资产。

2.3  创建ARKIT蓝图

我们构建一个这样的功能,程序开始时,ARKIT在现实世界中寻找我们添加好的图像,一旦找到这个图像,它就会在世界中图像的位置创建一个锚定,然后在这个锚定的位置生成我们需要放置的物体。

2.4  iOS项目设置并发布

在发布应用程序之前,我们需要将iOS配置文件添加到iOS项目设置当中。步骤为选择Project Settings—Platforms—iOS,在Mobile Provision中将配置文件、证书分别添加进去。然后在Bundle Information—Bundle Identifier中输入之前设定好的App ID,比如“com.iostest.01”,这时会发现Mobile Provision中配置文件的Status栏变更为Valid,则为iOS项目设置成功配置完成。最后,确保iOS设备与Mac相连接,在快捷启动栏中的Launch下找到想要发布的设备并点击。这时UE开始执行打包程序,稍微等待过后,在你的iOS设备上就可以看到安装好的应用程序。

3  结束语

ARKIT 2.0在UE中增加了对iOS平台AR场景中的多图像检测支持,可用于博物馆应用程序的基础。在博物馆应用程序当中,可以将生成物体改为与博物馆展出内容相关的一系列详细信息,比如艺术家信息、创建时间、作品名称等。

参考文献

[1]UnrealEngine官方网站[EB/OL].https://www.unrealengine.com/zh-CN/what-is-unreal-engine-4.

[2]UnrealEngine官方文档[EB/OL].http://api.unrealengine.com/CHN/index.html.