스킨 팩 만들기

이 튜토리얼에서는 다음과 같은 사항을 안내해 드립니다.

  • 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에서 생성할 수 있습니다(서로 다른 두 가지 UUID를 생성해야 합니다).
  • type: skin_pack으로 설정하여 이 팩을 스킨 팩으로 취급해야 함을 게임에 알립니다.

Template 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개까지 이용하고 유료 스킨을 추가할 수 있습니다.

Template 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를 만들 수 있습니다.

텍스트 폴더

이 폴더에는 팩과 스킨의 실제 이름과 팩에서 지원되는 언어를 정의하는 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-5" 개별 스킨의 이름을 지정합니다.

Template 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"

Template languages.json

[
  "en_US"
]