メニュー

実践ARKit

発売日: 2019/9/22 想定ページ数: 142ページ 全文検索: 対応
★★★★★ ★★★★★ 5.0 3件
作りながら学ぶネイティブARKitアプリケーション開発の実践入門書です。はじめの一歩として3行(!)で書ける最小実装のARから始めて、平面を検出する方法、その平面に仮想オブジェクトを設置する方法、そしてその仮想オブジェクトとインタラクションできるようにする方法・・・と、**読み進めるにつれて「作りながら」引き出しが増えていき**、最終的にはARKitを用いたメジャーや、空間に絵や文字を描くといった、ARKitならではのアプリケーションの実装ができるよう構成しています。
目次プレビュー
  • はじめに
  • 第1章 入門編その1 - 最小実装で体験してみる
  • 第2章 入門編その2 - 水平面を検出する
  • 本書のコンセプトと構成
  • 動作環境
  • サンプルコード
  • 1.1 手順1: プロジェクトの準備
  • 1.2 手順2: ViewControllerの実装
  • 1.3 基本クラスの解説
    • ARSession
    • ARConfiguration, ARWorldTrackingConfiguration
    • ARSCNView
  • 2.1 水平面を検出するためのコンフィギュレーション
  • 2.2 平面検出に関するイベントをフックする - ARSessionDelegate
    • ARAnchor
    • ARPlaneAnchor
  • 2.3 平面検出に関するイベントをフックする - ARSCNViewDelegate
  • 2.4 検出した平面を可視化する
  • 3.1 3Dモデルを読み込む
  • 3.2 仮想オブジェクトとして検出した平面に置く
  • 4.1 トラッキング状態を監視する
    • ARSessionObserver
    • ARCamera.TrackingState
  • 4.2 デバッグオプションを利用する
  • 4.3 トラッキング状態をリセットする / 検出済みアンカーを削除する
    • resetTracking
    • removeExistingAnchor
  • 5.1 垂直平面の検出
  • 5.2 検出した平面のアラインメントを判別する
  • 5.3 平面ジオメトリの取得
    • ARPlaneGeometry
    • ARSCNPlaneGeometry
    • 検出した平面の形状を可視化する
    • ARPlaneGeometryとARSCNPlaneGeometry
  • 6.1 画像検出
    • detectionImages
    • ARReferenceImage
    • ARImageAnchor
    • 実装
    • 画像検出のパフォーマンス
  • 6.2 画像トラッキング
    • ARImageTrackingConfiguration
    • 実装
  • 6.3 画像検出と画像トラッキングの違い
    • ワールドトラッキングコンフィギュレーションで画像トラッキング
  • 7.1 3D物体検出
    • ARReferenceObject
    • detectionObjects
    • ARObjectAnchor
    • 実装
  • 7.2 3D物体スキャン
    • 3D物体スキャンの公式サンプルと独自実装について
  • 8.1 ヒットテスト(当たり判定)を行う
    • ARSCNViewによるヒットテスト
    • SCNSceneRendererによるヒットテスト
    • 特徴点に対するヒットテスト
  • 8.2 デバイスの移動に対するインタラクション
    • 最新フレームにおけるカメラの情報を取得する
    • カメラのワールド変換行列から、カメラの位置・向きを取得する
    • 仮想オブジェクトが常にカメラの方を向くようにする
  • 9.1 ARWorldMap
    • ARWorldMapに保存されないアンカー
  • 9.2 ワールドマップを取得する
    • ワールドマップ取得処理を実行するキュー
  • 9.3 ワールドマップを永続化・共有する
  • 9.4 ワールドマップからセッションを復元する
  • 9.5 ワールドマップ取得タイミング
  • 10.1 フェイストラッキングを開始する - ARFaceTrackingConfiguration
  • 10.2 検出した顔のアンカーを取得する - ARFaceAnchor
  • 10.3 顔の動きを可視化する
    • ARFaceGeometry
    • ARSCNFaceGeometry
    • 実装
  • ブレンドシェイプでアニ文字風3Dアバター
  • 11.1 特徴点を可視化する
  • 11.2 フレームに含まれる特徴点群データ
  • 11.3 ワールドマップに含まれる特徴点群データ
  • 12.1 ARFrameからデプスデータを取得する
  • 12.2 制約
    • フェイストラッキング時のみ利用可能
    • 毎フレーム更新されるわけではない
  • 13.1 People Occlusionの実装方法
  • 13.2 personSegmentationとpersonSegmentationWithDepthの違い
  • 13.3 利用可能なコンフィギュレーション
  • 13.4 segmentationBufferとestimatedDepthData
  • 14.1 2D Body Detection
    • 2D Body Detectionの実装方法
    • detectedBody, ARBody2D
    • ARSkeleton2D
    • ARSkeleton.JointName
    • ARSkeletonDefinition
    • 利用可能なコンフィギュレーション
  • 14.2 3D Body Tracking
    • ARBodyTrackingConfiguration
    • ARBodyAnchor
    • ARSkeleton3D
  • 15.1 ARConfiguration.VideoFormat
  • 15.2 ビデオフォーマットを指定する
  • 15.3 使用可能なビデオフォーマット
    • 現行デバイスで使用可能なビデオフォーマット一覧
    • ビデオフォーマットはどう使い分けるのか?
  • 16.1 ARKitにおける座標と現実のスケール
  • 16.2 現実空間における二点間の距離
  • 17.1 実装方針
  • 17.2 スクリーンの中心座標をワールド座標に変換する
  • 17.3 頂点座標の配列から、線としてのカスタムジオメトリを構成する
  • 17.4 その他の実装のポイント
    • デバイス位置の取得タイミング
    • 精度を安定させる
  • 18.1 実装方針
  • 18.2 Core ML・Vision・ARKit連携のポイント
    • 毎フレームのカメラからの入力画像データへのアクセス
    • Core MLの認識を実行する
    • Core MLの認識結果をテキストノードとして設置する
  • 19.1 マテリアルをMetalで描画する
    • SCNProgram
  • 19.2 他のSceneKitとMetalの連携機能
    • shaderModifiers
    • SCNTechnique
  • 19.3 Metalによるカスタムレンダリング
    • 方法1: Metalだけでレンダリングする
    • 方法2: SCNRendererを用いてレンダリングする
    • 方法3: SceneKitレンダリング + Metalレンダリング
  • 19.4 Metalカスタムレンダリング時のオクルージョン
    • ARMatteGenerator
    • オクルージョン処理のMetalシェーダ
参考文献
奥付
★★★★★ ★★★★★ 5.0 TIGER 2020年12月21日
ARKit学習用に購入しました。ボリュームが多くて、まだ読み切れてませんが、じっくり知識を深める事ができる1冊です。
★★★★★ ★★★★★ 5.0 nickname 2020年12月20日
すごいボリュームです。まだ全て読み切れていません。
ARKitのリファレンスとして活用していきます。
★★★★★ ★★★★★ 5.0 taiga 2020年12月18日
book techさんの縦スクロールが読みやすそうだったので購入。
アプリ開発初心者の自分にとっては第1章を進めるだけで時間かかりましたが、簡単にARを実装できて感動しました。