ケーススタディー: Escapist Games* がインテル® プラットフォーム・ベースの Windows* 8 および Android* で Star Chart* のユーザー・エクスペリエンスを向上
この記事は、インテル® デベロッパー・ゾーンに掲載されている「Case Study: Escapist Games works to improve Star Chart’s user experience on Intel® platforms with Windows* 8 and Android*」の日本語参考訳です。
Escapist Games Limited はインテルと協力して、最新のインテルのチップセットとデバイスの利点を活用し、同社の人気アプリケーションである Star Chart* を拡張するため、第 3 世代インテル® Core™ プロセッサー搭載の Ultrabook™ デバイスとインテル® Atom™ プロセッサー搭載のタブレットデバイス向けに Star Chart* をカスタマイズしました。開発中、実際のソフトウェアの使用状況におけるセンサーとハードウェアの有効性について、Escapist Games* からインテルへ貴重なフィードバックが提供されました。
このケーススタディーでは、Escapist Games* とインテルの協力体制により解決できたさまざまな問題を検証します。
Star Chart* (星座表)
2009 年にスマートフォン市場向けに最初にリリースされた Star Chart* は、驚異的な人気を誇っています。7 つのオペレーティング・システムに対応し、700 万デバイスにダウンロードされています。これは、星が人々を魅了し、インスピレーションを与え続けていることの表れでしょう。 スマートデバイスを空に向けると、内部センサーにより星の動きと位置を追跡する Star Chart* の基本機能は、宇宙を見ることができるバーチャルウィンドウを提供し、ユーザーは将来の拡張現実を垣間見ることができます。夜空に散らばる光の点に星の情報が表示されるため、これまで天文学者の独占領域であった大量のリアルタイム情報を誰でも利用できるようになります。
目標
Star Chart* の拡張バージョンを開発するにあたり、Escapist Games* は特に次の 3 つの分野に注力することにしました。
- コンテンツ – インテル® アーキテクチャー・ベースのデバイスが持つ高速ロードと大容量のストレージを活かしてコンテンツを充実させる
- グラフィックス – 強力なインテルの GPU と最新の DirectX* を最大限に利用してリアルタイムのグラフィックスを拡張する
- UX – 事前定義されている最小デバイス要件に合わせてユーザー・エクスペリエンス (UX) をカスタマイズする一方、コンテンツの追加により UX が複雑にならないようにする
開発を通して、Escapist Games* はハードウェアの有用性について、特にセンサー機能に関して (「ユーザー・インターフェイス設計とセンサー」節を参照) 貴重なフィードバックと洞察をインテルに提供してくれました。
コンテンツの充実
夜空にある星のうち、肉眼で見ることができるのは約 5,000 個です。以前、Star Chart* のデータベースには HIPPARCOS 星表ii から約 12.5 万個の星が収録されていました。これだけ多数の星があっても、ユーザーはStar Chart* のズーム機能により素早く動的に視野を絞り込めるので、星のデータベースを大幅に増やすことになりました。そして、約 1,800 万個の星を収録した PPM 星表iii を追加することにしました。このデータはあらかじめ適切な形式に処理されており、ユーザーの操作に応じてオンデマンドでストレージからストリーミングされます。バイナリー空間分割 (BSP) アルゴリズムiv によりカメラ錐台外から星を選択して表示することで、倍率に関係なくソフトウェアが快適に動作するようにしています。
図 1: Star Chart* を使って空の同じ領域を異なる倍率で表示した場合。A) Windows* 8 RT – 12.5 万個の星 B) Windows* 8 ベースの Ultrabook™ デバイス – 1,800 万個の星
Star Chart* のユーザーから最も要望の高かった機能は、地球を周回する衛星の表示です。Escapist Games* は、この機会に国際宇宙ステーション (ISS)v とハッブル宇宙望遠鏡vi を含む衛星を追加し、アプリケーションのコンテンツを充実させることにしました。Star Chart* は、これらの衛星の軌道だけでなく、ISS とハッブル宇宙望遠鏡では詳細な 3D メッシュとマテリアルも、リアルタイム表示に適した解像度で表示できるようにしました。さらに、ISS の歴史を表示し、実際の建設のさまざまな段階を見られるようにしました。
ハッブル宇宙望遠鏡では、欧州宇宙機関の RSS フィードを解析し、ハッブルの最新の遠距離天体映像を取得して、衛星の情報と一緒に表示できるようにしました。
ここで興味深い点は、衛星のメッシュデータの追加により、現在の地球の映像がより詳細に見えるようになるため、解像度を上げる必要があることが分かりました。これを実現するために行った方法については、次の節で述べます。
図 2: 拡散、ノーマル、反射マップのマテリアルと3D メッシュで作成された土星衛星ハイぺリオン
最終的な惑星のマテリアルは、さまざまなソース (主に NASA の公開アーカイブ) を使って慎重に作成されました。DEM データvii は、ノーマルマップに変換されました。フローマップは、Flowmap Painterviii という無料のソフトウェアを使って作成されました。
図 3: 高画質のテクスチャーとデータによる星の効果的な組み合わせ
さらに、Photoshop* を使って、星座のイメージと完全なメシエ天体のテクスチャーが拡張されました。フィルターと手作業により個々の星を取り出し、宇宙に戻してキラキラ光るリアルタイムのデータによる星野と重ねられるようにしました (図 3)。
図 4: 多数の複雑なシェーダープログラムを使って作成された惑星のイメージ
太陽系の惑星のグラフィックスも拡張されています。土星と天王星の環系に入ると表示される石の大群 (図 4) は、ジオメトリー・シェーダーを使ってフラクタルノイズ、アンビエント・オクルージョン、表面下散乱効果を組み合わせて GPUix でレンダリングされました。惑星大気容量は、最適化されたピクセルシェーダーを使って GPU でレイトレーシングされました。
最後に、さまざまな面で地球のイメージが大幅に向上されました。北極と南極には、動的にモデル化されるオーロラのアニメーションが追加されました。夜の地域では街灯が瞬き、広域にわたる雷雨も表示されるようになりました。これらすべてと HDR 効果x、アンチエイリアス処理、テクスチャーとジオメトリー解像度の大幅な向上により、Star Chart* の地球は非常に美しく仕上がっています。
図 5: オーロラを含む拡張された地球と国際宇宙ステーション
ユーザー・インターフェイス設計とセンサー
ユーザー・インターフェイスのエクスペリエンス設計における最優先事項は、ユーザー入力に対するアプリケーションの応答性です。そのため、最低限の目標として 30 fpsxi が設定されました。高レベルの設計 (資産の最適化) から CPU/GPU サイクルまで、コードロジックを微調整してさまざまな最適化を行いました。つまり、常にスムーズで滑らかなユーザー・エクスペリエンスがもたらされるようにしました。
Star Chart* の最も魅力的な機能の 1 つは、拡張現実 (AR) モードです。デバイスを空に向けると、カメラがその領域の位置を画面に表示し、宇宙のバーチャルウィンドウが作成されます。そのため、理想的な方法でアプリケーションを直感的に操作できます。
アプリケーションが正しく動作するためには、さまざまなデータポイントが必要です。以下に、それらを信頼性の低い順に示します。
- 北を指している磁力計センサー (デジタルコンパスとも呼ぶ) の 3D ベクトル
- 加速度センサーの 3D ベクトル (デバイスが加速していないときの重力の方向 (つまり、下) を指す一定のベクトル)
- GPS 衛星または関連する Wi-Fi アクセスポイントから得た正しい緯度と経度
- 正しい日時 + タイムゾーン・オフセット (UTC-0 から時間を取得可能)
これらすべてを組み合わせることで、Star Chart* はデバイスが向けられている方向の星野を正確に表示することができます。しかし、いずれかのデータポイントが正しくない場合、Star Chart* は正確に AR モードを実行できず、画面の表示内容は実際にユーザーが見ている領域と一致しません。
次の表は、AR モードに必要なデータソースとそれぞれで発生する可能性が高いエラーを示します。
データソース | エラー | エラーの原因 |
---|---|---|
磁力計 | 電磁波妨害 | 付近の電子装置や電気ケーブル/送電線。センサーのシールド不足。 |
加速度センサー | 加速と重力の一定の増加 | デバイスの動き。センサーのシールド不足。 |
GPS センサー/Wi-Fi | 正しくない緯度/経度 | GPS 衛星または Wi-Fi への接続なし。手動で入力された座標の誤り。 |
システムクロック | システムの時刻/タイムゾーンが正しく設定されていない | 新しいシステムが正しくセットアップされていない。Wi-Fi に接続されていない。 |
インテルの Ultrabook™ デバイスを使ったテストでは、多くの状況で信頼性の高いセンサー情報が得られることが分かりました。シールド不足や標準以下の電子機器による ‘ブレ’ はほとんど発生しませんでした。一方、Microsoft* Surface* RT などのハードウェアでは、全く逆の結果で、信頼性の高い磁力計センサー情報を得るのは困難でした。センサー機能について、デバイスの仕様書ではすべてのボックスがチェックされているかもしれませんが、コスト節約のためにシールドやセンサー機器の品質を下げている場合、当然ユーザー・エクスペリエンスに影響し、ユーザーもこれに気付くでしょう。
Star Chart* の AR モードは、デバイスの画面の向きを正確に検出する必要があります。タブレットとスマートフォンでは、画面と本体が統合されているため、これは問題になりません。しかし、Ultrabook™ のように画面を開閉できるラップトップでは、センサーボードが正しい位置に配置されていることが重要です。センサーは、本体に配置されているため、画面の向きは関係ありません。このため、Star Chart* は、画面ではなくデバイス本体の向きを利用しました。この違いは非常に重要です。Escapist Games* からのフィードバックを基に、インテルではセンサーの配置に関するガイドラインを更新しました。その結果、Lenovo* Yoga* などの後続デバイスではこれらの改善点が実装されました。Yoga* では、デバイス画面の裏側にセンサーボードが配置され、この問題が解決されました。
Star Chart* の AR モードは、直感的で不可視の UX 設計の良い例です。入力操作は、ユーザーがアプリケーションを自然に操作できるように単純化されています。さらに、環境光センサーが搭載されているデバイスでは自動ナイトモードも実装されています。光源レベルがしきい値未満になると、Star Chart* は自動で ‘ナイトモード’ に切り替え、暗くても読みやすいようにインターフェイス全体が赤っぽくなります。これは、屋外で実際の星空を見上げながら Star Chart* を利用する場合に便利な機能です。
入力操作に対する最後で最大の拡張は音声制御で、これもユーザー操作を簡単にするために実装されました。「Fly to Mars (火星に行きたい)」や「Look at Orion (オリオン座が見たい)」など、さまざまな音声コマンドに応答するようにプログラムされました。Android* デバイスでは Google* Speech APIxii を、Windows* 8 デバイスでは Microsoft* Speech APIxiii を利用してこの機能を実現しています。
まとめ
インテル® プラットフォーム向けの Star Chart* の拡張において、Escapist Games* はデバイスの性能と能力を効率良く利用するソフトウェアを作成することに成功しました。最新の Ultrabooks™ 向け Star Chart* は、審美的にも技術的にも非常に優れたソフトウェアと言えます。
「Space is bigxiv」と言われるように、Star Chart* に追加できる魅力的なコンテンツとビジュアル効果はまだたくさんあり、新しいテクノロジーはこれまでにない操作とエクスペリエンスをユーザーにもたらすことができるでしょう。Star Chart* が教育およびエンターテインメント・ソフトウェアのリーダーとして引き続き成功を収められるよう、Escapist Games* では Star Chart* のさらなる拡張と拡大に取り組んでいます。
Escapist Games* について
2009 年前半に設立された Escapist Games* は、直販であるデジタル市場の利点を活かしつつ、最新のプラットフォーム向けに最高品質のゲームとゲームライクなアプリケーションを開発することをミッションとしています。
多くの製品が高い評価を受けており、中でも世界中でベストセラーになった Star Chart* は同社の看板製品です。Escapist Games* はデジタル市場革命の最先端で、インテル、Samsung*、Google*、Microsoft* などの大手企業と緊密に協力して、「ハードウェアを売るためのソフトウェアを製作しています」。
Web サイト: http://www.escapistgames.com (英語)
i 2013 年 9 月 16 日現在、Star Chart* は以下の主要アプリストア (すべて英語) から入手可能:
• https://itunes.apple.com/us/app/star-chart/id345542655?mt=8
• https://play.google.com/store/apps/details?id=com.escapistgames.starchart
• http://apps.microsoft.com/windows/en-us/app/star-chart/6df7e745-782f-44e7-b408-6259a8da6a7f
• http://www.amazon.com/Escapist-Games-Limited-Star-Chart/dp/B004VSHFXW
• http://apps.samsung.com
ii http://heasarc.gsfc.nasa.gov/W3Browse/all/hipparcos.html (英語)
iii http://arxiv.org/abs/0806.1009 (英語)
iv http://en.wikipedia.org/wiki/Binary_space_partitioning (英語)
v http://www.nasa.gov/mission_pages/station/main/index.html (英語)
vi http://www.nasa.gov/mission_pages/hubble/main/index.html (英語)
vii http://en.wikipedia.org/wiki/Digital_elevation_model (英語)
viii http://teckartist.com/?page_id=107 (英語)
ix 第 3 世代インテル® Core™ プロセッサー以降でのみ利用可能な機能
x http://en.wikipedia.org/wiki/High-dynamic-range_rendering (英語)
xi すべてのデバイスの最小平均は 30 fps だが、Ultrabook™ では一貫して 60 fps を達成
xii http://developer.android.com/reference/android/speech/SpeechRecognizer.html (英語)
xiii http://msdn.microsoft.com/en-us/library/ms723627(v=vs.85).aspx (英語)
xiv Adams, Douglas (1979).“A Hitchhikers Guide To The Galaxy.” Random House Publishing Group, 2007 ISBN 0307417131, 9780307417138
著作権と商標について
Intel、インテル、Intel ロゴ、Intel Atom、Intel Core は、アメリカ合衆国および / またはその他の国における Intel Corporation の商標です。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。
© 2013 Intel Corporation.
コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。