是否可以在 Xcode 16 下使用 Reality Composer Pro 对 iPhone 进行面部跟踪?

问题描述 投票:0回答:1

我使用 Xcode 15 和 Reality Composer 创建了一个增强现实应用程序,允许人们在购买眼镜之前使用 iPhone 虚拟试戴眼镜。该项目的关键是使用 Reality Composer 定义面部锚点并通过 .usdz 文件定位 3D 对象,然后 iPhone 的面部跟踪完成剩下的工作。然而,在 Xcode 16 中,该项目不再编译,Reality Composer Pro 甚至不允许设置除 Vision Pro 之外的目标设备。

ios xcode augmented-reality reality-composer reality-composer-pro
1个回答
0
投票

可惜,RCP 2.0 中不支持面部跟踪

显然,Reality Composer Pro 是为了促进 Vision Pro 的销量而制作的,但在不久的将来,它很可能会拥有已弃用的 Reality Composer 应用程序中的所有功能。由于最新版本的 RCP 仍然只有用户的头部跟踪(又名 AnchorEntity(.head) 锚点)并且没有面部跟踪(又名 AnchorEntity(.face) 锚点),因此您可以通过编程方式实现面部跟踪功能。

解决方案

以下代码可让您在 iOS 18 SwiftUI 应用程序中的跟踪脸部上试戴虚拟眼镜:

import SwiftUI
import RealityKit
import ARKit

struct ContentView : View {
    var body: some View {
        ARFaceView()
    }
}

struct ARFaceView: UIViewRepresentable {
    let anchor = AnchorEntity(.face)
    let glasses = try! Entity.loadModel(named: "glasses")
    let arView = ARView(frame: .zero)
    
    init() {
        // Activating the selfie camera
        arView.automaticallyConfigureSession = false
        let config = ARFaceTrackingConfiguration()
        arView.session.run(config)
    }                           
    func makeUIView(context: Context) -> ARView {
        glasses.scale /= 1.1
        glasses.position.y = -0.05
        anchor.addChild(glasses)
        arView.scene.anchors.append(anchor)
        return arView
    }
    func updateUIView(_ view: ARView, context: Context) { }
}
© www.soinside.com 2019 - 2024. All rights reserved.