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

XR8.HandController.pipelineModule()

XR8.HandController.pipelineModule()

概要

カメラのパイプラインモジュールを作成します。設定すると、カメラが起動したときにコールバックを受け取ります。イベントの提示やその他の状態が変更されます。 これはカメラの位置を計算するために使用されます。

パラメータ一覧

None

Returns

戻り値は onUpdate で次のように使用できるオブジェクトです。

processCpuResult.handcontroller: { rotation, position, intrinsics, cameraFeedTexture }

プロパティタイプ説明
rotation{w, x, y, z}シーンのカメラの向き(クォータニオン)。
position{x, y, z}シーン内のカメラの位置。
intrinsics[Number]レンダリングされたカメラ映像と同じ視野をシーンカメラに与える16次元の列-長4x4投影行列です。
cameraFeedTextureWebGLTextureカメラ映像データを含むテクスチャーです。

発生するイベント

handloading:追加のハンドARリソースのロード開始時に発生します。

handloading.detail : {maxDetections, pointsPerDetection, rightIndices, leftIndices}

プロパティタイプ説明
maxDetectionsNumber同時に処理できるハンド(手)の最大数。
pointsPerDetectionNumberハンド(手)ごとに抽出される頂点の数。
rightIndices[{a, b, c}]ハンドメッシュの三角形を形成する頂点配列へのインデックス。
leftIndices[{a, b, c}]ハンドメッシュの三角形を形成する頂点配列へのインデックス。

handscanning:すべてのハンドARリソースがロードされてスキャンが開始されたときに発生します。

handscanning.detail : {maxDetections, pointsPerDetection, rightIndices, leftIndices}

プロパティタイプ説明
maxDetectionsNumber同時に処理できるハンド(手)の最大数。
pointsPerDetectionNumberハンド(手)ごとに抽出される頂点の数。
rightIndices[{a, b, c}]ハンドメッシュの三角形を形成する頂点配列へのインデックス。
leftIndices[{a, b, c}]ハンドメッシュの三角形を形成する頂点配列へのインデックス。

handfound:ハンド(手)が最初に見つかったときに発生します。

handfound.detail : {id, transform, vertices, normals, attachmentPoints}

プロパティタイプ説明
idNumber位置するハンド(手)の数値ID。
transform{position, rotation, scale}位置するハンド(手)の情報を変換する。
vertices[{x, y, z}]ハンドポイントの位置、トランスフォームに対する相対位置。
normals[{x, y, z}]transformに対する相対的な頂点の法線方向。
handKindNumber手の位置を数値で表したもの。 有効な値は0(指定なし)、1(左)、2(右)。
attachmentPoints{name, position: {x,y,z}}利用可能なアタッチメントポイントのリストについては、 XR8.HandController.AttachmentPoints を参照してください。 position は、transformからの相対位置です。

transform は、以下のプロパティを持つオブジェクトです。

プロパティタイプ説明
position{x, y, z}位置するハンド(手)の3Dポジション。
rotation{w, x, y, z}配置されたハンド(手)の3次元の局所的な向き。
scaleNumberこのハンド(手)に取り付けられているオブジェクトに適用されるスケールファクター。

attachmentPoints は、以下のプロパティを持つオブジェクトである:

プロパティタイプ説明
nameStringアタッチメントポイントの名前。 利用可能なアタッチメントポイントのリストについては、 XR8.HandController.AttachmentPoints を参照してください。
position{x, y, z}位置する手の取り付け位置の3Dポジション。
rotation{w, x, y, z}Y軸正方向ベクトルを取り付け点の骨ベクトルに回転させる回転クォータニオン。
innerPoint{x, y, z}アタッチメントポイントの内側の点。 (例:手のひら側)
outerPoint{x, y, z}アタッチメントポイントの外側の点。 (例:手の甲)
半径Number指の取り付け点の半径。
小半径Number手の表面から手首の取り付け点までの最短半径。
majorRadiusNumber手の表面から手首の取り付け点までの最長半径。

handupdated:その後にハンド(手)が見つかったときに発生します。

handupdated.detail : {id, transform, vertices, normals, attachmentPoints}

プロパティタイプ説明
idNumber位置するハンド(手)の数値ID。
transform{position, rotation, scale}位置するハンド(手)の情報を変換する。
vertices[{x, y, z}]ハンドポイントの位置、トランスフォームに対する相対位置。
normals[{x, y, z}]transformに対する相対的な頂点の法線方向。
handKindNumber手の位置を数値で表したもの。 有効な値は0(指定なし)、1(左)、2(右)。
attachmentPoints{name, position: {x,y,z}}利用可能なアタッチメントポイントのリストについては、 XR8.HandController.AttachmentPoints を参照してください。 position は、transformからの相対位置です。

transform は、次のプロパティを持つオブジェクトです。

プロパティタイプ説明
position{x, y, z}位置するハンド(手)の3Dポジション。
rotation{w, x, y, z}配置されたハンドの3次元の向き。
scaleNumberこのハンド(手)に取り付けられているオブジェクトに適用されるスケールファクター。

handlost:ハンド(手)が追跡されなくなったときに発生します。

handlost.detail : { id }

プロパティタイプ説明
idNumber位置するハンド(手)の数値ID。

例 - パイプラインモジュールの追加

XR8.addCameraPipelineModule(XR8.HandController.pipelineModule())