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を返す。 結果はスキャンが進行中のときのみ表示される。
戻り値: