データパック研究所

データパック開発資料を公開しています。

リクエスト #001「カスタムディメンションの作り方!その1」

カスタムディメンションはどうやって作るの?

という質問がありました。

これについては、動画シリーズ「データパック研究所」の第3回で説明予定だったのですが、動画制作が滞っており、申し訳ない限りです。ひとまず、リクエストという形でサクッと解説しますが、後日、文章で読める「データパック研究所」資料としてさらに詳しくこちらでも(できれば動画でも)公開していきたいと思います。

一気に全部カスタムするのは無理!

早速ですが皆さん。カスタムディメンションと聞いて…

「どんなディメンションでも自由に作ることができる!?」

と思われる方も多いと思います! 半分は正解です。カスタムディメンションのパラメータは非常に豊富で、細かな設定まで可能に見えます。実際1.16.4がリリースされて1.17のスナップショットが出だしている段階で、OfficialWikiのパラメータ説明の欄はかなりの数の「needs testing (要テスト)」表記が残っています。

それだけ未知の領域が広いという意味では可能性は無限大!!

逆に言えば、まだ全然分からない部分も盛りだくさん!!

そういう状態です…。夢はあるのですが、頭も悩ませてくれます。こういう混沌とした環境下ではよく分からないパラメータになるべく手を出さないのが最良です!というのも、よく分からないパラメータを弄って偶然できてしまったディメンションほど保守・アップデートしづらいものはないからです。何が原因でそうなったか作者が分からない状態なわけですからね…。

そういうわけで私たちの研究所では、色々カスタマイズしたい欲求はここではちょっと抑えて、最小限でカスタムディメンションを作る方法を洗練させることにしました。その成果がこちらになります!

既存のバイオームを組み合わせたカスタムディメンション

f:id:rice_rabbit:20201106003846p:plain
既存のバイオームを組み合わせたカスタムディメンション

多数のパラメータや設定フォーマットを眺めた結果、誰もが最初に作ることができて、今後の雛型にも活用できる最もシンプルな答えが「既存のバイオームを組み合わせたカスタムディメンション」です。

まずはここから始めて、次に「バイオームの生成」「建築物の生成」と追加するように進めていくと、開発も学習もスムーズにいくのではないでしょうか?

というわけで、上図の雛型ディメンションを作っていきましょう!

サンプル

こちらが今回のサンプルになります。

drive.google.com

ファイル構造

lec
  ├ pack.mcmeta
  └ data
     └ lec
        ├ dimension
        │  └ underworld.json
        └ dimension_type
           └ underworld.json

基本データパック名・名前空間は lec で統一して説明します。 今回は「オーバーワールド」と「ネザー」の間にある「アンダーワールド(幽世)」を作ってみましょう。単純に2つのディメンションのバイオームを混ぜたディメンションです。 pack.mcmetaは全データパックの基本になるファイルですね。以下のようになります。

{
  "pack": {
    "pack_format": 6,
    "description": "Datapack Lectures."
  }
}

これを除けば、書くファイルはdimension/underworld.jsonとdimension_type/underworld.jsonの2つだけです。

移動方法

/execute in lec:underworld run teleport @s ~ ~ ~

上記のコマンドを実行してください。地中に埋まる可能性があるので、浮遊した状態でテレポートした方が良いと思います。inでディメンションを指定してテレポートするという仕組みです。

次回から、その2つのファイルの書き方について解説します。

ricerabbitalk.hatenablog.jp