◆Cobblemon Wiki

애드온 제작

튜토리얼/여러 시각 variant

서문

이 튜토리얼에서는 여러 시각적 외형 요소를 가진 포켓몬을 만드는 방법을 설명합니다. 예로는 아보크의 무늬, 호바귀의 크기, 마휘핑과 얼루기의 다양한 변종이 있습니다. 이 시스템은 경우의 수가 많기 때문에, 이 가이드에서는 포켓몬에 추가 외형 요소를 만들고 적용하는 방법만 다룹니다. 커스텀 포켓몬 만들기와 리전 폼에 대한 지식을 강력히 권장합니다.

1단계: variant가 어떻게 작동할지 정하기

포켓몬 변종에는 여러 요소가 들어갈 수 있습니다. 아보크처럼 순수하게 시각적인 요소로 만들 수도 있고, 호바귀나 배쓰나이처럼 form 데이터로 각 변종에 능력치를 지정할 수도 있습니다. 더 나아가 모델에 여러 레이어로 적용되는 고유 텍스처를 가진 포켓몬용 species features를 여러 개 만들 수도 있습니다. 마휘핑과 얼루기가 이런 사례입니다. 이들은 작은 텍스처 PNG 묶음을 가지고 있고, resolver 파일에서 이를 섞어 결과적으로 수십 가지 변종을 만들 수 있습니다. 원한다면 각 변종마다 고유 모델과 애니메이션도 만들 수 있습니다.

이 가이드의 뒤에서 어떤 선택을 해야 할지 알 수 있도록, 먼저 변종이 어떻게 작동할지 정하세요. 예시가 필요하다면 아래 포켓몬의 species와 resolver 파일을 참고할 수 있습니다. 또한 모드의 <species_특징> 폴더를 확인해 feature 파일이 어떻게 생겼고 작동하는지 살펴보세요. 다음은 변종 시스템을 잘 보여 주는 좋은 예시입니다:

  • 수풀부기 (Grotle) & 토대부기 (Torterra): 수풀부기는 묘목을 사용하는 진화 과정으로 서로 다른 토대부기 변종으로 진화합니다. 특정 묘목은 그에 맞는 토대부기로 진화하게 합니다. 각 진화 방식은 서로 다른 토대부기 모델과 텍스처를 만듭니다.
  • 마빌크 (Milcery) & 마휘핑 (Alcremie): 마빌크도 진화 과정을 사용해 결과 마휘핑에 서로 다른 외형 요소를 적용합니다. 차이점은 하나의 aspect는 지닌 사탕공예에 따라 달라지고, 두 번째 aspect는 진화한 시간대에 따라 달라진다는 점입니다. 마빌크에서 이를 가능하게 하는 진화 데이터는 1600줄이 넘습니다…
  • 얼루기 (Spinda): 얼루기에는 각각 자체 무작위 선택 풀을 가진 5개의 특징이 지정됩니다. 이 특징들은 37개의 고유 텍스처 풀에서 점무늬 텍스처를 적용합니다. 색이 다른 텍스처까지 포함하면 74개가 됩니다. 그 결과 얼루기에는 47,000개가 넘는 고유 폼이 존재합니다.
  • 아보크 (Arbok): 아보크는 목덮개의 무늬에 영향을 주는 무작위 외형 요소 풀을 가집니다. aspect는 무작위로 선택되지만, 각 무늬에는 고유한 스폰 데이터가 지정되어 있습니다. 이를 참고해 만드는 각 변종마다 서로 다른 스폰 위치를 만들 수 있습니다.
  • 호바귀 (Pumpkaboo) & 펌킨인 (Gourgeist): 호바귀는 form 데이터를 사용해 각 크기에 서로 다른 HP 능력치 변화를 적용합니다. 그런 다음 각 크기 폼에 aspect 선택지 중 하나를 적용해 고유한 모델과 텍스처를 가질 수 있습니다.

2단계: 이 애드온의 폴더 구성하기

