ARKit - 在运动捕捉RealityKit中复制机器人角色

10

我正在尝试制作一个三维模型,像苹果在Motion Capture示例(在WWDC 2019上展示)中提供的机器人一样,在运动捕捉ARKit 3.0中能够模仿我的动作,替换苹果提供的机器人角色。

期望解决方案:

  • 苹果使用了哪些特殊软件来创建robot.usdz文件?如果有,请提供详细信息。

  • 如何使用苹果基于Python的工具将格式如.glb/.gltf/.obj/.dae的文件转换为.usdz而不影响它的场景图?

  • 如何在Xcode中编辑.usdz文件的场景图并成功保存更改到一个.usdz文件中?

1个回答

3

使用ARKit的MoCap解决方案

enter image description here

这是我的帖子,你会在那里找到如何在 macOS 中创建一个.zshrc文件的说明。
在 RealityKit 中加载动作捕捉模型:
import RealityKit
import ARKit

class ViewController: UIViewController, ARSessionDelegate {

    @IBOutlet var arView: ARView!
    
    var character: Entity?
    let characterAnchor = AnchorEntity()
    
    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)

        arView.session.delegate = self

        guard ARBodyTrackingConfiguration.isSupported
        else { fatalError("MoCap is available on A12 & later") }
        
        let config = ARBodyTrackingConfiguration()
        arView.session.run(config)
        arView.scene.addAnchor(characterAnchor)
        
        character = try? Entity.load(named: "character")
    }
    
    func session(_ session: ARSession, didUpdate anchors: [ARAnchor]) {
        
        for anchor in anchors {
            
            guard let bodyAnchor = anchor as? ARBodyAnchor
            else { continue }

            let bodyPosition = simd_make_float3(bodyAnchor.transform.columns.3)
            characterAnchor.position = bodyPosition
            characterAnchor.orientation = Transform(matrix: bodyAnchor.transform).rotation

            if let character = character, character.parent == nil {

                characterAnchor.addChild(character)
                characterAnchor.scale = [0.02, 0.02, 0.02]
            }
        }
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接