iOSシミュレーターで加速度センサを使う



iPhoneのアプリ開発に当たって欠かせないのがiOSシミュレーターです。

このすばらしいシミュレーターのおかげで実機がなくてもアプリの動作確認がとれるわけですが、完全に実機と同様というわけにはいかず、やはり実機とは異なる点があります。

その最たるもののひとつが加速度センサーが使えないというものです。

Macに加速度センサがないので仕方のないところですが、Taiatariの開発に当たっては加速度センサーで操作するゲームだけに、この点は開発の障壁になっていたわけです。

ところが、accelerometer-simulatorというものを使うとiOSシミュレーターで加速度センサーのシミュレートができ、iOSシミュレーター上で加速度センサーを使ったアプリの動作確認ができます。

仕組みはこうです。

まず準備としてiPhoneの実機に専用のアプリをインストールします。

そのiPhoneのアプリで実機の加速度を検知して、ネットワーク経由でシミュレーターのiPhoneに加速度を伝えます。

シミュレーターのほうでは、自作のアプリを動かして普通に加速度を検知する処理をするだけです。

ただし、自作アプリのほうでも専用のライブラリを組み込んでおく必要があります。

詳細はここです。

code.google.comのsubversionにリソースが一式公開されています。

そこからXcodeにプロジェクトを取り込んでビルドしたアプリを実機のiPhone側にインストールします。

自作アプリ側には、同じくsubversion内のライブラリから2つのファイルをコピーして取り込んで起きます。

それだけでiOSシミュレーターで加速度のシミュレートができるようになります。

ライブラリは完成した自作アプリを実機で動かす際には必要ないので、コンパイルオプションなんかでシミュレーターで動かすときだけライブラリを使うようにしたほうがよいかもしれません。

というか、そうしないとだめか・・。

で、実際に使った感じですが、ネットワーク越しで実機の加速度センサの情報を持ってくるのでレスポンスがどうか心配でしたが、少なくともTaiatariは普通に動きました。

なんか実機のiPhoneがシミュレーターのリモコンになったような感じですが、使えるな!という印象です。

まぁ、結局実機が必要になることには変わりないのですが、ここで考えられることが2つ。

Taiatariのオンライン対戦を実現したいと考えていたのですが、お互いのiPhoneの加速度情報をネットワーク越しにやり取りをするのは大丈夫かが気がかりでした。

ですが、とりあえず実機とシミュレーター間でWi-Fi経由でストレスないレスポンスが出せそうなので、実機同士でもいけますよね。

さらにインターネット経由だとどうかというのが、次に気になりますが。

もうひとつは、以前TaiatariのPRのためにYoutubeで動画を公開したかったのですが、プレイ画面を録画する方法がなくて断念してました。

ですが、シミュレーター上で動作できるのであれば、シミュレーター上のiPhoneの録画はMac AppStoreで公開されているSound Stageというツールを使うと撮れそうです。

まだ試してはいないですが、暇なときに試してみようかと思います。

Tags: , , , ,