次の方法で共有


スキン パックのパッケージ化

このチュートリアルでは、次の内容を学びます。

  • Minecraft: Bedrock Edition のスキン パックのフォルダーおよびファイル構造。
  • スキン パックに必要なメタデータ ファイルの構成方法と、それらを使用してスキンを定義する方法。

スキン パックのフォルダー構造

スキン パック全体のフォルダー構造

manifest.json

マニフェストは、スキン パックに関する一般情報を Minecraft に伝えます。 スキン パックのルートに manifest.json という名前の JSON ファイルを作成します。 この中には次のものが含まれます。

  • name: パックの名前です。これは常に pack.name となります。
  • version: パックのバージョンです。 たとえば、[1, 0 ,0] はバージョン 1.0.0 を表します。
  • uuid: パッケージの競合を防ぐための一意の識別子で、https://www.uuidgenerator.net/version4 で生成できます (2 つの異なる UUID を生成する必要があります)。
  • type: skin_pack に設定することによって、このパックがスキン パックとして処理されるようにゲームに伝えられます。

テンプレートの manifest.json

{
  "header": {
    "name": "pack.name",
    "version": [1, 0, 0],
    "uuid": "<FIRST GENERATED UUID>"
  },
  "modules": [
    {
      "version": [1, 0, 0],
      "type": "skin_pack",
      "uuid": "<SECOND GENERATED UUID>"
    }
  ],
  "format_version": 1
}

skins.json

skins.json ファイルでは、スキン パックに付属するスキンを定義します。 スキン パックのルートに skins.json という名前の JSON ファイルを作成します。 この中には次のものが含まれます。

  • localization_name および serialize_name: これらは同一であり、後ほど en_US.lang で値を定義するローカリゼーション キーです (完全なキーは skinpack.<localization_name>)。 この値はパックのタイトルとなります。 また、このキーは常に個々のスキンのローカリゼーション キーの先頭に追加されます。
  • skins: スキンごとの定義のコレクションです。

個々のスキンの定義には、次のものが含まれます。

  • localization_name: 後ほど en_US.lang で値を定義するローカリゼーション キーです。 この値は個々のスキンの名前となります。
  • geometry: このスキンが対応しているベース モデルです。 geometry.humanoid.customSlim は、アレックス モデルで、geometry.humanoid.custom はスティーブ モデルです。
  • texture: スキン パックのルートに表示される各スキン テクスチャのファイル名です。
  • type: free または paid になります。 マーケットプレイス以外のパートナーは任意の数の無料スキンを使用できますが有料スキンは使用できません。一方、マーケットプレイス パートナーは最大 2 つの無料スキンに加え、有料スキンも追加できます。

テンプレートの skins.json

{
  "serialize_name": "TemplateSkinPack",
  "localization_name": "TemplateSkinPack",
  "skins": [
    {
      "localization_name": "TemplateSkin1",
      "geometry": "geometry.humanoid.customSlim",
      "texture": "skin_file_name1.png",
      "type": "free"
    },
    {
      "localization_name": "TemplateSkin2",
      "geometry": "geometry.humanoid.custom",
      "texture": "skin_file_name2.png",
      "type": "free"
    },
    {
      "localization_name": "TemplateSkin3",
      "geometry": "geometry.humanoid.customSlim",
      "texture": "skin_file_name3.png",
      "type": "paid"
    },
    {
      "localization_name": "TemplateSkin4",
      "geometry": "geometry.humanoid.custom",
      "texture": "skin_file_name4.png",
      "type": "paid"
    },
    {
      "localization_name": "TemplateSkin5",
      "geometry": "geometry.humanoid.custom",
      "texture": "skin_file_name5.png",
      "type": "paid"
    }
  ]
}

スキン テクスチャ

実際のスキン テクスチャは PNG です。 ファイル名は skins.json メタデータ ファイル内で参照されます。 これらは、スキン パックのルートでのみ使用できます。 Blockbench を使用して、スキン パックに使用できるスキン PNG を作成できます。

texts フォルダー

このフォルダー内には en_US.langlanguages.json があります。これらを使用して、作成するパックおよびスキンの実際の名前と、パックでサポートされる言語を定義します。 = の後の名前が、ゲーム内 (スキン選択画面など) に表示されます。

"texts" フォルダーのファイル構造

en_US.lang

このファイルにはパックとスキンの名前を指定します。

  • パックの名前: skinpack.[skins.json localization_name]=[name of pack]
  • スキンの名前: skin.[skins.json localization_name].[skins.json single skin localization_name]=[name of skin]

次のテンプレートでは、テンプレートの skin.json の "ローカリゼーション キー" を使用して、パックを "Your Skin Pack Name Here" と命名し、個々のスキンを "Skin Name 1" から "Skin Name 5" と命名しています。

テンプレートの en_US.lang

skinpack.TemplateSkinPack=Your Skin Pack Name Here
skin.TemplateSkinPack.TemplateSkin1=Skin Name 1
skin.TemplateSkinPack.TemplateSkin2=Skin Name 2
skin.TemplateSkinPack.TemplateSkin3=Skin Name 3
skin.TemplateSkinPack.TemplateSkin4=Skin Name 4
skin.TemplateSkinPack.TemplateSkin5=Skin Name 5

languages.json

このファイルは、スキン パックでサポートされる言語を Minecraft に伝えます。 英語のみ必須です。 他の言語をサポートする場合は、別の xx_YY.lang ファイルを作成して編集し、それらの言語がサポートされることをゲームに伝えます。

現在、次のロケールと言語がサポートされています。

  • "en_US"
  • "de_DE"
  • "ru_RU"
  • "zh_CN"
  • "fr_FR"
  • "it_IT"
  • "pt_BR"
  • "fr_CA"
  • "zh_TW"
  • "es_MX"
  • "es_ES"
  • "pt_PT"
  • "en_GB"
  • "ko_KR"
  • "ja_JP"
  • "nl_NL"
  • "bg_BG"
  • "cs_CZ"
  • "da_DK"
  • "el_GR"
  • "fi_FI"
  • "hu_HU"
  • "id_ID"
  • "nb_NO"
  • "pl_PL"
  • "sk_SK"
  • "sv_SE"
  • "tr_TR"
  • "uk_UA"

テンプレートの languages.json

[
  "en_US"
]