今回の学生クエストは久々のWiiネタで、WiiリモコンをFlashで使いたい、というものでした。Flashはヤメとけば?と即答はしたものの、それじゃあんまりなので(笑〜AIR+Flexという建設的な意見もあり)、以下いくつかの方法を挙げておきます。いずれも単なる知識で、きちんと実証してません。何故ってFlashは持ってないからね(ウソ)。
まず、手前ミソなあたりから、aka.wiiremoteを使うとして、MaxとFlashとの通信を考えれば、次の2つの方法があります。
方法1:jit.qt.movieでswfファイルを読み込んで再生。flash_varメッセージやgetflash_varメッセージを使って、flashの変数を読み書きする。Jitter Tutorialの44番「Flash Interactivity」あたりを参照ね。書き出すFlashのバージョンやQuickTimeの設定に要注意。
方法2:flosc (Flash OpenSound Control) を介在させて、OSCをプロトコルとしてMaxとFlashを通信させる。Maxではudpsendやudpreceiveを使い、FlashではXMLSocketを使います。floscに付属するサンプルを見れば、なんとかなるでしょう。
Wiiリモコンのデータ・ハンドリングだけなら、専用アプリを使うのが簡単。
方法3:OSCulatorからOSCメッセージを送り、floscを経由してFlashで受け取る。方法2のMaxをOSCulatorに置き換えたものね。OSCulatorは次のMIDI送信も可能。
方法4:WiiToMidiやThe Wiinstrumentを使い、MIDIメッセージをFlashに送る。Flashは標準でMIDIを受け取れる(よね?)。
FlashムービーをWebブラウザで再生するなら、ブラウザ限定プラグインあり。
方法5:Firefoxの拡張プラグインWiiRemoComを用い、JavaScriptでWiiリモコンの状態を取得し、JavaScriptからSetVariable()関数でFlashへデータを送り込む(のかな?)。
どうせなら、Wii本体のインターネット・チャンネルでやれば?ってことも考えられます。
方法6:WiiのWebブラウザ(Opera)は、標準でWiiリモコンの状態をJavaScriptで取得可能。それがwindow.opera.wiiremoteオブジェクトで、このページの後半に情報が載っています。細かなデータは取れないけど、解釈されたデータは使い易くなっています。
他にもありそうですが、面倒なのでこの辺で切り上げます。こんなにイロイロあるのは決定的な解決方法が無いからで、やっぱり馬鹿なんです。いや、手足をもがれた可哀想な立場と言うべきかな。セキュリティ命ですから(笑)。
ともあれ、一番手っ取り早いのは、方法4やOSCulator(下図)あたりでのMIDI送信のような気がします。ただし、MIDIのコントロール・チェンジの場合は、一般に7ビットなので、精度が要求されない用途向きね。