Iwata Asks est une série d'interviews dirigées par l'ex-président de Nintendo Saturo Iwata avec des créateurs clés des jeux et matériels Nintendo.





Iwata Asks: Wii Motion Plus

Combiner deux capteurs

Iwata

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?

Takamoto

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.

Iwata

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.

Takamoto

C'est ça.

Iwata

Demandons à Ito-san, le responsable du circuit électronique, de nous expliquer comment vous êtes parvenus à résoudre ce problème.

Ito

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…

Iwata

300° par seconde! Ça ne me paraît pas lent du tout! (rires)

Ito

Effectivement, mais certaines personnes font des mouvements incroyablement rapides lorsqu'elles jouent.

Iwata

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é.

Ito

Tout à fait. C'est pour cette raison que nous avons mis au point un capteur pouvant détecter des mouvements de 1600° par seconde.

Iwata

Cela correspond à quatre rotations et demi. Je ne pense pas que quiconque puisse faire pivoter ainsi sa main!

Ito

Oui. Ainsi, nous étions certains que les mouvements rapides seraient détectés. Ensuite, nous avons dû étudier comment détecter les mouvements lents.

Iwata

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.

Ito

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.

Ota

C'est vrai que nous avons eu plusieurs discussions à ce sujet, pas vrai?

Iwata

Alors Ota-san, comment avez-vous résolu ce problème?

Ota

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.

Iwata

Et plus précisément, quels sont ces deux modes?

Ota

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.

Iwata

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?

Ota

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.

Iwata

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.

Ota

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.

Iwata

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.

Ota

Tout à fait.

Iwata

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?

Ota

Bien sûr que non. Les changements de température ambiante pouvaient négativement affecter la sensibilité du capteur gyroscopique.

Takamoto

Dans MEMS, le « M » veut dire « mécanique ».

Iwata

Et c'est précisément parce que c'est mécanique que cela pouvait se produire.

Ota

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.

Iwata

Le capteur se comportait comme s'il était en mouvement alors que personne ne le touchait.

Ota

Le nom technique de ce phénomène est la « dérive de température ».

Iwata

En d'autres termes, la valeur qui devrait être égale à 0 varie lorsque la température change.

Ota

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…

Iwata

Mais n'est-ce pas…

Ota

…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.

Takamoto

Nous ne pouvions toutefois pas augmenter les coûts sans raison.

Ota

Notre unique option consistait donc à trouver une solution logicielle au problème. Nous avons procédé par tâtonnements en essayant de nombreuses solutions.

Iwata

Vous deviez donc trouver une méthode permettant de détecter que la manette Wii Remote était immobile.

Ota

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…

Iwata

Mais cela n'a pas marché, c'est ça?

Ota

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.

Iwata

Ce n'était pas utile, alors.

Ota

Finalement, nous avons conçu le capteur gyroscopique pour qu'il puisse détecter s'il est en mouvement ou non.

Iwata

Ainsi, le capteur gyroscopique fonctionne correctement quelles que soient les variations de température et d'humidité.

Ota

Tout à fait. Nous avons mis au point un logiciel qui rend cela possible.

Iwata

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.

Ota

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.

Iwata

Ce que le joueur ressent?

Ota

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.

Iwata

C'est tout à fait vrai.

Ota

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.

Iwata

Il y avait aussi le problème de la dérive de température.

Ota

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.

Iwata

Comment avez-vous résolu le problème?

Ota

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.

Iwata

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.