base game versionによるワールドのバージョン固定

スポンサーリンク

マイクラ統合版では、アップデートによって配布ワールドの挙動が変わってしまうことがあります。
その対策として使えるのが base game version です。

これは、ワールドのバージョンを設定し、将来のアップデートに対する耐性を持たせる仕組みです。

base game versionを設定することで、統合版の配布ワールドでも一定のアップデートに対する耐性を持つことができます。

base game versionとは

base_game_versionは、ワールドを特定のゲームバージョンにひも付けるための設定です。

base game version を設定すると、そのワールドでは指定したバージョンを基準として、後のアップデートで追加されたブロックやアイテムなどが使えなくなります。また、内部処理や仕様についても一部そのバージョンでの処理・仕様になります。
これにより、将来のアップデートによってワールドの内容や挙動が大きく変わってしまうことを防ぎやすくなります。

なお、base game versionの設定は、厳密にはワールドそのものではなく、ワールドテンプレートに対して行います。

ワールドテンプレートとは、ワールド新規作成時に選択できるワールドデータのことです。マーケットプレイスで購入するワールドはワールドテンプレートの形で管理されており、ワールド一覧画面から「新しいワールドを作成」を押下した後に表示される画面で「所持」を押下すると所持しているワールドテンプレートの一覧が表示されます。PCであれば同じ画面でテンプレートのインポートも可能です。

base game version の大まかな仕様

base game versionを設定することで、ゲーム内の一部を指定したバージョンの状態に留めることができます。ただし、JAVA版のようにゲームエンジンから丸ごとバージョンを切り替えられるような完全なものではなく、過去の状態を維持する要素とbase game versionの影響を受けず最新の状態を反映する要素があります。

過去の状態を維持する要素

  • 新規ブロック、エンティティ等
  • 既存ブロック、エンティティ等の仕様変更
  • 一部の仕様変更

base game versionを設定すると使用できるブロックやエンティティはそのバージョン以前のものになり、そのバージョン以降の新しい要素は使用できません。例えば、base game versionをオウムガイが追加された1.21.130の一つ前の1.21.120にすると、オウムガイは存在しない状態になります。

また、一部の仕様変更についても過去の状態を引き継ぎます。具体例をあげると、例えば1.21.10で行われたスニークするとプレイヤーの高さが1.5になる仕様変更が挙げられます。現在はスニークすると高さ1.5の場所をくぐることができますが、base game versionを1.21.10以前のバージョンに設定すると、1.5の高さはスニークでもくぐれない状態になります。そのほか、古いバージョンを設定するとVibrant Visualsが使用できないなどがあります。

base game version が正しく効いているかどうかを確認するうえで、最も分かりやすいのが クリエイティブのインベントリです。たとえば、古いバージョンを base game version に指定した場合、その後のアップデートで追加されたブロックやアイテムが、クリエイティブインベントリからまとめて消えます。

1.21.132の状態でbase game versionが1.13のワールドのインベントリ

base game versionの影響を受けない要素

  • コマンド
  • アドオン
  • 試験要素
  • バグ修正

コマンドについては、base game versionを設定していても最新のものが使用できます。しかし、コマンドブロックについては、base game versionと関係なく、「編集したバージョンの挙動でコマンドを実行する」という仕様が組み込まれているため、特に問題ありません。

functionのコマンドやアドオンについては、manifestのmin_engine_versionや各manifestのformat_versionなどで別途管理されています。

バグ修正については厄介で、mojangがバグ修正と思ったら仕様変更のような内容でもバグ修正になるので注意が必要です。場合によってはbase game versionを設定されていても配布ワールドに影響のある変更を受ける可能性があります。

設定方法

base game version は、ワールドテンプレート(.mctemplate)のオプション設定の一つです。そのため、設定するにはワールドテンプレートを作成する必要があります。

フォルダ構造

テンプレート作成時の最小構成は、次のような形になります。

MyWorldTemplate/
├─ manifest.json
├─ level.dat
├─ levelname.txt
├─ db/
│  └─(ワールドのデータ)
├─ resource_packs/
└─ behavior_packs/

基本的には、ワールドテンプレートを作成したいワールドデータの直下にmanifest.jsonを作成するだけになります。

manifest.jsonの例

{
  "format_version": 2,
  "header": {
    "name": "テンプレート名",
    "description": "テンプレートの概要",
    "version": [1, 0, 0],
    "lock_template_options": true,
    "base_game_version": [1, 21, 0],
    "uuid": "UUID_1"
  },
  "modules": [
    {
      "type": "world_template",
      "uuid": "UUID_2",
      "version": [1, 0, 0]
    }
  ]
}

UUID は2か所それぞれで必ず新しく生成したものを使用してください。

base_game_version に、希望するゲームバージョンを指定できます。配布ワールドの場合だと制作時のゲームバージョンを指定することで制作時のバージョンのままワールドが動作し、将来のアップデートに備えることができます。

また、記事の本題とはそれますが、lock_template_optionsをtrueにすることで一部のワールドの設定をロックすることができます。ロックといっても完全なものではなく、設定を変更するために一度画像のようなロック解除の操作が必要になるだけですが、制作者の意図しない変更を抑制させることができます。

manifest.jsonを編集したらmcworldファイルを作成するのと同じ要領で、フォルダ内すべてのファイルを選択してzip圧縮します。このとき拡張子を.mcworldではなく.mctemplateとしてください。

mctemplateファイルが作成されたら、mcworldと同様にファイルをminecraftで開くことでインポートできます。PCであれば、ワールド新規作成時のテンプレート選択画面のインポートボタンからファイルを選択することでもインポート可能です。

ワールドへの変換

テンプレートを作成したあとは、そのテンプレートから新しいワールドを作成することで、base game versionが設定されたワールドを作成することができます。
そのワールドファイルを.mcworld として書き出すことで、base game versionが設定されたワールドデータを作成・配布することが可能です。

やや手順が煩雑ですが、簡単にまとめると「mctemplateを経由して mcworld にする」という流れになります。

まとめ

base game version は、配布ワールドを将来のアップデートから守るための保険のような仕組みです。
制作が完了したタイミングで、制作時のバージョンを設定することで、予期しない変化を受けにくくできます。

ぜひbase game versionを設定して、アップデートでも壊れにくい配布ワールドにしましょう。

スポンサーリンク

コメント

  1. これはスマホでも可能ですか?

    • dbファイルいじればできますよ

コメント通報

通報するにはログインする必要があります