1

我已经使用 mdlAsset 将苹果的 robots.usdz 模型加载到场景视图中。现在模型以标准 t 姿势加载到视图中,但我想通过将每个关节位置设置为我在以前的 ARView 中捕获的 3d 坐标来更改模型姿势。

这是我的代码

import UIKit
import SceneKit
import AVKit
import SceneKit.ModelIO

class ProperFormOverlayViewController: UIViewController {

let sceneView = SCNView()


 override func viewDidLoad() {
    super.viewDidLoad()


    let scene = SCNScene()


    guard let urlPath = Bundle.main.url(forResource: "robot", withExtension: "usdz") else {
        return
    }
    let mdlAsset = MDLAsset(url: urlPath)
    
    let asset = mdlAsset.object(at: 0) // extract first object
    let assetNode = SCNNode(mdlObject: asset)
    scene.rootNode.addChildNode(assetNode)

    let player = AVPlayer(url:  URL(string: "")!)
    scene.background.contents = player
    sceneView.play(nil)
    player.play()

    sceneView.scene = scene

    sceneView.autoenablesDefaultLighting = true
    sceneView.allowsCameraControl = true
    

}
}

我知道使用 ARView 可以访问关节位置,但我认为使用 ARView 没有意义,因为我不需要访问相机。有关如何更改模型姿势的任何建议?谢谢您的帮助!

4

0 回答 0