本文へスキップ

class ARScanningManager

(Niantic.Lightship.AR.Scanning.ARScanningManager)

概要

ARシーンのスキャンをプレイバック用に記録するマネージャー。 マネージャーを有効にするとレコーディングが開始されます。 SaveScan()を使用して、録画を停止し、ScanPathに保存します。

	class ARScanningManager: SubsystemLifecycleManager< XRScanningSubsystem, XRScanningSubsystemDescriptor, XRScanningSubsystem.Provider > {
public:
// fields

NativeArray<Vector3> VoxelPositions => _voxelPositions;
NativeArray<Color32> VoxelColors => _voxelColors;

// properties

string ScanPath;
bool FullResolutionEnabled;
string ScanTargetId;
int ScanRecordingFramerate;
bool EnableRaycastVisualization;
bool EnableVoxelVisualization;
bool UseEstimatedDepth;

// methods

Texture2D GetRaycastColorTexture();
Texture2D GetRaycastNormalTexture();
Texture2D GetRaycastPositionTexture();
ScanStore GetScanStore();
async Task SaveScan();
async Task DiscardScan();
string GetCurrentScanId();
void RequestVoxelUpdate();
bool TryGetVoxelBuffer();

protected:
// メソッド

override void OnBeforeStart();
override void OnDisable();
};

詳細なドキュメント

ARシーンのスキャンをプレイバック用に記録するマネージャー。 マネージャーを有効にするとレコーディングが開始されます。 SaveScan()を使用して、録画を停止し、ScanPathに保存します。

フィールド

ボクセルポジション

NativeArray<Vector3> VoxelPositions => _voxelPositions

カメラでスキャンしたボクセルの位置。 配列の各エントリは、VoxelColors の同じインデックスのエントリに対応します。 これらの値は、EnableVoxelVisualizationがtrueで、スキャニングがXRScanningState.Started状態のときのみ更新できます。 RequestVoxelUpdateを呼び出して基礎となるマップを更新し、TryGetVoxelBufferを呼び出して最新の値を入力します。

ボクセルカラー

NativeArray<Color32> VoxelColors => _voxelColors

それぞれのボクセルの色。 配列の各エントリは、VoxelPositions の同じインデックスのエントリに対応します。 これらの値は、EnableVoxelVisualizationがtrueで、スキャニングがXRScanningState.Started状態のときのみ更新できます。 RequestVoxelUpdateを呼び出して基礎となるマップを更新し、TryGetVoxelBufferを呼び出して最新の値を入力します。

プロパティ

ScanPath

string ScanPath

スキャンデータを保存するスキャンパス。 絶対パス('/'、'˶'、またはドライブ名で始まる)が指定された場合、ディレクトリは書き込み可能でなければならず、アプリケーションはフォルダに書き込む権限を持っていなければなりません。 そうでない場合、パスは Application.persistentDataPath からの相対パスとして解釈されます。

FullResolutionEnabled

bool FullResolutionEnabled

スキャン再構成用のフル解像度画像を記録。 スキャンが有効になる前に設定する必要があります。

ScanTargetId

string ScanTargetId

The scan target ID. スキャンが有効になる前に設定する必要があります。

ScanRecordingFramerate

int ScanRecordingFramerate

スキャン録画のフレームレート。 フレームレートが0の場合、システムはデフォルトのフレームレート15FPSを使用します。 スキャンが有効になる前に設定する必要があります。

EnableRaycastVisualization

bool EnableRaycastVisualization

スキャニングのレイキャスト視覚化を有効にする。 レイキャストテクスチャにアクセスするために必要です。 データは、GetRaycastColorTexture()GetRaycastNormalTexture()GetRaycastPositionTexture()メソッドから入手できます。 スキャンが有効になる前に設定する必要があります。

EnableVoxelVisualization

bool EnableVoxelVisualization

スキャンのボクセル可視化を有効にする。 ボクセルの計算に必要。 RequestVoxelUpdateは、ボクセルバッファを非同期に計算するために呼び出されなければならない。 その後、TryGetVoxelBufferを呼び出して、ボクセルバッファを取得することができます。 TryGetVoxelBufferがtrueを返した後、ボクセルデータはVoxelPositionsフィールドとVoxelColorsフィールドで利用可能になります。 スキャンが有効になる前に設定する必要があります。

UseEstimatedDepth

bool UseEstimatedDepth

デバイスがライダーなどのプラットフォーム深度をサポートしていない場合、ナイアンティック深度データを記録する。 プラットフォームの深度が存在する場合は、ナイアンティックの深度の代わりに使用されます。

メソッド

GetRaycastColorTexture

テクスチャ2D GetRaycastColorTexture()

現在のレイキャストカラーテクスチャを読み込む。

レイキャスト視覚化のためのカラーテクスチャ。 それ以外の場合、null。

GetRaycastNormalTexture

テクスチャ2D GetRaycastNormalTexture()

現在のレイキャスト法線テクスチャを読み込む。

レイキャスト視覚化のための法線テクスチャ。 それ以外の場合、null。

GetRaycastPositionTexture

テクスチャ2D GetRaycastPositionTexture()

現在のレイキャスト位置のテクスチャを読み込む。

レイキャスト視覚化のための位置テクスチャ。 それ以外の場合、null。

SaveScan

非同期タスク SaveScan()

現在のスキャンを保存します。 これにより、それ以降の記録は即座に停止し、保存が完全に完了した時点でコルーチンが終了します。

この作業中は、コンポーネントを無効にしたり、アプリを終了したりしないでください。 このプロセスが中断されると、スキャンは正しく保存されません。

    戻り値:

    

DiscardScan

非同期タスク DiscardScan()

現在のスキャンを破棄します。 これにより、それ以降の録画は直ちに停止され、既存のデータがすべて削除された時点でコルーチンが終了します。

    戻り値:

    

GetCurrentScanId

string GetCurrentScanId()

現在のscanIDを返す。 結果はスキャンが進行中のときのみ表示される。

    戻り値: