カスタムディメンジョンについてメモ書き

カスタムディメンジョンとは

ネザーやエンドのような、別の世界(ディメンジョン)を追加できる1.16.2以降で追加されるdatapackの新要素。バイオームや地形のカスタマイズは、複雑なのでまた別途、記事にすると思います。

参考 : Custom dimension – Official Minecraft Wiki

● 注意 ●
この記事はSnapshotをベースに書いています。なので、内容に正確性はありません。
また、かなり複雑な機能のため、初心者バイバイとなっております。

配置場所

カスタムディメンジョンを生成するためには、次にファイルを作成する必要があります。

● ディメンジョンの基本設定 (バニラの設定を使うなら不要)
saves/datapacks/(データパック名)/data/(名前空間)/dimension_type/(ディメンジョン).json

● ディメンジョンの詳細設定
saves/datapacks/(データパック名)/data/(名前空間)/dimension/(ディメンジョン).json

ディメンジョンの基本設定

バニラで用意されている定義を使う場合は、この設定は不要です。

{
    "has_raids": false,
    "logical_height": 256,
    "infiniburn": "minecraft:infiniburn_overworld",
    "ambient_light": 0.0,
    "piglin_safe": false,
    "bed_works": true,
    "respawn_anchor_works": false,
    "ultrawarm": false,
    "natural": true,
    "shrunk": false,
    "has_skylight": true,
    "has_ceiling": false
}
パラメータ 内容
has_raids 不吉な予感のエフェクトで襲撃が発生するか bool
logical_height プレイヤーが移動できる最大の高さ number
infiniburn 燃え続けるブロックのタグ
minecraft/tags/blocks/infiniburn_overworld.json のこと
string
ambient_light ディメンジョンの明るさ (デフォルトは0.5) number
piglin_safe ピグリンがゾンビ化するか bool
bed_works ベッドが機能するか bool
respawn_anchor_works リスポーンアンカーが機能するか bool
ultrawarm ネザーのように水が蒸発し、スポンジが乾き、溶岩が流れやすくなるか bool
natural コンパスなど通常世界で機能する内容を有効にするか bool
shrunk ネザーのようにポータル間の距離を1ブロック8mとして扱うか bool
has_skylight ディメンジョンに空があるか bool
has_ceiling ディメンジョンに天井があるか bool

バニラで用意されている定義

ディメンジョンの詳細設定

{
    "type": "custom:original",
    "generator": {
        (ディメンジョンの生成設定)
    }
}
パラメータ 説明
type ディメンジョンのタイプ
(名前空間)/dimension_type/に配置したファイル名かデフォルトのもの。
string
generator ディメンジョンの生成設定 object

ディメンジョンの生成設定

{
    "seed": 0,
    "type": "minecraft:noise", ★ 凸凹の地形を作る場合は"minecraft:noise"を指定
    "settings": "minecraft:overworld",
    "biome_source": {
        (バイオームの生成設定)
    }
}
パラメータ 説明
seed ワールドのシード値 number
type ディメンジョンのタイプ (minecraft:noise か minecraft:flat)
- noise : 通常のワールドのような凸凹の地形を作る
- flat : フラットワールドのような平面の地形を作る
string
settings ディメンジョンの生成ルール。
settingsで指定できる内容は後述。
string / object
biome_source バイオームの生成設定 object

settings でテンプレートのような地形を設定する

設定できる値 内容
minecraft:overworld 通常のワールドのような地形にする
minecraft:amplified 高低差をかなりつけた通常のワールドのような地形にする
minecraft:nether ネザーのような地形にする
minecraft:caves 地下世界のような地形にする
minecraft:end エンドのような地形にする
minecraft:floating_islands 浮島が複数あるような地形にする

任意の地形も生成できるけども、それはまた今度書きます。

バイオームの生成設定

バニラのようなバイオームを設定する

{
    "seed": 0,
    "type": "minecraft:vanilla_layered",
    "large_biomes": false
}
パラメータ 内容
large_biomes 各バイオームを広くするかどうか
- true: 広くする
- false: 通常通り
bool

エンドのようなバイオームを生成する

{
    "seed": 0,
    "type": "minecraft:the_end"
}

1つだけのバイオームを生成する

{
    "seed": 0,
    "type": "minecraft:fixed",
    "biome": "minecraft:plains"
}
パラメータ 内容
biome バイオームの種類
F3で出てくるBiomeを指定すれば良い
string

バイオームを正方形で生成する

{
    "seed": 0,
    "type": "minecraft:checkerboad",
    "biomes": [
        "minecraft:plains",
        "minecraft:jungle",
        "minecraft:desert"
    ],
    "scale": 2
}
パラメータ 内容
biomes バイオームの種類 (3つ以上)
F3で出てくるBiomeを指定すれば良い
array( string )
scale 各バイオームのサイズ(指定した値 x 2チャンク)
1なら2チャンク、8なら16チャンク
number

バイオームを好き勝手に生成する

{
    "seed": 0,
    "type": "minecraft:multi_noise",
    "biomes": [
        {
            "biome": "minecraft:plains",
            "parameters": {
                "altitude": 0.00,
                "temperature": 0.00,
                "humidity": 0.00,
                "weirdness": 0.00,
                "offset": 0.00
            }
        }
    ]
}
パラメータ 内容
biomes バイオームのリスト array( object )
biome バイオームの種類
F3で出てくるBiomeを指定すれば良い
string
parameters バイオームが適用される条件
生成されたワールドの各ポイントで、
最も条件に近いバイオームが選択される
object
parameters.altitude 高さ (-1.0 ~ 1.0)
1.0 に値が近ければ近いほど高い位置に生成される
バニラの山なら0.7、-0.45なら海
number
parameters.temperature 温度 (-1.0 ~ 1.0)
1.0 に値が近ければ近いほど温度の高い場所に生成される
バニラのサバンナなら0.6、タイガなら-0.6
number
parameters.humidity 湿度 (-1.0 ~ 1.0)
1.0 に値が近ければ近いほど湿度の高い場所に生成される
バニラのジャングルなら0.75、砂漠なら-0.75
number
parameters.weirdness 生成されにくさ (-1.0 ~ 1.0)
1.0 に値が近ければ近いほど生成されにくい
バニラのキノコ島なら0.8、平原なら-0.2
number
parameters.offset 他のバイオームとの重なり具合 (0.0 ~ 1.0)
1.0 に値が近ければ近いほど他のバイオームと重なる
バニラは基本0.0、ジャングルの端なら0.1
number

ディメンジョンに移動する方法

直接ディメンジョンには行けないので、コマンドで移動する必要がある。

/execute in (名前空間):(ディメンジョン) run tp @s ~ ~ ~