海外向け公開は難しい?センサーとサウンドを使った新しいアプリ

2012年5月7日(月)
PROJECT KySS

前回までは、国内公開の日本語版アプリについて解説しました。今度は、海外公開の英語版アプリについて解説します。

第5回で述べたとおり、現在国内において、Windows Phoneの 実機は、au IS12Tの1機種しか発売されていません。そのため、国内公開の日本語アプリの受け皿が多いとはいえないと考えてしまう向きもあるでしょう。しかし、海外に目を向ければ、Lumia900の発売などニュースには事欠かず、多数のユーザーがいます。そこで、実機の普及を待つよりも先に、英語版アプリを開発して海外公開してみませんか。

海外向けアプリを企画する

海外公開となると、英語が苦手だから...としり込みする開発者もいるかもしれませんが、それは心配無用です。操作説明のテキストを読まなくても使えるユーザーインタフェースを考えて画面上のテキストを減らし、ボタンは文字を使わずアイコンにすればよいのです。最低限必要なアプリの説明は、ブロークン・イングリッシュで書いてもいいですし、それが面倒なら機械翻訳でもまず問題ありません。

重要なことは、「マーケットプレイスの認定条件の範囲内で、動くアプリを作る」この1点だけです。

海外向けのアプリを企画するには、次の3つのテーマが考えられます。

1つ目は、「日本」の発信です。クール・ジャパンなもの、サブカル、萌え、コスプレ、アニメ、ビジュアル系、ボカロなど、ファッショナブルでKawaiiイメージのもの、あるいは現代日本に対する誤解(Ninjaなど)に便乗したアプリです。伝統あるものの発信もよいでしょう。風景や着物や城、民芸品、書、陶器、盆栽といったものです。

2つ目は、万国共通のツールです。言葉で説明せずとも画面を見れば使用目的が分かる道具です。英語版のみ開発しても、国内での利用が可能なものです。

3つ目は、海外に暮らす人々が来日した時に使える、観光を支援するアプリです。国内の名所や慣習などを各国語で説明するといったものです。

ただし、海外には、どのような文化の違いがあるか分かりません。単純に、日本語版をそのまま英語化すればよいとも限りませんので、テーマが妥当かどうか(ユーザーを不愉快な気持ちにさせないかどうか)だけは吟味する必要があるでしょう。

本稿で取り上げるのは、2つ目の例に挙げた「万国共通のツール」の範疇に入る、傾斜計のアプリ「Sound Clinometer Ver.0.8」(図1)です。3月6日から、マーケットプレイスで公開中です。

 図1:「Sound Clinometer Ver.0.8」(クリックで拡大)

筆者が傾斜計アプリを作ろうと考えた理由は、第3回の表6にあるとおり、TVニュースで液状化現象の映像を見て、傾いている家に暮らす人々を気の毒に思ったからです。欠陥住宅の検証などでは、パチンコ玉を転がす場面がありますが、パチンコ玉はどこの家庭にでもあるわけではありませんし、転がした後の回収と掃除が大変そうです。床の状態によって、摩擦が生じるかもしれません。また、傾斜計というと計器盤のイメージがありますので、そういったものを見慣れていない人も一目で結果を把握できるようなものはできないか、と考えました。

傾斜角度の測定には、IS12Tに内蔵されている加速度センサーを使います。

加速度センサーで傾斜角度を計ることのできるしくみについては、以前の連載(Windows Phone Tips集「第8回 GPSによる位置情報の取得と加速度センサー」)に書きましたので参照してください。

また、加速度センサーの値の単純な取得処理については、MSDNコードレシピを参照してください。
→参照:[XAML/VB] Windows Phone の加速度センサーから取得した値を表示する(Silverlight/Windows Phone)

実装する機能

海外公開する場合は、画面キャプチャを一目見ただけで「どのような機能を持っているのかが伝わる」シンプルなアプリの方が理解されやすいものです。しかし、今回紹介するアプリ「Sound Clinometer Ver.0.8」は、マーケットプレイスでの公開よりも本連載での解説のために企画したものですので、いろいろな処理を盛り込んでいます。

次のように、傾斜角度を表示するだけでなく、センサーとサウンドを組み合わせて、傾き過ぎるとサウンド再生する処理を実装します。

(1)対象の傾斜角度を計る

床や棚板などの上に実機を置いて、傾斜角度を計れるようにします。X軸あるいはY軸の傾いている方向(下がり過ぎている側)に、まるめた傾斜角度を表示します。

(2)対象の傾きを、設定した角度に合わせる

棚板やインテリア品を二人一組で取り付ける際、「あ、そこでストップ!ちょっと右側が下がり過ぎたみたい、もう少し右を上に上げて、そうそう」といったことがありますよね。取り付けている側には、どちら側が傾いているのかは分かりにくいものです。この二人一組で行う作業を、一人とWindows Phoneで行えるようにします。

つまり、あらかじめレンジ(角度)を設定できるようにしておき、設定以上に実機が傾いた時には、次の3つの方法で伝える処理を実装します。

  • 画像:360度を12の方向に分け、傾いている方向を針で指します。
  • テキスト:どちら側が下がり過ぎているか(どちら側を上げればよいか)を、メッセージ表示します。
  • サウンド:傾いている方向を表現するサウンドを再生します。

サウンドによって傾いている方向を表現するために、あらかじめチャンネルと音の高さの組み合わせによる複数のサウンドファイルを用意しておき、図2のように、傾きの状態によって再生するサウンドファイルを変えるようにします。

