前回、幻のF1ベトナムGPのコースを地図データで作り直した話を書いた。その続きで、同じ仕組みを別の街に持っていったらどうなるかを試した。行き先はホーチミン市1区。今度はレースではなく、普段の街を流すドライブにした。
走れるページはここに置いた: サイゴン・シティループ(スマホでも動く。「📍名所」ボタンでベンタイン市場やブイビエンへ飛べる)。
コースが地図に入っていない、という最初の壁
ハノイのときは楽だった。OpenStreetMapに「Hanoi Street Circuit」というコースそのものが登録されていて、道を並べるだけで1周ができた。
今回は当然そんなものはない。街の道から自分で周回路を組む必要がある。しかもホーチミン1区は一方通行だらけだ。ドンコイ通りは大聖堂から川へ向かう一方通行、レタントンは川から市の中心へ、ブイビエンは南西向き。これを無視して線を引くと、現地を知っている人には一発で嘘だと分かる。
そこで、通りたい場所(ベンタイン市場、大聖堂、ドンコイ、日本人街、ブイビエン)を指定して、あとは実際の通行方向を守ったまま道をつなぐ経路探索を書いた。出来上がったのが1周9.6kmの周回路で、全区間が現実の通行方向として正しい。
気持ちよかったのは、日本人街に合法の周回が実在したことだ。タイバンルン通りを北へ上がり、レタントンを南西へ流し、ティサックで川へ下りる。地図の上だけで組んだ経路が、実際にバイクで回れる形になっていた。
レースの装置を、1つずつ外す
土台はF1のゲームなので、最初はレースの部品が全部ついていた。外した順に挙げるとこうなる。
- 速度: 最高335km/h → 86km/h。ついでにギア比を見たら8速345km/h想定のままで、街中では1速から出ない状態だった
- 赤白の縁石 → 灰色の歩道の縁石(形はそのまま、色だけ)
- スタートの市松模様 → 横断歩道
- コンクリートの壁とキャッチフェンス → 歩道・縁石・街路樹・黄色いガードポール
- グランドスタンドとピットガレージ → 削除
- 道路をまたぐレース用ガントリー5基 → 街の歓迎アーチ2基
- LAP / TIME / TURN / レブカウンター → 周回 / 走行時間 / カーブ、レブは非表示
- エンジン音 → 単気筒の音に(倍音を1.5倍から2倍へ、低域フィルタも絞る)
この中で見た目が一番変わったのは壁の撤去だった。F1コースは道の両側が1mのコンクリート壁で塞がれている。これを歩道に変えた瞬間に、街並みが見えるようになった。壁があると、どんなに建物を作り込んでも視界に入らない。
「らしくない」の原因は、だいたい自分の思い込みだった
作っている途中で何度も「これは違う」と言われた。原因を調べると、毎回ハノイでの前提をそのまま持ち込んでいたことが理由だった。
1. 道の幅が全部同じだった
「どこを走っているか分からない」と言われて気づいた。F1コースは全区間が同じ幅で当たり前だが、街の道はそうではない。地図データから道幅(車線数・実測幅・道路等級)を引き直したら、日本人街やブイビエンは片側3m前後=車1台強、ハムギーや川沿いは倍近い幅だった。これを反映したら、走っている場所が体で分かるようになった。
2. 建物がハノイのままだった
「1区はあんな古臭い建物ばかりかな?」という指摘。これも正しかった。貼っていたのはカビ染みのレンガと鉄格子バルコニーの集合住宅で、これはハノイ旧市街の顔だ。実際の1区の街路写真を集めて見直したら、白やクリームの改装済みショップハウス、パステルのミニホテル、ガラスの中層ビル、そして大聖堂周辺のフレンチコロニアルが主役だった。素材を全部作り直した。
ここで得た教訓は「ベトナムだから合う」は成立しないということ。ハノイとホーチミンは違う街だ。次に別の街をやるときも、必ず現地の写真を先に見てから素材を決める。
3. 建物がスカスカだった
「ホーチミンは建物のないところはないくらい建物が多いのに」。実測したら48区間中25区間が沿道に2棟以下だった。地図データの建物は意外と疎で、足りない分は手続き的に生成していたのだが、その生成条件が「建物を30〜38m先に置く」というF1コース(広い路肩)前提のままだった。狭い1区の街路では、目の前がぽっかり空いて見える。歩道のすぐ外に建てるよう直したら、街の谷ができた。
4. 埋めすぎて、逆にらしさが消えた
スカスカを直したあと、こう言われた。「建物を増やしたら逆にホーチミンらしさが失われたみたい」。
これには2つの原因があった。1つは均質さ。同じ幅・同じ高さ帯の箱を等間隔に並べると、整った別の街になる。ホーチミンの街並みは「間口4mの家が壁を接して連なり、隣どうしの高さがバラバラ」だ。2階建ての隣に8階建てが平気で立っている。だから、2〜5軒が連なる長屋として、間口も高さもセットバックも軒ごとに変えて生成するようにした。屋上にはステンレスの水タンクを載せた。
もう1つは埋めてはいけない場所まで埋めたこと。「大聖堂の前にも建物があって変」という指摘で気づいた。ホーチミンは確かに建物だらけだが、それはびっしりの街区と、広場・公園・川沿いの開けた場所の対比でできている。大聖堂前の広場、ラムソン広場、9月23日公園、メーリン広場——ここが埋まると街のリズムが死ぬ。地図データの緑地・水面・広場と、名所の前庭を「建てない場所」として定義して、そこだけ空けた。
5. 水面が出てくる
「湖や川がなさそうなところに水みたいなのが出てくる」。調べたら水は一度も描いていなかった。正体は地面が無かったことだ。歩道の外に地面のポリゴンが1枚も存在せず、空の水色が地平線まで見えていた。遠くの建物も足元が宙に浮いていた。コース周辺に地面を敷いて解決した。
地図に入っている「実在の店名」を看板にする
面白かったのは看板だ。地図データには店の名前が入っている。沿道の名前つきの店を拾ったら260件あった。Pharmacity、Highlands Coffee、マクドナルド、セブンイレブン、Cà Phê Người Sài Gòn、Cắt Tóc Nghệ Thuật Barber Shop——実在の店が実在の場所に並ぶ。建物のほうにも名前が入っていて、マジェスティック、レックス、カラベル、シェラトン、ヴィンコム、パークソンなど164棟に実名の看板を立てた。高い建物は屋上看板にしてある(実物のホテルがそうなので)。
地区ごとに看板の中身も変えた。ブイビエンは黒地にネオンのBEER CLUBやCOCKTAILS、日本人街は居酒屋と寿司とカラオケ、中心部は食堂と銀行とカフェ。同じ看板が街中に並ぶのを避けるだけで、街の性格が出る。
夜にすると、街が別の顔になる
ブイビエンは夜の街だ。昼だけでは半分しか見えない。そこで時刻を切り替えられるようにした。
ここで一度失敗した。画面全体に黒を被せて暗くしたら、ネオンも一緒に沈んで「ただ暗いだけ」になった。暗くするのではなく、暗い部分だけを沈めて明るい部分を残す処理に変えたら、看板の文字と窓の明かりだけが浮かび上がった。夜は「全体を暗くする」のではなく「明暗の差を広げる」ものらしい。
人も車も、出さないことにした
最後まで迷ったのが交通量だ。一度はバイクを前後に流し、対向車線にも走らせ、歩道に人を歩かせた。ホーチミンらしさはバイクの洪水だと思っていたからだ。
やめた。粗い人形が動いていると、そこだけ嘘が目立つ。静かな街を流したほうが、建物と看板をちゃんと見られる。いま出しているのは、歩道の鉢植えとプラ椅子だけだ。作り込むより、外したほうが良くなるものがあるというのが今回の一番の学びかもしれない。
作ったもの
サイゴン・シティループ(1周9.6km・全区間が実際の通行方向どおり)。名所は10か所、実名の看板は424件。コース形状・一方通行・建物・街路樹はすべて OpenStreetMap の実測データ(© OpenStreetMap contributors, ODbL)。名所の写真は Wikimedia Commons から(クレジットはページ内に表示)。
前の2本はこちら: 幻のF1コースを走れるようにした話 / 「AIの街が嘘くさい」の犯人は、地図だった


