Il existe trois grandes techniques de Motion Capture, qui se différencient par les moyens de captures :
- Mécanique : Technique apparue et utilisée au début de la Motion Capture. La capture ce fait à l'aide de fils.Procédé très rudimentaire et très encombrant, le résultat n'est au mieux qu'un squelette en mouvement. De plus cette technique rencontre quelques problèmes pour la restitution dans l'espace.
- Magnétique : A l'avantage de pouvoir faire une capture de mouvement sans fil, mais avec un aimant. Son handicap est sa courte portée. De plus, de gros progrès restent à faire dans cette technique.
- Optique : Méthode la plus utilisée et la plus rentable. Se faisant par des rayons infra-rouge, elle offre une longue portée. Un des seuls problèmes est que le rayon puisse être obstrué. Ici encore, des progrès restent à faire.
Néanmoins, les calculs effectués par les ordinateurs et qui permettent la vision du squelette virtuel sont similaires. C'est pourquoi ce qui suit présente une version très simplifiée mais acceptable de ces calculs.
L'enjeu pour le programme informatique est d'arriver à calculer la position de plusieurs points dans l'espace.
Dans un premier temps :
Nous sommes en présence pour cet exemple de réflecteurs et de caméras infra-rouge qui constituent la méthode optique.
Pour simplifier, nous nous ramenons au calcul d'un seul point.
Tout d'abord calculons la position d point P dans un plan en 2 dimensions.
F1 est la focale de l'objectif O1
F2 est la focale de l'objectif O2Pour cela nous allons déterminer l'équation des deux droites puis leur point d'intersection.
- (PF1)
Les vecteurs PF1 et F1m sont colinéaires.
Donc d( PF1 , F1m ) = 0|x-x1 xm-x1|
|y+f1 f1| = 0f1(x-x1) - (y+f1)(xm-x1) = 0
f1x - (xm-x1)y - f1x1 - f1(xm-x1) = 0Equation de (PF1) :
f1x - (xm-x1)y - f1xm = 0- (PF2)
Les vecteurs PF2 et F2n sont colinéaires.
Donc d( PF2 , F2n ) = 0
|x-f2 f2|
|y-y2 y2-y1| = 0(x-f2)(y2-y1) - f2(y-y2) = 0
x(y2-y1) - f2y - f2(y2-y1) + f2y2 = 0Equation de (PF2) :
x(y2-y1) - f2y + f2y1 = 0
- Calcul du point d'intersection :
On se retrouve avec un système de deux équations à deux inconnues :{ f1x - (xm-x1)y - f1xm = 0
{ x(y2-y1) - f2y + f2y1 = 0La Solution nous donne les coordonnées du point P :
Dans un deuxième temps :
On se rapporte a un autre plan pour calculer la hauteur. PF est connu. On peut facilement connaître ô. h
Donc sin(ô) = -----
PFPar suite h = PF * sin(ô)
Pour Finir :
Nous avons les 3 coordonnées nous permettant de repérer le point P dans les 3 dimensions.
Il va de soi que les logiciels de Motion Capture effectuent des calculs beaucoup plus complexes vu le nombre d'informations qu'ils ont à traiter.
En effet ils doivent prendre en compte des dizaines de points en mouvement simultanément.