Coder Social home page Coder Social logo

tomu28 / arkitbook Goto Github PK

View Code? Open in Web Editor NEW

This project forked from shu223/arkitbook

0.0 1.0 0.0 10.21 MB

ARKitの実践入門書「実践ARKit」のサンプルコードです。

Home Page: https://booth.pm/ja/items/1038241

License: MIT License

Swift 96.46% Metal 3.47% Ruby 0.08%

arkitbook's Introduction

ARKitBook

ARKitの実践入門書「実践ARKit」のサンプルコードです。

一部サンプルはモデルファイルのダウンロードが必要です。mlmodels/readme.md を参照してください。

書籍の概要

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

全118ページ。ARKit 2.0 (iOS 12), Xcode 10, Swift 5対応。

書籍の目次

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

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

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

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

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

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

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

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

第5章 平面検出の基礎

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

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

  • 6.1 画像検出
  • 6.2 画像トラッキング
  • 6.3 画像検出と画像トラッキングのの違い

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

  • 7.1 3D物体検出
  • 7.2 3D物体スキャン

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

  • 8.1 ヒットテスト(当たり判定)を行う
  • 8.2 デバイスの移動に対するインタラクション

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

  • 9.1 ARWorldMap
  • 9.2 ワールドマップを取得する
  • 9.3 ワールドマップを永続化・共有する
  • 9.4 ワールドマップからセッションを復元する
  • 9.5 ワールドマップ取得タイミング

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

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

第11章 特徴点を利用する

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

第12章 デプスを利用する

  • 12.1 ARFrameからデプスデータを取得する
  • 12.2 制約

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

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

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

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

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

  • 15.1 スクリーンの中心座標をワールド座標に変換する
  • 15.2 頂点座標の配列から、線としてのカスタムジオメトリを構成する
  • 15.3 その他の実装のポイント

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

  • 16.1 CoreML・Vision・ARKit連携のポイント

第17章 Metal + ARKit

  • 17.1 マテリアルをMetalで描画する
  • 17.2 他のSceneKitとMetalの連携機能
  • 17.3 Metalによるカスタムレンダリング

arkitbook's People

Contributors

shu223 avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.