RealityKit - Face Anchor不将模型放入AR



我正在使用RealityKit面部锚。我从SketchFab下载了一个模型,但我试图把模型放在脸上,它不工作,不显示任何东西。

struct ARViewContainer: UIViewRepresentable {

func makeUIView(context: Context) -> ARView {

let arView = ARView(frame: .zero)

let configuration = ARFaceTrackingConfiguration()
arView.session.run(configuration)

let anchor = AnchorEntity(.face)
let model = try! Entity.loadModel(named: "squid-game")

anchor.addChild(model)
arView.scene.addAnchor(anchor)           
return arView
}       
func updateUIView(_ uiView: ARView, context: Context) { }
}
  1. AR开发人员可以处理的最常见的问题之一是模型大小。在RealityKit, ARKit, RoomPlan &SceneKit,工作单位是米。在3dsMax或Blender中创建的模型通常以厘米为单位导入到Xcode中。因此,它们比应该的大100倍。你不能看到你的模型,因为你可能在它里面,它的着色器的内表面没有在RealityKit中渲染。所以,你所需要的就是缩放模型的大小。

    anchor.scale /= 100
    
  2. 第二个常见问题是轴心点的位置。在99%的情况下,枢轴应该在模型内部。模型的支点像一个"达特",.face锚点像"10点"。不幸的是,RealityKit 2.0不具备控制枢轴的能力。SceneKit。

  3. 还有硬件限制。执行以下简单检查:

    if !ARFaceTrackingConfiguration.isSupported {
    print("Your device isn't supported")
    } else {
    let config = ARFaceTrackingConfiguration()
    arView.session.run(config)
    }
    
  4. 我还建议你在Reality Composer应用程序中打开你的.usdz模型,以确保它可以成功加载,而不是100%透明。

  1. 检查你的模型
  2. 运行demo时是否有error?
  3. 您可以使用.reality文件进行测试,也可以从Apple Developer站点下载示例。

最新更新