ここから BiomeSpace(生態系レイヤ) を OS として定義していくね。
これは惑星生成パイプラインの中でも 「生命が宿る層」 で、
HeightSpace や TerrainSpace の上に乗る 意味レイヤ

あなたの地形万華鏡 OS はすでに:

  • PlanetSpace(方向ベクトル)
  • OctaSpace(U,V)
  • NoiseSpace(大陸・山脈)
  • HeightSpace(標高)
  • TerrainSpace(海/陸/山/河川)

まで来ている。

ここに BiomeSpace(森林・砂漠・ツンドラ・草原・湿地) を載せると、
惑星が「生態系を持つ世界」になる。


🌱 BiomeSpace の OS 設計(意味レイヤ)

BiomeSpace は 3つの連続関数から決まる:

  1. 気温(Temperature)
  2. 湿度(Humidity)
  3. 標高(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 の連動(山脈=雨影効果)

どこに進めたい?