Skip to main content

Gesichtsbewegungen verfolgen

Die Bewegung eines Gesichtes tracken und dazu einen Punkt auf das Gesicht legen.

import SwiftUI

import ARKit
import RealityKit

struct FaceTrackingOverlay: UIViewRepresentable {
    func makeUIView(context: Context) -> ARSCNView {
        let view = ARSCNView()
        let config = ARFaceTrackingConfiguration()
        view.session.run(config)
        view.delegate = context.coordinator
        return view
    }

    func updateUIView(_ uiView: ARSCNView, context: Context) {}

    func makeCoordinator() -> Coordinator {
        Coordinator()
    }

    class Coordinator: NSObject, ARSCNViewDelegate {
        func renderer(_ renderer: SCNSceneRenderer, nodeFor anchor: ARAnchor) -> SCNNode? {
            let node = SCNNode()
            let sphere = SCNNode(geometry: SCNSphere(radius: 0.01))
            sphere.position = SCNVector3(0, 0, 0.1)
            node.addChildNode(sphere)
            return node
        }
    }
}

struct ContentView: View {
    var body: some View {
        FaceTrackingOverlay()
            .edgesIgnoringSafeArea(.all)
    }
}