岩田
ジャイロセンサーはクセモノという話ですが、
具体的にはどんなところが扱いにくかったのですか?
高本
ねじれや回転の動きがセンシングできるとは言っても
観測できないエリアに入ってしまうと、
適正なデータがとれなくなってしまうことがありまして。
岩田
つまり、Wiiリモコンを大きく振ると
センシングの範囲を超えてしまって、
ゲームプレイに反映されないことも起こるんですね。
高本
そうです。
岩田
その問題をどうやって解決したのか、
回路を担当した伊藤さんから話を訊くことにしましょうか。
伊藤
はい。通常のジャイロセンサーと比べて
Wii用にセンシング能力を5倍くらいに拡大しました。
というのも、ビデオカメラなどに使われてるジャイロセンサーだと、
1秒間に300度回転するくらいの、ゆっくりした・・・。
岩田
決してゆっくりじゃないですよね、
1秒間に300度というのは(笑)。
伊藤
でも、ゲームをプレイするときは
人によって、とても速い動きをしたりしますし。
岩田
つまり1秒間に300度だと、
センシング能力の幅を超えて
振り切れてしまうということなんですね。
伊藤
そうなんです。そこで1秒間に1600度まで
センシングできるようにしました。
岩田
およそ4回転半ですね。
人の手でそこまで回すのはひと苦労でしょうね。
伊藤
はい。それで速い動きは大丈夫ということになったのですが、
一方で、遅い動きもセンシングしたいという話になって。
岩田
それって矛盾する話ですよね。
速い動きをとれるようにしたら、
遅い動きの精度は下がるのが世の常じゃないですか。
伊藤
世の常です(笑)。
でも、なんとか遅い動きもセンシングしたいと、
太田さんに相談して、やりとりを繰り返しました。
太田
かなりやりとりをしましたね。
岩田
太田さん、どうやって解決したんですか?
太田
速い動きと遅い動きの
2つのモードを用意することにしました。
岩田
その2つのモードというのは?
太田
そもそも無線でデータを送るものなので、
データの解像度が決まってるんです。
実際にはもっと細かいんですが、わかりやすくするために
たとえば10段階のデータしか送れないとなったら、
0からはじまって9までの信号しか送れない。
岩田
データの解像度がたとえば10段階と決まっていたら
それを20段階に増やすわけにはいかないんですね。
太田
そうなんです。
自動車の速度を例に説明してみますと、
時速10kmまで出せる車だと、現在の速度を
1km単位でデータを取ることができるんです。
つまり、1段階が1kmということになります。
ところが最大計測できる速度を、時速100kmに上げると、
1段階が時速10kmになり、時速2kmや3kmといった
速度が得られなくなってしまうんです。
岩田
つまり、100kmまでの速いスピードに対応させると、
データが10km刻みになってしまうんですね。
太田
はい。
そこで、10kmの範囲を10段階で送る低速モード、
そして100kmまでの範囲を10段階で送る高速モード、
その2つのモードを用意することにしました。
岩田
2つのモードを用意することで、
細かい動きは精度が高く、
同時にダイナミックな動きもとれるというのが
可能になったんですね。
太田
そうです。
岩田
そうやって、遅い動きにも対応できるようになったと。
でも、ジャイロセンサーの扱いにくさは
それだけにとどまらなかったんでしょう?
太田
はい。ジャイロセンサーは
まわりの温度の変化によって、
センシングの感度がずれてくるんですね。
高本
MEMSの“M”は、メカの“M”なんです。
岩田
メカだからこそ、そんなことも起こるんですね。
太田
そもそも、モノというのは動かしてなかったら、
通常は「ゼロ」のデータが返ってくるものですよね。
ところがジャイロセンサーの場合、
まったく動かしてないのに、
そのうち「1」とか「2」というデータが
返ってくるようになるんです。
岩田
誰も触っていないのに
動いてる状態になってしまうと。
太田
専門用語で
「温度ドリフト」と呼んでいる現象です。
岩田
つまり、温度が変化すると
ゼロ点がずれてしまう。
太田
温度だけでなく湿度や衝撃でもずれます。
そこで、僕らの希望としては、
そういったことが起こらないセンサーを
なんとか用意してほしいと相談したんですが・・・。
岩田
そんなものは・・・。
太田
ないんです。
ただ、回避方法はあったんですね。
たとえばゼロ点を調整するような
まったく別のセンサーを追加で搭載すればいいんです。
高本
でも、コストを余計にかけることはできませんし。
太田
ならば、ソフトウェアの力で
何とか解決するしかないということになって
いろいろと試行錯誤を繰り返しました。
岩田
となると、いまWiiリモコンはじっとしてる、
その状態をなんらかの方法で検出するしかないんですよね。
太田
そこで、まず思いつくのは加速度センサーなんです。
それを使って感知できないかと考えたんですけど・・・。
岩田
ダメだったんですね。
太田
ええ。ジャイロセンサーは、
加速度センサーよりもずっと敏感なので、
加速度センサーが0点を示していても、
ジャイロセンサーが動いているということがあったんです。
岩田
それじゃあ使えないですね。
太田
そこで、最終的には、
いまは動いていないという状態を
ジャイロセンサーで検出させることにしました。
岩田
温度や湿度が変わっても
ジャイロセンサーは正しく動作するようになったんですね。
太田
はい。そのためのソフトを組みました。
岩田
太田さんはクセのあるジャイロを手なずける一方で、
SDK、つまりソフト開発用の“部品”もつくっていましたけど、
加速度センサーとジャイロセンサーを組み合わせることで、
どんな新しいことができるようになると思いましたか?
これまでにいろんなソフト開発に関わってきた
太田さんならではの話を訊きたいんですが。
太田
いちばん大きいのは
プレイヤーの気持ちを汲み取れるようになったことですね。
岩田
気持ち?
太田
たとえば、回転の動きがとれるようになったことで
手元にあるWiiリモコンの動きと、
画面のなかの物体の動きが
リアルタイムに一致するようなことは、
誰もが実現させたいと思いますよね。
岩田
もちろんそうですね。
太田
ところが、それほどカンタンなことではないんです。
先ほど言った、速度を検出できるレンジ幅を広げたり、
低速度の精度を上げただけでは足りないんです。
岩田
温度ドリフトの問題もあるし。
太田
さらに無線通信ですので、
データが欠落してしまうようなことも起こるんです。
すると、動かしているうちに
モノの動きと微妙にずれてくるようになるんです。
岩田
そのズレはどうやって解決を?
太田
ジャイロセンサーだけですと
期待することに満足に応えられないですが、
そのズレを修正するのに加速度センサーが役立ちました。
岩田
つまり、加速度センサー単独ではできない、
ジャイロセンサー単独でもできない、
でも、その2つのセンサーを組み合わせることによって、
これまでずっとやりたかった
プレイヤーの気持ちまで汲み取れるようになったんですね。
太田
その通りです。