地形データから、まちの土台をつくる
まちをつくるとき、最初にいるのは建物ではなく地面です。ここが実際の場所と違うと、あとから何を載せても「その地域らしさ」が出ません。
標高データを読む
地形の高さには、国土地理院が公開している標高タイル(DEM5A)を使っています。日本全国の標高が細かい格子状に整理されて公開されていて、緯度経度を指定すると、その地点の高さが得られます。
これを一定の間隔で読み取って、高さの一覧表をつくります。ここまでは、まだRobloxとは関係のないただの数値データです。
ブロックの世界に置き換える
Robloxの地形は、細かい立方体の集まりでできています。粘土をなでるように盛ったり削ったりするのではなく、決まった大きさのマス目を埋めていくイメージに近いつくりです。
そこで、先ほどの高さの一覧表を1マスずつなぞって、地面を積み上げていきます。実際の1メートルをワールドの何メートル分として扱うかは、地域ごとに決めています。
うまくいかなかったところ
データに穴がある。 標高タイルは全国どこでも同じように整備されているわけではなく、値が入っていない場所があります。そのまま処理すると、地面にぽっかりとクレーターのような穴が空きます。今は、穴の周囲を少しずつ広げながら探して、近い場所の高さで埋めるようにしています。
細かすぎても粗すぎても困る。 読み取る間隔を細かくすると、実際の地形に近づく代わりにマスの数が一気に増えて、生成に時間がかかります。粗くすると、丘が階段のように見えてきます。この兼ね合いは今も調整中です。
地面ができると、ようやくその上に道路を通せるようになります。ただ、この道路がまた素直にいきませんでした。