メインコンテンツへスキップ

CameraPipelineModule

8th Wall カメラアプリケーションは、カメラパイプラインモジュールフレームワークを使用して構築されています。 アプリケーションは、モジュールを設定し、実行時にアプリケーションの動作を制御します。

カメラパイプラインモジュールのアプリケーションへの追加については、 XR8.addCameraPipelineModule() をご参照ください。

カメラパイプラインモジュールオブジェクトは、アプリケーション内でユニークな .name の文字列を持つ必要があります。 以下のカメラライフサイクルメソッドを1つ以上実装する必要があります。 これらのメソッドは、runループ内の適切な箇所で実行されます。

アプリケーションのメインランタイム中、各カメラフレームは以下のサイクルとなります。

onBeforeRun -> onCameraStatusChange (requesting -> hasStream -> hasVideo | failed) -> onStart -> onAttach -> onProcessGpu -> onProcessCpu -> onUpdate -> onRender

カメラモジュールは、以下のカメラライフサイクルメソッドを1つ以上実装する必要があります。

関数説明
onAppResourcesLoadedサーバーからアプリに付属するリソースを受信したときに呼び出されます。
onAttachモジュールがフレームの更新を受け取る前に呼び出されます。 パイプラインの実行前または実行後に追加されたモジュールで呼び出されます。
onBeforeRunXR8.run()の直後に呼び出されます。 もし、何らかの Promise が返された場合、XRは全ての Promise を待ちます。
onCameraStatusChangeカメラ許可リクエスト中に変更が発生したときに呼び出されます。
onCanvasSizeChangeキャンバスのサイズが変更されたときに呼び出されます。
onDetachモジュールが最後にフレーム更新を受け取った後に呼び出されます。 これは、エンジンが停止した後か、モジュールが手動でパイプラインから取り外された後、最初に発生するものです。
onDeviceOrientationChange端末の横向き/縦向きが変更されたときに呼び出されます。
onExceptionXRでエラーが発生したときに呼び出されます。 エラーオブジェクトとともに呼び出されます。
onPausedXR8.pause() が呼び出されたときに呼び出されます。
onProcessCpuGPU処理の結果を読み取り、使用可能なデータを返すために呼び出されます。
onProcessGpuGPU処理を開始するために呼び出されます。
onRemoveモジュールがパイプラインから削除されたときに呼び出されます。
onRenderonUpdateの後に呼び出されます。 これはレンダリングエンジンが WebGL 描画コマンドを発行するための時間です。 アプリケーションが独自のrunループを提供し、 XR8.runPreRender()XR8.runPostRender()に依存している場合、このメソッドは呼ばれず、すべてのレンダリングを外部のrunループで調整する必要があります。
onResumeXR8.resume() が呼び出されたときに呼び出されます。
onStartXRの起動時に呼び出されます。 XR8.run() が呼び出された後の最初のコールバックです。
onUpdateレンダリング前にシーンを更新するために呼び出されます。 onProcessGpu および onProcessCpu のモジュールが返すデータは、processGpu.modulename および processCpu.modulename として存在し、名前は module.name = "modulename" で与えられます。
onVideoSizeChangeキャンバスのサイズが変更されたときに呼び出されます。
requiredPermissionsモジュールはパーミッションリクエストが必要なブラウザ機能を指定できます。 これらは、フレームワークによって、適切なパーミッションがない場合に要求したり、XRを実行する前に適切なパーミッションを要求するコンポーネントを作成したりするために使用することができます。

注意事項: onProcessGpu または onProcessCpu を実装するカメラモジュールは、パイプラインのその後にデータを提供できます。 これは、モジュールの名前によって行われます。