◆Cobblemon Wiki

애드온 제작

리졸버

서문

resolver JSON은 포켓몬 species에 model, textures, poser를 지정하는 역할을 합니다. 또한 포켓몬에 aspects를 지정해 리전 폼 같은 변종을 만드는 역할도 합니다. 시각 요소와 관련된 거의 모든 것은 어떤 방식으로든 resolver 파일과 연결되어 있습니다.

resolver 파일은 예전에는 asset species 파일 또는 비슷한 이름으로 알려져 있었습니다. 데이터 폴더의 species 파일과 혼동하지 않도록 이름이 바뀌었습니다. 이 때문에 Cobblemon 1.4 이전에 만들어진 많은 애드온은 resolver 파일을 담는 데 species 폴더를 사용합니다.

리졸버 파일 구성 설명

resolver는 포켓몬 에셋과 관련된 거의 모든 것을 제어합니다. 모델, 애니메이션, 폼 에셋뿐 아니라 애니메이션 텍스처와 발광 텍스처 데이터도 여기에서 적용합니다.

포켓몬의 resolver 데이터를 하나의 파일에 모두 넣을 수도 있지만, 서로 다른 폼이나 변종의 resolver 데이터를 분리하면 정리하기 쉽습니다. 또한 다른 애드온 제작자가 여러분이 만든 무언가를 수정하려 할 때 발생할 수 있는 충돌도 줄일 수 있습니다.

아래는 세 가지 resolver 파일 유형의 개요입니다.

  • 식스테일 (Vulpix): Very common format for resolvers
{
 "species": "cobblemon:vulpix",
 "order": 0,
 "variations": [
   {
     "aspects": [],
     "poser": "cobblemon:vulpix",
     "model": "cobblemon:vulpix.geo",
     "texture": "cobblemon:textures/pokemon/0037_vulpix/vulpix.png",
     "layers": []
   },
   {
     "aspects": [
       "shiny"
     ],
     "texture": "cobblemon:textures/pokemon/0037_vulpix/vulpix_shiny.png"
   }
 ]
}
  • 알로라 식스테일: 식스테일의 리전 폼 에셋을 지정하기 위한 두 번째 resolver입니다.
    • 이름 규칙 때문에 알로라 식스테일 resolver는 기존 식스테일 resolver 뒤에 로드됩니다.
    • Alolan aspect는 alolan species feature에서 옵니다.
{
 "species": "cobblemon:vulpix",
 "order": 1,
 "variations": [
   {
     "aspects": [
       "alolan"
     ],
     "model": "cobblemon:vulpix_alolan.geo",
     "texture": "cobblemon:textures/pokemon/0037_vulpix/vulpix_alolan.png"
   },
   {
     "aspects": [
       "alolan",
       "shiny"
     ],
     "texture": "cobblemon:textures/pokemon/0037_vulpix/vulpix_alolan_shiny.png"
   }
 ]
}
  • 리자몽: 리자몽은 애니메이션 텍스처와 발광 텍스처를 모두 사용합니다.
{
 "species": "cobblemon:charizard",
 "order": 0,
 "variations": [
   {
     "aspects": [],
     "poser": "cobblemon:charizard",
     "model": "cobblemon:charizard.geo",
     "texture": "cobblemon:textures/pokemon/0006_charizard/charizard.png",
     "layers": [
       {
         "name": "flame",
         "texture": {
           "frames": [
             "cobblemon:textures/pokemon/0006_charizard/flame/tail1.png",
             "cobblemon:textures/pokemon/0006_charizard/flame/tail2.png",
             "cobblemon:textures/pokemon/0006_charizard/flame/tail3.png",
             "cobblemon:textures/pokemon/0006_charizard/flame/tail4.png"
           ],
           "fps": 10,
           "loop": true
         },
         "emissive": true
       },
       {
         "name": "glow",
         "texture": "cobblemon:textures/pokemon/0006_charizard/charizard_emissive.png",
         "emissive": true,
         "translucent": true
       }
     ]
   },
   {
     "aspects": [
       "shiny"
     ],
     "texture": "cobblemon:textures/pokemon/0006_charizard/charizard_shiny.png",
     "layers": [
       {
         "name": "glow",
         "texture": "cobblemon:textures/pokemon/0006_charizard/charizard_shiny_emissive.png",
         "emissive": true,
         "translucent": true
       }
     ]
   }
 ]
}

특수 레이어 속성과 사용 시점

Cobblemon의 레이어 시스템은 텍스처를 통해 모델에 특수 효과를 적용하는 데 사용할 수 있습니다. 특수 제작한 텍스처를 모델의 기본 텍스처 위에 레이어로 올리고, 그 레이어에 특정 속성을 지정할 수 있습니다. 이러한 특수 속성은 레이어에만 적용할 수 있으므로 텍스처를 만들 때 염두에 두세요.

Emissive

