0评论

ARKit Remote与面部跟踪详解

文章来自Unity官方平台 2018-02-26 106浏览

自从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游戏对象添加到你的场景中。