iPhone AR 프로젝트에 3D 요소를 추가하는 방법
시작하려면 Xcode에서 프로젝트를 열 것입니다. 시작 코드를 원하시면 찾을 수 있습니다here . 이 프로젝트에는 이미 몇 가지 기본 AR 기능이 있지만 기존 콘텐츠 중 일부를 제거하고 자체 콘텐츠로 업데이트할 예정입니다.
먼저 3D 개체를 가져와야 합니다. 가지고 있지 않은 경우 Apple에서 다운로드할 수 있습니다. 나는 화분을 선택했다. 파일이 있으면 파인더에서 Xcode 프로젝트 편집기의 파일 탐색기에 있는 "art.sncassets"폴더로 드래그합니다.
파일을 프로젝트에 추가했으면 파일을 두 번 클릭하여 열어야 합니다. 그런 다음 개체를 선택합니다.
개체를 선택했으면 인스펙터 창을 보고 "장면 인스펙터 표시"를 선택합니다. 값을 조정하면 "이 문서를 SCN 형식으로 변환하시겠습니까?"라는 메시지가 나타납니다. "변환"을 선택하고 싶습니다.
문서를 변환하면 이름을 변경할 수 있습니다. 이름을 동일하게 유지하고 싶으므로 끝에서 "사본"을 제거하십시오. 새 파일은 .scn으로 끝납니다. 이제 시작할 때 이미 있던 "card.scn"파일과 함께 원본 usdz 파일을 삭제할 수 있습니다.
ViewController.swift 파일로 이동하여 viewdidLoad 함수를 찾습니다. 26행에서 객체의 경로를 방금 추가한 파일로 변경합니다. 내 모습은 let scene = SCNScene(이름: “art.scnassets/pot_plant.scn")!
override func viewDidLoad() {
super.viewDidLoad()
// Set the view's delegate
sceneView.delegate = self
// Show statistics such as fps and
timing information
sceneView.showsStatistics = true
// Create a new scene
let scene = SCNScene(named: "art.scnassets/pot_plant.scn")!
// Set the scene to the view
sceneView.scene = scene
}
다음으로 렌더러 기능에서 "카드"라는 단어를 새 파일과 관련된 것으로 변경합니다. 제 경우에는 "냄비"로 변경했습니다. 그런 다음 63-77 행을 제거합니다.
렌더러 기능은 다음과 같아야 합니다.
func renderer(_ renderer: SCNSceneRenderer, didAdd node: SCNNode, for anchor: ARAnchor) {
guard anchor is ARImageAnchor else { return }
guard let pot = sceneView.scene.rootNode.childNode(withName: "pot", recursively: false) else { return }
pot.removeFromParentNode()
node.addChildNode(pot)
pot.isHidden = false
}
장치에서 앱을 실행하고 화면에서 3d 개체를 볼 수 있습니다.
화면에서 위치를 조정하려면 "pot_plant.scn"파일을 열고 개체를 클릭하고 X/Y/Z 값을 사용하여 이동하여 위치를 편집할 수 있습니다. 개체가 고정되어 있지 않고 움직이더라도 표면 감지를 추가하여 개체를 제자리에 잠그면 프로젝트를 항상 확장할 수 있습니다.
결론적으로 AR은 어렵다. Apple은 다운로드하고 테스트할 수 있는 많은 예제 프로젝트를 제공합니다. 그러나 단계별 지침은 제한적입니다. AR 코딩을 완전히 이해하는 데는 시간이 걸리며 Pluralsight와 같은 일부 온라인 "수업"을 찾는 것이 확실히 도움이 될 것입니다.
Reference
이 문제에 관하여(iPhone AR 프로젝트에 3D 요소를 추가하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/gordon_bristow_a0fbed4582/how-to-add-3d-elements-to-iphone-ar-3735텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)