Swift ARKit 3.0–;人与运动捕捉

Swift ARKit 3.0–;人与运动捕捉,swift,augmented-reality,arkit,realitykit,Swift,Augmented Reality,Arkit,Realitykit,我正在尝试在同一个应用程序上加载人物遮挡和运动捕捉 由于ARBodyTrackingConfiguration不支持personSegmentationWithDepth,因此我创建了两个arview,为每个arview提供不同的配置(arworldctrackingconfiguration和ARBodyTrackingConfiguration) 问题是,由于某种原因,只有一个委托回调被激发,并且没有深度数据可用 我做错了什么 在ARKit 4.0中,可以同时运行多个ARSession吗?在

我正在尝试在同一个应用程序上加载
人物遮挡
运动捕捉

由于
ARBodyTrackingConfiguration
不支持
personSegmentationWithDepth
,因此我创建了两个arview,为每个arview提供不同的配置(
arworldctrackingconfiguration
ARBodyTrackingConfiguration

问题是,由于某种原因,只有一个委托回调被激发,并且没有深度数据可用

我做错了什么


在ARKit 4.0中,可以同时运行多个ARSession吗?

在ARKit 4.0中,两个功能都可以同时运行。然而,它们都是CPU密集型的

override func viewDidLoad() {
    super.viewDidLoad()
    
    guard ARBodyTrackingConfiguration.isSupported
    else { fatalError("MoCap is supported on devices with A12 and higher") }
    
    guard ARBodyTrackingConfiguration.supportsFrameSemantics(
                                               .personSegmentationWithDepth)
    else { fatalError("People occlusion is not supported on this device.") }
        
    let config = ARBodyTrackingConfiguration()
    config.frameSemantics = .personSegmentationWithDepth
    config.automaticSkeletonScaleEstimationEnabled = true
    arView.session.run(config, options: [])
}

你需要选择其中一个
ARWorldTrackingConfiguration
和person segmentation将在
ARFrame
上提供
Arody2D
,这将为您提供不太详细的信息,但与您从
ArodyTrackingConfiguration
中获得的信息相同。