ギズモード・ジャパンこのページではJavaScriptを使用しています。JavaScriptをONにしてください。O'Learyさんが制作したファンタジー・マップ・ジェネレーター「terrain」のJavaScriptコードがGitHub上に公開されています。O'Learyさんは少年時代からファンタジー小説に魅了されていましたが、本当に夢中だったのは表紙の後ろに印刷された架空世界の地図だったとのこと。後に氷河学者となった彼は物理ベースの地形シミュレーションに興味を持ちます。定番となっていたフラクタルノイズを利用したランダム生成に限界を感じ、現実に地形が作られる過程を取り入れたジェネレーターの作成を決意したのです。Atlasのツイートで1時間ごとに見られます。繰り出されるどこでもないどこかの地図が生まれる大まかな過程は以下の通りです。平面上に不均一なグリッドを作る隣接する3点を結んだ三角形から成るグリッド。実際にはこの4倍の点が使われます。正方形が並んだ人工的なグリッドではなく不均一なグリッドを用意することは、後に自然な海岸線や川のラインを作る際に役立ちます。algorithmを使用する事で程よい間隔に修正。これらの隣り合う点を結ぶことで、不均一な平面のグリッドが完成します。高さを設定して大まかな地形を作る黄色が高い場所、青が低い場所。中間である緑色の境界に海岸線が引かれています。平面グリッドの各地点に高さの値を加えることで大まかな地形を作っていきます。具体的に行われる作業は地形全体に傾斜を加える、高低差を強調する、傾斜をなだらかにする、ランダムに地形を隆起させるなど。最後に任意の高さを海面に設定することで海岸線が現れ、大まかな地形が見えてきます。水による浸食をシミュレーションする左:2の図の海面を高さ0に設定したもの。右:左の図に浸食効果をかけたもの。地形が形作られる際、谷部分は雨や川によってえぐれ、海岸線は波によって削られます。地点ごとの影響の受けやすさを計算し、浸食効果を加えて地形を削り、ディテールを整えていく行程です。最後に海面の高さと海岸線の形を調整し、「自然な見た目の地形」の完成です。手描きの地図状にする左:3の図から海岸線を調整したもの。傾斜の影を描画し、元の地形を消すことで手描き地図のような見た目にします。川の位置が自動で導きだされているのもポイントです。街と境界線を書き込んで完成。街のマークと地名が書き加えられることで、より本物らしくなります。水源の近くに街を配置、それぞれのテリトリーを決めて境界線が描画されます。同時に、独自にランダム生成された地名を記入することで完成です。***それぞれの行程に施された細かい工夫が地図のリアリティに貢献しています。O'Leary氏のホームページでは、実際のプログラムに触れながらの詳しい解説とアルゴリズムの詳細を確認できるほか、GitHub上では「terrain」のコードが公開中です。スキルのある方はダウンロードして遊んでみるだけでなく、世界中のコーダーたちとともに、さらなる改良に取り組めます。O'Leary氏と「terrain」が見せてくれた可能性が、別の誰かが作る新しい世界に広がっていくのかもしれません。17:21215,464ちょうどいい感。12:3019,188コスパすご。17:21215,464DNAの90%が前代未聞。18:0041,9852種に分岐したカラス、数十万年越しに交配し、再び種が合流していた。16:00487,392ついに!EUが充電規格統一を可決。14:15155,749ソニーの新完全ワイヤレスがノイキャンの代わりに得たもの。