이 가이드 후반에서 같은 이름의 파일이 여러 번 나오므로, 혼동을 막기 위해 지금 폴더 구조와 pack.mcmeta를 만들어 둡니다.

  1. 새 텍스트 파일을 만들고 이름을 pack.mcmeta로 지정합니다.
    • .txt 같은 다른 파일 확장자로 끝나지 않도록 확인합니다.
  2. 파일을 열고 다음 데이터를 넣습니다:
    • 밑줄이 있는 텍스트에 마우스를 올리면 더 자세한 정보를 볼 수 있습니다.
{
 "pack": {
   "pack_format": 15,
   "description": "Example description"
 }
}
  1. 파일을 저장한 뒤 잠시 따로 둡니다.
  2. 다음 예시처럼 폴더들을 차례대로 만듭니다.

폴더 구조

  • (애드온 name)
    • pack.mcmeta
    • 에셋
      • cobblemon
        • bedrock
          • pokemon
            • 애니메이션
              • <target pokemon 폴더>
            • 모델
              • <target pokemon 폴더>
            • posers
            • resolvers
              • <target pokemon 폴더>
        • 텍스처
          • pokemon
            • <target pokemon 폴더>
    • 데이터
      • cobblemon
        • 스폰_pool_월드
        • species_feature_assignments
        • species_특징
  1. pack.mcmeta 파일을 애드온의 첫 폴더, assets와 data 옆에 넣습니다.

애드온의 폴더 트리를 만든 뒤에는 파일을 만들 때마다 해당 폴더에 넣기만 하면 됩니다. pack.mcmeta는 추가할 폴더가 아니라 파일이라는 점을 기억하세요. 마인크래프트가 해당 게임 폴더에서 이 팩을 리소스 팩 또는 데이터 팩으로 인식하려면 한 단계 폴더 안에 있어야 합니다.

3단계: 에셋 만들기

나중에 배정할 수 있도록 먼저 모든 에셋을 만들어 두는 것이 좋습니다. Blockbench에서 원하는 모델, 텍스처, 애니메이션을 만드세요. 대부분의 시각 변종은 layers를 사용해 같은 모델에 적용되는 추가 텍스처 PNG 묶음입니다.

  1. Blockbench에서 포켓몬에 필요한 에셋을 만듭니다.
  2. Save these 에셋 in their associated 폴더

새 애니메이션을 만들었다면 poser 파일도 만드는 것을 잊지 마세요. 변종에 새 애니메이션과 poser 파일이 필요한 경우는 흔하지 않습니다. 알로라 나시처럼 변종이 크게 다르지 않다면 새 애니메이션을 만들 필요는 거의 없습니다.

4단계: “species feature” 만들기

변종이 작동하는 데 필요한 만큼 종 특징을 만들게 됩니다. 만들 수 있는 종 특징은 두 종류입니다. flag 타입 feature는 선택지가 하나이며 리전 폼 같은 것에 사용됩니다. choice 타입 feature는 선택지 풀을 가지며, 무작위로 선택되거나 특정 선택지를 기본값으로 둘 수 있습니다. 이 가이드에서는 여러 변종을 가진 choice 타입 feature를 만들 것입니다.

  1. 새 텍스트 파일을 만들고 아이디어에 맞춰 이름을 정합니다. .json 확장자를 포함하세요.
    • 예: 아보크의 species feature 이름은 snake_pattern.json입니다.
    • 소문자를 사용하고 파일이 .txt 같은 다른 확장자로 끝나지 않는지 확인하세요.
  2. 이 새 species feature JSON에 choice 종 특징 데이터를 넣습니다:
    • "custom_feature"를 파일 이름과 일치하도록 바꾸는 것을 잊지 마세요. 따옴표는 유지해야 합니다.
    • 원하는 만큼 많은 선택지를 만들고 원하는 이름을 붙일 수 있습니다.
    • "default" 값은 “random” 또는 나열한 선택지 중 하나로 설정할 수 있습니다. 보통은 random으로 두는 것이 좋습니다.
{
  "type": "choice",
  "keys": ["custom_feature"],
  "default": "random",
  "choices": [
    "choice1",
    "choice2",
    "choice3"
  ],
  "isAspect": true,
  "aspectFormat": "custom-feature-{{choice}}"
}
  1. 파일을 저장합니다.
  2. 이 새 species feature 파일을 애드온의 species_feature 폴더에 넣습니다.

