MC Toolkit

ガイド / 建築とリソース

Bedrockのスキンパックは4つのファイルでできており、その失敗モードのうち2つは静かに起こる

異なる値でなければならない2つのUUID、省略できないlangファイル、そして句読点を除去するスキンキー — つまり「My Skin!」と「My Skin?」はエラーなしで1つのスキンになる。この4種類のファイルで構成されます。

.mcpackは拡張子が異なるだけのzipであり、その中のスキンパックにはちょうど4種類のファイルが必要です。

manifest.json      a header and a skin_pack module, each with its own UUID
skins.json         one entry per skin: texture, geometry, and a KEY
texts/en_US.lang   the display names — skins.json holds only keys
*.png              the textures themselves

4つのうち3つは簡単に正しく作れます。面白い失敗はすべて、それらの関係性から生まれます。

2つのUUIDは異なる値でなければならない

manifest.jsonはheaderに1つのUUIDを、skin_packモジュールに別のUUIDを持ちます。

{
  "format_version": 1,
  "header":  { "name": "…", "uuid": "…", "version": [1, 0, 0] },
  "modules": [ { "type": "skin_pack", "uuid": "…", "version": [1, 0, 0] } ]
}

これらは2つの別個のアイデンティティ — パックそのものと、パックの中身 — であり、両方に同じ値を使い回すのは、ビルド時に何も文句を言われないとしても実際のエラーです。

さらに微妙な帰結がもう1つあります。同じUUIDで再インポートすると同一のパックとみなされ、Minecraftはすでに持っているコピーを黙って保持します。パックを編集し、同じ識別子で再ビルドして再インポートしても、何も起きなかったように見えます。このページのビルドが毎回新しいUUIDを生成するのはまさにそのためであり、編集したパックの再インポートには、古いものを再zipするのではなく新たにダウンロードする必要がある理由でもあります。

langファイルは省略できない

skins.jsonには表示名が一切含まれません。含まれるのはキーであり、texts/en_US.langがそのキーをテキストに対応付けます。

skinpack.<PackKey>=My Pack
skin.<PackKey>.<SkinKey>=My First Skin

langファイルなしでパックを配布してもエラーは出ません — すべてのスキンは、ゲーム内で生のキーのまま表示されるだけです。手作業で組み立てたパックが、検証は通るのに壊れて見える最もよくある原因がこれです。

キーは句読点を除去し、重複は消える

キーは英数字でなければなりません。それ以外はすべて取り除かれます。

あなたの名前キー
My Skin!MySkin
My Skin?MySkin
Skin #2Skin2
!!!Skin1 (位置によるフォールバック)

最初の2行が罠です。人間には明確に別の名前である2つのスキンが1つのキーになり、重複キーはエラーになりません — ゲーム内で黙って1つのスキンに統合されます。12個のスキンをアップロードして11個しか手に入らず、どれが消えたのかは何も教えてくれません。

ここにあるビルダーは、すでに使用したキーにカウンターを付加することでこれに対処しているので、2つ目のMySkinはMySkin2になります。手作業でパックを組み立てるなら知っておく価値があります。必要なチェックは、入力した名前ではなく除去後の名前に対して行うものです。

名前が完全に句読点だけの場合は何も残らないため、Skinとリスト内の位置にフォールバックします。

スリムには正しいジオメトリ文字列が必要

各エントリはモデルを指定し、モデルは2つあります。

  • geometry.humanoid.custom — クラシック、4ピクセルの腕
  • geometry.humanoid.customSlim — スリム、3ピクセルの腕

これを間違えると、Alexの体型のスキンがSteveの角ばった腕で現れる通常の原因になります。テクスチャは正しく、要求されているモデルが問題なのです。パックビルダーはスリムの腕が残す2列(x 54–55)からこれを推測し、エントリごとに修正できますが、手書きのskins.jsonでは明示的に指定する必要があり、2つの文字列は末尾の4文字だけが異なります。

エントリは"type": "free"も持ち、マントは同じエントリから参照されるオプションの追加PNGです — マントは別途ダウンロードするのではなく、スキンパックの中に入って移動します。

スキンパック メーカー →

その他のガイド

すべて見る →