【3DダンジョンRPG開発】自動生成ダンジョンの仕様とか

とりあえず実行ファイルの更新から


(実行ファイルは常に最新のものが落ちるので、記事の内容と違うかもしれません)

前回からの変更点
・ユニティちゃんを削除し、FPS視点で操作できるように変更
・足音追加
・叩く音追加

操作方法
・WASDで移動
・スペースでジャンプ
・マウス右ドラッグで視点移動
・クリックでオブジェクトに応じたSE再生

これだけじゃなくて音響も洞窟を歩いているようにしたんだけど、WebGLが機能をサポートしていないみたいで変わっていない。う~ん、残念……。

本題の自動生成周りの仕様については、オーソドックスなマス移動を基準にアルゴリズムを組もうと思ったんだけど、素材のサイズ調整がうまくいかなくて諦めた。

というのも、編集はフリーで使えるブレンダーを使ってるんだけど、データを読み込んで吐き出すだけで座標がずれちゃうし、修正を加えたら法線がおかしくなるしで、かなり厳しい。何とか一つ修正したんだけど、他のオブジェクトも同様に手を加えるのは時間がかかりすぎてしまう。なんというか、ユニティの勉強以前にブレンダーの勉強をしないといけない状態でとても現実的とは言えない。

そんなわけで、素材のモデルデータを一切修正せずに自動生成する仕様を考えた。

・ある程度3Dマップを手動で構築したテンプレートマップ(部屋)を複数用意する。
・テンプレートマップ同士の繋がりは、扉で遮る。
・扉は最大でも4方向ごとに一つずつしか存在しない。
・扉を触ると通路をすっ飛ばして隣の部屋に移動する。

つまり、小さなダンジョンを一つの部屋とし、その部屋をつなげることで一つの巨大なダンジョンを作る感じになる。

20180501_001.png

この黒い■が一つの小さなダンジョンで、扉を通じて隣のダンジョンに移動する感じ。ミニマップには各部屋の繋がりと、トラップやイベントの個数だけ表示し、部屋の構造は書かない。

テンプレートマップを用意する時点で完全な自動生成とは言えないんだけど、後でいくらでもパターンを増やせるし、何よりクオリティを高くすることが出来る。後、表示も減らせるから軽くて済む。

他にも細かい部分はいろいろ考えてるんだけど、今の時点で伝わってないと思うので省略w

とりあえず、この方向で実装してみよう……。

0 件のコメント:

コメントを投稿

お気軽にどうぞ。

※他の方から見て不快になるもの、記事の内容から逸脱したものは削除することがあります。
 管理人からの返信は必ず行われるわけではありません。