【1.20.1対応】KubeJSブロック魔改造・上級編②!自作鉱石とモミジの木を「自然生成」させる最強JSONテンプレート

KubeJS

マイクラの醍醐味といえば未知の世界の探索ですが、「自分たちで作ったオリジナルの鉱石や木が、自然の風景に溶け込んで生成されたら最高なのに…」と思いませんか?

この記事では、KubeJSで作った自作ブロックをフィールドに「自然生成」させる上級テクニックを解説します。俺と友達が遊ぶために作っているこだわりのマルチサーバーにこのギミックをこっそり仕込んでおけば、新しい土地を見つけた時のワクワク感が何倍にも膨れ上がりますよ!

面倒なフォルダ構成や確率計算も、当ブログ特製のテンプレートを使えば一瞬です。サバイバル生活を劇的に彩るオリジナル環境を一緒に作っていきましょう!

(※サーバーの土台作りやKubeJSでのブロック追加がまだの方はこちらの記事からどうぞ👇)

【1.20.1対応】ConoHa VPSでマイクラ独自環境を作るMOD!KubeJS・MoreJS・LootJS導入完全ガイド
1. はじめに:KubeJSを駆使してマイクラを「独自環境」に魔改造する2. マルチプレイで独自環境を楽しむなら「ConoHa VPS」一択な理由3. ConoHa VPSでマイクラサーバーを立ち上げる3ステップ4. サーバーにKubeJS…

【重要】当サイトの動作確認環境

マイクラのModは、バージョンが少し違うだけでコードが動かなくなることがよくあります。この記事のデータは、以下の環境で動作確認を行っています。

  • Minecraftバージョン: 1.20.1
  • 前提Mod: Forge
  • 使用Mod: KubeJS
  • 環境: ConoHa VPS

※バージョンが大きく異なる場合、コードのままではエラーになる可能性があるためご注意ください。

1. ⚠️ 自然生成は「AIへの丸投げ」厳禁!?

今回の「自然生成」に関してはAIに丸投げするのはおすすめしません。

なぜなら、自然生成はプログラム(.js)ではなく、マイクラのバニラ仕様である「データパック(.json)」の仕組みを使うためです。いくらレスポンスが速く賢いGemini 2.5 Flashでも、データパック特有の厳格なプロパティ指定や、「worldgenforge のフォルダ階層の違い」などを間違えて出力してしまうことが多々あります。

結果的に「エラーも出ないのに全く生成されない」「ワールド読み込み時に突然クラッシュする」といった原因不明のトラブルに陥りやすく、その原因を究明するためのトラブルシューティングは、技術的な労働の市場価値に換算すれば相当な額になるほどハードで高度な作業になってしまいます。

そのため今回は、AIへのプロンプト指示ではなく、当ブログで検証を重ねた「コピペするだけで絶対に動く完全版テンプレート」をご用意しました!

【事前準備】3つの必須ファイルを作ろう

自然生成をマイクラに認識させるには、以下の3つの設定ファイル(JSON)が必ずセットで必要になります。

  1. configured_feature(設計図): どのブロックを、どんな形やサイズで作るか?
  2. placed_feature(配置ルール): 1チャンクに何個、どの高さに、どんな条件(草ブロックの上など)で配置するか?
  3. biome_modifier(バイオーム指定): それをどのバイオーム(森、砂漠など)に配置するか?

ご自身のパソコンの .minecraft ➔ kubejs ➔ data ➔ kubejs フォルダの中に、これから紹介する階層通りにフォルダとファイルを作成していきましょう!

2. 実践 Level 1:地下のロマン!「銀鉱石」を生成する

まずは比較的シンプルな鉱石の追加です。以下の3つのファイルを作成し、コードをコピペしてください。

