iPhoneアプリで注目されているジャンルのひとつに地図があります。標準のGoogleマップを活用した「マップ」に限らず、サードパーティからも数多くの地図アプリが登場していますが、その中でも特に目を引くのが3D立体地図でしょう。
代表的なアプリは、米グーグルが提供する「Google Earth」や、そのグーグルにも絶賛された米チャーチル・ナビゲーションの「Earthscape」(現在は配信休止中)などで、実際に触ってみると「この3DマップがiPhoneでも見られるんだ」とちょっとした感動を覚えます。
ただ残念なのは、どちらもiPhone 3Gで動かすと、ロードは遅いしスクロールもガクガクして、決して快適とは言えないことです。新発売のiPhone 3GSなら、Google Earthもスルスル動くらしいけど……。
そんなiPhone 3GSの「速さ」をちょっと悔しいと思ったiPhone 3Gオーナーに朗報! ニューヨークの高層ビル街を3Dオブジェクトで表示しながら、お店情報や地下鉄情報を検索できる観光ガイド「UpNext 3D NYC」(iTunes Storeで見る)なら、iPhone 3Gでもすごーく快適にブラウジングできます。
複雑な3Dオブジェクトを、どうしてiPhone 3Gでも高速に表示できるのか? 同じiPhoneアプリ開発者として気になったので、その秘密を開発元の米アップネクストに直撃取材してみました。答えてくれたのは、同社の共同創業者で技術・設計責任者のラジ・アドバニ(Raj Advani)さんです。
サンプル動画
ポリゴンを極力少なくして高速化を果たした
── まずはアップネクストについて教えて下さい。
ラジさん:会社はニューヨークにあって、2006年に、現在のメンバー4人で資金を出し合って会社を起こしました。それから2年間かけて、ニューヨークのビルを自分たちで3Dモデル化し、2008年11月にまずウェブ版のニューヨークガイドマップを始めました。
社員のうち、プログラマーは私を含めて2名。1名がデザイナーで、もう1名が広告や店舗と掛け合うといった対外交渉ビジネス担当という分担です。
── iPhoneアプリの開発期間はどれくらいかかりましたか?
ラジさん:ウェブサービスのリリース後に着手して、半年でリリースできました。
── 以前からMac用アプリの開発経験があったのですか?
ラジさん:いいえ、私はC++とJavaでの開発がメインで、iPhoneアプリのために初めてObjective-Cを使いました。iPhone版のUpNext NYCは、C言語とObjective-Cの両方を使っています。オブジェクト指向のプログラミングには慣れていたので、MacのObjective-Cに移行するのはそれほど苦労しませんでした。
── 速さの秘密は?
ラジさん:ひとつは3Dモデルを高速に表示するための、独自アルゴリズムです。建物を表現するのに使うポリゴン数をなるべく減らしてモデリングしています。
また、3Dデータはアプリ内にあるので、ダウンロードする時間がかからないというのもスピードに貢献しています。地図や基本データベースはアプリ内にあるのでオフラインでも使えます。店舗の詳細情報やユーザーの評価が必要なときに、追加でダウンロードするという仕様です。