[地形生成]セルオートマトンを使う
ランダムダンジョン生成のおまけとしてセルオートマトンについてもちょっと触れておきます。
セルオートマトンを使うと一マス通路をいい具合に拡張できたりしていろいろ夢が広がりますね~。
例によって参考にしたのは、このサイトさん。
ttp://www40.atwiki.jp/spellbound/pages/384.html
手順はこんな感じ。とりあえず今回は床(チップA)と天井(チップB)の二元配置図をつくってみることにします。
マップの全マスを、チップAとチップBのどちらかでランダムに書き換える。
↓
一マスずつすべてのマスを走査して、チップBの周囲8方向にチップAが4マス(ここらへんは適当)以上あるときは、そのマスをチップAに書き換える。
↓
床と天井の配置がいい具合になるまで手順を繰り返す。
というように、手順もクソもないくらいに簡単です。
風化で岸壁が削れていく感じを、プログラム上で再現したような感じなのかなぁ。
行数は増えますが、かなりリアルな地形を簡単につくることができるのでとっても便利です。
ただし、セルオートマトンだけではすべての部屋がつながったダンジョンをつくることは不可能なので、他のアルゴリズムと組み合わせて地形の形を整えるのに使ってみるとちょうどいいような気がします。

『ローグの崖と巨大迷宮』より完成例。簡単なアルゴリズムながら、わりとそれっぽい水路を作ることができました。

そして『ワールドフロンティア』より進化形。この地形は(ほとんどすべて)セルオートマトンによって自動生成されています。
セルオートマトンを使うと一マス通路をいい具合に拡張できたりしていろいろ夢が広がりますね~。
例によって参考にしたのは、このサイトさん。
ttp://www40.atwiki.jp/spellbound/pages/384.html
手順はこんな感じ。とりあえず今回は床(チップA)と天井(チップB)の二元配置図をつくってみることにします。
マップの全マスを、チップAとチップBのどちらかでランダムに書き換える。
↓
一マスずつすべてのマスを走査して、チップBの周囲8方向にチップAが4マス(ここらへんは適当)以上あるときは、そのマスをチップAに書き換える。
↓
床と天井の配置がいい具合になるまで手順を繰り返す。
というように、手順もクソもないくらいに簡単です。
風化で岸壁が削れていく感じを、プログラム上で再現したような感じなのかなぁ。
行数は増えますが、かなりリアルな地形を簡単につくることができるのでとっても便利です。
ただし、セルオートマトンだけではすべての部屋がつながったダンジョンをつくることは不可能なので、他のアルゴリズムと組み合わせて地形の形を整えるのに使ってみるとちょうどいいような気がします。

『ローグの崖と巨大迷宮』より完成例。簡単なアルゴリズムながら、わりとそれっぽい水路を作ることができました。

そして『ワールドフロンティア』より進化形。この地形は(ほとんどすべて)セルオートマトンによって自動生成されています。
スポンサーサイト