2009年7月の記事

Google MapsにPapervision3Dでオーバーレイ表示

Google Maps API for FlashにMap3Dクラスが新設されて、マップを傾斜・回転できるようになりましたが、Papervision3Dを使用すると簡単に3Dオブジェクトをオーバーレイ表示することができます。サンプルを作ってみました(ソースコードつき)。

pv3doverlay1

通常のマウスドラッグだけでなく、Shift+ドラッグやCtrl+ドラッグで回転操作ができるので試してみてください。Google Earthとだいたい同じ操作になっているようです。

短いコードですが、コアになるのはGoogleMapsCamera3Dクラスで、PV3DのCamera3Dクラスを拡張して、マップに同期する投影行列を与えています。Googleマップのワールド座標系は、東方向がX軸プラスで0?256、南方向がY軸プラスで0?256、上方向がZ軸プラスの左手座標系になっていますが、この座標系上に直接PV3Dのオブジェクトを描画することができます。

せっかくなので、もっと面白いものを表示してみましょう。

pv3doverlay2

東京駅前にワイバーン。3Dモデルは26℃さん制作のをお借りしました。かっこいいですねー。

なにかいる

pv3doverlay3

pv3doverlay4

ズサさんのねぎミクモデルをrectさんのところからお借りしました。ありがとうございます。こんな感じで、小さなものから大きなものまで大丈夫です。ちなみに拙作でも同じ方法で車体を描画しています。

あとは平面投影シャドウあたりが欲しいですね。PV3Dでどうするのがいいのか調査中。

Tags: 2009年7月31日

2D自動車シミュレーター on Google Mapsを3D化

Google Maps API for Flashが3D表示、というかマップを傾斜表示できるようになっています。

Google Maps APIの担当者さまのご好意でAPIを公開前に触らせていただきましたので、2D自動車シミュレーターを3D化してみました。まだ2車種しかないし、モデリングも適当だし、ホイールも回らないし、ブレーキランプや方向指示器も点灯しないしでやることが山積みなんですが、とりあえず仮公開。

2ddrivingsimulator1

右のCamera Controlで視点を操作できます。ドロップダウンメニューで、車体前方を上にするか、北を上にするかを切り替えることができます。

Googleマップ版でも画面が回転するようにしてほしいという要望は結構いただいてたんですが、これまでAPIの制約でできませんでした。今回のアップデートで、回転できるようになっただけでなく、傾斜で遠方まで見えるようになったので、だいぶ走りやすくなったんじゃないかと思います。

2ddrivingsimulator2

実のところ、もっと視点を下げて3Dレースゲーのようにしたいんですが、手前のタイルが欠けたり、遠方のタイルの読み込みと描画でパフォーマンスが極端に悪くなってしまうので難しいようです。まあ、そこまで極端な視点を使いたいのはこのアプリくらいでしょうからね(笑)。

あと、困ったことがひとつあって、「2D自動車シミュレーター」なのにうっかり3D表示になってしまったという……。2Dを取っても3Dに変えてもつまらない名前になってしまうし、内部的には2D処理のままだし、そのままでいいかみたいな(……いいのか?)。

2D自動車シミュレーター自体根本的にどうにかしないとと思ってるんですが、他にやることがいろいろあって進展がないです。iPhone版とかどうでしょうね?

Tags:, 2009年7月31日