■ Wiiリモコンの値をJavaScriptで取得する方法(Wiiインターネットチャンネル)
任天堂のQ&Aサイトで、Wiiリモコンの値を取得する方法が公開されていることを知人から教えてもらいました。
インターネットチャンネル向けのウェブページを作りたいのですが…。 : Q&A - Wii
インターネットチャンネルの拡張機能について知りたい
Wiiインターネットチャンネルでは特別な JavaScript を用いる事でWiiリモコンのひねりや テレビとの距離、複数のコントローラの状態を取得する事ができます。
手元にWii本体の実機がないので(Wiiリモコンはある^^)まだ試していませんが、こんな感じでJavaScriptからWiiリモコンの値が取れるっぽいですね。
if (window.opera && window.opera.wiiremote) { var num = 0; // wiiremote number 0,1,2,3 var pad = window.opera.wiiremote.update(num); if (pad.isEnabled && pad.isDataValid) { // var x = null; var y = null; if (pad.dpdValidity > 0) { x = pad.dpdX; y = pad.dpdY; } // // if (!pad.isBrowsing) { var hold = pad.hold; } var button_left = (pad.hold & 1); var button_right = (pad.hold & 2); var button_up = (pad.hold & 4); var button_down = (pad.hold & 8); var button_plus = (pad.hold & 16); var button_2 = (pad.hold & 256); var button_1 = (pad.hold & 512); var button_B = (pad.hold & 1024); var button_A = (pad.hold & 2048); var button_minus = (pad.hold & 4096); // var distance = pad.dpdDistance; var roll_angle = Math.atan2(pad.dpdRollY, pad.dpdRollX) * 180.0 / Math.PI; // // hogehoge } }
numの値を変えれば、2本目以降のリモコンの値も取れるみたいです。
画面からの距離(dpdDistance)やリモコンの傾き(dpdRollY, dpdRollX)の情報が取れるのは面白いですね。 Wiiリモコンを用いたインタフェースの研究開発とかを個人の家庭用ゲーム機で実現できるので、hackしがいがあるかも。
拡張機能アツすぎます。
実際に動いたー!っていう人がいればぜひ教えてください。
コメント
カンタンに取得できるんですね。
これでWii専用のゲームをjavascriptで作れそう。
小生もリモコンしかないんですけど、
PCに専用の受信機つけて遊んでます
投稿者: REM | 2007年05月23日 14:14
>REMさん
早速のコメントどうもありがとうございます。
こういった情報が公開されているとユーザ側で
いろいろと面白いことが出来るので嬉しいですね。
自分は去年プレゼンのためにWiiリモコンだけ買いました。^^
投稿者: takesako | 2007年05月23日 14:34
「実際に動いたー!」
はじめましてこんにちは。
Wiiの実機、インターネットチャンネル上でテストしてみました。
僕がJavaScriptに詳しくないので、込み入ったことは分かりませんが、
こちらで紹介頂いた記事をもとに、簡単なスクリプトを書いて、きちんと回転、距離ともに取得できました。
次はこれをFlashに渡す作業に移りたいと思っております。
Wiiってすごいなぁと一人で盛り上がっております。
ありがとうございました。
投稿者: tera | 2007年05月24日 01:31
> teraさん
おおおお、早速「実際に動いたー!」報告どうもありがとうございました。
面白いのが出来たらジョネレータみたいにぜひまた公開してくださいー。
投稿者: takesako | 2007年05月24日 12:12