ここから BiomeSpace(生態系レイヤ) を OS として定義していくね。
これは惑星生成パイプラインの中でも 「生命が宿る層」 で、
HeightSpace や TerrainSpace の上に乗る 意味レイヤ。
あなたの地形万華鏡 OS はすでに:
- PlanetSpace(方向ベクトル)
- OctaSpace(U,V)
- NoiseSpace(大陸・山脈)
- HeightSpace(標高)
- TerrainSpace(海/陸/山/河川)
まで来ている。
ここに BiomeSpace(森林・砂漠・ツンドラ・草原・湿地) を載せると、
惑星が「生態系を持つ世界」になる。
🌱 BiomeSpace の OS 設計(意味レイヤ)
BiomeSpace は 3つの連続関数から決まる:
- 気温(Temperature)
- 湿度(Humidity)
- 標高(Height)
この3つを組み合わせて、
森・砂漠・ツンドラ・草原・湿地 を分類する。
🌡 1. 気温(TemperatureSpace)
気温は 緯度 × 標高 × 太陽強度 で決まる。
✔ 緯度による気温
[ T_{lat} = \cos(\phi) ] (赤道が1、極が0)
✔ 標高による気温低下
[ T_{alt} = 1 - h ]
✔ 太陽強度(惑星パラメータ)
[ T_{solar} = solar_intensity ]
✔ 合成
[ T = T_{lat} \cdot 0.6 + T_{alt} \cdot 0.3 + T_{solar} \cdot 0.1 ]
💧 2. 湿度(HumiditySpace)
湿度は 海からの距離 × 風向 × ノイズ で決まる。
✔ 海からの距離(簡易版)
[ H_{dist} = 1 - \text{distance_to_ocean} ]
✔ ノイズ(大気循環)
[ H_{noise} = noise(U, V) ]
✔ 合成
[ H = 0.7 \cdot H_{dist} + 0.3 \cdot H_{noise} ]
🏔 3. 標高(HeightSpace)
これはすでにある height(0〜1)。
🧩 4. BiomeSpace の分類ルール(OS の意味テーブル)
BiomeSpace は T(気温) × H(湿度) × height の 3D 意味空間。
✔ 砂漠(Desert)
- 気温:高い
- 湿度:低い
- 標高:中〜低
if T > 0.6 and H < 0.3:
return "desert"
✔ 森林(Forest)
- 気温:中〜高
- 湿度:高い
- 標高:中
if H > 0.6 and T > 0.4:
return "forest"
✔ 草原(Grassland)
- 気温:中
- 湿度:中
- 標高:中
if 0.3 < H < 0.6 and 0.3 < T < 0.6:
return "grassland"
✔ ツンドラ(Tundra)
- 気温:低い
- 標高:低〜中
- 湿度:任意
if T < 0.3 and height < 0.6:
return "tundra"
✔ 湿地(Swamp)
- 湿度:非常に高い
- 標高:低い(海面近く)
if H > 0.7 and height < sea_level + 0.05:
return "swamp"
✔ 山岳(Mountain)
- 標高:高い
if height > 0.75:
return "mountain"
🧪 5. Python コード(BiomeSpace)
def classify_biome(T, H, height, sea_level=0.48):
# 山岳
if height > 0.75:
return "mountain"
# 砂漠
if T > 0.6 and H < 0.3:
return "desert"
# 森林
if H > 0.6 and T > 0.4:
return "forest"
# 湿地
if H > 0.7 and height < sea_level + 0.05:
return "swamp"
# ツンドラ
if T < 0.3:
return "tundra"
# 草原
return "grassland"
🌌 6. BiomeSpace が OS として強い理由
- 惑星全体が連続関数で分類される
- チャンク境界でも生態系が自然につながる
- Roblox のマテリアル割り当てが自動化できる
- 森・砂漠・ツンドラが自然に配置される
- プレートテクトニクスや河川と連動できる
BiomeSpace が入ると、惑星は「ただの地形」ではなく
“生命が住める世界” になる。
🧭 次に進めるなら…
- BiomeSpace を Roblox の TerrainMaterial にマッピングする
- 河川を BiomeSpace に統合して湿地帯を強化する
- 気温・湿度のノイズをもっと物理ベースにする(Hadley循環)
- プレートテクトニクスと BiomeSpace の連動(山脈=雨影効果)
どこに進めたい?