Combiner deux capteurs
Nous avons donc appris que le capteur gyroscopique avait ses particularités, mais pourriez-vous nous dire précisément en quoi il vous donnait du fil à retordre?
Comme nous l'avons dit, cet appareil peut mesurer la torsion et la rotation. Ceci étant dit, lorsqu'il dépasse les limites d'observation effective, vous n'êtes parfois pas sûr de recevoir des données fiables.
Autrement dit, si vous faites un grand mouvement avec la manette Wii Remote, il pourrait dépasser les limites de détection du capteur et le mouvement ne serait pas reproduit dans le jeu.
C'est ça.
Demandons à Ito-san, le responsable du circuit électronique, de nous expliquer comment vous êtes parvenus à résoudre ce problème.
Bien sûr. Nous avons augmenté la sensibilité du capteur gyroscopique de la Wii jusqu'à atteindre un niveau cinq fois supérieur à la normale. Après tout, les capteurs gyroscopiques des caméras vidéo sont relativement lents. Ils ne peuvent détecter qu'une rotation d'environ 300° par seconde…
300° par seconde! Ça ne me paraît pas lent du tout! (rires)
Effectivement, mais certaines personnes font des mouvements incroyablement rapides lorsqu'elles jouent.
Autrement dit, si le capteur ne pouvant détecter que des rotations de 300° par seconde, les limites de détection du capteur seraient dépassées dans certains cas et tout mouvement dépassant ces limites serait coupé.
Tout à fait. C'est pour cette raison que nous avons mis au point un capteur pouvant détecter des mouvements de 1600° par seconde.
Cela correspond à quatre rotations et demi. Je ne pense pas que quiconque puisse faire pivoter ainsi sa main!
Oui. Ainsi, nous étions certains que les mouvements rapides seraient détectés. Ensuite, nous avons dû étudier comment détecter les mouvements lents.
Je remarque ce qui semble être une légère contradiction. Après tout, si vous parvenez à détecter les mouvements rapides, il paraîtrait logique que vous ayez plus de mal à détecter les mouvements lents.
C'est d'une logique irréfutable! (rires) Cependant, nous voulions faire le maximum pour que le capteur puisse aussi détecter les mouvements lents. J'en ai discuté à plusieurs reprises avec Ota-san.
C'est vrai que nous avons eu plusieurs discussions à ce sujet, pas vrai?
Alors Ota-san, comment avez-vous résolu ce problème?
Nous avons conçu le capteur pour qu'il dispose de deux modes : un pour les mouvements rapides et l'autre pour les mouvements lents.
Et plus précisément, quels sont ces deux modes?
Bien, comme les données du capteur sont envoyées de façon sans fil, la résolution de ces données est déjà établie. Imaginons que vous pouvez transmettre ces données sur dix bandes. En réalité, il y en a plus que ça, mais je prends cet exemple pour que ça soit plus facile à comprendre. Si vous avez dix bandes, cela signifie que vous pouvez seulement transmettre des signaux de données allant de zéro à neuf.
Si on part du principe que la résolution des données est limitée à dix bandes, vous ne pouvez pas simplement l'augmenter à vingt, c'est ça?
Exactement, c'est impossible. Prenons l'exemple de la vitesse d'une voiture. Dans le cas d'une voiture pouvant rouler à 10 km/h maximum, les données concernant sa vitesse actuelle seraient envoyées par unités de 1 km/h. Autrement dit, chaque bande correspondrait à 1 km/h. Par contre, si nous augmentions la vitesse mesurable à 100 km/h, chaque bande correspondrait alors à 10 km/h. Nous serions alors dans l'incapacité de détecter les vitesses faibles de 2 ou 3 km/h par exemple.
Donc, si vous réglez votre instrument pour mesurer une vitesse maximale de 100 km/h, les données seront mesurées par incrément de 10 km/h.
Tout à fait. C'est pour cette raison que le capteur dispose de deux modes : le mode basse vitesse dans lequel les données sont envoyées sur 10 bandes, par incréments de 10 km/h, et le mode haute vitesse dans lequel les données sont envoyées sur 10 bandes également, par incréments de 100 km/h.
Alors grâce à ces deux modes, vous avez rendu le capteur très sensible aux mouvements lents tout en pouvant détecter les mouvements beaucoup plus rapides.
Tout à fait.
Alors, c'est ainsi que le capteur peut détecter les mouvements lents. Mais, ce n'est pas la seule raison pour laquelle le capteur gyroscopique s'est prouvé difficile à implémenter, non?
Bien sûr que non. Les changements de température ambiante pouvaient négativement affecter la sensibilité du capteur gyroscopique.
Dans MEMS, le « M » veut dire « mécanique ».
Et c'est précisément parce que c'est mécanique que cela pouvait se produire.
Normalement, lorsqu'un objet n'est pas en mouvement, nous sommes censés obtenir une valeur de 0. Dans le cas du capteur gyroscopique, au bout de quelques temps, nous obtenions une valeur de 1 ou 2 même lorsqu'il était immobile.
Le capteur se comportait comme s'il était en mouvement alors que personne ne le touchait.
Le nom technique de ce phénomène est la « dérive de température ».
En d'autres termes, la valeur qui devrait être égale à 0 varie lorsque la température change.
Pas seulement lorsque la température change. L'humidité ou les chocs peuvent avoir des conséquences similaires. Alors, nous avons discuté de différentes façons de mettre au point un capteur qui serait insensible à ce problème…
Mais n'est-ce pas…
…Impossible! Il existe toutefois un moyen de contourner le problème. Il suffit, par exemple, d'inclure un capteur distinct qui ajuste la valeur de zéro.
Nous ne pouvions toutefois pas augmenter les coûts sans raison.
Notre unique option consistait donc à trouver une solution logicielle au problème. Nous avons procédé par tâtonnements en essayant de nombreuses solutions.
Vous deviez donc trouver une méthode permettant de détecter que la manette Wii Remote était immobile.
Au tout début, nous avons pensé à l'accéléromètre. Nous pensions pouvoir nous en servir pour détecter si la télécommande bougeait ou pas mais…
Mais cela n'a pas marché, c'est ça?
Non. Le capteur gyroscopique est bien plus sensible que l'accéléromètre. Ainsi, nous avons enregistré des cas où l'accéléromètre indiquait zéro alors que le capteur gyroscopique était en mouvement.
Ce n'était pas utile, alors.
Finalement, nous avons conçu le capteur gyroscopique pour qu'il puisse détecter s'il est en mouvement ou non.
Ainsi, le capteur gyroscopique fonctionne correctement quelles que soient les variations de température et d'humidité.
Tout à fait. Nous avons mis au point un logiciel qui rend cela possible.
Ota-san, tout en essayant de maîtriser ce capteur gyroscopique récalcitrant, vous développiez aussi le SDK, c'est-à-dire le kit de développement logiciel. Selon vous, quels nouveaux horizons de développement ont été ouverts par l'association de l'accéléromètre et du capteur gyroscopique en termes de développement de jeux? J'aimerais entendre l'avis d'une personne ayant participé au développement de nombreux jeux très divers.
Pour moi, le bénéfice le plus important est que l'accessoire Wii MotionPlus permettra aux développeurs de jeux de mieux déterminer ce que le joueur ressent.
Ce que le joueur ressent?
Maintenant qu'il est possible de détecter les rotations, le mouvement de la manette Wii Remote que tient le joueur et le mouvement de l'objet à l'écran s'effectuent en temps réel. C'est quelque chose que tout monde a toujours rêvé de réaliser.
C'est tout à fait vrai.
Mais cela n'a pas été simple d'obtenir ce résultat. Les techniques dont nous avons parlé auparavant, comme d'augmenter la gamme de détection de la vitesse ou d'accroître la sensibilité de la détection à basse vitesse par exemple, ne suffisaient pas.
Il y avait aussi le problème de la dérive de température.
De plus, puisque les données sont transmises sans fil, il y avait toujours la possibilité que certaines données ne soient pas reçues. Tout cela voulait dire que lorsque vous remuiez la Wii Remote, elle devenait légèrement décalée avec les actions de l'objet à l'écran.
Comment avez-vous résolu le problème?
Nous ne trouvions pas de solution satisfaisante en utilisant uniquement le capteur gyroscopique. L'accéléromètre s'est révélé très utile pour résoudre ce problème.
C'était donc une difficulté que vous ne pouviez pas surmonter à l'aide de l'accéléromètre ou du capteur gyroscopique seul. Mais en associant les deux capteurs, vous avez pu obtenir ce que vous recherchiez depuis le début : être capable de prendre en compte ce que le joueur éprouve.