6 月 5 日,Apple 推出了革命性的 ARKit,向我们展示了如何用 iOS 设备以一种全新的方式来讲述自己的故事。随着我们对虚拟引擎的 ARKit 集成的不断深化,WWDC 大会上的 Wingnut AR 演示令我们大受鼓舞,已经有如此多的虚幻开发者在为 iOS 设备创造 AR 体验,这真的让我们感到非常兴奋。
你会使用 ARKit 来进行建筑设计,制作改变玩家与环境互动方式的游戏,或者创造截然不同的东西吗?
看完这个虚幻引擎 4.17 快速入门指南,然后使用 ARKit 来实现你的想法!
项目设置
要使用带试验性 Apple ARKit 插件的项目,必须先满足以下前提条件:
支持 ARKit 的虚幻引擎 4.17
XCode 9 Beta 3 或 4
运行 iOS 11 Beta 的 iPhone 或 iPad
XCode 9 Beta 3 或 4 和 iOS 11 Beta (iPhone/iPad) 都可以从 http://developer.apple.com 网站下载。
要确保使用了正确的 Xcode 版本,请在终端窗口中运行以下命令:
sudo xcode-select -s /Applications/Xcode-beta.app/Contents/Developer
现在,请启动虚幻引擎 4.17 并创建一个针对移动平台的新项目。打开此项目,然后从插件菜单中启用试验性 Apple ARKit 插件。如果你是基于 GitHub 源代码进行操作,在提示时可能需要构建该插件来启用这项支持。
如果你还没有准备好,请为你的设备配置证书,以便根据我们在文档中提供的指示来创建一个已签名的应用程序。
在“编辑”>“插件”(Edit > Plugins) 下方启用 ARKit 插件,然后重新启动编辑器。
启用 ARKit 插件后,转至“项目设置”>“iOS”(Project Settings > iOS)。你需要进行以下设置来使用 ARKit:
Minimum iOS Version:11 Beta
Additional Plist Data:
NSCameraUsageDescription\nUE4 需要摄像机使用权限才能使用 ARKit。\n
Max Metal Shader Standard to Target:Metal v1.2
在项目中使用 ARKit
ARKit 项目设置涉及三个主要方面:摄像机、Passthrough 和平面检测。我们会简短地介绍各个方面的设置来帮助你快速入门!
摄像机设置
好在摄像机的设置与 VR 摄像机非常相似,设置过 VR 摄像机的人应该对这些设置很熟悉。我们需要的只是一个包含专用 Apple ARKit 摄像机组件的新走卒类 (Pawn class)。当我们在设备上运行时,这个摄像机组件会随现实世界中的移动进行虚拟世界中的移动。
Passthrough 设置
Passthrough 能让我们从 iPhone 或 iPad 背面的摄像机中获取信息,然后将其用作虚拟内容的背景。这会“增强”虚拟内容的现实感。下面几个步骤概括了 Passthrough 摄像机设置的基本要点。如需更完整的示例,请参阅本博客末尾链接的 ARSample 项目中的材质设置。
在项目中添加 ARKit 纹理。
*创建一个新的材质。将明暗处理模型更改为“不照亮”(Unlit) 并勾选“双面”(Two-Sided) 复选框。
添加一个纹理取样节点,引用刚才创建的 ARKit 纹理,然后将它插到材质 (Material) 的自发光 (Emissive) 通道中。添加一个 ScreenPosition(屏幕位置)坐标节点,然后将它插到 ARKit 纹理的 UV 输入上。注:你可能需要根据屏幕比例调整 ARKit 纹理的 UV。如需相关演示示例,请参阅本博客末尾链接的 ARSample 项目。
向场景中添加一个球形网格,并将其调整到足以包含内容的尺寸,然后应用新创建的材质。这将用作天空盒,并用来渲染该球体中的内容在摄像机中呈现的影像。
平面检测
将虚拟内容放到现实世界中时,寻找平面通常很有用,例如墙面、地板或桌面。这就是平面检测的用武之地。平面检测可以使 ARKit 在现实世界中找到平面,然后用这些平面来承放虚拟内容。例如,如果你在做一只虚拟的猫,平面检测可以帮助你找到让它在上面四处跑动的地板。
在你移动设备的过程中会自动进行平面检测,而且在 ARKit 摄像机组件上以触摸输入的形式使用检测到的多个平面就像调用“屏幕位置的点击测试”(Hit Test at Screen Position) 功能一样简单。如果找到了一个平面,您将能够访问在 Apple ARKit 点击测试结果中找到的转换信息,以处理与现实世界中那个位置的交互逻辑。
在设备上测试
完成项目设置后,单击启动 >(您的 iPad 或 iPhone),项目便会构建并部署到设备上,和其他任何移动项目的做法一样。
ARSample 项目
为了帮助大家快速入门,我们整理了一个样本项目,其中各项设置都已经设好,以便于直接使用 ARKit 和 UE4。要下载针对 4.17.1 版本的 ARSample 项目,请前往此处。
需要记住的是,这是个早期的试验性插件,会随着技术的发展发生改变。当我们在 4.18 中将作为引擎的一部分正式发布 ARKit 插件时,我们会更新相关的支持文档以反映最终的架构。
我们迫不及待地想看看大家用这项革命性的技术创造了什么,所以我们鼓励大家在社交媒体上分享有关 ARKit 的体验,并在 Twitter、Facebook 或 Instagram 上用 @UnrealEngine 和 #UE4 标记我们!