質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
ARKit

ARKitは、iPhone/iPad向けのARアプリ用フレームワーク。iOS11以降に標準搭載されています。これを用いたARアプリは、特殊なデバイスがなくてもiPhone/iPadの単眼カメラを使用して動作することが可能です。

Swift Playgrounds

Swift Playgroundsは、初心者・子ども向けのSwift学習アプリ。iPad/Mac用があり、コーディングの知識は不要です。Swiftの言語そのものを選択肢からタップしてコード入力できる点が特徴。段階的に学習を積み上げる初心者にも優しい設計ながらも、正統派のSwiftが学べます。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

0回答

625閲覧

ARKitで顔にGeometryを表示したいです。

Swift_Begginer

総合スコア4

ARKit

ARKitは、iPhone/iPad向けのARアプリ用フレームワーク。iOS11以降に標準搭載されています。これを用いたARアプリは、特殊なデバイスがなくてもiPhone/iPadの単眼カメラを使用して動作することが可能です。

Swift Playgrounds

Swift Playgroundsは、初心者・子ども向けのSwift学習アプリ。iPad/Mac用があり、コーディングの知識は不要です。Swiftの言語そのものを選択肢からタップしてコード入力できる点が特徴。段階的に学習を積み上げる初心者にも優しい設計ながらも、正統派のSwiftが学べます。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2022/04/27 15:31

カメラで顔を認識した時に、ARKitで顔にGeometryを表示したく、下記のように記載したのですが表示できませんでした。SwiftUIで表示したく、どのように修正すれば、顔を認識した時に顔にGeometryを表示できるかご教授いただきたいです。
よろしくお願いいたします。

swift

1 2import SwiftUI 3import RealityKit 4import ARKit 5 6struct ContentView: View { 7 var body: some View { 8 ZStack{ 9 ARViewContainer() 10 } 11 } 12} 13 14struct ARViewContainer: UIViewRepresentable { 15 func makeUIView(context: Context) -> FaceARView { 16 let arView = FaceARView(frame: .zero) 17 return arView 18 } 19 20 func updateUIView(_ uiView: FaceARView, context: Context) { 21 } 22}

swift

1import UIKit 2import SwiftUI 3import RealityKit 4import SceneKit 5import ARKit 6 7class FaceARView: ARView, ARSessionDelegate { 8 9 var faceGeometry: ARSCNFaceGeometry! 10 var faceNode: SCNNode = SCNNode() 11 12 func viewDidLoad() { 13 //super.viewDidLoad() 14 guard ARFaceTrackingConfiguration.isSupported else { fatalError("Not supported") } 15 updateFaceGeometry() 16 } 17 18 @IBOutlet var sceneView: ARSCNView! { 19 didSet { 20 sceneView.delegate = self 21 sceneView.automaticallyUpdatesLighting = true 22 sceneView.scene = SCNScene() 23 let configuration = ARFaceTrackingConfiguration() 24 configuration.isLightEstimationEnabled = true 25 sceneView.session.run(configuration, options: [.resetTracking, .removeExistingAnchors]) 26 } 27 } 28 29 func updateFaceGeometry() { 30 guard let device = sceneView.device else { return } 31 faceGeometry = ARSCNFaceGeometry(device: device) 32 if let material = faceGeometry.firstMaterial { 33 material.diffuse.contents = UIColor.gray 34 material.lightingModel = .physicallyBased 35 } 36 faceNode.geometry = faceGeometry 37 } 38} 39 40extension FaceARView: ARSCNViewDelegate { 41 func renderer(_ renderer: SCNSceneRenderer, didAdd node: SCNNode, for anchor: ARAnchor) { 42 guard let faceAnchor = anchor as? ARFaceAnchor else { return } 43 44 faceGeometry.update(from: faceAnchor.geometry) 45 node.addChildNode(faceNode) 46 } 47 48 func renderer(_ renderer: SCNSceneRenderer, didUpdate node: SCNNode, for anchor: ARAnchor) { 49 guard let faceAnchor = anchor as? ARFaceAnchor else { return } 50 faceGeometry.update(from: faceAnchor.geometry) 51 } 52}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問