次の方法で共有


ARKit 名前空間

ARKit 名前空間は、コンピューターで生成された画像をビデオ ストリームに投影するための高レベル API と低レベル API の両方を含む、拡張現実セッションのサポートを提供します。

クラス

ARAnchor

拡張現実オブジェクトをアタッチできる現実世界にある位置、向き、およびスケール。

ARBlendShapeLocationOptions

DictionaryContainer で使用できる機能を定義する 。

ARCamera

拡張現実フレームをキャプチャしたカメラの位置と向きに関する情報。

ARConfiguration

拡張現実セッションの構成情報。

ARDirectionalLightEstimate

顔に落ちる現実世界の照明を推定します。

AREnvironmentProbeAnchor

環境に配慮した照明の光源。

ARErrorCodeExtensions

ARKit.ARErrorCode 列挙の拡張メソッド。

ARFaceAnchor

ARAnchor AR セッションのワールド座標で検出された顔を検索する 。

ARFaceGeometry

図形や式など、認識された顔を表すメッシュ。

ARFaceTrackingConfiguration

ARConfiguration顔を認識および追跡するための 。

ARFrame

拡張現実セッションのフレーム。

ARHitTestResult

メソッドによって HitTest(CGPoint, ARHitTestResultType) 生成された結果。

ARImageAnchor

ARAnchor現実世界で検出された画像を追跡する 。

ARImageTrackingConfiguration

ARConfiguration 認識されたイメージをワールドトラッキングの基礎として使用するサブクラス。

ARLightEstimate

現実世界の照明環境の推定値。

ARObjectAnchor

ARAnchor 認識された現実世界の 3D オブジェクトを追跡するサブクラス。

ARObjectScanningConfiguration

開発中にデータを作成ARReferenceObjectするために使用されるリソースを集中的ARConfigurationに使用する。

AROrientationTrackingConfiguration

ARConfigurationデバイスの向きのみを追跡し、デバイスの背面カメラを使用する 。

ARPlaneAnchor

実際の平面を表すために使用される の ARAnchor サブクラスです。

ARPlaneGeometry

現実世界で検出された平面を表すジオメトリ。

ARPointCloud

物理的な表面上の固定された現実世界のポイントに対する画像処理の信念を示す 3 次元ポイントのセット。

ARReferenceImage

現実世界で認識される前処理済みイメージを含むイメージ リソース。

ARReferenceObject

現実世界で検出される 3D オブジェクトのデジタル表現。

ARSCNDebugOptions

の プロパティARSCNViewで使用するためのDebugOptions視覚化オプション。

ARSCNFaceGeometry

顔を表す SceneKit ジオメトリ。

ARSCNPlaneGeometry

ARKit 名前空間は、コンピューターで生成された画像をビデオ ストリームに投影するための高レベル API と低レベル API の両方を含む、拡張現実セッションのサポートを提供します。

ARSCNView

拡張現実コンテンツをサポートする のサブクラス SCNView

ARSCNView.ARSCNViewAppearance

ARSCNViewのオブジェクトの外観クラス。

ARSCNViewDelegate

オブジェクトの ARSCNView デリゲート オブジェクト。

ARSCNViewDelegate_Extensions

プロトコルからARSCNViewDelegateのすべてのメソッドをIARSCNViewDelegateサポートする インターフェイスへの拡張メソッド。

ARSession

Mixed Reality エクスペリエンスを作成するために必要なカメラ キャプチャ、モーション処理、および画像分析を管理します。

ARSessionDelegate

オブジェクトの ARSession デリゲート オブジェクト。開発者は拡張現実セッションに関連するイベントに応答できます。

ARSessionDelegate_Extensions

プロトコルからARSessionDelegateのすべてのメソッドをIARSessionDelegateサポートする インターフェイスへの拡張メソッド。

ARSessionObserver_Extensions

インターフェイスの IARSessionObserver 省略可能なメソッド。

ARSKView

Sprite Kit オブジェクトを拡張現実セッションに配置する のサブクラス SKView

ARSKView.ARSKViewAppearance

ARSKViewのオブジェクトの外観クラス。

ARSKViewDelegate

開発者が に関連する ARSKViewイベントに応答できるようにするデリゲート オブジェクト。

ARSKViewDelegate_Extensions

プロトコルからARSKViewDelegateのすべてのメソッドをIARSKViewDelegateサポートする インターフェイスへの拡張メソッド。

ARVideoFormat

AR シミュレーションで使用されるビデオ フィードに関する概要情報。

ARWorldMap

現実世界の空間データ ポイントと Mixed-Reality アンカーのシリアル化可能で共有可能な組み合わせ。

ARWorldTrackingConfiguration

デバイスの位置と向きを追跡し、必要に応じて水平方向のサーフェスを検出するセッションの構成。

インターフェイス

IARAnchorCopying

ARKit 名前空間は、コンピューターで生成された画像をビデオ ストリームに投影するための高レベル API と低レベル API の両方を含む、拡張現実セッションのサポートを提供します。

IARSCNViewDelegate

プロトコル ARSCNViewDelegateの必要なメソッド (存在する場合) を表すインターフェイス。

IARSessionDelegate

プロトコル ARSessionDelegateの必要なメソッド (存在する場合) を表すインターフェイス。

