【입문】Swift로 AR앱
Swift를 사용하여 AR 앱을 만들어 보았습니다.
ARKit을 사용하여 태양계를 현실 공간에 표시하는 앱을 만들어 보았다.
환경 구축을 포함해 초학자가 AR 앱을 작성하기 전에 필요한 정보를 비망록적으로 남겨두기로 한다.
※본 기사는 움직이는 오브젝트를 표시할 때까지 하고 있어 최종적인 완성물은 이하의 기사에서 소개하고 있다.
【ARKit】AR로 VR 공간을 작성한다
앱 다운로드는 여기
준비편
Xcode 설치
iOS 앱을 개발하기 위해서는 Xcode가 필요.
AppStore에서 버전 9.0(2017/10 최신판)을 설치한다.
프로젝트 만들기
XCode 기동 후, 「Create a new Xcode project」를 선택한다.
Single View App을 선택하고 원하는 곳에 저장합니다.
프로젝트명은 「SolarSystem」이라고 한다.
이상으로 앱 작성 준비는 완료.
iOS 앱을 만들 때는 기본적으로 Xcode조차 준비하면 좋기 때문에 매우 쉽게 잡힌다.
※AR 앱의 검증에서는 시뮬레이터를 사용할 수 없기 때문에, iPhone등의 실기를 반드시 준비할 필요가 있다.
AR 앱 화면 준비
ViewController.swift
@IBOutlet weak internal var sceneView: ARSCNView!
이 「sceneView」에 작성한 Node를 추가해 가는 것으로,
현실 세계에 물체를 겹칠 수 있다.
실장편
태양 오브젝트를 만들어 보자 ☀️
우선은 태양계의 중심이 되는 태양 오브젝트를 작성한다.
sample1.swift
// 球体を作成
let sun = SCNNode(geometry: SCNSphere(radius: 0.20))
// 表示位置を指定
sun.position = SCNVector3(0, 0, -1)
// 表面を指定(写真を貼るイメージ)
sun.geometry?.firstMaterial?.diffuse.contents = image
// ARSCNViewに作成物を追加
sceneView.scene.rootNode.addChildNode(sun)
다음으로, 태양 물체를 회전(자전)시킨다.
sample2.swift
// 動きはSCNActionで定義
func doRotation(time: TimeInterval) -> SCNAction {
let rotation = SCNAction.rotateBy(x: 0, y: CGFloat(Double(360) * .pi/180), z: 0, duration: time)
let foreverRotation = SCNAction.repeatForever(rotation)
return foreverRotation
}
// sample1.swiftで作成したNode
sun.runAction(doRotation)
수성 개체를 만들어 보자 🌕
태양 주위를 공전하는 수성 개체를 만듭니다.
물론 공전뿐만 아니라 자전하는 것도 고려할 필요가 있다.
우선은 태양 주위를 공전하는 축을 작성한다.
sample3.swift
// 公転軸
let revolutionAxis = SCNNode()
// 公転軸の位置を指定(太陽の中心位置と同じ)
revolutionAxis.position = SCNVector3(0, 0, -1)
// 公転動作(sample2.swiftのdoRotationと同じ)
let revolution = doRevolution(time: rotationSpeed)
revolutionAxis.runAction(revolution)
그런 다음 수성 객체를 만들고,
sample3.swift로 작성한 공전축에 수성 오브젝트를 거듭해 본다.
sample4.swift
// 水星オブジェクトを作成
let mercury = SCNNode(geometry: SCNSphere(radius: 0.03))
// 水星の位置を定義(太陽からの距離がx:0.3)
mercury.position = SCNVector3(0.3, 0, 0)
// 表面を指定(写真を貼るイメージ)
mercury.geometry?.firstMaterial?.diffuse.contents = image
// 公転軸に水星オブジェクトを追加
revolutionAxis.addChildNode(mercury)
지금까지 태양과 그 주위를 공전하는 수성 오브젝트가 완성되었다.
완성판
아래 샘플 소스 코드
※상기 관련 파일은 「Sun.swift」「Star.swift」「Mercury.swift」「Planet.swift」가 해당한다.
htps : // 기주 b. 코 m / 슌 p / 소 r sys m
Reference
이 문제에 관하여(【입문】Swift로 AR앱), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/shunp/items/a50194bcf99bc5daf286텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)