Table of Contents

Class CameraDeviceFrameSource

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

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

このフレームソースはモーション追跡デバイスではなく、ARSessionではモーションデータを出力しません。

[RequireComponent(typeof(CameraDeviceDisplay))]
public class CameraDeviceFrameSource : FrameSource
継承
CameraDeviceFrameSource
Derived
継承されたメンバー

フィールド

CameraOpenIndex

カメラを開く際に使用するデバイスインデックス。CameraOpenMethod == DeviceIndexの場合に使用され、DeviceOpenedイベント前に変更する必要があります。

[HideInInspector]
[SerializeField]
public int CameraOpenIndex

CameraOpenMethod

カメラを開く際に使用するメソッド。DeviceOpenedイベント前に変更する必要があります。

[HideInInspector]
[SerializeField]
public CameraDeviceFrameSource.CameraDeviceOpenMethod CameraOpenMethod

CameraOpenType

カメラを開く際に使用するカメラタイプ。CameraOpenMethod == PreferredTypeまたはSpecificTypeの場合に使用され、DeviceOpenedイベント前に変更する必要があります。

[HideInInspector]
[SerializeField]
public CameraDeviceType CameraOpenType

プロパティ

AndroidCameraApiType

Androidで、使用されているカメラAPI(camera1またはcamera2)を取得するために使用できます。Openedがtrueの場合のみ利用可能です。

public AndroidCameraApiType AndroidCameraApiType { get; }

AvailableCenterMode

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

使用可能なすべてのセンターモード。

protected override IReadOnlyList<ARSession.ARCenterMode> AvailableCenterMode { get; }

Camera

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

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

protected override Camera Camera { get; }

CameraCandidate

Cameraの代替。未設定の場合はCamera.mainが使用されます。

public Camera CameraCandidate { get; set; }

CameraCount

OSが認識したカメラの数を取得します。

public static int CameraCount { get; }

CameraFrameStarted

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

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

protected override bool CameraFrameStarted { get; }

CameraType

カメラタイプ。Openedがtrueの場合のみ利用可能です。

public CameraDeviceType CameraType { get; }

DesiredAndroidCameraApiType

希望するAndroid Camera Api。DeviceOpenedイベント前に変更した場合のみ有効です。

未設定の場合、DesiredCameraPreferenceに基づいて選択されます。

public Optional<AndroidCameraApiType> DesiredAndroidCameraApiType { get; set; }

DesiredCameraPreference

カメラデバイス作成時に使用するプリファレンス設定。セッション開始前に変更した場合のみ有効です。

public Optional<CameraDevicePreference> DesiredCameraPreference { get; set; }

DesiredFocusMode

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

注意:ハードウェアまたはシステムの制限により、一部のデバイスではフォーカスの切り替えが無効になる場合があります。未設定の場合、DesiredCameraPreferenceに基づいて選択されます。

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

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

FocusMode

フォーカスモード。Openedがtrueの場合のみ利用可能。

public CameraDeviceFocusMode FocusMode { set; }

FrameRateRange

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

public Vector2 FrameRateRange { get; }

FrameRateRangeIndex

デバイスの現在のフレームレート範囲のインデックス。Openedがtrueの場合のみ利用可能。

public int FrameRateRangeIndex { get; set; }

Index

カメライン��ックス。Openedがtrueの場合のみ利用可能です。

public int Index { 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; }

Parameters

cameraパラメータ。Openedがtrueの場合のみ利用可能。

public CameraParameters Parameters { get; set; }

Size

現在の画像サイズ。Openedがtrueの場合のみ利用可能。

setはSupportedSize内で最も近いサイズの値を使用します。

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

public Vector2Int Size { get; set; }

SupportedFrameRateRange

現在のデバイスがサポートする全てのフレームレート範囲。Openedがtrueの場合のみ利用可能。

public List<Vector2> SupportedFrameRateRange { get; }

SupportedSize

現在のデバイスでサポートされているすべての画像サイズ。Openedがtrueの場合のみ利用可能です。

public List<Vector2Int> SupportedSize { get; }

enabled

ARSession実行時にビデオストリームデータの収集を開始/停止します。セッション起動後、MonoBehaviour.enabledがtrueの場合にのみ収集が開始されます。

public bool enabled { get; set; }

メソッド

AutoFocus()

Does auto focus once. It is only available when FocusMode is Normal or Macro.

public bool AutoFocus()

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()

SetFlashTorch(bool)

フラッシュトーチモードを設定します。Openedがtrueの場合のみ利用可能です。

public bool SetFlashTorch(bool on)

パラメーター

on

イベント

DeviceClosed

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

public event Action DeviceClosed

DeviceOpened

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

public event Action<bool, PermissionStatus, string> DeviceOpened

DeviceStateChanged

デバイスの切断や割り込みなどで使用不能になったイベント(Windowsのみ)。

public event Action<CameraState> DeviceStateChanged