ひとことで
標高・気温・湿度のような複数の値を場所ごとに求め、その組み合わせから表を引いて、森林・砂漠・雪原・熱帯雨林などの生物群系(バイオーム)を塗り分ける方法です。標高だけで色を決めると、同じ高さの所はどこでも同じ景色になりますが、気温と湿度を組み合わせると、同じ高さでも北は針葉樹林、南は砂漠になり、地理として筋の通った多様な世界ができます。
ゲームでの使いどころ
- オープンワールドの地形生成:『Minecraft』のような広い世界で、地域ごとに地面の色、植物、動物、天候、音楽を切り替える。
- 配置のルールの元:バイオームごとに、生える木の種類や密度、出る敵、手に入る資源を決める。
- 気候の変化:季節や時代で気温・湿度をずらすだけで、同じ地形の景色を変える(温暖化で雪が解ける、乾燥で砂漠が広がる)。
- マップの見た目の説得力:高い山には雪、川の周りは湿地、海風の当たる所は森、のように理由のある配置にする。
しくみ
各地点で、次のような値を求めます。
- 標高 :ノイズ(と島の減衰マスク)から。
- 気温 :南北の位置(緯度)で決め、標高が高いほど下げます。
- 湿度 :標高とは別のノイズで決めます。海や川からの距離、風上か風下かを加えると、さらにそれらしくなります。
最後に、気温と湿度で表を引いてバイオームを決めます。生態学の「ホイッタカー図」(年平均気温と降水量で植生を分けた図)を簡単にしたものです。
| 乾燥 | 普通 | 湿潤 | |
|---|---|---|---|
| 寒い | ツンドラ | 針葉樹林 | 針葉樹林 |
| 温暖 | 草原 | 落葉樹林 | 湿地 |
| 暑い | 砂漠 | サバンナ | 熱帯雨林 |
とても寒い所(高い山の上や北の端)は雪原、海面より下は海、海面のすぐ上は砂浜にします。
実装のポイント
- 値の大きさ(周波数)を変える:標高・気温・湿度のノイズの細かさをそろえると、バイオームの境目が地形とそろいすぎて不自然です。湿度は大きめ、気温は緯度中心、と変えます。
- 境目をなめらかに:表をそのまま引くと、境目がくっきり分かれます。隣のバイオームと重みで混ぜる(色・植生の密度を補間する)と自然になります。
- 表を画像で持つ:表を小さな画像(横が湿度、縦が気温)にしておくと、デザイナーが色を塗るだけでバイオームの配置を調整できます。
- 植生はバイオームごとの密度で:各バイオームに「木の密度」「草の密度」を持たせ、密度マスク散布で配置します。
つまずきやすい点
- ありえない隣り合わせ:砂漠のすぐ隣に雪原のように、気温が急に変わる配置は不自然です。気温のノイズを大きく・なめらかにするか、表の並びで極端な組み合わせが隣り合わないようにします。
- 細かすぎるまだら:ノイズが細かすぎると、バイオームが小さな斑点になり、地域としてのまとまりがなくなります。
- 標高だけで決めてしまう:標高だけで色を決めると、どこも同じ景色になります。少なくとも標高と独立な値を 1 つは加えます。
デモで試すこと
- 地形の上にポインターを置くと、その場所の気温と湿度が、右下の表の白い点として出ます。点のある色が、その場所のバイオームです。
- 「色の決め方」を「気温の地図」「湿度の地図」に切り替え、北(奥)ほど寒く、山ほど寒いこと、湿度は標高と関係ないことを確かめてください。
- 「標高だけ」に切り替えると、同じ高さはどこも同じ色になり、北も南も区別がつきません。
- 「全体の気温をずらす」を上げると雪が解けて砂漠やサバンナが広がり、下げると針葉樹林と雪原が広がります。