ARセッションの作成

ARSession クラスでAR体験を作成する方法。

ARSession クラスはAR体験の最上位となるクラスです。ワンストップショップとして使用しましょう。

  • ARConfiguration オブジェクトと一緒に ARSession を実行し、AR体験に設定したいプロパティを特定してください。 ARSession の現在の構成は ARSession構成 プロパティを通じて公開されます。

  • ARFrame オブジェクトを通じて、ARシステムの現在のワールド理解にアクセスしてください。現在画面に表示されているフレームは、 ARSessionCurrentFrame プロパティを通じて公開されます。

  • イベント をサブスクライブすることで、ARシステムの現在のワールド理解に対する更新(新しい ARAnchors またはARFramesなど)をリッスンしてください。

ARSession は、シーンの初期化の一部として、シーン内のゲームオブジェクトにアタッチされたスクリプトの Start() メソッドなどで作成できます。

ARSessionの使用方法

ARSessionFactoryを使って ARSession を作成できます:

using Niantic.ARDK.AR;

// This method will create an ARSession that runs on RuntimeEnvironment.LiveDevice
// if called on a mobile device, through Virtual Studio's RemoteConnection
// if called from the Unity Editor with RemoteConnection enabled, or through
// Virtual Studio's Mock mode as the last option.
var session = ARSessionFactory.Create();

カメラ権限

ARSessionを使用するには、デバイスのカメラにアクセスする必要がありますが、アプリがiOSまたはAndroid上で実行されているかによって、カメラ権限リクエストのフローが異なります。

  • iOSでは、 ARSession.Run() を呼び出すと、カメラ承認リクエストのポップアップ画面が自動的に表示されます。

  • Androidでは、ARCoreで ARSession を作成するためにカメラ権限が必要になるため、 ARSessionFactory.Create() を呼び出す前に、カメラのアクセス許可を行うようユーザーに求める必要があります。

詳細については、 承認 を参照してください。

イベントの更新

ARSession オブジェクトを使ってイベントをサブスクライブし、セッション内のアンカーおよびフレームの変化について通知を受けられます。

// Subscribe to events with callbacks defined elsewhere in your code
session.AnchorsAdded += OnAnchorsAdded;
session.AnchorsMerged += OnAnchorsMerged;
session.AnchorsRemoved += OnAnchorsRemoved;
session.FrameUpdated += OnFrameUpdated;

ARSession を初期化したら、セッションを実行するための ARConfiguration を作成してください。 ARConfiguration がセッションの機能を構成します。現段階で存在する構成は : ARWorldTrackingConfiguration の1種類のみです。

using Niantic.ARDK.AR.Configuration;

var configuration = ARWorldTrackingConfigurationFactory.Create();
configuration.WorldAlignment = WorldAlignment.Gravity;
configuration.IsLightEstimationEnabled = true;
configuration.PlaneDetection = PlaneDetection.Horizontal;
configuration.IsAutoFocusEnabled = true;
configuration.IsDepthEnabled = false;
configuration.IsSharedExperienceEnabled = true;

// Now we run the session
session.Run(configuration);

ポーズ が呼び出された時は一切のAR機能(フレーム、アンカー、ポイントなど)が表出しません。 実行 メソッドはコンテンツの特定に使用できる任意の RunOptions 引数を取り入れ、次のセッションに持ち越します。

ARセッションはさまざまな実行オプションおよび構成で何度も繰り返し実行可能です。

マネージャーの使用

ARセッションのライフサイクルを管理する処理の簡略化および/またはセッションの構成を行うために、シーンに追加できる マネージャー が用意されています。

使用方法については、ARSessionManagerのAPIリファレンスとコード内コメントやツールチップを参照してください。

ローカルAR空間におけるデバイスの位置と方向を取得する

ARFrame オブジェクトには ARCamera オブジェクトへのリファレンスが含まれており、ここにデバイスのカメラスペックおよび出力のデータがあります。ローカルAR空間におけるデバイスの位置と方向はカメラの トランスフォーム プロパティから取得できます。

var pos = camera.Transform.ToPosition();
var rot = camera.Transform.ToRotation();

こちらもご覧ください

World Tracking(ワールドトラッキング)

ツール

AR API