自動生成・配置ルール

バイオームマップ

Biome Map

標高と湿度などで森林や砂漠を分ける。

8 / 10

インタラクティブデモ

デモを準備しています…

バイオームマップ

ドラッグで視点を回転、Ctrl(⌘)+ スクロールでズーム。タッチ操作は 2 本指です。

ひとことで

標高・気温・湿度のような複数の値を場所ごとに求め、その組み合わせから表を引いて、森林・砂漠・雪原・熱帯雨林などの生物群系(バイオーム)を塗り分ける方法です。標高だけで色を決めると、同じ高さの所はどこでも同じ景色になりますが、気温と湿度を組み合わせると、同じ高さでも北は針葉樹林、南は砂漠になり、地理として筋の通った多様な世界ができます。

ゲームでの使いどころ

  • オープンワールドの地形生成:『Minecraft』のような広い世界で、地域ごとに地面の色、植物、動物、天候、音楽を切り替える。
  • 配置のルールの元:バイオームごとに、生える木の種類や密度、出る敵、手に入る資源を決める。
  • 気候の変化:季節や時代で気温・湿度をずらすだけで、同じ地形の景色を変える(温暖化で雪が解ける、乾燥で砂漠が広がる)。
  • マップの見た目の説得力:高い山には雪、川の周りは湿地、海風の当たる所は森、のように理由のある配置にする。

しくみ

各地点で、次のような値を求めます。

  • 標高 hh:ノイズ(と島の減衰マスク)から。
  • 気温 TT:南北の位置(緯度)で決め、標高が高いほど下げます。
T=T緯度(z)−λ⋅max⁡(0, h−h海面)+小さなノイズT = T_{\text{緯度}}(z) - \lambda \cdot \max(0,\ h - h_{\text{海面}}) + \text{小さなノイズ}
  • 湿度 MM:標高とは別のノイズで決めます。海や川からの距離、風上か風下かを加えると、さらにそれらしくなります。

最後に、気温と湿度で表を引いてバイオームを決めます。生態学の「ホイッタカー図」(年平均気温と降水量で植生を分けた図)を簡単にしたものです。

乾燥普通湿潤
寒いツンドラ針葉樹林針葉樹林
温暖草原落葉樹林湿地
暑い砂漠サバンナ熱帯雨林

とても寒い所(高い山の上や北の端)は雪原、海面より下は海、海面のすぐ上は砂浜にします。

実装のポイント

  • 値の大きさ(周波数)を変える:標高・気温・湿度のノイズの細かさをそろえると、バイオームの境目が地形とそろいすぎて不自然です。湿度は大きめ、気温は緯度中心、と変えます。
  • 境目をなめらかに:表をそのまま引くと、境目がくっきり分かれます。隣のバイオームと重みで混ぜる(色・植生の密度を補間する)と自然になります。
  • 表を画像で持つ:表を小さな画像(横が湿度、縦が気温)にしておくと、デザイナーが色を塗るだけでバイオームの配置を調整できます。
  • 植生はバイオームごとの密度で:各バイオームに「木の密度」「草の密度」を持たせ、密度マスク散布で配置します。

つまずきやすい点

  • ありえない隣り合わせ:砂漠のすぐ隣に雪原のように、気温が急に変わる配置は不自然です。気温のノイズを大きく・なめらかにするか、表の並びで極端な組み合わせが隣り合わないようにします。
  • 細かすぎるまだら:ノイズが細かすぎると、バイオームが小さな斑点になり、地域としてのまとまりがなくなります。
  • 標高だけで決めてしまう:標高だけで色を決めると、どこも同じ景色になります。少なくとも標高と独立な値を 1 つは加えます。

デモで試すこと

  1. 地形の上にポインターを置くと、その場所の気温と湿度が、右下の表の白い点として出ます。点のある色が、その場所のバイオームです。
  2. 「色の決め方」を「気温の地図」「湿度の地図」に切り替え、北(奥)ほど寒く、山ほど寒いこと、湿度は標高と関係ないことを確かめてください。
  3. 「標高だけ」に切り替えると、同じ高さはどこも同じ色になり、北も南も区別がつきません。
  4. 「全体の気温をずらす」を上げると雪が解けて砂漠やサバンナが広がり、下げると針葉樹林と雪原が広がります。

参考資料

WaveFunctionCollapse ↗

分野全体の資料で、この項目を直接扱っているとは限りません。