① 設計図(場所: worldgen/configured_feature/silver_ore.json

JSON

{
  "type": "minecraft:ore",
  "config": {
    "size": 8,
    "discard_chance_on_air_exposure": 0.0,
    "targets": [
      {
        "target": { "predicate_type": "minecraft:tag_match", "tag": "minecraft:stone_ore_replaceables" },
        "state": { "Name": "kubejs:silver_ore" }
      }
    ]
  }
}

② 配置ルール(場所: worldgen/placed_feature/silver_ore.json

JSON

{
  "feature": "kubejs:silver_ore",
  "placement": [
    { "type": "minecraft:count", "count": 12 },
    { "type": "minecraft:in_square" },
    { "type": "minecraft:height_range", "height": { "type": "minecraft:trapezoid", "max_inclusive": { "absolute": 64 }, "min_inclusive": { "absolute": -64 } } },
    { "type": "minecraft:biome" }
  ]
}

③ バイオーム指定(場所: forge/biome_modifier/add_silver_ore.json

JSON

{
  "type": "forge:add_features",
  "biomes": "#minecraft:is_overworld",
  "features": [ "kubejs:silver_ore" ],
  "step": "underground_ores"
}

【丸投げでOK!コードの仕組みが分かると自分でもいじれる!】

  • size: 8:1つの鉱脈につき、最大何個の銀鉱石が固まって生成されるか(ベインサイズ)を指定します。
  • count: 12:1チャンク(16×16ブロックの範囲)あたり、何回生成を試みるかを指定します。数字を大きくすればするほど、ザクザク見つかるようになります。
  • absolute: 64-64:生成されるY座標(高さ)の範囲です。

3. 実践 Level 2:超複雑!「モミジの木」を地上に生やす

木の場合は「幹」と「葉」を組み合わせるため、設定が一気に複雑になります。さらに「草ブロックの上にしか生えない」という制限をかけないと、空中の謎の場所に土ブロックごと強制生成されてしまう事があるため注意が必要です。

① 設計図(場所: worldgen/configured_feature/maple_tree.json

JSON

{
  "type": "minecraft:tree",
  "config": {
    "ignore_vines": true,
    "force_dirt": false,
    "minimum_size": { "type": "minecraft:two_layers_feature_size", "limit": 1, "lower_size": 0, "upper_size": 1 },
    "dirt_provider": { "type": "minecraft:simple_state_provider", "state": { "Name": "minecraft:dirt" } },
    "trunk_provider": { "type": "minecraft:simple_state_provider", "state": { "Name": "kubejs:maple_log", "Properties": { "axis": "y" } } },
    "foliage_provider": { "type": "minecraft:simple_state_provider", "state": { "Name": "kubejs:maple_leaves" } },
    "trunk_placer": { "type": "minecraft:straight_trunk_placer", "base_height": 4, "height_rand_a": 2, "height_rand_b": 0 },
    "foliage_placer": { "type": "minecraft:blob_foliage_placer", "radius": 2, "offset": 0, "height": 3 },
    "decorators": []
  }
}

② 配置ルール(場所: worldgen/placed_feature/maple_tree.json

JSON

{
  "feature": "kubejs:maple_tree",
  "placement": [
    { "type": "minecraft:count", "count": 2 },
    { "type": "minecraft:in_square" },
    { "type": "minecraft:surface_water_depth_filter", "max_water_depth": 0 },
    { "type": "minecraft:heightmap", "heightmap": "OCEAN_FLOOR" },
    { "type": "minecraft:block_predicate_filter", "predicate": { "type": "minecraft:matching_blocks", "blocks": [ "minecraft:grass_block", "minecraft:dirt", "minecraft:podzol" ], "offset": [ 0, -1, 0 ] } },
    { "type": "minecraft:biome" }
  ]
}

③ バイオーム指定(場所: forge/biome_modifier/add_maple_tree.json

JSON

{
  "type": "forge:add_features",
  "biomes": [ "minecraft:forest", "minecraft:flower_forest" ],
  "features": [ "kubejs:maple_tree" ],
  "step": "vegetal_decoration"
}

【丸投げでOK!でも、ここだけ知っておくとさらに面白い!】

  • Properties: { axis: y }:原木(幹)を上向きに配置するための必須プロパティです。これがないと横倒しの木が生えてしまいます。
  • trunk_placerbase_height: 4:幹の最低高さを指定します。height_rand と組み合わせることで、自然なバラつきのある木が生成されます。
  • minecraft:block_predicate_filter:「草ブロック、土、ポドゾルの上にしか生えない(offset: -1)」という強力なフィルターです。

4. 💡 サーバーへの反映と再起動

すべてのファイルを作り終えたら、WinSCPなどのFTPソフトを使って、ご自身のサーバーの kubejs フォルダへそのまま上書きアップロードしてください。

自然生成(データパック)の変更はワールドの根幹に関わるため、コマンドでのリロードではなくサーバー本体の完全な再起動が必要です。

再起動後、まだ探索したことのない新しい「森」バイオームへ向かってみましょう。真っ赤なモミジの木が生い茂り、地下には銀鉱石が眠る最高の景色が広がっているはずです!

まとめ:自分だけの最強マルチ環境が完成!

お疲れ様でした!「ブロック追加」から「自然生成」までマスターしたあなたは、もう立派なMod開発者です。

JSONファイルの構造は少し複雑ですが、一度テンプレートの仕組みを理解してしまえば「新しい建材の鉱脈」や「色鮮やかな桜の木」なども無制限に追加できるようになります。ぜひ、一緒に遊ぶ友人がアッと驚くような、最高の独自ワールドを構築してみてくださいね!

▼ 安定したマイクラサーバー構築ならこの環境! ▼ こだわりのMod環境を安定して動かすなら、当ブログでも使っているConoHa VPSが一番手軽で確実です。

コメント

タイトルとURLをコピーしました