emissive 속성은 지정된 텍스처를 발광 텍스처로 만듭니다. 발광 텍스처는 밝기 레벨의 영향을 받지 않고 어둠 속에서 빛나는 듯한 효과를 냅니다. 셰이더와 동적 조명용 species 속성을 함께 사용하면 이러한 텍스처 효과가 더 좋아집니다.

emissive의 기본 예시는 다음과 같습니다:

  • Glowing eyes like on 부우부 (Hoothoot) 또는 보르쥐 (Patrat)
  • 메리프 계열이나 볼비트처럼 빛을 내는 신체 부위
  • 여러 불꽃 타입의 불꽃

emissive 속성은 다른 두 속성과 함께 사용해 조명 효과를 강화할 수도 있습니다. 가장 흔한 발광 예시는 불꽃 타입 포켓몬의 불꽃입니다. 이런 레이어는 보통 emissive 속성과 애니메이션 텍스처 관련 속성을 함께 사용합니다. 이 조합은 불꽃 표현에만 한정되지 않으니 창의적으로 활용해 보세요.

아래는 emissive 속성이 적용된 리자몽의 “glow” 텍스처 레이어 예시입니다.

      {
        "name": "glow",
        "texture": "cobblemon:textures/pokemon/0006_charizard/charizard_shiny_emissive.png",
        "emissive": true,
        "translucent": true
      }

반투명

translucent 속성은 각 픽셀의 불투명도 값에 따라 지정된 텍스처를 반투명하게 만듭니다. 값이 0에 가까울수록 더 투명해집니다. 이 속성은 주로 발광 레이어 픽셀 바깥으로 퍼지는 반투명 픽셀을 추가해 발광 레이어를 강화하는 데 사용됩니다. 포켓몬의 광원에서 멀어질수록 빛이 약해지는 효과를 만듭니다.

반투명은 게임 안에서 물과 함께 사용될 때 시각 버그가 있습니다. 그래서 반투명 신체 부위를 만드는 데는 거의 사용되지 않습니다. 이런 시각 버그를 우회하는 창의적인 방법도 있지만, 보통은 뒤집힌 큐브를 사용하는 편이 더 간단합니다.

앞서 언급한 시각 버그 때문에 반투명 레이어 예시는 많지 않습니다. 몇 안 되는 반투명 예시는 다음과 같습니다:

  • 리자몽이나 블래키에서 볼 수 있는 보조 발광 텍스처.

아래는 translucent 속성이 적용된 리자몽의 “glow” 텍스처 레이어 예시입니다.

      {
        "name": "glow",
        "texture": "cobblemon:textures/pokemon/0006_charizard/charizard_shiny_emissive.png",
        "emissive": true,
        "translucent": true
      }

프레임, FPS, 루프

애니메이션 텍스처를 만들려면 frames, fps, loop 속성이 필요합니다. Cobblemon의 애니메이션 텍스처는 프레임 단위 애니메이션을 사용하므로 이 세 가지를 함께 사용해야 합니다.

  • frames에는 애니메이션의 각 프레임을 나열합니다. 사용할 텍스처 배열을 만들어야 합니다.
  • fps에는 초당 재생할 프레임 수를 지정합니다. 숫자 값이 필요합니다.
  • loop에는 애니메이션을 반복할지 여부를 정의합니다. 불리언 값입니다. 아마 false로 둘 이유는 거의 없을 것입니다.

이 세 속성은 emissive, translucent와 함께 사용해 포켓몬에 움직이는 빛 효과를 만들 수 있습니다. 애니메이션 텍스처의 가장 흔한 예시는 불꽃 포켓몬의 불꽃입니다. 현재 다른 애니메이션 텍스처 예시는 리그레와 벰크의 색이 바뀌는 손가락뿐입니다.

아래는 리자몽의 애니메이션 불꽃 텍스처 레이어 예시입니다. 밑줄 친 텍스트에 마우스를 올리면 자세한 내용을 볼 수 있습니다.

       {
         "name": "flame",
         "texture": {
           "frames": [
             "cobblemon:textures/pokemon/0006_charizard/flame/tail1.png",
             "cobblemon:textures/pokemon/0006_charizard/flame/tail2.png",
             "cobblemon:textures/pokemon/0006_charizard/flame/tail3.png",
             "cobblemon:textures/pokemon/0006_charizard/flame/tail4.png"
           ],
           "fps": 10,
           "loop": true
         },
         "emissive": true
       }

리졸버 파일 예시

직접 resolver를 만들 때는 필요한 것과 비슷한 resolver를 틀로 사용하는 것이 가장 쉽습니다.

참고할 수 있는 Gitlab 예시는 다음과 같습니다. 각 예시의 모델을 게임 안에서 함께 확인하면 해당 resolver 파일이 만드는 효과를 볼 수 있습니다.

Addon Creation

튜토리얼

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

Asset Files

리졸버 구 Poser 신 Poser 소리

데이터 Files

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

Properties

행동 스폰 조건 발전 과제