前提・実現したいこと
ARKitのBodyTrackingを使って手首などに3Dオブジェクトを置きたい。
発生している問題・エラーメッセージ
以下のコードを動かすと、人の腰の位置に3Dオブジェクトが配置されます。
これを手首などにおけるようにしたいのですが、どういうコードを書けばいいのかわからないです。
AR初心者のため、足りていない知識などあれば教えていただきたいです。
該当のソースコード
Swift
1import UIKit 2import SceneKit 3import ARKit 4 5class ViewController: UIViewController, ARSCNViewDelegate { 6 7 @IBOutlet var sceneView: ARSCNView! 8 9 var heartNode: SCNNode? 10 11 override func viewDidLoad() { 12 super.viewDidLoad() 13 sceneView.delegate = self 14 sceneView.autoenablesDefaultLighting = true 15 16 let heartScene = SCNScene(named: "art.scnassets/heart.scn") 17 heartNode = heartScene?.rootNode 18 } 19 20 override func viewWillAppear(_ animated: Bool) { 21 super.viewWillAppear(animated) 22 let configuration = ARBodyTrackingConfiguration() 23 sceneView.session.run(configuration) 24 } 25 26 override func viewWillDisappear(_ animated: Bool) { 27 super.viewWillDisappear(animated) 28 sceneView.session.pause() 29 } 30 31 32 func renderer(_ renderer: SCNSceneRenderer, nodeFor anchor: ARAnchor) -> SCNNode? { 33 let node = SCNNode() 34 guard let shape = heartNode else { return nil } 35 node.addChildNode(shape) 36 return node 37 38 } 39}
試したこと
質問の内容とは異なるのですが、
viewWillDisappearは呼ばれていないみたいなのですが、なぜなのでしょうか?
補足情報(FW/ツールのバージョンなど)
macOS10.14.6
Xcode11.2
iOS13.1 iPhone XRを使用
あなたの回答
tips
プレビュー