Bedrock版スキンパックは4つのファイルで構成され、そのうち2つの失敗モードはサイレントです
異なる必要がある2つのUUID、必須のlangファイル、そして句読点が削除されるスキンキー — そのため、「My Skin!」と「My Skin?」はエラーなしで1つのスキンになります。
.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つ、skin_packモジュールに別のUUIDを持っています。
{
"format_version": 1,
"header": { "name": "…", "uuid": "…", "version": [1, 0, 0] },
"modules": [ { "type": "skin_pack", "uuid": "…", "version": [1, 0, 0] } ]
}
これらは2つの別個のIDです — パックとパック内のもの — そして、両方に1つの値を再利用することは、ビルド時に何も文句を言わなくても実際のエラーです。
2つ目の、より微妙な結果があります。同じ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 #2 | Skin2 |
!!! | Skin1 (フォールバック、位置による) |
最初の2行が落とし穴です。人間が明確に区別した2つのスキンは1つのキーになり、重複するキーはエラーになりません — ゲーム内でサイレントに単一のスキンに統合されます。12個のスキンをアップロードしても11個しか表示されず、どれがなくなったのかは何も教えてくれません。
ここのビルダーは、既に使用したキーにカウンターを追加することでこれを防ぎます。そのため、2番目のMySkinはMySkin1になります。パックを手作業で組み立てる場合は知っておく価値があります。必要なチェックは、入力した名前ではなく、削除された名前に対して行われます。
完全に句読点のみの名前は何も残さないため、Skinとそのリスト内の位置にフォールバックします。
スリムには正しいジオメトリ文字列が必要です
各エントリはモデル名を指定し、2つあります。
geometry.humanoid.custom— クラシック、4ピクセルの腕geometry.humanoid.customSlim— スリム、3ピクセルの腕
これを間違えると、AlexのプロポーションのスキンがSteveのブロック状の腕で表示されるという一般的な原因になります。テクスチャは問題ありません。モデルは要求されたものです。パックビルダーは4番目の腕の列をサンプリングすることでこれを推測しますが、手書きのskins.jsonは明示的にそれを記述する必要があり、2つの文字列は末尾の4文字が異なります。
エントリには"type": "free"も含まれており、ケープは同じエントリから参照されるオプションの追加PNGです — ケープは個別のダウンロードとしてではなく、スキンパック内に含まれています。