iPod shuffleの2GB版が登場しました。値段はなんと7,800円、従来と同じ容量の1GB版は値下がりして5,800円。iPod shuffleをデータバックアップ目的で愛用する私は、2GB版の購入を検討中です。一般的なUSBメモリとは違いヘッドフォンを差した状態で持ち歩くので、紛失しにくいところがイイんですよね。

さて、今回は「バランスWiiボード」について。ご存知、任天堂Wii用ゲームタイトル「Wii Fit」同梱の周辺機器だが、Bluetoothで接続することは意外に知られていない。先日、OS XでそのバランスWiiボードを使えるようにした強者が出現したとの一報を受けたので、早速試してみた次第。

WiiとOS Xのイイ関係

任天堂Wiiの発売は、約2年前の2006年11月(日本では12月)。ゲーム端末に興味がない向きでも、標準コントローラ(Wiiリモコン)がワイヤレスということはTVCMなどでご存知だろう。剣やテニスラケット、指揮棒などに見立てて"振り回す"操作方法は、従来の家庭用ゲームとはまったく異なる遊び方を実現した。練りに練られたゲームタイトルあってのものだが、入力デバイスとしての斬新さという点では異論を待たないはず。

そこにGeekが目をつけるのは当然なこと。気がつけば、このようなWebサイトも出現、解析が進むとともに、WindowsやOS XでWiiリモコンの利用を可能にするアプリケーションが現れた。比較的早期にハックされたことは、接続方式がBluetoothということも大きいだろう。

バランスWiiボードは電源ボタンが「A」ボタンとして認識されただけ

DarwinRemoteは、OS X用のWiiリモコン管理ソフト。振ったり傾けたりといった動作をマウスやキーボードのアクションに置換、プレゼンテーションソフトの操作などに使える実用的なソフトだ。

もしやバランスWiiボードにも……と思い試したが、結果は×。DarwinRemoteの起動後、ボード裏のSYNCボタンを押すとペアリングできるのだが、上に乗ろうが揺さぶろうが反応はなし。辛うじて電源ボタンが「A」ボタンとして機能するものの、これでは何の役にも立たない。

それでもOS Xで使いたい!

そんなときタレコミで知ったのが、こちらのPerlモジュール。DarwinRemoteのフレームワーク部分 (アプリケーションとは別に開発が進められている「WiiRemote」) を利用し、Cocoa / Perlをブリッジするフレームワーク「Camel Bones」(最新バージョンは1.0.3) 経由でPerlからバランスWiiボードをコントロールしよう、というもの。

導入の手順だが、そのCamel Bonesのインストール後、OS Xに標準装備されていないPerlモジュールを入手(手順1)、続けて必要なPerlモジュールもインストール(手順2、3)。さらに、WiiRemoteのソースコードを入手してパッチを当て(手順4)、Xcodeでビルドを実行。生成されたWiiRemote.frameworkを/Library/Frameworksへコピーする、という流れだ。少々難易度は高いが、バランスWiiボードを使えるのならなんのその、といったところ。

なお、Camel BonesはLeopardに対応していないため、インストール後にフレームワーク (/Library/Frameworks/CamelBones.framework) をハック版と差し替える必要がある。入手先については、こちら の掲示板を参照してほしい。

手順1: PerlモジュールをCPANからダウンロード&インストール

$ sudo -H cpan
cpan> install Module::Install
cpan> exit

手順2: Perlモジュール(Mac::WiiRemote)のインストール

$ svn co http://svn.coderepos.org/share/lang/perl/Mac-WiiRemote/trunk WiiRemote
$ cd WiiRemote
$ perl Makefile.PL
$ make
$ sudo make install

手順3: Perlモジュール(Plusen)のインストール

$ svn checkout http://svn.coderepos.org/share/lang/perl/Plusen/trunk Plusen
$ cd Plusen
$ perl Makefile.PL
$ make
$ sudo make install

手順4:WiiRemote.frameworkをビルドする準備

$ svn co https://darwiin-remote.svn.sourceforge.net/svnroot/darwiin-remote/WiiRemoteFramework/trunk trunk
$ curl -O http://svn.coderepos.org/share/lang/perl/Mac-WiiRemote/trunk/WiiRemote-barance_wii_board-and-for_camelbones.patch
$ cd trunk/
$ patch -p0 < ../WiiRemote-barance_wii_board-and-for_camelbones.patch

これでようやく準備完了、あとはサンプルのPerlスクリプトを実行し、バランスWiiボード裏側のSYNCボタンを押してペアリングすればOK。SYNCボタンを押すタイミングではSegmentation faultになることもあるが、一度検出に成功すれば安定して動作する。

このように無事接続できました

肝心のバランスWiiボードはといえば……左右のどちらに体重がかかったかと、電源ボタンを押したかしか検出されないようだが、しっかり情報は拾えている。ここまでくれば、このようなソフトのOS X版がリリースされる日は近いかもしれない。

無事バランスWiiボードの情報を拾えています