【コラム】

OS X ハッキング!

264 OS Xでも「バランスWiiボード」を使いたい!

    海上忍  [2008/02/22]

    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ボードの情報を拾えています

    関連記事

    関連サイト

    関連したタグ

    新着記事

    特設サイトの情報

      人気記事

      一覧

        イチオシ記事

        新着記事

        特別企画

        マイナビニュースマガジン