セルオートマトンの可能性!

久しぶりに記事書いた気がします…。

崖のデバッグ作業もまだ残ってるんですが、それだけだと心がすさむので片手間に新しいことを始めたりしてます。
以前どっかの記事で呟いたとおり自動生成でダンジョンやらフィールドやら作ってみたいと思っていて、その熱が冷めないうちに適当にぽちぽち作ってみました。

ScreenShot_2014_1006_07_57_40.png
そのいち。フィールドマップ風。初期状態なので主人公代理はウルファール氏に一任。

ScreenShot_2014_1006_08_23_54.png
そのに。砂漠みたいな感じ。

ScreenShot_2014_1006_20_15_43.png
そのさん。鬱蒼とした森。

ScreenShot_2014_1006_20_23_02.png
そのよん。妖精の森的ななにか。

全部、自動生成です。

自動生成コモンをつくるにあたって、実際に自動生成でフィールドをつくってるゲームを思い浮かべてみた。
代表的なところだとシレン、なにげにすごいと思うのはDQM2イルルカの異世界。PS以降ならまだしも、ゲームボーイ版でよくあんなことができたなぁと思う。どんなアルゴリズムなのか興味があって調べたけど、見つかりませんでした…。

さておき、フリーゲームなら悠遠物語がけっこうハイクオリティなフィールドを自動生成してた気がする。参考にと思ってやってみたところ、フィールド生成中のロード画面には「ヘジェ曲線」やら「ラプラシアンフィルタ」やら謎の言語が登場しすぎて\(^o^)/って感じでした。

結局自分でいちからアルゴリズムを考える羽目に。
いろいろ考えた結果、崖のダンジョン生成アルゴリズムに柔軟性をもたせた感じで「空間分割+セルオートマトン」のアルゴリズムなるものを思いつきました。
手順は実に簡単。

・適当な大きさに空間をいくつかに分割。

・分割した空間のそれぞれに特定の点を決め、隣り合った空間同士の点と点を結ぶ。ここまでで、ぐるっと一周できる一本道の通路ができあがっているはず。

・できあがった通路をセルオートマトンを使って拡張。とりあえず壁+天井部とフィールド部の二元配置にする。

・適当に整地して、壁+天井部に壁と天井をつくる。

・適当にオプションを配置。

正直こんなのでうまくいくとは思ってなかったんだけど、想像以上に自然っぽい地形が出来上がりました。セルオートマトンの可能性は計り知れない。ちなみに、上の画像では一枚目の土の部分とか各画像の水路の部分とかもすべてセルオートマトンで作った地形です。遺伝的アルゴリズムとかセルオートマトンとか、この手のアルゴリズムをPCに使わせると可能性が無限大ですね。

…なんかこれだけで満足しちゃった感が出てるけど、一応ゲーム作り中です。
ウディタの仕様(ゲーム中に新しいマップを作れない、上書きチップはマップ移動すると消える)上、全自動生成みたいなのは絶対無理だしバランスも悪くなるので、まぁせいぜいダンジョン部をこのアルゴリズムに一任するくらいかな~。

追記:マップチップの素材はねくらさんから丸ごとお借りいたしました。感謝です!
関連記事
スポンサーサイト

コメントの投稿

非公開コメント

Twitter
カテゴリ
最新コメント
月別アーカイブ
カウンター
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR