headtracking English version

Le fonctionnement de headtracking

Une caméra posée sur le meuble regarde le joueur. Le plugin déduit la position de cette caméra à partir du meuble lui-même, trouve votre tête dans chaque image, la convertit en position en millimètres, et déplace le point de vue de Visual Pinball X en conséquence.

L'effet « fish-tank »

Quand vous bougez la tête devant un vrai flipper, vous voyez le plateau sous un angle légèrement différent : les objets proches se décalent plus que les objets lointains. headtracking reproduit cet effet sur un écran. Visual Pinball X propose une disposition de vue Window conçue pour cela : l'écran devient une fenêtre fixe sur le meuble, et quand votre tête bouge, le plugin déplace le point de vue pour que la table 3D reste en place derrière la vitre.

Une calibration tirée du meuble lui-même

Pour transformer une tête vue dans une image en position réelle, un programme doit savoir où se trouve la caméra et comment elle voit (sa focale). La plupart des solutions vous demandent des mesures ou une procédure de calibration. headtracking se sert de ce que tout meuble possède déjà : la lockbar et les deux rails latéraux.

Lockbar encadrée et rails latéraux marqués par des lignes sur un vrai meuble
La détection sur un vrai meuble : la lockbar (le cadre) et les rails latéraux.
Vue de la caméra depuis le fronton, avec quatre lignes tracées le long de la lockbar et des rails, et leurs points d'intersection
Le repère tracé sur un relevé : les deux bords de la lockbar, les deux rails latéraux et leurs six points d'intersection.

Trouver votre tête

La tête est trouvée par BlazePose, un modèle de pose du corps qui tourne en quelques millisecondes par image. Il repère d'un coup la tête, les épaules et les poignets, y compris sur les images infrarouges. C'est un détecteur de corps, pas de visage : un détecteur de visage décroche dès que vous vous penchez sur le plateau et que la caméra ne voit plus que le haut de votre crâne. En contrepartie, votre buste (tête et épaules) doit être dans l'image.

Mesurer la distance

Voir choisir une caméra pour les différences en pratique.

Dans Visual Pinball X

L'application de démonstration

Chaque version contient aussi headtracking-demo, un programme autonome qui n'a pas besoin de VPX. Il affiche l'image de la caméra avec ce que voit la détection, permet de régler la largeur de la lockbar et l'inclinaison du plateau, et ouvre une fenêtre de parallaxe en 3D où bouger la tête déplace la scène : un moyen rapide de juger le suivi. Il propose aussi une correction en un clic quand une Kinect est branchée mais inaccessible, et le bouton 🎁 Contribute qui partage un relevé de votre meuble.

Tout dans un seul plugin

Les bibliothèques Kinect (libfreenect et libfreenect2), libjpeg-turbo et le moteur ONNX qui fait tourner les réseaux de neurones sont intégrés au plugin, et les modèles sont embarqués dans le programme. Il n'y a ni SDK Kinect de Microsoft ni Python à installer. Tout le projet est écrit en Rust ; CLAUDE.md décrit l'architecture pour les développeurs.