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

XR8.FaceController.pipelineModule()

XR8.FaceController.pipelineModule()

概要

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

パラメータ

なし

戻り値

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

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

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

ディスパッチされたイベント

faceloading: 顔ARの追加リソースの読み込みが開始されたときに発生します。

faceloading.detail : {maxDetections, pointsPerDetection, indices, uvs}

プロパティタイプ説明
maxDetectionsNumber同時に処理できる顔の最大数です。
pointsPerDetectionNumber1つの顔に対して抽出される頂点の数。
indices[{a, b, c}]XR8.FaceController.configure()meshGeometry で指定した、要求されたメッシュの三角形を形成する頂点配列のインデックスのリストです。
uvs[{u, v}]返された頂点に対応するテクスチャマップへのuv位置のリスト。

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

facescanning.detail : {maxDetections, pointsPerDetection, indices, uvs}

プロパティタイプ説明
maxDetectionsNumber同時に処理できる顔の最大数です。
pointsPerDetectionNumber1つの顔に対して抽出される頂点の数。
indices[{a, b, c}]XR8.FaceController.configure()meshGeometry で指定した、要求されたメッシュの三角形を形成する頂点配列のインデックスのリストです。
uvs[{u, v}]返された頂点に対応するテクスチャマップへのuv位置のリスト。

facefound: 顔が最初に見つかったときに発生します。

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

プロパティタイプ説明
idNumber位置する顔の数値ID。
transform{position, rotation, scale, scaledWidth, scaledHeight, scaledDepth}位置する顔のトランスフォーム情報。
vertices[{x, y, z}]transformに対する相対的な顔の位置。
normals[{x, y, z}]transformに対する相対的な頂点の法線方向。
attachmentPoints{name, position: {x,y,z}}使用可能なアタッチメントポイントの一覧は XR8.FaceController.AttachmentPoints をご参照ください。 position は、transformからの相対位置です。
uvsInCameraFrame[{u, v}]返された頂点に対応するカメラフレーム内のuv位置のリスト。

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

プロパティタイプ説明
position{x, y, z}配置された顔の3次元位置。
rotation{w, x, y, z}配置された顔の3dローカル方向。
scaleNumberこの顔に付けられたオブジェクトに適用されるスケール係数。
scaledWidthNumberシーンにスケールを掛けたときの頭のおおよその幅です。
scaledHeightNumberシーンにスケールを掛けたときの頭のおおよその高さ。
scaledDepthNumberシーンにスケールを掛けたときの頭のおおよその奥行き。

faceupdated: 顔が見つかったときに発生します。

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

プロパティタイプ説明
idNumber位置する顔の数値ID。
transform{position, rotation, scale, scaledWidth, scaledHeight, scaledDepth}位置する顔のトランスフォーム情報。
vertices[{x, y, z}]transformに対する相対的な顔の位置。
normals[{x, y, z}]transformに対する相対的な頂点の法線方向。
attachmentPoints{name, position: {x,y,z}}使用可能なアタッチメントポイントの一覧は XR8.FaceController.AttachmentPoints をご参照ください。 position は、transformからの相対位置です。
uvsInCameraFrame[{u, v}]返された頂点に対応するカメラフレーム内のuv位置のリスト。

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

プロパティタイプ説明
position{x, y, z}配置された顔の3次元位置。
rotation{w, x, y, z}配置された顔の3dローカル方向。
scaleNumberこの顔に付けられたオブジェクトに適用されるスケール係数。
scaledWidthNumberシーンにスケールを掛けたときの頭のおおよその幅です。
scaledHeightNumberシーンにスケールを掛けたときの頭のおおよその高さ。
scaledDepthNumberシーンにスケールを掛けたときの頭のおおよその奥行き。

facelost: 顔が追跡されなくなったときに発生します。

facelost.detail : { id }

プロパティタイプ説明
idNumber位置する顔の数値ID。

mouthopened: 追跡する顔の口が開いたときに発生します。

mouthopened.detail : { id }

プロパティタイプ説明
idNumber位置する顔の数値ID。

