Table of Contents

Class MotionTrackerFrameSource

名前空間
easyar
アセンブリ
EasyAR.Sense.dll

シーン内でeasyar.MotionTrackerCameraDeviceを制御するMonoBehaviourで、Unity環境下で機能拡張を提供します。

このフレームソースはモーション追跡デバイスであり、ARSession内でモーションデータを出力します。

public class MotionTrackerFrameSource : FrameSource
継承
MotionTrackerFrameSource
継承されたメンバー

プロパティ

Camera

新しいフレームソース作成時にのみ提供。Assemble()プロセス中のみアクセスされます。

デスクトップデバイスや携帯電話では、このカメラは現実環境のカメラデバイスに対応する仮想世界内のCameraを表し、その投影行列と位置は実際のカメラに対応し、EasyARによって制御されます。ヘッドマウントディスプレイでは、このカメラは診断テキストを眼前に表示するためだけに使用され、画面レンダリングには使用されず、カメラもEasyARによって制御されません。

protected override Camera Camera { get; }

CameraCandidate

Cameraの代替。Unity XR Originを使用していない場合のみ有効。未設定の場合はCamera.mainが使用されます。

public Camera CameraCandidate { get; set; }

CameraFrameStarted

新しいフレームソース作成時にのみ提供。ARSessionのライフサイクル全体でアクセスされます。

カメラフレームの入力が開始されたかどうか。

protected override bool CameraFrameStarted { get; }

DesiredFocusMode

希望のフォーカスモード。DeviceOpenedイベントまたはOnEnableの前に変更した場合のみ有効。

注意:ハードウェアやシステムの制限により、一部デバイスではフォーカスの切り替えが無効になる場合があります。

public Optional<MotionTrackerCameraDeviceFocusMode> DesiredFocusMode { get; set; }

DesiredFrameRate

希望のデバイスフレームレート。DeviceOpenedイベントまたはOnEnableの前に変更した場合のみ有効。

public Optional<MotionTrackerCameraDeviceFPS> DesiredFrameRate { get; set; }

DesiredMinQualityLevel

希望の最低許可品質レベル。Assemble()の前に変更した場合のみ有効。

public Optional<MotionTrackerCameraDeviceQualityLevel> DesiredMinQualityLevel { get; set; }

DesiredResolution

希望の解像度。DeviceOpenedイベントまたはOnEnableの前に変更した場合のみ有効。

FrameRecorderの録画中に画像サイズを変更した場合、録画データの更新は停止します。閉じてから再録画する必要があります。

public Optional<MotionTrackerCameraDeviceResolution> DesiredResolution { get; set; }

DesiredTrackingMode

希望のトラッキングモード。セッション開始前に変更した場合のみ有効。

public Optional<MotionTrackerCameraDeviceTrackingMode> DesiredTrackingMode { get; set; }

DeviceCameras

新しいフレームソース作成時にのみ提供。CameraFrameStartedがtrueの時にアクセスされます。

カメラフレームデータを提供するデバイスカメラ。カメラフレームデータが複数のカメラから提供される場合、リストにはすべてのカメラを含める必要があります。

CameraFrameStartedがtrueの時に値が正しいことを確認してください。

protected override List<FrameSourceCamera> DeviceCameras { get; }

DeviceQualityLevel

デバイス上のモーショントラッキングの品質を取得します。アプリケーションシーンに応じて、この値に基づいてモーショントラッキングを開始するか判断できます。

public static MotionTrackerCameraDeviceQualityLevel DeviceQualityLevel { get; }

Display

新しいフレームソース作成時にのみ提供。Assemble()プロセス中のみアクセスされます。

システムディスプレイ情報を提供します。デフォルトのディスプレイ情報を取得するにはDefaultSystemDisplayまたはDefaultHMDDisplayを使用できます。

protected override IDisplay Display { get; }

FrameRateRange

