標高差のある道が階段になっていた。接続部だけを傾けて坂にした

中心は平らな踊り場、つなぎ目は傾いたスロープ。

日本進化シミュレーション第8回 / 全16回目次

山がちな土地に道路を敷くと、上り坂になるはずの区間が、なぜか階段のように見えた。

ゲームの中の地形は、標高が違う土地がたくさんある。
道路のセルは、それぞれ自分の標高に合わせた高さで置かれる。
標高差のある区間を進むと、1マスごとに高さがガクンと飛んで、まるで階段を上っているように見えてしまっていた。

「1セルごとに高さが飛ぶ」のは、仕組み上そうなるしかなかった

道路は、セルの中心に平らな板を置く形で作っている。
隣り合うセルの標高が違えば、その板の高さも違う。
板同士をただ並べるだけなら、境目で高さが飛ぶのは当然の結果だった。

現実の道は、こんな飛び方をしない。
1マスの中にちゃんと傾斜があって、なめらかに次のマスへつながっている。
このゲームの道路には、その傾斜を表現する部分がそもそも存在していなかった。

中心は平らなまま、つなぎ目だけを傾ける

板そのものを傾けてしまうと、セルの中心にある建物や交差点の見た目まで斜めになってしまう。
僕はそれを避けたかった。

そこで、各セルの中心プレートは今まで通り平らなままにして、隣のセルへの接続片(コネクター)だけを傾ける形にした。
高低差と接続片の長さから、asin(高低差 / 接続片の長さ)で角度を求めて、その分だけ接続片を回転させる。

中心は平らな踊り場、つなぎ目は傾いたスロープ。
役割を分けたことで、「1セルごとに高さが飛ぶ階段」が「なめらかに続く坂」に見えるようになった。
地上の道路だけでなく、高架になっている高速道路のデッキでも同じ処理を入れた。

橋だけは、あえて平らなままにした

川や海にかかる橋は、この傾斜処理の対象から外している。
橋の高さは水面下の地形の高さとは一致しないため、同じ計算をすると不自然にねじれてしまう。

隣のセルが普通の道路(陸上)の時だけ傾け、橋との継ぎ目は従来通り平らにする、という条件分岐を一つ足すだけで済んだ。
全部を同じロジックで統一しようとせず、性質が違うものは素直に別扱いにする。
無理に一本化しないほうが、結果としてシンプルになることがある。

見た目の変化は、地味だけどよく効いた

この修正は、遠くから見てもすぐには気づかれないくらい地味な変化だ。
それでも、山間部を車で走るような視点でカメラを動かすと、階段状の道と坂状の道では体感がまったく違う。

派手な機能ではないけれど、こういう地味な違和感の積み重ねが、街全体の印象を左右するのだと思う。
一つひとつは小さくても、直すたびに景色が少しずつ現実に近づいていく感覚があった。

スタンプラリーに挑戦する 行った場所・気になる場所は、現地チェックインでスタンプに残せます。 みんなのコースを見てみる 会員が作ったスポット巡りのコースを都道府県から探せます。自分だけのコースも作れます。 運営者の個人noteも書いています AI活用やサイト運営で気づいたことを、もう少し個人の視点で掘り下げています。

※運営者が個人で書いているnoteです。

技術ブログ一覧へ戻る