設定した角度よりも、実機が左側に傾き過ぎた場合はヘッドホンの左側から、右側に傾き過ぎた場合はヘッドホンの右側から、左にも右にも傾いていない場合は中央から聞こえるようなサウンドを再生します。また、実機の頭が傾き過ぎた場合は1オクターブ高い音、底が傾き過ぎた場合は1オクターブ低い音、上にも下にも傾いていない場合は普通の高さの音を再生することにします。

このように、3種類のチャンネルと3種類の音の高さの組み合わせによる9種類のサウンドファイルを用意しておき、傾きに応じて再生処理を実行します。

 図2:傾斜の状態と再生するサウンド(クリックで拡大)

画面遷移と画面構成

このように、今回アプリの処理は、(1) レンジ(角度)を設定して計測し、(2) 計測結果を表示する、というものになりますが、この2つの処理を一つのページにまとめてしまいます。これは、前回までに紹介した「一日一句 投稿対応版Ver.1.0」で、俳句入力画面の上に、俳句ファイルを選択するウィンドウを開くという方法によって、2ページ分の処理を1ページにまとめたのと同じ方法です(第8回3ページ)。

処理のページ以外には、メインページとヘルプページが必要ですので、このアプリは、図3のように、3ページ構成になります。

 図3:「Sound Clinometer Ver.0.8」のページ構成(クリックで拡大)

メインページには、青い花のロゴがタップされた時は処理ページに、「?」ボタンがタップされた時はヘルプページに移動させる処理を実装するだけです。つまり、数行以上のプログラミングが必要になるのは、処理ページの1ページだけです。

この処理ページに盛り込む機能は、図4、図5のとおりです。

設定画面

(1)レンジ設定

スライダーをドラッグして、0度(実機の状態は水平)~90度(実機の状態は垂直)の範囲で、レンジ(角度)を設定できるようにします。
傾斜を測りたい場合はより大きな角度(90度でもよい)、机や床などが水平かどうかを知りたい場合は「0」、部屋の中に角度を決めて取り付けたい備品がある場合は、その角度を指定するようにします。
ここで設定した角度以上に実機が傾いた場合は、針の絵とメッセージと音で知らせます。

(2)サウンド選択

サウンドファイルは、ベル(デフォルト)、森の中の小鳥、歌、の3つのテーマのサウンドを用意し、この中から選択できるようにします。
(これはプログラミングには関係ありませんが)これらのサウンドファイルは、Steinberg Cubase 5と巡音ルカで作成しています。尻切れトンボにならない程度の短いフェードアウトをかけて、単純なマキシマイズ後、チャンネルを振り分けてwavファイルを書き出しています。「歌」では、例えば、右下に傾いているなら「Right and Bottom」という具合に、傾きの方向によって歌詞の異なるものを用意しています。

(3)ボリューム設定

スライダーをドラッグして、ミュート(0)から10まで、ボリュームを10段階で設定できるようにします。設定した値が分かりやすいように、数字も表示します。
もちろん、ユーザーが結果を見るだけでよいと考えている場合は、レンジを設定するだけでよく、サウンドやボリュームを設定する必要はありません。

(4)計測開始

「START」ボタンがタップされた時、結果ウィンドウを開きます。実機を計りたい場所に静かに置くか、実機をゆっくりと傾けた時、加速度センサーによる加速度取得を開始します。

 図4:処理ページの設定画面(クリックで拡大)

結果表示ウィンドウ

(5)角度の表示

X軸、Y軸の傾斜角度の丸めた値を、傾いている側(水平よりも下がっている側)に表示します。X軸、Y軸のどちらかが、(1)でセットした角度以上に傾いた時、加速度の取得を停止します。

(6)メッセージの表示

傾きの状態を示すテキストのメッセージを表示します。

(7)方向の表示

傾いている方向(下がっている側)を針の絵で指します。水平の場合は、針は表示せず、中央に赤い花の絵を表示します。

(8)サウンドの再生

傾く方向に応じて、(2)で設定したテーマのチャンネルと音の高さの組み合わせによるサウンドを再生します。
サウンドを聴くためには、ユーザーは、実機にヘッドホンまたはステレオスピーカーを接続している必要があるので、このことはヘルプに記載します。

(9)結果表示の終了

メッセージやサウンドを確認して「OK」ボタンがタップされたら、サウンドの再生を停止して、結果表示ウィンドウを閉じ、その背面にある設定画面を表示します。

(10)傾きの調整

引き続き測定したり、傾きを調整したい場合は、「START」ボタンをタップして、測定と結果確認を繰り返せるようにします。
この操作をスムーズに行えるようにするため、「START」と「OK」ボタンは同じサイズで同じ位置にレイアウトします。これにより、実機を傾けながら同じ位置をタップし続けるだけで調整ができるようになります。また、ボタンは大きく下端にレイアウトして、画面の見えにくい場所でもタップできるようにします。

 図5:処理ページの結果表示ウィンドウ(クリックで拡大)
  • 「Sound Clinometer Ver.0.8」デザインや部品のExpression Designファイル

四国のSOHO。薬師寺国安(VBプログラマ)と、薬師寺聖(デザイナ、エンジニア)によるコラボレーション・ユニット。1997年6月、Dynamic HTMLとDirectAnimationの普及を目的として結成。共同開発やユニット名義での執筆活動を行う。XMLおよび.NETに関する著書や連載多数。最新刊は「Silverlight実践プログラミング」両名とも、Microsoft MVP for Development Platforms - Client App Dev (Oct 2003-Sep 2012)。http://www.PROJECTKySS.NET/

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています