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
希望のトラッキングモード。session起動前に変更する必要があります。
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
現在の画像サイズ。OpenedとMonoBehaviour.enabledが両方trueの場合のみ利用可能。
public Vector2Int Size { get; }
enabled
ARSession実行時にビデオストリームデータの収集を開始/停止します。セッション起動後、MonoBehaviour.enabledがtrueの場合にのみ収集が開始されます。
public bool enabled { get; set; }
メソッド
Close()
デバイスを閉じます。
public void Close()
HitTestAgainstHorizontalPlane(Vector2)
現在の視野内でリアルタイム検出された水平面でヒットテストを実行し、ヒットテスト光線に最も近い3D点の位置座標を返します。pointInViewは[0,1]^2に正規化する必要があります。
public List<Vector3> HitTestAgainstHorizontalPlane(Vector2 pointInView)
パラメーター
pointInView
HitTestAgainstPointCloud(Vector2)
現在の点群でヒットテストを実行し、カメラから遠近の光線上で最も近い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()
public void Open()
イベント
DeviceClosed
デバイスが閉じられたイベント。
public event Action DeviceClosed
DeviceOpened
デバイスが開かれたイベントで、bool値は成功したかどうかを示します。
public event Action<bool, PermissionStatus, string> DeviceOpened