打包皮肤包

在本教程中,您将学习以下内容:

  • 《我的世界》基岩版中皮肤包的文件夹和文件结构。
  • 如何为皮肤包构建必要的元数据文件以及如何使用它们定义皮肤。

皮肤包文件夹结构

整个皮肤包的文件夹结构

manifest.json

清单文件告知《我的世界》关于您的皮肤包的一般性信息。 在皮肤包的根目录创建一个名为 manifest.json 的 JSON 文件。 其中包含以下内容:

  • namename:包的名称,始终是 pack.name
  • versionversion:包的版本。 例如,[1, 0 ,0] 表示版本 1.0.0。
  • uuiduuid:防止包冲突的唯一标识符,可以从这个站点生成:https://www.uuidgenerator.net/version4(需要生成两个不同的 UUID)。
  • typetype:设置为 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 localization_name 和 serialize_name:它们是相同的,作为本地化键,它们的值稍后在 en_US.lang 中定义,完整键是 skinpack.<localization_name>。 该值将是包的标题。 该键也将始终附加到每个单独皮肤的本地化键之前。
  • skinsskins:定义的集合,分别定义一个皮肤。

每个单独的皮肤定义将包含以下内容:

  • localization_namelocalization_name:本地化键,其值稍后在 en_US.lang 中定义。 该值将是单个皮肤的名称。
  • geometrygeometry:此皮肤适用的基础模型。 geometry.humanoid.customSlim geometry.humanoid.customSlim 是艾莉克斯模型,geometry.humanoid.custom 是史蒂夫模型。
  • texturetexture:皮肤包根目录中每个皮肤材质的文件名。
  • typetype:freepaid。 非市场合作伙伴可能拥有任意数量的免费皮肤但没有付费皮肤,而市场合作伙伴可能拥有最多 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] skinpack.[skins.json localization_name]=[name of pack]
  • 皮肤的名称:skin.[skins.json localization_name].[skins.json single skin localization_name]=[name of skin] skin.[skins.json localization_name].[skins.json single skin localization_name]=[name of skin]

下面的模板使用模板 skin.json 中的“localization keys”来命名包“Your Skin Pack Name Here”,并将各个皮肤命名为“Skin Name 1-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

此文件告诉《我的世界》您的皮肤包支持哪些语言。 仅英语是必需的。 如果您想支持其他语言,可以制作其他 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"
]