선택지가 무작위이더라도 전체 진화 계열에 feature가 지정되어 있다면 포켓몬은 진화할 때 외형 요소를 유지합니다. 기본적으로 “heart” 아보는 항상 “heart” 아보크로 진화합니다. 진화 데이터에서 aspect 선택지를 지정해 다음 진화 결과의 aspect를 바꾸거나 제어할 수도 있습니다. 수풀부기와 호바귀 진화가 이런 사례입니다.

5단계: “species_feature_assignments” 파일 만들기

species_feature_assignments 파일은 하나 이상의 특징을 받을 포켓몬 목록을 담은 매우 짧은 JSON입니다. 호바귀처럼 변종마다 다른 능력치를 주고 싶다면 폼 데이터가 들어 있는 species_addition 파일을 만들어야 합니다. 변종에 폼 데이터를 추가하는 방법은 리전 폼 가이드의 4단계를 참고하세요.

  1. 새 텍스트 파일을 만들고 아이디어에 맞는 이름을 붙입니다. .json 확장자를 포함해야 합니다.
    • 예: spinda_spots.json
  2. 이 새 species_addition JSON에 다음 데이터를 넣습니다:
    • 필요한 만큼 많은 포켓몬이나 feature를 나열할 수 있습니다
{
  "pokemon": ["<target_pokemon_1>", "<target_pokemon_2>"],
  "features": ["<feature_1>", "<feature_2>"]
}
  1. "<target_pokemon_#>"를 특징을 추가하려는 포켓몬을 가리키도록 바꿉니다. 따옴표는 그대로 유지해야 합니다.
    • 예: ["bulbasaur", "ivysaur", "venusaur"]
  2. "<feature_#>"를 앞서 만든 특징으로 바꿉니다. 따옴표는 그대로 유지해야 합니다.
  3. 파일을 저장합니다..
  4. Place this new 파일 into the species_feature_assignments 폴더 of your 애드온

6단계: 변형용 특수 스폰 만들기(선택 사항)

이 선택 단계에서는 각 변형 선택지마다 고유한 스폰을 만드는 방법을 보여 줍니다. "pokemon" 문자열에 선택지를 지정하지 않으면 해당 feature의 "default" 선택지가 결과로 스폰됩니다. 리전 폼이 있는 포켓몬, 호바귀, 아보크의 스폰 파일을 검토하는 것을 강력히 권장합니다. 해당 스폰 파일은 GitLab에서 찾을 수 있습니다.

대부분의 경우 포켓몬 스폰 파일의 틀로 아보크 파일을 사용하게 됩니다. 아보크의 여러 스폰은 모두 같은 조건을 갖고 있지만, 서로 다른 스킨이 서로 다른 조건에서 나타나도록 바꿀 수 있습니다. 다른 스폰 속성도 원하는 대로 변경할 수 있습니다. 스폰 조건 목록은 여기에서, 바이옴 태그 목록은 여기에서 확인할 수 있습니다.

  1. 아보크 (Arbok)의 spawn_pool_world 파일을 얻습니다.
  2. Rename it after your 포켓몬
  3. Open the 파일 and locate the 데이터 under "spawns"
  4. "id" 값을 <pokemon>-<choice#>-<id #> 형식으로 바꿉니다.
  5. "pokemon" 값을 <pokemon> <aspectFormat>=<choice#> 형식으로 바꿉니다.
    • 앞서 작성한 본인의 aspect 형식을 참조해야 합니다.
  6. Change the other 스폰 properties as desired.
  7. 종 feature의 각 선택지에 대해 더 많은 스폰을 만들려면 4~6단계를 반복하세요.
  8. 파일을 저장합니다..
  9. Place this new 파일 into the spawn_pool_world 폴더 of your 애드온.

이제 스폰 목록은 아보크의 것과 비슷한 모습이어야 합니다:

