クラウドソリューション開発部の今野です!
今回は童心に返って、ぐりとぐらに出てくるような大きなパンケーキを作ってみましょう~!
小麦粉とか卵とか必要なんじゃ…
いえいえ、このブログは技術ブログ。
「Swift」で作るんです。
材料
Mac(家のような存在です)
Xcode(キッチンみたいなものです)
iOSデバイス(お洒落なお皿ですね)
Apple公式サイトのusdzファイル(パンケーキの素になります)
作り方
- Apple公式サイトの以下のリンクにアクセスします。
https://developer.apple.com/jp/augmented-reality/quick-look/
「3D Models」の項目で、パンケーキをクリック→pancakes.usdzをインストール。
2.Xcodeで新規プロジェクト→App→ProjectName(お好きな名前を)、Interface(SwiftUI)でプロジェクトを立てます。
3.1でインストールしたpancakes.usdzを、プロジェクトのルートディレクトリに置きます。
ちなみにこんな感じです。
4.材料の準備は整ったので、さっそく作っていきましょう!
ContentViewに以下のようなコードを記述する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
import SwiftUI import RealityKit import ARKit struct ContentView: View { var body: some View { ARViewContainer().edgesIgnoringSafeArea(.all) } } struct ARViewContainer: UIViewRepresentable { func makeUIView(context: Context) -> ARView { let arView = ARView(frame: .zero) // ARセッションを設定 let configuration = ARWorldTrackingConfiguration() configuration.planeDetection = [.horizontal, .vertical] arView.session.run(configuration) // .usdzファイルを読み込む if let url = Bundle.main.url(forResource: "pancakes", withExtension: "usdz") { let entity = try! Entity.loadModel(contentsOf: url) let anchorEntity = AnchorEntity(plane: .horizontal) anchorEntity.addChild(entity) arView.scene.anchors.append(anchorEntity) } // サイズ変更 arView.scene.anchors[0].scale = SIMD3<Float>(2.0, 2.0, 2.0) return arView } func updateUIView(_ uiView: ARView, context: Context) {} } |
ちなみに、func makeUIViewでAR上の物体を読み込んだり、作成したりします。
func updateViewでは値が変化した時の処理などに使います。
5.プロジェクトのinfo.plistファイルにカメラを使用する権限を付与する。
Keyは「Privacy – Camera Usage Description」
Valueには「カメラを使用しようとしています」など。
6.Buildする。
すると、大きなパンケーキのできあがり。
大きすぎてテーブルに入りきらないし、こんなに食べられないよ!という方は、
1 |
arView.scene.anchors[0].scale = SIMD3<Float>(2.0, 2.0, 2.0) |
で調整できます。
お腹の空き具合に合わせて、変更してみてください!
小腹にぴったりなサイズになりましたね。
最後に
Swift「お腹がすいたら、パンケーキ作ってあげる!いつでも任せなさい!!」
AR開発に必要な技術が全て揃っている。
そう、Swiftならね。
エコモットでは、モノづくりをしていただける方を募集しています。
弊社ではIoTに関連した、様々な案件にチャレンジすることができます。
ぜひ一緒にこれからの未来を作っていきませんか?
最後まで見ていただきありがとうございました!