iPhoneで参加するSINAP Christmas Project 2013

2013.12.05

こんにちは、野原です。

今年のクリスマスプロジェクトの全貌が徐々に明かされてきましたね。
Leap Motionという新しい体験にわくわくされる方がいらっしゃる一方で、新しいものだけに「持ってない!今年のクリスマスプロジェクトは参加できない!」と感じていらっしゃる方もいるのではないでしょうか?

そんな方に朗報です!今年のクリスマスプロジェクト「Air Bells」ではLeap Motionだけでなく、iPhoneをお持ちの方も一緒に演奏に参加することができます。

今回は、私が担当したiPhoneパートについてのお話です。

iPhoneのモーションセンサー

iPhoneには発売当初より加速度センサーという機能が搭載されており、これを使うとiPhone自体の3次元方向(左右/前後/上下)の傾きを知ることができます。加速度センサーを使うことで、水平・垂直モードの切替や傾きの取得、iphoneをシェイクすると入力取消ができるアンドゥ機能などを実現しているのはみなさまご存知の通りです。 そして、iPhone4から標準搭載されたジャイロセンサーにより、傾きに加えiPhoneの回転速度を取得できるようになりました。

img_gyro01.png

その結果、iPhoneを振ったり、傾けたり、回転させたり、またそういった動作を組み合わせたりと複雑なユーザーのアクションを反映できるようになりました。モーションセンサーの値はjavascript経由で取得することができるので、ブラウザ上で色々なことができるようになりました。

苦戦した2年前のクリスマスプロジェクト

シナップでは、2年前のクリスマスプロジェクト「Twinkle☆Japan」でも、スマートフォンのセンサーデバイスを利用したサイトを作成しています。 投げるアクションで、メッセージを託した星を地図上で目指した地点へ届けるという企画でした。 2年前のクリスマスプロジェクトリリース時は、iPhone4以前の機種(ジャイロセンサーの搭載がないもの)を使用しているユーザーが多くいたため、加速度センサーのy軸方向の値の変化を用いて「投げる」というアクションを実装しました。 iPhoneの持ち方によって重力が生じるため投げる前のデバイスの向きが制限されたり、計算を簡素化する必要があったりと苦戦を強いられました。

というのも、加速度センサーは基準となるx,y,zの3軸に対してどう動いたか・どの程度動いたかという直線運動の測定には適しているのですが、重力にたいする微妙なひねり運動や回転は測定できないからです。
一方、ジャイロセンサーは重力に対する微妙なひねり運動や回転を測定することができるので、「投げる」・「振る」といったアクションを実装するのに適しています。

img_gyro02.png
今回使用した「振る」というアクションは、今デバイスを持っている位置からどのくらい動かしたかという値を回転速度で取得し、
その値が一定値を超えたら音を出すという処理をしています。
加速度センサーしか搭載されていなかった頃に比べて、かなり簡単に「振る」・「投げる」というアクションがとれるようになりました。

※加速度センサーについて苦戦したお話は、「XmasProject2011開発秘話」よりご覧ください。


同じ要領で作ってみた


ハンドベルと同じ要領で回転速度を取得し、「エアぴんぽん」なるものを作ってみました。
iPhoneを卓球のラケットに見立てて振ると、回転速度を取得し音を出すという単純なものです。
こんな風に遊びます。(広報:伊原 vs デザイナー:飯山)

作り込めば球速や球種などユーザーの細かなアクションを反映することもできるはずです。
モーションセンサーの値はjsで簡単に取得することができるので、アイディア次第で面白いものが作れそうですね。

「エアぴんぽん」気になる方はこちらから体験してみてください。意外と白熱しますよ。
https://sinap.jp/blog/2013/12/pingpong/
※対象機種はiPhoneのみです。


Leap motionをお持ちでない方は、ぜひiPhone片手に今年のシナップクリスマスプロジェクト「Air Bells」をお楽しみください!

この記事をシェアする