志田です。
先日、「Wii Remote API」という記事がOpera Developer Community上に公開されましたね。
The Wii Remote API - Opera Developer Community
http://dev.opera.com/articles/view/the-wii-remote-api/
この記事は、すでにTAKESAKOさんが
TAKESAKO @ Yet another Cybozu Labs: Wiiリモコンの値をJavaScriptで取得する方法(Wiiインターネットチャンネル)
http://labs.cybozu.co.jp/blog/takesako/2007/05/wiiremote_javascript.html
で紹介されていたもので、Wiiの「インターネットチャンネル」を使っているときに、JavaScriptで、Wiiリモコンの傾きとか距離の情報を取得することができるようにする拡張に関する、Operaからの正式な仕様書になると思います。
今回は個人的にすごく興味があったので、「Wii Remote API」の仕様書の内容をざっくり呼んでみて超訳をしてみましたので紹介します。
「Wii Remote API」の特徴としてはこれまでの紹介記事とも重複しますが、次があるようです。
イベント駆動ではなくポーリング
Wiiリモコンの情報は常に更新されるので、通常のJavaScriptプログラミングのように、発生するイベントに応じて処理を書くのではなく、100msに一回などで最新のWiiリモコンの状態を取得しその状態に応じた処理を書くようにする必要があるようです。
100msより短いスパンでポーリングすると遅くなってしまうそうです。
傾きや距離が取得できるが加速度の情報は取得できない
リモコンが上向きか、下向きか、右に傾いているか、左に傾いているかが、取得できるようです。
残念ですが、加速度の情報は取得できないようですので、早く振った、遅く振ったという情報を取得するのは難しそうです。
スクリーンとの距離が取得できる
ビリヤードみたいな動きが検知できますね。
ボタンイベントが一通り取得できる
十字キーや、A, B, C, Z, +, - など一通りのキーイベントが取得できるようです。
クラシックコントローラーのキーイベントは取得できないそうです。
リモコン4つまでイベントが取得できる
4つのリモコンを同時に接続させた場合は、それぞれのリモコンの情報が取得できるようです。
以下のページに超訳したものをまとめました。
Wii Remote APIの超訳 - ARK-Web SandBox Wiki
https://www.ark-web.jp/sandbox/wiki/226.html
一Wiiユーザーとして、面白いものを作ろうとしてくれる方が細かい仕様について確認する時にでもお役に立てれば本望です。
おかしい訳がありましたらフィードバックをいただけるとうれしいです。