ARKit 名前空間
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
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 ジオメトリをビデオと組み合わせる |
SpriteKit 2D 画像をビデオと組み合わせる | |
"renderer:updateAtTime:" を から IARSCNViewDelegateエクスポートします。 | 完全なカスタム レンダリングを許可します。 |
ARKit 座標系と変換
ARKit では、デバイスのモーションと "視覚的なオドメトリー" を使用して、仮想座標系に関連するデバイスのカメラと現実世界の "特徴点" のモデルを作成します。 座標系では、メートルを単位として使用します。 仮想座標系には、 が開始された時点でのカメラの位置として計算された原点があります ARSession 。 ARKit 内の位置と向きは、主に "ネイティブ マトリックス" を使用して NMatrix4 表されます。 ARKit の場合、列メジャー変換は次のようになります。
位置または翻訳は、 M14、 M24、および 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使用して、このようなイベントに対応し、カスタム ジオメトリを実際の機能にアタッチできます。
拡張現実座標は、視覚的なオドメトリーとデバイスのモーション マネージャーを使用して維持されます。 実験的には、追跡は連続セッションで少なくとも数十メートルの距離にわたって非常に固体のように見えます。