フレームレート範囲。Openedがtrueの時のみ利用可能。

public Vector2 FrameRateRange { get; }

IsAvailable

新しいフレームソース作成時にのみ提供。Assemble()プロセス中のみアクセスされます。

現在のフレームソースが利用可能かどうか。

値がnullの場合、CheckAvailability()が呼び出され、Coroutine終了後に値が取得されます。

protected override Optional<bool> IsAvailable { get; }

IsCameraUnderControl

新しいフレームソース作成時にのみ提供。Assemble()プロセス中のみアクセスされます。

値がtrueの場合、セッションはカメラのtransformを更新し、カメラ画像をレンダリングします。

ヘッドマウントディスプレイ拡張を作成する際、これはfalseであるべきです。シーン内の3Dカメラを完全に制御する必要があります。特にVSTモードでは、カメラレンダリングを処理する必要があります。

protected override bool IsCameraUnderControl { get; }

IsHMD

新しいフレームソース作成時にのみ提供。Assemble()プロセス中のみアクセスされます。

現在のフレームソースがヘッドマウントディスプレイかどうか。ヘッドマウントディスプレイの場合、診断情報がカメラ前の3Dパネルに表示されます。

一部のフレームフィルターはデバイス上で異なる動作をします。

protected override bool IsHMD { get; }

LocalPointCloud

現在のポイントクラウドデータの位置情報。Openedがtrueの時のみ利用可能。

public List<Vector3> LocalPointCloud { get; }

Opened

カメラが開いているかどうか。

public bool Opened { get; }

Size

現在の画像サイズ。OpenedMonoBehaviour.enabledが両方trueの時のみ利用可能。

public Vector2Int Size { get; }

メソッド

Close()

デバイスを閉じます。

public void Close()

HitTestAgainstHorizontalPlane(Vector2)

現在の視野内でリアルタイムに検出された水平面上でHit Testを実行します。水平面上のどこかをタップすると、Hit Testレイに最も近い平面上の3D点の位置座標が返されます。pointInViewは[0, 1]^2に正規化する必要があります。

public List<Vector3> HitTestAgainstHorizontalPlane(Vector2 pointInView)

パラメーター

pointInView

HitTestAgainstPointCloud(Vector2)

現在のポイントクラウドでHit Testを実行し、カメラから近く遠くへと伸びるレイ上で最も近い3D点の位置座標を取得します。pointInViewは[0, 1]^2に正規化する必要があります。

public List<Vector3> HitTestAgainstPointCloud(Vector2 pointInView)

パラメーター

pointInView

OnSessionStart(ARSession)

新しいフレームソース作成時にのみ提供。StartSession()プロセス中のみアクセスされます。

セッション起動を処理します(このフレームソースがAssemblyに組み込まれている場合)。このメソッドは遅延初期化用に設計されており、AR固有の初期化作業をここで行うことができます。

protected override void OnSessionStart(ARSession session)

パラメーター

session

OnSessionStop()

新しいフレームソース作成時にのみ提供。StopSession(bool)または他のセッション停止/破損プロセス中にアクセスされます。

セッション停止を処理します(このフレームソースがAssemblyに組み込まれている場合)。StartSession()およびセッション実行中に作成されたリソースを破棄し、内部状態を復元するためにこのメソッドを使用できます。セッション破棄前にこのメソッドが呼び出されることが保証されます。フレームソースがセッションより先に破棄された場合、このメソッドは呼び出されず、セッションは破損します。

protected override void OnSessionStop()

Open()

デバイスを開きます。Open()Close()を手動で呼び出さない場合、ARSession起動後に自動的にOpen()が呼び出されます。

public void Open()

イベント

DeviceClosed

デバイスが閉じたイベント。

public event Action DeviceClosed

DeviceOpened

デバイスが開いたイベント。bool値は成功したかどうかを示します。

public event Action<bool, PermissionStatus, string> DeviceOpened