pack.mcmeta: pack_formatの数値と「互換性なし」警告について
たった1つの数字が間違っているだけで、Minecraftでパックがグレー表示されてしまいます。ここでは、フォーマットとバージョンのマッピング、この問題を回避できるsupported_formatsの範囲、そしてファイルがどこに配置されるべきかを説明します。
「自分のパックが互換性なしと表示される」という問題のほとんどは、小さなファイルの中のたった1つの数字が原因です。
ファイルについて
{
"pack": {
"pack_format": 46,
"description": "My pack"
}
}
このファイルは正確にpack.mcmetaという名前で、zipファイルのルートに配置する必要があります。つまり、assets/やdata/と同じ階層にあり、zipファイル内のフォルダの中には入れないでください。コンテンツではなく、コンテナフォルダをzip化してしまうのが2番目によくある失敗で、これも間違ったフォーマット番号と同じように見えます。
リソースパックとデータパックでは異なる番号を使用します
これが人々を悩ませる部分です。2つのカウンターは数年前に分岐しており、互換性はありません。リソースパックの番号を使用しているデータパックは、その番号が「最新」であってもグレー表示されます。
リリースごとに古くなる表を覚えるよりも、ターゲットとするバージョンのバニラパックから番号を読み取るか、ジェネレーターに任せるのが良いでしょう。
supported_formatsが本当の解決策です
1つの整数に固定すると、次のリリースでパックが壊れてしまいます。範囲指定ならその心配はありません。
{
"pack": {
"pack_format": 46,
"supported_formats": { "min_inclusive": 42, "max_inclusive": 99 },
"description": "My pack"
}
}
pack_formatは主要な宣言として残りますが、supported_formatsは警告なしでゲームが受け入れる範囲を広げます。テクスチャやレシピを追加するだけのパック(ほとんどのパックがこれに該当します)の場合、バージョン間で実際に壊れるものがないため、広い範囲を指定することは理にかなっています。
descriptionはテキストコンポーネントを受け入れます
"description": [
{ "text": "My pack ", "color": "gold" },
{ "text": "v2", "color": "gray", "italic": true }
]
セクション記号コード(§6)も引き続き機能しますが、JSON形式は制御文字を削除するツールを介したコピー&ペーストでも機能します。
オーバーレイ:複数のバージョンを同時にサポートする
"overlays": { "entries": [
{ "formats": { "min_inclusive": 42, "max_inclusive": 45 }, "directory": "older" }
] }
パックのルートにあるolder/フォルダは、これらのフォーマットでのみ使用されます。これにより、異なるモデルフォーマットを持つ2つのバージョンを、2つのzipファイルを出荷する代わりに、1つのダウンロードでサポートできます。
簡単な診断
| 症状 | 原因 |
|---|---|
| グレー表示され、「古い/新しいバージョン用に作成されました」と表示される | 間違ったpack_format |
| パックがまったくリストに表示されない | pack.mcmetaがzipルートにない、またはJSONが無効 |
| ロードされるが、テクスチャが欠落している | パックフォーマットは問題ないが、テクスチャのパスが間違っている |
| シングルプレイヤーでは動作するが、サーバーでは動作しない | データパックが間違ったワールドフォルダにある |
末尾のカンマは無効なJSONであり、「まったくリストに表示されない」ケースを引き起こし、エラーメッセージは表示されません。
pack.mcmeta Generatorを使用して、パックの種類とターゲットバージョンに合った有効なファイルを生成してください(supported_formatsが入力されます)。