フレームワーク

ARKit

iOSデバイスのカメラ機能とモーション機能を統合し、Appやゲームの中で拡張現実体験を生み出します。

概要

拡張現実(AR)は、デバイスのカメラからのライブビューに2Dや3Dのアイテムを追加して、そのアイテムがあたかも現実の世界に存在するかのように見えるユーザー体験です。ARKitは、デバイスのモーショントラッキング、カメラによるシーンの取得、高度なシーンの処理、便利な表示機能を組み合わせたもので、AR体験を簡単に構築できるようにします。これらのテクノロジーを使うと、iOSデバイスのバックカメラまたはフロントカメラで、様々なAR体験を生み出すことができます。

トピック

最初のステップ

拡張するカメラフィードの選択(英語)

フロントカメラまたはバックカメラのいずれかを通じて、ユーザーの体験を拡張します。

デバイスのサポートとユーザーの許可の確認

AppでARKitを使用できること、および実行時にユーザーのプライバシーが尊重されることを確認します。

セッションのライフサイクルとトラッキングクオリティの管理(英語)

セッションの現在の状態についてユーザーに継続的に情報を提供します。また、中断から復帰します。

class ARSession(英語)

AR体験の制御に使用する主要オブジェクトです。

class ARConfiguration(英語)

セッションで使用するARKitの特定の機能を定義するオブジェクトです。

class ARAnchor(英語)

物理的環境における対象物の位置と向きに関する情報です。

カメラ

3D空間における位置や向き、カメラのビデオデータや露出など、ユーザーのiOSデバイスに関する詳細情報を取得します。

仮想コンテンツに対するピープルオクルージョン(英語)

カメラフィード内でARKitが認識した人物で、Appの仮想コンテンツを遮蔽します。

class ARFrame(英語)

セッションの一部としてキャプチャされた、位置トラッキング情報付きのビデオ画像です。

class ARCamera(英語)

あるフレームの、カメラの位置とイメージング特性に関する情報です。

Quick Look

AppまたはWebサイトにAR体験を追加する、最も簡単な方法です。

AR Quick Lookを使ったモデルのプレビュー(英語)

ユーザーが動かしたり、拡大/縮小したり、ほかの人と共有したりできるモデルやシーンを表示します。

class ARQuickLookPreviewItem(英語)

AR Quick Look体験のカスタマイズに使用するオブジェクトです。

AR Quick LookおよびRealityKitでの視覚効果の追加(英語)

モデリングの設定でAR体験の外観とパフォーマンスを調整します。

AR Quick LookでのApple Pay Buttonまたはカスタムアクションの追加(英語)

ユーザーがタップするとAR体験において購入を行ったりカスタムアクションを実行するバナーを提供します。

表示

描画を処理するビューを使って、フル機能のAR体験を作成します。

class ARView(英語)

RealityKitを使ってAR体験を表示できるようにするビューです。

class ARSCNView(英語)

SceneKitを使ってAR体験を表示できるようにするビューです。

class ARSKView(英語)

SpriteKitを使ってAR体験を表示できるようにするビューです。

ワールドトラッキング

平面、画像、オブジェクト、人物、顔をトラッキングすることによって、ユーザーの周囲の環境を拡張します。

ワールドトラッキングについて(英語)

優れた拡張現実体験を構築するため、ARKitがサポートするコンセプト、特徴、ベストプラクティスを確認しておきましょう。

class ARWorldTrackingConfiguration(英語)

iOSデバイスの位置と向きを監視しながら、ユーザーの前にある環境を拡張できるようにする設定。

class ARPlaneAnchor(英語)

物理的環境でARKitが検出する平面です。

平面のトラッキングと視覚化(英語)

物理的環境で面を検出し、3D空間でその形と位置を視覚化します。

class ARCoachingOverlayView(英語)

ユーザーを誘導する視覚的指示を提供するビュー。

オブジェクトの配置と3Dインタラクションの処理(英語)

リアルワールドの面に仮想コンテンツを配置し、ユーザーがジェスチャーで仮想コンテンツを操作できるようにします。

class ARWorldMap(英語)

ワールドトラッキングARセッションの、空間マッピングの状況とアンカー群。

ワールドデータの保存と読み込み(英語)

後で再開できるように、ワールドトラッキングセッションをシリアル化します。

レイキャストとヒットテスト(英語)

スクリーン上の指定座標に対応する、リアルワールド平面上の3D座標を取得します。

フェイストラッキング

フロントカメラフィードに現れる顔をトラッキングします。

顔のトラッキングと視覚化(英語)

カメラフィード内で顔を検出し、それに合わせた仮想コンテンツを重ねて、顔の表情をリアルタイムでアニメーション表示します。

class ARFaceAnchor(英語)

フロントカメラフィードでARKitが検出した、顔のポーズ、トポロジー、表情に関する情報。

class ARFaceTrackingConfiguration(英語)

デバイスのフロントカメラを使って顔だけをトラッキングする場合に使う設定。

人物

カメラフィードでARKitが認識した人物に対し、処理を行います。

3Dで体の動きをキャプチャする(英語)

