ARKit Remote与面部跟踪详解
自从2017年Apple发布了ARKit,Unity就在ARKit发布的同时就提供了对应的Unity ARKit插件。我们已经介绍过《iPhoneX上的ARKit人脸跟踪》以及《使用Unity创建属于你自己的表情动画》。今天我们将介绍如何通过使用Unity的ARKit插件和ARKit Remote来简化基于ARKit的AR开发以及如何在Unity编辑器中使用ARKit的面部跟踪功能。
在开发应用时,应用的迭代速度应是越快越好,然而将应用构建到设备进行功能测试的过程却十分麻烦,有时甚至会大幅增加开发时间和开发成本。ARKit Remote能让开发者在Unity编辑器中迭代ARKit体验,无需每次都将应用构建到设备来进行测试。现在通过下载或更新Unity的ARKit插件,你可以使用ARKit Remote的iPhone X面部跟踪功能。
ARKit插件下载
Bitbucket
https://bitbucket.org/Unity-Technologies/unity-arkit-plugin
Asset Store资源商店
https://www.assetstore.unity3d.com/en/#!/content/92515
构建ARKit Remote
要想使用ARKit Remote的面部跟踪功能,首先要将ARKit Remote场景构建为一个应用并部署到你的iPhone X上。由于iPhone X是目前唯一一个自带前置TrueDepth摄像机的设备,而这个功能对面部跟踪又是必须的,所以你必须要有一台iPhone X来完成以下步骤。
请按照以下步骤将应用构建到设备上:
1、从Bitbucket或Asset Store资源商店获取最新的Unity ARKit Plugin项目,然后在Unity中打开。
2、打开场景:
“Assets/UnityARKitPlugin/ARKitRemote/UnityARKitRemote”。
3、选择:
“Assets/UnityARKitPlugin/Resources/UnityARKitPlugin/ARKitSettings ”,然后勾选 “ARKit Uses Facetracking”。
4、在主菜单依次选择“Edit/Project Settings/Player”,打开“PlayerSettings”,确认 “Camera Usage Description”属性不为空。
5、在主菜单依次选择“File/Build Settings”,打开“BuildSettings”,然后勾选“Development Build”。
6、现在像你平常使用XCode构建应用那样,将这个场景构建并部署到iPhone X上。
下面视频将演示构建ARKit Remote的步骤:
将Unity编辑器连接到ARKit Remote
前面所说的将ARKit Remote构建到你的设备中的步骤只需要执行一次。下面的步骤可以重复使用,以便在Unity编辑器中对ARKit面部跟踪功能进行不断迭代。
1、将iPhone X通过USB连接到Mac开发环境。
2、在设备上打开ARKit Remote应用。这时候你将会看到提示“Waiting for connection..”。
3、在Unity编辑器的控制台窗口中,选择通过USB连接的iPhone X,将你的iPhone X连接到Unity编辑器。
4、载入项目中的某个FaceTracking示例。例如打开“Assets/UnityARKitPlugin/Examples/FaceTracking/FaceAnchorScene”,然后点击“Play”。
5、这时候会看到一个绿色屏幕,屏幕上方有个按钮,写着“Start ARKit Face Tracking Session”。点击该按钮,然后就能在编辑器的游戏视图看到你前置镜头的画面。当你的脸出现在视图中时,设备会将ARKit面部跟踪数据发送到Unity编辑器。
下面视频演示了连接设备的步骤:
处理ARKit面部跟踪数据
当你将ARKit面部跟踪场景连接到ARKit Remote后,所有面部跟踪数据,包括面部锚点、面部网格、混合形状和定向光照都会从设备发送到Unity编辑器中。你可以在编辑器中对那些数据进行修改,即刻对场景产生影响。
下面是演示视频:
全新的简化ARKit Remote工作流
在为ARKit Remote添加人脸跟踪功能的过程中,我们还对ARKit Remote的易用性做了一些改进,免去了你在Unity编辑器中修改最初ARKit场景的麻烦。
此前你需要加入一个游戏对象来连接你的场景与ARKit Remote。现在如果发现你正试图从Unity编辑器初始化ARKit配置,系统就会自动在运行时将RemoteConnection游戏对象添加到你的场景中。