読者です 読者をやめる 読者になる 読者になる

メモ2ブログ

メモtoウェブログ。旧ブログはこちら。 http://sakebook.blogspot.jp/

Androidエンジニアが企画展に作品を出した話

android event

2016/4/30~2016/5/15、2週間と1日、「CreativeAdventure」という、企画展がARTnSHELTERで開催されました。 そこで「Indoor Street」という作品を展示しました。企画展に作品を出すという経験での学びや感想をつらつらと書きます。

きっかけ

大学時代にU-moaという集団で活動をしていました。そのメンバーが社会人となり、徐々に東京に人が集まってきたので、当時のつながりや社会人になってからの新しいつながりを含めて、何か面白いことができないかとU-moaの代表が発起したのがきっかけです。

テーマ

企画展を行うにあたり、今回のテーマが「冒険」ということでした。 その他の参加メンバーの顔ぶれから、インタラクティブなものが求められると感じたのではじめは尻込みしていたのですが、せっかくのきっかけだしやってみようと思い参加をすることにしました。

作品

作品テーマ

冒険 ≒ 旅と捉え、昨今の旅では必需品となるスマホを関連させる意味付けを行いました。

スマホアプリエンジニアで何ができるだろうか?と考えたときに、やはりスマホやアプリの要素を切り離せないと思いました。それらを軸に、インタラクションを与えられないかと考えました。

インタラクションと言えばわかりやすいのがVRだったのですが、企画展内で被りそうだったので、スマホの何かしらの情報を何かしらで飛ばして何かしらに変化を与えるという風にすることにしました。

作品概要

アプリで場所を検索すると、目の前に投影されてるスクリーンにその場所が表示され、スマホを持って歩くとその場所の中を歩けるという作品です。

f:id:sakebook:20160522184835j:plain

アーキテクチャ

リモコンとなるスマホアプリと、場所を表示するWebがあります。

スマホアプリ

  • Geocoder
    • 目的地の緯度経度の取得に用います。
  • Step Detector Sensor
    • 歩行検知に用います。
  • Accelerometer sensor
    • 端末の傾きを検知するのに用います。
  • Magnetic field sensor
    • 端末の傾きを検知するのに用います。
  • Open Sound Control
    • Webへ情報を送るのに用います。
    • 目的地の緯度経度、検知した歩行と傾き情報を送信します。

Android 4.4から歩行センサーが付いたのを知ったので、そのAPIを使うことにしました。

Web

  • Node.js
    • サーバやモジュールのimportに用います。
  • Express
    • Webページの作成に用います。
  • Socket.io
    • NodeサーバでOSCを経由して受け取った情報をWebへ送ります。
  • Google Maps JavaScript API
    • Street Viewの表示・制御に用います。

以前OSCを用いてWebと連携を行ったことがあったので、その方法で行うことにしました。

展示準備

会場にプロジェクターとスクリーン(壁)はあったので、必要なものは常設に必要なPCでした。

常設できるPCを持っていなかったので、メンバーに借りることにしました。 設置する作業よりも、借りたPCに環境構築をする方が大変でした。

作品を出す機会があれば、環境構築の手順を明確にしておくことと、実際に展示に使うであろうものを自分で用意しておかないとダメだなと思いました。

アプリをユーザに入れてもらう想定だったので、Google Playにアプリを公開しました。QRを読み込んでストアへ遷移し、入れてもらう想定だったのですが、もちろんiPhoneに対応していません。

楽しめないユーザがいるのでアプリを入れた状態のAndroidスマホを展示会場に置いておくことにしました。こちらも、配慮が足りなかったのと、端末を自分で用意していない点が至らなかったと思います。

展示中

展示して翌日に問題がありました。作品が展示されていませんでした。

起動方法がterminalに入ってディレクトリ移動してnpm startとか、明らかにエンジニア以外に優しくない形だったので、.commandファイルを作成してファイルをダブルクリックで起動できるようにしました。 初めての展示で、この辺りも配慮が足りていなかったです。

また.commandファイルにリポジトリの更新も含めておいたので、展示中に変更があっても翌日には反映されるようにしました。 完成された作品なら不要かもしれませんが、変更が想定される作品の場合、更新する手段を入れておくと良いと思います。

はじめの想定では来場者の端末にアプリを入れてもらう想定だったので、トップページを作成し、そこに説明文とQRコードを用意していたのですが、これはうまくいかなかったです。 前述の通りiPhoneユーザは体験できないことと、QRコードを読み取ってアプリをインストールし、会場のIPを取得するためにもう一度QRコードを読み取ってアプリを起動するというフローが必要だったので、誰もそこまでしてくれないし理解してくれませんでした。

そこで、展示会場に合わせて置いたスマホを、あえて接続状態にし、スクリーンにはトップページではなくどこかにつないだ状態の画面を表示するようにしました。 こうすることで、見た目的にもキャッチーで、展示会場のスマホをいじることですぐに体験できるようになりました。 如何に自分の意図通りに来場者に触ってもらうのか?というところの敷居を下げる必要があると強く感じました。

振り返って

作品が展示されていなかったり、来場者に触ってもらえないなどもありましたが、来て頂いた方々には思ったより楽しんでもらえていたよう良かったです。 自分の行ってみたいところや、家の近く、思い出の場所などに行く人が多かったです。

連携部分の詰めが甘くて操作には癖があったのですが、それ込みでワイワイ楽しんでもらえていたのは嬉しくもあり助かった部分でもありました。

しかし、やはり理解するまでの敷居が高かったです。 Androidユーザで4.4以上の端末で会場のwifiにつないでQRコードを読み取りアプリをインストールして再びQRコードを読み取ってアプリを起動しないと遊べないので、スカイツリーより高いと揶揄されました。
実際その通りで、企画展に作品を出す場合は、アプリを入れてもらうということより、如何にして体験してもらうかが重要です。
敷居が高い作品の場合は、どうやってその敷居を下げることができるか?を考える必要があります。
技術的な制約により変更できないものがある場合は、事前準備を省くなどが良いと思います。
今回に関して言えば、作品を楽しめるアプリがインストールされているスマホを用意しておくことと、スクリーンに画面を投影させておくことが策に当たると思います。

スマホアプリエンジニア脳で、入れてもらった後のことばかり考えていました。

来場者とつながったり、終わった後の達成感、また、普段使わない技術に挑戦(場合によってはまずいかも)できるので、機会があればまた何かしたいと思いました。

ひとまずはPCとKitkat以降のスマホを購入してからにしたいです。

参考

CreativeAdventure / 企画展CreativeAdventure

ARTnSHELTER / ARTnSHELTER

U-moa / U-moa