カテゴリ一覧 著者一覧
実践ARKit
5.0
2,500円(税込)
獲得ポイント: 25pt
通常:
25pt

実践ARKit

発売日: 2019年9月22日
想定ページ数: 142ページ
ダウンロード: PDF EPUB
作りながら学ぶネイティブARKitアプリケーション開発の実践入門書です。はじめの一歩として3行(!)で書ける最小実装のARから始めて、平面を検出する方法、その平面に仮想オブジェクトを設置する方法、そしてその仮想オブジェクトとインタラクションできるようにする方法・・・と、**読み進めるにつれて「作りながら」引き出しが増えていき**、最終的にはARKitを用いたメジャーや、空間に絵や文字を描くといった、ARKitならではのアプリケーションの実装ができるよう構成しています。

目次

はじめに

本書のコンセプトと構成
動作環境
サンプルコード

第1章 入門編その1 - 最小実装で体験してみる

1.1 手順1: プロジェクトの準備
1.2 手順2: ViewControllerの実装
1.3 基本クラスの解説
  • ARSession
  • ARConfiguration, ARWorldTrackingConfiguration
  • ARSCNView

第2章 入門編その2 - 水平面を検出する

2.1 水平面を検出するためのコンフィギュレーション
2.2 平面検出に関するイベントをフックする - ARSessionDelegate
  • ARAnchor
  • ARPlaneAnchor
2.3 平面検出に関するイベントをフックする - ARSCNViewDelegate
2.4 検出した平面を可視化する

第3章 入門編その3 - 検出した水平面に仮想オブジェクトを置く

3.1 3Dモデルを読み込む
3.2 仮想オブジェクトとして検出した平面に置く

第4章 ARKit開発に必須の機能

4.1 トラッキング状態を監視する
  • ARSessionObserver
  • ARCamera.TrackingState
4.2 デバッグオプションを利用する
4.3 トラッキング状態をリセットする / 検出済みアンカーを削除する
  • resetTracking
  • removeExistingAnchor

第5章 平面検出の基礎

5.1 垂直平面の検出
5.2 検出した平面のアラインメントを判別する
5.3 平面ジオメトリの取得
  • ARPlaneGeometry
  • ARSCNPlaneGeometry
  • 検出した平面の形状を可視化する
  • ARPlaneGeometryとARSCNPlaneGeometry

第6章 画像検出と画像トラッキング

6.1 画像検出
  • detectionImages
  • ARReferenceImage
  • ARImageAnchor
  • 実装
  • 画像検出のパフォーマンス
6.2 画像トラッキング
  • ARImageTrackingConfiguration
  • 実装
6.3 画像検出と画像トラッキングの違い
  • ワールドトラッキングコンフィギュレーションで画像トラッキング

第7章 3D物体検出と3D物体スキャン

7.1 3D物体検出
  • ARReferenceObject
  • detectionObjects
  • ARObjectAnchor
  • 実装
7.2 3D物体スキャン
  • 3D物体スキャンの公式サンプルと独自実装について

第8章 AR空間におけるインタラクションを実現する

8.1 ヒットテスト(当たり判定)を行う
  • ARSCNViewによるヒットテスト
  • SCNSceneRendererによるヒットテスト
  • 特徴点に対するヒットテスト
8.2 デバイスの移動に対するインタラクション
  • 最新フレームにおけるカメラの情報を取得する
  • カメラのワールド変換行列から、カメラの位置・向きを取得する
  • 仮想オブジェクトが常にカメラの方を向くようにする

第9章 AR体験の永続化と共有

9.1 ARWorldMap
  • ARWorldMapに保存されないアンカー
9.2 ワールドマップを取得する
  • ワールドマップ取得処理を実行するキュー
9.3 ワールドマップを永続化・共有する
9.4 ワールドマップからセッションを復元する
9.5 ワールドマップ取得タイミング

第10章 フェイストラッキング

10.1 フェイストラッキングを開始する - ARFaceTrackingConfiguration
10.2 検出した顔のアンカーを取得する - ARFaceAnchor
10.3 顔の動きを可視化する
  • ARFaceGeometry
  • ARSCNFaceGeometry
  • 実装
ブレンドシェイプでアニ文字風3Dアバター

第11章 特徴点を利用する

11.1 特徴点を可視化する
11.2 フレームに含まれる特徴点群データ
11.3 ワールドマップに含まれる特徴点群データ

第12章 デプスを利用する

12.1 ARFrameからデプスデータを取得する
12.2 制約
  • フェイストラッキング時のみ利用可能
  • 毎フレーム更新されるわけではない

第13章 オクルージョン

13.1 People Occlusionの実装方法
13.2 personSegmentationとpersonSegmentationWithDepthの違い
13.3 利用可能なコンフィギュレーション
13.4 segmentationBufferとestimatedDepthData

第14章 モーションキャプチャ

14.1 2D Body Detection
  • 2D Body Detectionの実装方法
  • detectedBody, ARBody2D
  • ARSkeleton2D
  • ARSkeleton.JointName
  • ARSkeletonDefinition
  • 利用可能なコンフィギュレーション
14.2 3D Body Tracking
  • ARBodyTrackingConfiguration
  • ARBodyAnchor
  • ARSkeleton3D

第15章 ビデオフォーマット

15.1 ARConfiguration.VideoFormat
15.2 ビデオフォーマットを指定する
15.3 使用可能なビデオフォーマット
  • 現行デバイスで使用可能なビデオフォーマット一覧
  • ビデオフォーマットはどう使い分けるのか?

第16章 アプリケーション実装例1: 現実空間の長さを測る

16.1 ARKitにおける座標と現実のスケール
16.2 現実空間における二点間の距離

第17章 アプリケーション実装例2: 空中に絵や文字を描く

17.1 実装方針
17.2 スクリーンの中心座標をワールド座標に変換する
17.3 頂点座標の配列から、線としてのカスタムジオメトリを構成する
17.4 その他の実装のポイント
  • デバイス位置の取得タイミング
  • 精度を安定させる

第18章 アプリケーション実装例3: Core ML + Vision + ARKit

18.1 実装方針
18.2 Core ML・Vision・ARKit連携のポイント
  • 毎フレームのカメラからの入力画像データへのアクセス
  • Core MLの認識を実行する
  • Core MLの認識結果をテキストノードとして設置する

第19章 Metal + ARKit

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
投稿者:デモアカウント
投稿日:2020年12月18日
簡単にAR体験できました
book techさんの縦スクロールが読みやすそうだったので購入。
アプリ開発初心者の自分にとっては第1章を進めるだけで時間かかりましたが、簡単にARを実装できて感動しました。
すべてのレビューを見る
書籍をシェアする