"spawns": [
        {
            "id": "arbok-classic-1",
            "pokemon": "arbok snake-pattern=classic",
            "presets": [
                "natural"
            ],
            "type": "pokemon",
            "context": "grounded",
            "bucket": "common",
            "level": "22-45",
            "weight": 0.45,
            "condition": {
                "canSeeSky": true,
                "biomes": [
                    "#cobblemon:is_arid"
                ]
            }
        },
		{
            "id": "arbok-legacy-1",
            "pokemon": "arbok snake-pattern=legacy",
            "presets": [
                "natural"
            ],
            "type": "pokemon",
            "context": "grounded",
            "bucket": "common",
            "level": "22-45",
            "weight": 0.03,
            "condition": {
                "canSeeSky": true,
                "biomes": [
                    "#cobblemon:is_arid"
                ]
            }
        }...

7단계: 변형용 resolver 파일 만들기

3단계에서 필요한 models, textures, animations, posers 파일은 이미 만들었을 것입니다. 마지막으로 새 resolver 파일을 만들어 이것들을 변형에 연결하면 됩니다.

각 aspect마다 모델이나 poser 파일을 지정하지 않으면, 외형 요소가 지정되지 않은 변형에 할당된 것을 사용합니다. 그래서 일부 변형은 모든 속성을 나열하지 않습니다.

변형을 만드는 방식이 다양하기 때문에 resolver를 만드는 방식도 다양합니다. 이 단계에서는 비교할 만한 포켓몬 feature를 고르고, 그 포켓몬을 resolver 파일의 틀로 사용합니다. 그리고 그들이 하는 방식과 같은 방식으로 species_feature의 aspect를 적용하게 됩니다.

  1. resolver를 만든 뒤 애드온의 resolvers 폴더에 넣으세요.

8단계: 게임에서 애드온 테스트하기

게임에서 애드온을 불러와 변형들이 서로 다르게 보이는지 확인하세요. 필요하다면 Blockbench를 열어 resourcepacks 폴더 안의 관련 asset 파일을 수정할 수 있습니다.

  1. 애드온 폴더를 복사해 마인크래프트 루트 디렉터리의 “resourcepacks”와 “데이터팩” 폴더에 넣습니다.
  2. 마인크래프트를 실행하고 설정을 누른 다음 리소스 팩을 엽니다. 만든 팩을 선택해 불러옵니다.
  3. “데이터팩” 폴더에 애드온이 들어 있는 크리에이티브 월드 저장 데이터를 불러오거나 새로 만듭니다.
  4. 월드에 들어가면 /pokespawn <target pokemon> <species feature>=<choice#1> 명령어를 실행할 수 있습니다.
  5. 만든 모든 variant에 대해 반복합니다.
  6. 새 변형이 올바르게 작동하는지 확인하세요.
  7. 변형이 지정한 위치에서 스폰되는지 확인하세요. 지정한 바이옴에 있을 때 /checkspawn <rarity>를 사용할 수 있습니다. checkspawn에는 서로 다른 외형 요소가 표시되지 않습니다.
    • /locate biome <assigned biome> 명령어를 실행하면 지정한 바이옴의 좌표를 얻을 수 있습니다. 표시된 좌표를 클릭하면 즉시 해당 위치로 순간이동할 수 있습니다.
  8. 원하는 대로 에셋 파일을 수정하고 저장합니다. 변경 사항을 보려면 F3+T로 리소스 팩을 새로고침하세요.
  9. 원하는 대로 데이터 파일을 수정하고 저장합니다. 이 변경 사항을 보려면 메인 메뉴로 나간 뒤 월드를 다시 불러와야 합니다.
    • 아쉽게도 /reload 명령어는 Cobblemon 애드온에는 적용되지 않습니다.

이제 작동하는 변형 세트가 완성되었을 것입니다! 이 단계에서 애드온이 제대로 작동하지 않는다면 Cobblemon Discord에서 도움을 받을 수 있습니다.

Addon Creation

튜토리얼

커스텀 포켓몬 만들기 모델 만들기 커스텀 스폰 만들기 발광 텍스처 애니메이션 텍스처 Texture Replacement 애니메이션 교체 리전 폼여러 시각 Variants 애니메이션에 소리 추가하기

Asset Files

리졸버 구 Poser 신 Poser 소리

데이터 Files

종 종 특징 종 특징 할당 종 추가 스폰 Detail Presets 스폰 Pool 월드 화석 Datapackable Move Effects

Properties

행동 스폰 조건 발전 과제