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

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

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

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

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

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

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

Swift 2

Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

Q&A

解決済

1回答

3307閲覧

ARKitで画面に文字を表示したい(Swift)

wakuwakuWTP

総合スコア17

ARKit

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

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

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

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

Swift 2

Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

0グッド

0クリップ

投稿2019/08/14 05:06

編集2019/08/20 22:37

前提・実現したいこと

ARアプリの開発をしております。

やりたいことは、タップした画面に文字を表示するといういうものです。

コードを記述したのですが、文字が表示されません。
色々なWebサイトを調べ、その通りに記述しているのですが
うまくいかず困っています。(エラーも出ません)

どなたかアドバイスいただければと思います。
よろしくお願い致します。

該当のソースコード

import Foundation import UIKit import ARKit import SceneKit class ViewController: UIViewController{ @IBOutlet weak var sceneView: ARSCNView! override func viewDidLoad() { super.viewDidLoad() sceneView.delegate = self sceneView.showsStatistics = true } //アプリが表示される直前に呼ばれる override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) //設定のインスタンスを作成 let configuration = ARWorldTrackingConfiguration() //以下よく使用する設定内容 configuration.planeDetection = [.horizontal,.vertical] //-> 水平面、垂直面どちらも認識する // ARKitの起動 sceneView.session.run(configuration) } //隠れる直前に呼ばれる override func viewWillDisappear(_ animated: Bool) { super.viewWillDisappear(animated) // ARKitの停止 sceneView.session.pause() } //タッチしたら呼ばれる override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { print("touch start") let txt = SCNText(string:"文字を設置", extrusionDepth: 1) let textNode = SCNNode(geometry: txt) textNode.scale = SCNVector3(0.2, 0.2, 0.2) //カメラの座標系で30㎝前 let infrontCamera = SCNVector3Make(0, 0, -0.3) //カメラのノード guard let cameraNode = sceneView.pointOfView else { return } //ワールド座標系に変換 let pointInWorld = cameraNode.convertPosition(infrontCamera, to: nil) //スクリーン座標系へ変換 var screenPosition = sceneView.projectPoint(pointInWorld) //スクリーン座標系 //タップした位置の座標を取得する (guardを使用することで、万が一取得できなくてもクラッシュしない) guard let location : CGPoint = touches.first?.location(in: sceneView) else{ return } screenPosition.x = Float(location.x) screenPosition.y = Float(location.y) //スクリーン座標系からワールド座標系へ let finalPostion = sceneView.unprojectPoint(screenPosition) //カメラアングルをオイラーアングルと一致させる textNode.eulerAngles = cameraNode.eulerAngles textNode.position = finalPostion sceneView.scene.rootNode.addChildNode(textNode) } func session(_ session: ARSession, didFailWithError error: Error) { // Present an error message to the user } func sessionWasInterrupted(_ session: ARSession) { // Inform the user that the session has been interrupted, for example, by presenting an overlay } func sessionInterruptionEnded(_ session: ARSession) { // Reset tracking and/or remove existing anchors if consistent tracking is required } } //ARSCNViewDelegate extension ViewController : ARSCNViewDelegate{ func renderer(_ renderer: SCNSceneRenderer, didAdd node: SCNNode, for anchor: ARAnchor) { print("anchor add") if anchor is ARPlaneAnchor{ print("!!plane anchor!!") } } }

補足情報(FW/ツールのバージョンなど)

Swift 5.0.1
Xcode 10.2.1

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

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

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

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

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

guest

回答1

0

自己解決

自分なりに色々調べた結果、サイトをみつけ実行したところうまくいきました!

投稿2019/08/15 23:06

wakuwakuWTP

総合スコア17

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問