Unityでダンジョン自動生成
はい、お久しぶりです。 べーやんです。
だいぶ更新してなかったですが、またちょくちょく更新していこうかなと思います。 ゲーム業界に入って色々とバタバタしてたのですが、ようやく時間が取れ始めたので、 ゲーム制作始めました!
今日はタイトルの通り、ローグライクで欠かせないダンジョン自動生成部分を作っていこうと思います。 Unity 2019.2.11f1で作ってます!
リソース周りの準備
ブロック(床、壁)
→壁に関しては、動的に生成するので、Resourcesフォルダーを用意してください。シーン配置 床となるブロックを配置
→今回は32×32で作成
実装内容
全体のフローとしては、以下の感じ。
- そのタイルのタイプを設定
- そのタイルタイプを元にオブジェクトを配置
1つのタイルに情報を持たせるため、以下のようなクラスを保持する フィールドデータ
- 部屋の作成
→ 部屋データが必要となります。 部屋データ
→ 実際に部屋データを元に部屋を作成していく 部屋作成
- 通路の作成
→探索アルゴリズムを使用します。 【A*アルゴリズム】 以下の記事を参考にしました。 qiita.com tech.nitoyon.com
経路探索結果をもとに、フィールドデータを上書きしていきます。 道作成
最後にフィールドタイプを元に、壁を生成していきます。 地形生成
最終成果
まだまだ調整は必要だけど、
— べーやん (@abebe_mukkuru) 2020年1月26日
一通り自動生成はできたので、
こっから本格的にローグライクゲーム作っていくか! pic.twitter.com/142mNhOBim