ARセッションの作成
ARSession クラスでAR体験を作成する方法。
ARSession クラスはAR体験の最上位となるクラスです。ワンストップショップとして使用しましょう。
ARConfiguration オブジェクトと一緒に
ARSession
を実行し、AR体験に設定したいプロパティを特定してください。ARSession
の現在の構成はARSession
の 構成 プロパティを通じて公開されます。ARFrame オブジェクトを通じて、ARシステムの現在のワールド理解にアクセスしてください。現在画面に表示されているフレームは、
ARSession
の CurrentFrame プロパティを通じて公開されます。イベント をサブスクライブすることで、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();