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日

道路のつくりかた

久々に2D自動車シミュレーターの話。バージョン2.0を作ったときは、一般道路の引き方にもルールがあるんじゃないかと薄々思いつつ、資料が見つからなかったのでスルーしてたんですが、NHKの「日常にひそむ数理曲線」を見て、「クロソイド曲線」からいろいろ検索してまわると、

とか

とか、芋づる式にぞろぞろ出てきてどうしようと。手がかりを持っていなければ何ひとつ教えてくれないのがGoogle先生。やっぱりその辺の道路ひとつ曲げるにしても、走りやすいように、事故を減らすために、いろいろ考えてあるんですよ。僕の作ったコースなんてこのあたり何も踏まえていないわけで、困った。

面白かったのが、クロソイド曲線にも問題があるのではという話。

ゲームなどのコース設計で手っ取り早く自然なコーナーが欲しければ、インチキだけど、シミュレーションで実際に車を緩やかなハンドル操作で走らせて、その通りに道路を敷くのがいいかなと思いました。結局のところ、そのために緩和曲線が出てくるわけで。省力化のためについやってしまいそうな、プラレールを組み合わせるような引き方はやばそうな予感。

Tags: 2009年5月31日

Award on Rails 2008受賞しました

2D自動車シミュレーター on Google Maps」について。Ruby on Railsを使ってなくてもいいよとAward on Rails参加のお誘いが来て、あまりウェブサービスという感じじゃないけどいいのかなーと思いつつエントリーしてみたら、GIGAZINEの中の人に審査員賞をいただいてしまいました。ありがとうございます。一層精進します。

表彰式・懇親会の案内も来たんですけど、何の賞を受賞したのかは知らされてなくて、東京まで往復7時間かかるのと、ちょっと忙しいのとでどうしようかと迷ってるうちに定員オーバーになってしまいました。もったいないことをした気がする……。やっぱり首都圏のほうがいろいろ便利なのかなあ。面白そうなイベントも多いし。

こんなのとか、近場なら喜んで行ってる。

Tags: 2008年11月27日

特性エディタ(仮称)が欲しい

自動車シミュレータなどと標榜してはいるけれど、挙動については、最低限の力学的な加減速に、ころがり抵抗、空気抵抗、アッカーマンステアリングの幾何的な旋回、それに擬似的にアンダーステアにする程度のことしかやっていなかったりする。もちろんグリップを失うこともない。

ActionScript 2ではこれを秒100回実行するだけでパフォーマンス的にもう限界だったんですが、ActionScript 3では余裕があるのでもう少しきちんとやりたいなと(2Dで、しかもキーボード操作でどこまでやる意味があるのかわからないので、あくまで未定)。

で、いろいろ本を眺めて付け焼刃をつけようとしてるわけですが、本格的にやるなら、走行性能曲線やその他のいろんなグラフを作成してコードから利用するものを作らないといけなさそう。これは挙動のシミュレートだけじゃなく、先のエントリで書いた、ハンドルの応答の調整のようなことにも役に立つんじゃないかと。

さらに、そうした特性エディタ(仮称。もっといい呼び名ないでしょうか)は、ゲーム一般のオブジェクトの制御にも便利なんじゃないだろうか。特に、ゲーム実行中にon the flyでオブジェクトやカメラなどの特性をグラフでコントロールできれば、かなり制作効率が上がって、なおかつゲーム自体のバランスもきちんと調整できるような気がする。いちいち勘で式を何度も書き換えてコンパイルせずに済むし、assert的な異常値の入力の検知も自動的についてくる。どう使うか、どれだけうまく行くかはともかく、そうした仕組みを検討してみる価値はあるように思った。

エディタをどうしよう。何か出来合いのソフトで使えそうなものがあればそれが一番なんですが。単に曲線を描いてデータ化できるだけでなく、数式なども通るやつ。

Tags:, 2008年6月17日

反響など

CNET.comで記事になったりGizmodo本家で紹介されたりdel.icio.usで300ブックマークされたりして、昨日今日で70000PV雪崩れ込んできてる。でも、”Google Maps meets ‘Grand Theft Auto’”というのはちょっと納得がいかないw

やっぱり運転が難しいのと当たり判定がないのはあちこちで言われてるなあ。当たり判定は写真から道路を判別する手段がないので無理だと思う。どこかの偉い人に訊けば何か教えてくれるかもしれないけれど、さすがに、立体交差があったり、ビルが道路に被っていたり、鈴鹿サーキットが雲に覆われていたりしていてはどうしようもないんじゃないかな(この鈴鹿の雲どうにかならないでしょうか)。

操作についても、根本的にキーボードやマウスで運転するというのが苦しくて、反力のあるステアリングホイールがたぶん自動車をきちんとコントロールできる唯一のインターフェースなんだと思う。グランツーリスモなんかもGT Force Proで遊ぶと10倍くらい面白いし(本当に。おすすめ)、PSコントローラでは難しい速度制限を守っての安全運転も簡単にできたりする。

ただ、このFlashはもともと駐車シミュレータとして作ったので、基本的に「カーソルキーでハンドルが回る」ようにしてあるんだけど、ドライブ向けに「カーソルキーで車が曲がる」ように調整しなおしたほうがいいのかも。速度によってこの2つをなめらかに切り替えたりして。方向指示器との兼ね合いもあるし、かなり微妙な調整とそのためのコード(もしかしたらエディタも)が必要になりそうなので、このあたりはしばらく後ということで……。バージョン3.0の課題かな?

バックで1200km/h出るバグを確認。後で直します。走行抵抗がきちんと効いていない予感。たぶん以前からのバグなんだろうなあ、これ。コースが狭くて気づかなかっただけで。冷汗が出てくる。よくあることですよね。ね?

ところで、Gizmodoの記事でも示唆されてるけど、Google Earthで、車体挙動をきちんとシミュレーションして、ステアリングコントローラで運転できたら、それはもう遊びではないちょっとした自動車シミュレータになるんじゃないだろうか。どうなのかな。さらにオンライン化とか。もう誰かが取り掛かってるかもしれない。

Tags: 2008年6月12日