ことはじめ

実験したり勉強したり。

ARKitことはじめ2

※全くもってハウツーなことは記載してません。 ただの記録です。

前回はとっつきやすくするためにひたすらサンプルのコードを引っ張ってきた。

今日やったこと

  • プロジェクト新規作成(重い腰を上げながら)
  • コードを読む
  • 公式ドキュメントを読む
    • つってもFirst Step程度

プロジェクト新規作成

  • 最初から公式ドキュメント読む怪力はもっていないのでとっつきやすい日本語記事探す
  • 公式ドキュメントを追いながらARKitを試してみよう - Qiita見つける。読む。
  • プロジェクトを作成してみる。
  • がっつりSceneKitやん??どこからがARKitでどこからがSceneKitかわからんやん??ってなる
  • SpriteKitにしてみる
  • 少しましになった

コードを読む

  • ARSKView, ARSCNViewってのがARのView
  • ARAnchorってのがオブジェクトを配置するための位置や方向を持っている

公式ドキュメント読む

  • Understanding Augmented Reality

    • iOSバイスのモーション検知ハードウェアからの情報と、デバイスのカメラから見えるシーンのコンピュータビジョン解析を組み合わせる。
    • ARKitは、シーンイメージ内の注目すべき特徴を認識し、それらの特徴のビデオフレームにわたる位置の違いを追跡し、その情報を動き検出データと比較する。
    • World trackingはHitTestを使ってカメライメージ内の点に対応する元日の平面を検知する
    • planeDetectionを有効にするとARKitはカメラ画像の平面を検出し、その位置とサイズを知らせる
    • ARで遊ぶためには良い証明条件が必要だお
    • 平面検出は時間経過によって変化してくお
  • Building a Basic AR Experience

    • ARSKView, ARSCNViewそれぞれARSession(ARExperience の作成に必要なモーショントラッキングと画像処理を管理するオブジェクト)が含まれている
    • 初期設定例
override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    
    // Create a session configuration
    let configuration = ARWorldTrackingSessionConfiguration()
    configuration.planeDetection = .horizontal
    
    // Run the view's session
    sceneView.session.run(configuration)
}

感想

  • SceneKitの抵抗感すごくある。
  • 3D周りの知識が皆無なのはちょっと辛い。仕組みが見えにくい。
  • 次回は平面検出とかのイベントとか見れればいいなあと。
  • ARXxxxxみたいなのはとっつきにくいから一つ一つ覚えるしかないなあ。