この記事では、Minecraft Java Edition(バージョン1.19.4)の情報をもとに執筆しています。
そのほかのバージョンや機種などでの動作は保証できません。
カスタムディメンションを実装したいマインクラフター
「カスタムディメンションってどうやって作るのかな? 具体的に教えて欲しいな」
こんな疑問を解決します!
- カスタムディメンションの追加には2つのファイルが必要
こんにちは! マインクラフターのなつめ(@natsume_717b)です。
マイクラ歴は5年程で、最近は脱出マップやミニゲームを制作しています!
→ダウンロードページ
今回はカスタムディメンションの作成方法についてお話していきます。
カスタムディメンションとは、エンドやネザーのように別の世界を自分で作成するというものです。
設定項目が多いものの普通ではできない世界も作成できますので、できるようになるとかなり面白い要素です。
カスタムディメンションの記事が書き終わらないので、こんな世界を作れるよーって画像でお茶を濁します。#マイクラ pic.twitter.com/xSq42s4E9p
— 夏メ (@natsume_717b) May 8, 2023
ただし、執筆時点で日本語での情報があまり出回っていないこと、実際に試行錯誤しても判然としなかったこともありましたので、不確かな箇所に関してはその旨を記載しています。
その点だけご了承ください。
とはいえ、この記事を読めば実際にカスタムディメンションを作成することは可能ですので、ぜひ参考にしてくださいね。
それでは、やっていきましょう!
カスタムディメンションの追加には2つのファイルが必要
カスタムディメンションを作成するには、データパックの中に2つのファイルを適切に作成、配置する必要があります。
その2つのファイルというのが、dimensionフォルダに投入するものとdimension_typeフォルダに投入するjsonファイルです。
どちらもjsonファイルで、名前には英数字と一部の記号が使用できます。
dimension_typeに作成するjsonファイルには大文字が使用できません。
ファイルの格納場所
ファイルの格納場所は以下の通りです。
- dimensionに入れるjsonファイルの格納場所
データパック名\data\自分で名前を決めたフォルダ\dimension\作成したjsonファイル - dimension_typeに入れるjsonファイルの格納場所
データパック名\data\自分で名前を決めたフォルダ\dimension_type\作成したjsonファイル
データパックのdataフォルダの中にある、自分で名前を決めたフォルダにそれぞれdimensionとdimension_typeの2つのフォルダを作成。
そこへ、この後作成するjsonファイルを投入すればOKです。
データパックの作成方法はこの記事では割愛します。
jsonファイルの作り方
ここからはjsonファイルの作り方について解説していきます。
ただし、どちらのjsonファイルも設定項目が多く見慣れない項目も多いです。
なので海外の直感的に扱えるサイトを利用して、なるべく楽して作成していきます。
dimesion_typeフォルダに投入するjsonファイルを作成する
まずはdimension_typeに投入するjsonファイルについて見ていきます。
先にdimension_typeから作成する方が後々都合が良くなるので、必ずdimension_typeの方から取り掛かりましょう。
まずはDimension Type Generatorにアクセスします。
飛んでいただければ分かりますが、直感的に項目を設定でき簡単に生成された文字列をコピーすることが可能です。
若干見切れていますが、右上の緑色の箇所でバージョンの指定ができます。
ほかは中央にある項目で設定して、右下の場所をコピペすればOKです。
それでは、緑色の枠線で囲っている中央にある項目について説明していきます。
項目名 | 説明 |
---|---|
ultrawarm | trueにすると、ネザーのように水が蒸発する、スポンジが乾く。 falseでそういったことが起きない。 |
natural | trueの場合、ゾンビピグリンをネザーポータルの場所でスポーンする。 falseにした場合は、コンパスや時計が機能しなくなるほかベッドでスポーンポイントを設定できない。 (ロードストーンコンパスは使用可能) |
piglin_safe | trueの場合、ホグリンとピグリンがゾンビ化しない。 falseでゾンビ化してしまう。 |
respawn_anchor_works | trueでリスポーンアンカーが使用可能。 falseにすると、リスポーン地点をセットしようとした段階で爆発が起きる。 |
bed_works | trueでベッドの使用が可能。 falseにすると、ベッドで寝ようとしたときに爆発が起きる。 |
has_raids | trueだと不吉な予感を持ったプレイヤーが村に近づくことで襲撃イベントが起きる。 falseにしたら、上記条件下でも襲撃イベントが起こらなくなる。 |
has_skylight | trueで空からの明るさが適用される。 falseで適用されない。 |
has_ceiling | 岩板の天井を追加するための項目。 ただし、アップデートの影響か概念的なものに変更されたらしく実際にブロックが設置されることはない。詳細は不明。 (過去のバージョンでは岩板の天井を追加できた模様) |
coordinate_scale | 0.00001~3000万の値で指定する。 そのディメンションでの1ブロックが通常世界では何ブロックになるのかを指示している。 ネザーの1ブロックが8ブロック分の距離になっているのは、ネザーの設定でこの値が8になっているから。 |
ambient_light | 0.0~1.0で指定する。 環境光の量を指定するもので、0に近いほど暗く1に近いほど明るくなる。 has_skylightをfalseに設定していると違いがよくわかる。 |
fixed_time | 時間を固定する際に使用。 (指定しなくても問題ない) マイクラ内の時間を指定した値で止めてくれる。 |
logical_height | コーラスフルーツのテレポートやネザーゲートを潜った移動をする際の最高高度を数字で指定する。 |
effects | “minecraft:overworld”、”minecraft:the_nether”、”minecraft:the_end”のいずれかで指定。 (指定しなかった場合はオーバーワールドのものが適用される) 空の状態が指定した既存ディメンションの状態に決まる。 |
infiniburn | そのディメンション内で無限に燃え続けるブロックを指定する。 特に弄らなければ、minecraft:infiniburn_overworldと入力。 ブロックタグを弄れる人は自由に設定できるはず。 |
min_y | ディメンション内でブロックを設置できる最も低い高さを指定する。 ただし-2032~2031の間の値で、16の倍数にすること。 |
height | ディメンション内でブロックを設置できる最も高い位置を指定する。 min_y同様こちらも16の倍数である必要があり、16~4064の間で指定。 また、最大の高さはmin_yとheightの値を足して1引いた値になる。 |
monster_spawn_light_level | 敵mobが湧く明るさに関する設定で、Uniformを指定すればOK。 (それ以外の選択肢は分からないので省きます) Uniform選択後、min_inclusiveとmax_inclusiveを0~15の値で指定する。 minの方が最小の明るさレベルで、maxの方が敵が湧く最大の明るさレベルとなる。 雷雨の場合は湧きやすくなるので、詳しく値の関係性を知りたい方は英語版wikiを参照しましょう。 |
monster_spawn_block_light_limit | 0~15の値で指定。 敵mobが湧くのに必要なブロックあたりの最大の光の量らしいが、詳細は不明。 |
これらの項目を設定した後、画面右下の部分に出ている文字列をコピーしてjsonファイルにペーストすればOKです。
jsonファイルを弄る際は、メモ帳などで開いてペースト、上書き保存すれば問題ありません。
拡張子を.jsonにするのを忘れないようにしましょう。
dimesionフォルダに投入するjsonファイルを作成する
同様にdimensionフォルダに投入するjsonファイルを作っていきます。
まずはDimension Generatorにアクセスしましょう。
dimension_typeの時と似たようなものが出ますが、設定する項目などは全く異なるので混同しないように要注意です。
使い方自体は同じですので、詳しい説明は割愛します。
設定項目については以下の通りです。
項目名 | 説明 |
---|---|
dimesion type | ディメンションタイプの指定。 dimesion_typeに投入したjsonファイルを指定したいので、「フォルダ名:jsonファイル名」といった感じで入力する。 例 testというフォルダにdimensionフォルダとdimesion_typeフォルダが入っており、01_testというjsonファイルがdimension_typeフォルダに存在するなら「test:01_test」と入力すればOKです。 |
Generator | Debug World、Superflat、defaultの3種から選択する。 Debug Worldは設置されたブロックの一覧を見ることができ、Superflatはフラットなワールドを生成、defaultは通常のサバイバルのような世界を生成することができます。 |
Generatorで選択した項目によって大きく設定項目が変わるので、Generatorごとに見ていきます。
ただし、Debug Worldはまず使わない上に設定する箇所もないので割愛します。
個人的には面白いので、どのようなワールドになるのかという画像だけ貼っておきます。
Superflatの場合
まずはSuperfaltからです。
項目名 | 説明 |
---|---|
Biome | バイオームを指定する。 ここで指定した単一のバイオームになります。 |
Lakes | trueにすると溶岩湖が生成されるようになる。 falseで生成されない。 |
features | 平たく言うと、指定したバイオームの生成法則通りに生成するかどうか。 trueにすれば指定したバイオームの生成法則に沿って生成され、falseにすれば生成されない。 (花や雑草、木、鉱石などを生成するかどうかといった感じ) |
Layers | そのディメンションを構成する地層をBlock IDとheightで指定する。 Block IDにはその名の通りブロックのIDを入力して、heightにはそのブロックがどれくらいの厚さなのかを指定する。 複数指定できるので、交互に別ブロックのIDを指定すればミルフィーユのようにすることも可能。 |
structure overrides | そのディメンションで生成される構造物に関する項目。 Referenceを指定したら、バイオームが適していれば生成される。 Inlineでは細かく設定できるようだが、要調査。 (本来生成されないバイオームで生成するといったことなども可能かもしれない) |
Defaultの場合
次はDefaultです。
まず初めにGenerator settingについて。
この項目にはReferenceとInlineの2項目があり、Referenceはテンプレを使用する感じで、Inlineは細かく指定するといったイメージを抱いてくれればOKです。
Inlineについては複雑なので割愛します。
気になる方は英語版Wikiなどと睨めっこすればわかるかと思います。
というわけで、Referenceで選択することになる項目についてです。
項目名 | 説明 |
---|---|
minecraft:amplified | アンプリファイドと同様。 |
minecraft:caves | 巨大な洞窟として生成される。 |
minecraft:end | エンドのように生成される。 |
minecraft:floating_islands | 浮島として生成される。 |
minecraft:large_biomes | 1つ1つのバイオームが大きいサイズで生成される。 |
minecraft:nether | ネザーのように生成される。 |
minecraft:overworld | 通常のワールド生成と同じ用に生成される。 |
次はBiomeSourceについてです。
この項目でどういったバイオームが生成されるのかを指定します。
項目名 | 説明 |
---|---|
Checkerboard | 碁盤の目のように指定したバイオームが生成される。 Scaleでバイオームの大きさを指定。 Biomesでバイオームを指定する。 |
Fixed | 特定の1つのバイオームだけが生成される。 Biomeの箇所でバイオームを指定する。 |
Multi noise | Biomes presetでoverworld、netherを選択した場合は、その通りに生成される。 Unsetにすると複数のバイオームを指定しつつ、気温や湿度など細かく設定できる。 |
The end | エンドのように生成する。 (dimension_typeに影響されるので、地表などのブロックは必ずしもエンドストーンというわけではない。エンドシティが生成されたり、エンダーマンのみがスポーンするなどの特徴がある) |
dimension_type同様、設定が終わったら右下の文字列を全てコピーしてjsonファイルにペーストしましょう。
作成したディメンションへ移動する方法
作成したディメンションへ移動するには、executeコマンドでディメンションを仮定しながらテレポートします。
なので、以下のようなコマンドを打てばOKです。
/execute in test:01_test run tp @s ~ ~ ~
テレポートする座標は何処でも構いませんし、テレポートさせる対象も必要に応じて変更して問題ありません。
肝となるのは、executeコマンドのinの部分です。
きちんと作成できていれば、minecraft:overworld、minecraft:the_nether、minecraft:the_endのほかに「フォルダ名:jsonファイルの名前」といった感じのものが候補として出現します。
上記のコマンドの場合は、testというフォルダの中にあるdimensionフォルダの01_test.jsonを参照しているといった感じです。
また上手く作成できているかどうかは、Ver.1.19.4の時点ではワールドに入る段階で分かります。
バックアップを作成するかどうかはどちらでも大丈夫です。
毎回バックアップを取るのも面倒なので、「危険性を理解したうえで読み込む」を選択しても問題ありません。
ファイルに不備などがある場合は、以下のような画面になります。
1文字でも正しくないとエラーを吐き出してくるので、生成ツールからコピペするなど可能な限りミスを起こさない方法で作成することをおすすめします。
また、はじめのうちは希望通りのディメンションにしようと、何度も作りなおすかと思います。
その際、既に読み込んでいるディメンションはファイルの中身を更新して保存したとしても、適用されることはなく、再生成されるわけでもありません。
なので、savesから導入しているワールドを選択、その中にある「dimensions」というフォルダを削除してからワールドに入りなおしましょう。
これで更新した設定が適用されたディメンションになります。
まとめ
というわけで、今回のまとめです。
今回使ったコマンドはこちら。
/execute in test:01_test run tp @s ~ ~ ~
この記事は以上になります。