ブラウザからWiiリモコン操作
2008.07.19
Shibuya.js in Kyoto
Yusuke Kawasaki【川﨑有亮】
Keyboard operation
- [→] next
- [←] prev
- [↑] index
このプレゼンテーションは『S6』を利用しています。amachang++
マウスホイールでもページ送りできるよ。
ワンクリック翻訳機能
Powered by Google AJAX Language API
10年。 世界が JavaScript の真の実力を発見するのに要した時間である。 1995年、Netscape 社の Brendan Eich により開発・設計された JavaScript は、「世界で最も誤解されたプログラミング言語」などと呼ばれもした。
Google AJAX Language API
google.load("language", "1"); function trans ( ev ) { var elem = ev.target; var func = function( result ) { if ( result.error ) return; elem.lang = dst; var text = result.translation; var span = document.createElement( 'span' ); span.innerHTML = text; elem.appendChild( span ); }; google.language.translate(elem.innerHTML,'ja','en',func); } s6.attach( e, 'click', trans );
ブラウザでWiiリモコンを使う方法
PCでWiiリモコンを使う方法
前提:Bluetooth デバイスとして PC に Wii リモコンを認識させる。
- Human Interface Device としてキーボード・マウスのように扱う。
-
アプリから Bluetooth 用のドライバを叩いて、直接操作する。
(ブラウザからはムリ)
PCのブラウザでWiiリモコンを使う
前提:Bluetooth デバイスとして PC に Wii リモコンを認識させる。
- Webサービスとして公開し、XML/JSON(P) I/FのAPIを呼び出す。(Wiimote over HTTP)
WoHレスポンスXML
<?xml version="1.0" encoding="UTF-8"?> <response> <method>getStatus</method> <status>200</status> <data> <wiimote index="1"> <xPos>0.113402</xPos> <yPos>-0.414141</yPos> <zPos>0.883495</zPos> <pitch>-0.426999</pitch> <roll>0.113647</roll> <a>1</a> <b>0</b> <down>0</down> <home>0</home> <left>0</left> <minus>0</minus> <nunchuk> <xPos>0.0</xPos> <yPos>0.0</yPos> <zPos>0.0</zPos> <pitch>0.0</pitch> <roll>0.0</roll> <c>0</c> <z>0</z> <xVec>0.0</xVec> <yVec>0.0</yVec> </nunchuk> <one>0</one> <plus>0</plus> <right>0</right> <two>0</two> <up>0</up> </wiimote> </data> </response>
JSONPにも対応
callback({ "response":{ "method":"getStatus", "status":"200", "data":{ "wiimote":[ { "@index":"1", "xPos":"-0.14433", "yPos":"-0.212121", "zPos":"0.961165", "pitch":"-0.213745", "roll":"-0.144836", "a":"1", "b":"0", "one":"0", "two":"0", "minus":"0", "plus":"0", "home":"0", "up":"0", "down":"0", "left":"0", "right":"0", "nunchuk":{ "xPos":"0.0", "yPos":"0.0", "zPos":"0.0", "pitch":"0.0", "roll":"0.0", "c":"0", "z":"0", "xVec":"0.0", "yVec":"0.0" } } ] } } });
Webサービスなので、
インターネット越しに
Wiiリモコンを扱うことが可能。
JSONP 対応なので、
クロスドメインもOK。
Access Control for Cross-site Request を待たなくてもよいよ。
JavaScript + Canvas Powered 3D Engine
Under development.
http://www.kawa.net/works/js/wire3d/v2/wiimote3d.html 2008/03/17
wire3d.js
<script src="wire3d.js" type="text/javascript"></script> <script src="wire3d-wiimote.js" type="text/javascript"></script> <script type="text/javascript"> var wii = new Wire3D.Item.Wiimote(); wii.resize( 1.0, 1.0, 1.0 ); wii.rotate( 0.0, 0.3, -0.5 ); var space = new Wire3D.Space(); space.append( wii ); camera = new Wire3D.Camera( 'demo_here', space ); camera.display(); </script>
最大7台同時接続可能
最大7台同時接続可能
問題発生
Wii リモコンの LED は4つだけ。
5台目以降の Wii リモコンは?
5~7台目の識別方法
リアルデバイスへの妄想
PCのインターフェースは、キーボード(1D)から、マウス(2D)へと発展してきた。
新しいデバイスの接続で、3D・4Dとさらに進化していく未来…。
リアルデバイスがWebサービスとしてインターネット経由で繋がる未来…。
ありがとうございました
Yusuke Kawasaki【川﨑有亮】
u-suke [at] kawa.net