mouthclosed: 追跡する顔の口が閉じるときに発生します。

mouthclosed.detail : { id }

プロパティタイプ説明
idNumber位置する顔の数値ID。

lefteyeopened: 追跡する顔の左目が開いたときに発生します。

lefteyeopened.detail : { id }

プロパティタイプ説明
idNumber位置する顔の数値ID。

lefteyeclosed: 追跡する顔の左目が閉じたときに発生します。

lefteyeclosed.detail : { id }

プロパティタイプ説明
idNumber位置する顔の数値ID。

righteyeopened: 追跡する顔の右目が開いたときに発生します。

righteyeopened.detail : { id }

プロパティタイプ説明
idNumber位置する顔の数値ID。

righteyeclosed: 追跡する顔の右目が閉じるときに発生します。

righteyeclosed.detail : { id }

プロパティタイプ説明
idNumber位置する顔の数値ID。

lefteyebrowraised: 追跡する顔の左眉が、顔を発見したときの初期位置から上がっているときに発生します。

lefteyebrowraised.detail : { id }

プロパティタイプ説明
idNumber位置する顔の数値ID。

lefteyebrowlowered: 追跡する顔の左眉が、顔を発見したときの初期位置まで下がっているときに発生します。

lefteyebrowlowered.detail : { id }

プロパティタイプ説明
idNumber位置する顔の数値ID。

righteyebrowraised: 追跡する顔の右眉が、顔を発見したときの位置から上がったときに発生します。

righteyebrowraised.detail : { id }

プロパティタイプ説明
idNumber位置する顔の数値ID。

righteyebrowlowered: 追跡する顔の右眉が、顔を発見したときの初期位置まで下がったときに発生します。

righteyebrowlowered.detail : { id }

プロパティタイプ説明
idNumber位置する顔の数値ID。

lefteyewinked: 追跡する顔の左目が閉じ、右目が開いたまま750ms以内に開いたときに発生します。

lefteyewinked.detail : { id }

プロパティタイプ説明
idNumber位置する顔の数値ID。

righteyewinked: 追跡する顔の右目が閉じ、左目が開いたまま750ms以内に開いたときに発生します。

righteyewinked.detail : { id }

プロパティタイプ説明
idNumber位置する顔の数値ID。

blinked: 追従する顔の目が瞬きしたときに発生します。

blinked.detail : { id }

プロパティタイプ説明
idNumber位置する顔の数値ID。

interpupillarydistance: 追跡する顔の各瞳孔の中心間の距離をミリメートル単位で初めて検出したときに発生します。

interpupillarydistance.detail : {id, interpupillaryDistance}

プロパティタイプ説明
idNumber位置する顔の数値ID。
interpupillaryDistanceNumber各瞳孔の中心間のおおよその距離。 (ミリメートル)

enableEars:true 耳の検出はフェイス・エフェクトと同時に実行され、以下のイベントをディスパッチします:

earfound: 耳が最初に見つかったときに発射される。

earfound.detail : {id, ear}

プロパティタイプ説明
idNumber耳が取り付けられている面を示す数値ID。
earString または のいずれか。

earpointfound: 耳のアタッチメントポイントが最初に見つかったときに発火する。

earpointfound.detail : {id, point}

プロパティタイプ説明
idNumberイヤーアタッチメントポイントが取り付けられている面を示す数値ID。
pointStringleftHelix, leftCanal, leftLobe, rightHelix, rightCanal, または rightLobeのいずれかである。

earlost: 耳が追跡されなくなったときに発生する。

earlost.detail : {id, ear}

PropertyType説明
idNumber耳が取り付けられている面を示す数値ID。
earString または のいずれか。

earpointlost: 耳のアタッチメントポイントが追跡されなくなったときに発生する。

earpointlost.detail : {id, point}

プロパティタイプ説明
idNumberイヤーアタッチメントポイントが取り付けられている面を示す数値ID。
pointStringleftHelix, leftCanal, leftLobe, rightHelix, rightCanal, または rightLobeのいずれかである。

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

XR8.addCameraPipelineModule(XR8.FaceController.pipelineModule())