物理的環境で人物をトラッキングし、その人物と同じ動きを仮想キャラクターに適用することによって、人物の動きを視覚化します。

class ARBodyTrackingConfiguration(英語)

3D空間での人物の動きをトラッキングするために使う設定。

class ARBodyAnchor(英語)

カメラフィードでARKitが認識した体について、3D空間における動きをトラッキングするオブジェクトです。

class ARBody2D(英語)

カメラフィードでARKitが認識した人物のスクリーン座標での表現です。

画像トラッキング

物理的環境で画像を認識し、その位置と向きをトラッキングします。

画像のトラッキングと変換(英語)

ユーザーの環境で検出された長方形から画像を作成し、その外観を拡張します。

AR体験での画像検出(英語)

ユーザーの環境内にある既知の2D画像を検出し、その位置を使ってARコンテンツを配置します。

class ARReferenceImage(英語)

ARKitを使って物理的環境で検出する画像。

class ARImageAnchor(英語)

ワールドトラッキングARセッションで検出された、画像の位置と向きに関する情報。

class ARImageTrackingConfiguration(英語)

デバイスのバックカメラフィードを使って既知の画像だけでトラッキングする場合に使う設定。

オブジェクトのトラッキング

最初にスキャナAppで対象オブジェクトをスキャンすることによって、実行時にそのオブジェクトを認識します。

3Dオブジェクトのスキャンと検出(英語)

リアルワールドのオブジェクトの空間的特徴を記録します。その後、その結果を使ってユーザーの環境でそのオブジェクトを探し、ARコンテンツを起動します。

class ARReferenceObject(英語)

ARKitを使ってARセッション中に物理的環境で検出するリアルワールドのオブジェクト。

class ARObjectAnchor(英語)

ワールドトラッキングARセッションで検出された、リアルワールドの3Dオブジェクトの位置と向きに関する情報。

class ARObjectScanningConfiguration(英語)

物理的環境で実際のオブジェクトの忠実な空間データを収集するために使う設定。

向きのトラッキング

class AROrientationTrackingConfiguration(英語)

デバイスのバックカメラを使ってデバイスの向きだけをトラッキングする場合に使う設定。

位置のトラッキング

class ARPositionalTrackingConfiguration(英語)

空間におけるデバイスの位置だけをトラッキングする場合に使う設定。

レンダリングエフェクト

AR体験へのリアルな反射の追加(英語)

ARKitを使って、カメラの画像から環境プローブテクスチャを生成し、それが写り込んだ仮想オブジェクトをレンダリングします。

class AREnvironmentProbeAnchor(英語)

ワールドトラッキングARセッションの特定空間の環境照明情報を提供するオブジェクト。

class ARLightEstimate(英語)

ARセッションでキャプチャされたビデオフレームに関連付けられた、推定のシーン照明情報。

class ARDirectionalLightEstimate(英語)

フェイストラッキングARセッションでキャプチャされたビデオフレームに関連付けられた、推定の環境照明情報。

マルチユーザー

ほかのデバイスと通信して共有AR体験を生み出します。

共同セッションの作成(英語)

ピアツーピアのマルチユーザー接続を使って、近くのデバイスがAR体験を共有できるようにします。

マルチユーザーAR体験の作成(英語)

ホスト/ゲストのマルチユーザー接続を使って、近くのデバイスがAR体験を共有できるようにします。

SwiftShot:拡張現実ゲームの作成(英語)

AppleがWWDC18で紹介したデモのコードです。どのように構築されているか確認し、ARKit、SceneKit、Swiftを使ってオリジナルのマルチプレイヤーゲームを作るヒントにしてください。

class ARSession.CollaborationData(英語)

物理的環境についてユーザーが収集した情報を保持するオブジェクトです。

class ARParticipantAnchor(英語)

マルチユーザーAR体験で別のユーザーを表現するアンカーです。

オーディオ

オーディオを使った臨場感のあるAR体験の作成(英語)

サウンドエフェクトや環境音レイヤを使用して、魅力的なAR体験を作成します。

テキスト

アンカー付きのテキストを表示して、AR体験に注釈を追加します。

AR体験におけるオブジェクトへの画面注釈の追加(英語)

実際のオブジェクトおよび仮想オブジェクトに重ねて画面上に仮想付箋紙を表示し、AR体験に注釈を加えます。

任意オブジェクトの認識とラベリング(英語)

カスタムの光学認識アルゴリズムを使って、カメラフィードで認識したオブジェクトのアンカーを作成し、そのオブジェクトをトラッキングします。

カスタム表示

独自のレンダラを実装して、フル機能のAR体験を作成します。

Metalを利用したAR体験の表示

カメラフィードの上で、Appの仮想コンテンツのレンダリングを制御します。

class ARMatteGenerator(英語)

カメラフィードでARKitが認識した人物でAppの仮想コンテンツを遮蔽するために使う、マットテクスチャを作成するオブジェクト。

カスタムレンダラでのピープルオクルージョン効果(英語)

マットジェネレータを使って、Appの仮想コンテンツのうち、カメラフィードでARKitが人物を認識した部分を遮蔽します。