標高差のある道が階段になっていた。接続部だけを傾けて坂にした
中心は平らな踊り場、つなぎ目は傾いたスロープ。
日本進化シミュレーション第8回 / 全16回目次
山がちな土地に道路を敷くと、上り坂になるはずの区間が、なぜか階段のように見えた。
ゲームの中の地形は、標高が違う土地がたくさんある。
道路のセルは、それぞれ自分の標高に合わせた高さで置かれる。
標高差のある区間を進むと、1マスごとに高さがガクンと飛んで、まるで階段を上っているように見えてしまっていた。
「1セルごとに高さが飛ぶ」のは、仕組み上そうなるしかなかった
道路は、セルの中心に平らな板を置く形で作っている。
隣り合うセルの標高が違えば、その板の高さも違う。
板同士をただ並べるだけなら、境目で高さが飛ぶのは当然の結果だった。
現実の道は、こんな飛び方をしない。
1マスの中にちゃんと傾斜があって、なめらかに次のマスへつながっている。
このゲームの道路には、その傾斜を表現する部分がそもそも存在していなかった。
中心は平らなまま、つなぎ目だけを傾ける
板そのものを傾けてしまうと、セルの中心にある建物や交差点の見た目まで斜めになってしまう。
僕はそれを避けたかった。
そこで、各セルの中心プレートは今まで通り平らなままにして、隣のセルへの接続片(コネクター)だけを傾ける形にした。
高低差と接続片の長さから、asin(高低差 / 接続片の長さ)で角度を求めて、その分だけ接続片を回転させる。
中心は平らな踊り場、つなぎ目は傾いたスロープ。
役割を分けたことで、「1セルごとに高さが飛ぶ階段」が「なめらかに続く坂」に見えるようになった。
地上の道路だけでなく、高架になっている高速道路のデッキでも同じ処理を入れた。
橋だけは、あえて平らなままにした
川や海にかかる橋は、この傾斜処理の対象から外している。
橋の高さは水面下の地形の高さとは一致しないため、同じ計算をすると不自然にねじれてしまう。
隣のセルが普通の道路(陸上)の時だけ傾け、橋との継ぎ目は従来通り平らにする、という条件分岐を一つ足すだけで済んだ。
全部を同じロジックで統一しようとせず、性質が違うものは素直に別扱いにする。
無理に一本化しないほうが、結果としてシンプルになることがある。
見た目の変化は、地味だけどよく効いた
この修正は、遠くから見てもすぐには気づかれないくらい地味な変化だ。
それでも、山間部を車で走るような視点でカメラを動かすと、階段状の道と坂状の道では体感がまったく違う。
派手な機能ではないけれど、こういう地味な違和感の積み重ねが、街全体の印象を左右するのだと思う。
一つひとつは小さくても、直すたびに景色が少しずつ現実に近づいていく感覚があった。
※運営者が個人で書いているnoteです。