IARSessionObserver

内のイベントに応答するメソッドを定義する ARSessionインターフェイス。

IARSKViewDelegate

プロトコル ARSKViewDelegateの必要なメソッド (存在する場合) を表すインターフェイス。

IARTrackable

ARKit で追跡できる実際のオブジェクトのインターフェイス。

列挙型

AREnvironmentTexturing

ARKit.ARWorldTrackingProbeAnchor オブジェクトで使用される環境テクスチャリング戦略を列挙します。

ARErrorCode

エラーの原因を ARSession 列挙します。

ARHitTestResultType

メソッドによって検出されたオブジェクトの種類を HitTest(CGPoint, ARHitTestResultType) 列挙します。

ARPlaneAnchorAlignment

ARPlaneAnchor 向き (現在は水平に制限されています)。

ARPlaneClassification

ARKit 名前空間は、コンピューターで生成された画像をビデオ ストリームに投影するための高レベル API と低レベル API の両方を含む、拡張現実セッションのサポートを提供します。

ARPlaneClassificationStatus

ARKit 名前空間は、コンピューターで生成された画像をビデオ ストリームに投影するための高レベル API と低レベル API の両方を含む、拡張現実セッションのサポートを提供します。

ARPlaneDetection

検出された平面の有効な向き (現在は水平のみ) を列挙します。

ARSessionRunOptions

への呼び出しのオプションを Run(ARConfiguration, ARSessionRunOptions)列挙します。

ARTrackingState

拡張現実 ARSessionで実際の追跡の品質を列挙します。

ARTrackingStateReason

の原因を Limited列挙します。

ARWorldAlignment

ワールド座標系の作成方法のオプションを列挙します。

ARWorldMappingStatus

ワールド マッピング セッションの状態を列挙します。

注釈

ARKit は iOS 11 で追加され、カメラ入力とコンピューターで生成された画像を組み合わせた Mixed Reality セッションを提供し、現実世界に "アタッチ" しているように見えます。

ARKit は、A9 およびより強力なプロセッサを実行しているデバイス (基本的に iPhone 6S 以降、iPad Pros、および 2017 より前にリリースされた iPad) でのみ使用できます。

ARKit アプリはシミュレーターでは実行されません。

開発者には、AR シーンをレンダリングするための 3 つの選択肢があります。

クラスユース ケース
ARSCNView SceneKit 3D ジオメトリをビデオと組み合わせる

T:ARKit.ARSCKView

SpriteKit 2D 画像をビデオと組み合わせる
"renderer:updateAtTime:" を から IARSCNViewDelegateエクスポートします。完全なカスタム レンダリングを許可します。

ARKit 座標系と変換

ARKit では、デバイスのモーションと "視覚的なオドメトリー" を使用して、仮想座標系に関連するデバイスのカメラと現実世界の "特徴点" のモデルを作成します。 座標系では、メートルを単位として使用します。 仮想座標系には、 が開始された時点でのカメラの位置として計算された原点があります ARSession 。 ARKit 内の位置と向きは、主に "ネイティブ マトリックス" を使用して NMatrix4 表されます。 ARKit の場合、列メジャー変換は次のようになります。

位置または翻訳は、 M14M24、および M34にあります。 で定義される M11M33 3x3 行列は回転行列です。

SCNVector3 Position(NMatrix4 m) => new SCNVector3(m.M14, m.M24, m.M34);          

初期化

オブジェクトは ARSession 、拡張現実プロセス全体を管理します。 メソッドはRun、次に示すように、 オブジェクトと オブジェクトをARSessionRunOptions受け取りますARConfiguration

ARSCNView SceneView = ... // initialized in Storyboard, `ViewDidLoad`, etc.

// Create a session configuration
var configuration = new ARWorldTrackingConfiguration {
	PlaneDetection = ARPlaneDetection.Horizontal,
	LightEstimationEnabled = true
};

// Run the view's session
SceneView.Session.Run(configuration, ARSessionRunOptions.ResetTracking);

ARSessionが実行されると、 プロパティはCurrentFrameアクティブARFrameな を保持します。 システムは 1 秒あたり 60 フレームで ARKit を実行しようとするため、 を参照 CurrentFrame する開発者は、フレームを失った後に必ずフレームに Dispose 接続する必要があります。

システムは、カメラのビューでハイ コントラストの "特徴点" を追跡します。 これらは、 で読み取ることができるオブジェクトとして ARPointCloud 開発者が RawFeaturePoints使用できます。 ただし、一般に、開発者はシステムに依存して、平面や人間の顔などのより高いレベルの特徴を識別します。 システムは、これらの上位レベルの特徴を識別すると、:ARKit.ARAnchor.Position プロパティがワールド座標系にあるオブジェクトを追加ARAnchorします。 開発者は、 DidUpdateNodeDidRemoveNode メソッドをDidAddNode使用して、このようなイベントに対応し、カスタム ジオメトリを実際の機能にアタッチできます。

拡張現実座標は、視覚的なオドメトリーとデバイスのモーション マネージャーを使用して維持されます。 実験的には、追跡は連続セッションで少なくとも数十メートルの距離にわたって非常に固体のように見えます。

こちらもご覧ください