我已经使用 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 没有意义,因为我不需要访问相机。有关如何更改模型姿势的任何建议?谢谢您的帮助!