Table of Contents

Class ThreeDofCameraDeviceFrameSource

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

シーン内の3DOFカメラデバイス(ThreeDofCameraDeviceFrameSource)を制御するMonoBehaviourで、Unity環境下で機能拡張を提供します。

このフレームソースは3DOF回転トラッキングデバイスであり、ARSessionで回転データを出力します。

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

フィールド

DesiredFocusMode

希望のフォーカスモード。DeviceOpenedイベントまたはOnEnable前に変更する必要があります。

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

public ThreeDofCameraDeviceFocusMode DesiredFocusMode

プロパティ

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; }

DesiredSize

希望のカメラ画像サイズ。DeviceOpenedイベント前に変更する必要があります。

SupportedSize内で最も近いサイズが使用されます。未設定時はデフォルト値が適用されます。

public Optional<Vector2Int> DesiredSize { get; set; }

DeviceCameras

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

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

CameraFrameStartedがtrue時に値が正確であることを保証してください。

protected override List<FrameSourceCamera> DeviceCameras { 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; }

Opened

カメラがオープンしているかどうか。

public bool Opened { get; }

Size

現在の画像サイズ。Openedがtrueの時のみ有効です。

set時はSupportedSize内で最も近いサイズが使用されます。

FrameRecorder録画中に画像サイズを変更すると、録画データの更新が停止します。クローズ後に再録画が必要です。

public Vector2Int Size { get; set; }

SupportedSize

デバイスがサポートする全画像サイズ。Openedがtrueの時のみ有効です。

public List<Vector2Int> SupportedSize { get; }

メソッド

Close()

デバイスをクローズします。

public void Close()

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