Zum Hauptinhalt springen

xrfaceupdated

Beschreibung

Dieses Ereignis wird von xrface ausgelöst, wenn das Gesicht anschließend gefunden wird.

xrfaceupdated.detail : {id, transform, vertices, normals, attachmentPoints}`

EigentumBeschreibung
idEine numerische Kennung für die gefundene Fläche.
transformieren: {Position, Rotation, Skalierung, scaledWidth, scaledHeight, scaledDepth}Transformationsinformationen der gefundenen Fläche.
Scheitelpunkte: [{x, y, z}]Position der Gesichtspunkte, relativ zur Transformation.
Normalen: [{x, y, z}]Normale Richtung der Scheitelpunkte, relativ zur Transformation.
attachmentPoints: { name, position: {x,y,z} }Siehe XR8.FaceController.AttachmentPoints für die Liste der verfügbaren Befestigungspunkte. Die "Position" ist relativ zur Transformation.
uvsInCameraFrame [{u, v}]Die Liste der uv-Positionen im Kamerabild, die den zurückgegebenen Scheitelpunkten entsprechen.

transform" ist ein Objekt mit den folgenden Eigenschaften:

EigentumBeschreibung
Position {x, y, z}Die 3d-Position der gefundenen Fläche.
Drehung {w, x, y, z}Die lokale 3D-Orientierung der gefundenen Fläche.
SkalaEin Skalierungsfaktor, der auf Objekte angewendet werden soll, die mit dieser Fläche verbunden sind.
skalierteBreiteUngefähre Breite des Kopfes in der Szene, multipliziert mit dem Maßstab.
scaledHeightUngefähre Höhe des Kopfes in der Szene, multipliziert mit dem Maßstab.
scaledDepthUngefähre Tiefe des Kopfes in der Szene bei Multiplikation mit dem Maßstab.

Beispiel

const faceRigidComponent = {
init: function () {
const object3D = this.el.object3D
object3D.visible = false
const show = ({detail}) => {
const {position, rotation, scale} = detail.transform
object3D.position.copy(position)
object3D.quaternion.copy(rotation)
object3D.scale.set(scale, scale, scale)
object3D.visible = true
}
const hide = ({detail}) => { object3D.visible = false }
this.el.sceneEl.addEventListener('xrfacefound', show)
this.el.sceneEl.addEventListener('xrfaceupdated', show)
this.el.sceneEl.addEventListener('xrfacelost', hide)
}
}