GS2-Enhance 마스터 데이터 레퍼런스

마스터 데이터 포맷과 임포트할 각종 모델의 레퍼런스

마스터 데이터 포맷

{
  "version": "2020-08-22",
  "rateModels": [
    {
      "name": "[string]강화 레이트 모델 이름",
      "description": "[string?]설명문",
      "metadata": "[string?]메타데이터",
      "targetInventoryModelId": "[string]강화 대상으로 사용할 수 있는 GS2-Inventory 인벤토리 모델의 GRN",
      "acquireExperienceSuffix": "[string]GS2-Experience에서 획득한 경험치를 저장하는 프로퍼티 ID에 부여하는 서픽스",
      "materialInventoryModelId": "[string]강화 소재로 사용할 수 있는 GS2-Inventory 인벤토리 모델 GRN",
      "acquireExperienceHierarchy": [
        "[string]ItemModel의 메타데이터에 저장할, 획득 경험치를 정의하는 JSON 데이터의 계층 구조 정의"
      ],
      "experienceModelId": "[string]강화 결과로 얻는 GS2-Experience 경험치 모델 GRN",
      "bonusRates": [
        {
          "rate": "[float]경험치 보너스 배율 (1.0 = 보너스 없음)",
          "weight": "[int]추첨 가중치"
        }
      ]
    }
  ],
  "unleashRateModels": [
    {
      "name": "[string]한계돌파 레이트 모델명",
      "description": "[string?]설명문",
      "metadata": "[string?]메타데이터",
      "targetInventoryModelId": "[string]한계돌파 대상에 사용할 수 있는 GS2-Inventory 인벤토리 모델 GRN",
      "gradeModelId": "[string]그레이드 모델 GRN",
      "gradeEntries": [
        {
          "gradeValue": "[long]대상 그레이드",
          "needCount": "[int]동일 종류의 아이템을 몇 개 소비할지"
        }
      ]
    }
  ]
}
타입활성화 조건필수기본값값 제한설명
versionstring
2020-08-22마스터 데이터 포맷 버전
rateModelsList<RateModel>~ 10000 items강화 레이트 모델
강화 레이트는 강화에 사용하는 소재와 강화 대상을 정의한 데이터입니다.

소재 데이터와 강화 대상 데이터는 모두 GS2-Inventory에서 관리되고 있어야 합니다.
강화로 얻는 경험치는 GS2-Inventory의 메타데이터에 JSON 형식으로 기록됩니다.
여기서는 메타데이터의 어느 계층에 경험치 값이 저장되어 있는지를 기재해야 합니다.

강화 시 일정 확률로 대성공과 같은 형태로 입수할 수 있는 경험치량에 보정값을 적용할 수 있습니다.
그 추첨 확률도 이 엔티티에서 정의합니다.

targetInventoryModelId 에는 강화 대상이 되는 아이템을 보유하는 인벤토리 모델을, materialInventoryModelId 에는 소재로 사용할 수 있는 아이템을 보유하는 인벤토리 모델을 지정합니다.
양쪽은 서로 다른 인벤토리 모델로 할 수 있으므로, 캐릭터를 강화 대상으로 하고 강화 전용 아이템을 소재로 하는 구성이 가능합니다.

각 소재가 제공하는 경험치는 소재 아이템의 아이템 모델 메타데이터에 기술하며, 그 JSON의 어디에 값이 들어 있는지를 acquireExperienceHierarchy 로 지정합니다.
{ "aaa": { "bbb": { "experienceValue": 100 } } } 와 같은 구조라면 [ "aaa", "bbb", "experienceValue" ] 와 같이 지정합니다. 계층은 최대 10단계까지 지정할 수 있습니다.

획득한 경험치는 experienceModelId 로 지정한 GS2-Experience 의 경험치 모델에 가산됩니다.
가산 대상 프로퍼티 ID는 강화 대상 아이템의 프로퍼티 ID에 acquireExperienceSuffix 를 부여한 것이 됩니다. 이를 통해 하나의 아이템에 캐릭터 레벨의 level 과 호감도의 like 같은 여러 종류의 경험치를 가지게 할 수 있습니다.

bonusRates 에는 획득 경험치에 적용할 배율의 가중치 추첨을 정의합니다.
각 항목은 배율(1.5 라면 150%)과 배출 가중치를 가지며, 강화를 실행할 때마다 가중치 추첨으로 하나가 선택됩니다. 항목은 최대 1,000건까지 등록할 수 있습니다.
unleashRateModelsList<UnleashRateModel>~ 10000 items한계돌파 레이트 모델
아이템의 한계돌파(해방) 조건을 정의합니다.

여기서 말하는 한계돌파란, 동일 종류의 아이템을 소재로 소비함으로써 GS2-Grade 에서 관리하는 그레이드를 끌어올리는 강화 처리입니다.
그레이드가 올라가면 GS2-Experience 측의 랭크 캡이 상향되어, 대상을 더 높은 레벨까지 육성할 수 있게 됩니다.

targetInventoryModelId 에는 한계돌파 대상이 되는 아이템을 보유하는 GS2-Inventory 의 인벤토리 모델을 지정합니다.
한계돌파하는 아이템과 소재로 소비하는 동일 종류 아이템 모두 이 인벤토리 모델에 속해 있어야 합니다.
gradeModelId 에는 대상 아이템의 그레이드를 추적하는 GS2-Grade 의 그레이드 모델을 지정합니다. 한계돌파에 성공하면 해당 그레이드가 1 상향됩니다.

gradeEntries 에는 각 그레이드에 도달하기 위해 소비하는 동일 종류 아이템의 수를 그레이드별로 정의합니다. 엔트리는 1건 이상 1,000건까지 등록할 수 있습니다.
예를 들어 그레이드 1은 1개, 그레이드 2는 3개와 같이 설정함으로써 한계돌파 단계마다 비용을 개별적으로 제어할 수 있습니다.

소재로 소비한 리소스는 그 리소스가 보유하고 있던 내용과 함께 사라집니다.
소재가 경험치 등의 리소스를 가지고 있더라도 대상에게 인계되지 않으므로, 인계가 필요한 경우에는 사전에 인계용 리소스로 변환해 두어야 합니다.

모델

RateModel

강화 레이트 모델

강화 레이트는 강화에 사용하는 소재와 강화 대상을 정의한 데이터입니다.

소재 데이터와 강화 대상 데이터는 모두 GS2-Inventory에서 관리되고 있어야 합니다.
강화로 얻는 경험치는 GS2-Inventory의 메타데이터에 JSON 형식으로 기록됩니다.
여기서는 메타데이터의 어느 계층에 경험치 값이 저장되어 있는지를 기재해야 합니다.

강화 시 일정 확률로 대성공과 같은 형태로 입수할 수 있는 경험치량에 보정값을 적용할 수 있습니다.
그 추첨 확률도 이 엔티티에서 정의합니다.

targetInventoryModelId 에는 강화 대상이 되는 아이템을 보유하는 인벤토리 모델을, materialInventoryModelId 에는 소재로 사용할 수 있는 아이템을 보유하는 인벤토리 모델을 지정합니다.
양쪽은 서로 다른 인벤토리 모델로 할 수 있으므로, 캐릭터를 강화 대상으로 하고 강화 전용 아이템을 소재로 하는 구성이 가능합니다.

각 소재가 제공하는 경험치는 소재 아이템의 아이템 모델 메타데이터에 기술하며, 그 JSON의 어디에 값이 들어 있는지를 acquireExperienceHierarchy 로 지정합니다.
{ "aaa": { "bbb": { "experienceValue": 100 } } } 와 같은 구조라면 [ "aaa", "bbb", "experienceValue" ] 와 같이 지정합니다. 계층은 최대 10단계까지 지정할 수 있습니다.

획득한 경험치는 experienceModelId 로 지정한 GS2-Experience 의 경험치 모델에 가산됩니다.
가산 대상 프로퍼티 ID는 강화 대상 아이템의 프로퍼티 ID에 acquireExperienceSuffix 를 부여한 것이 됩니다. 이를 통해 하나의 아이템에 캐릭터 레벨의 level 과 호감도의 like 같은 여러 종류의 경험치를 가지게 할 수 있습니다.

bonusRates 에는 획득 경험치에 적용할 배율의 가중치 추첨을 정의합니다.
각 항목은 배율(1.5 라면 150%)과 배출 가중치를 가지며, 강화를 실행할 때마다 가중치 추첨으로 하나가 선택됩니다. 항목은 최대 1,000건까지 등록할 수 있습니다.

타입활성화 조건필수기본값값 제한설명
rateModelIdstring
~ 1024자강화 레이트 모델 GRN
※ 서버가 자동으로 설정
namestring
~ 128자강화 레이트 모델 이름
강화 레이트 모델 고유의 이름입니다. 영숫자 및 -(하이픈) _(밑줄) .(마침표)로 지정합니다.
descriptionstring~ 1024자설명문
metadatastring~ 2048자메타데이터
메타데이터에는 임의의 값을 설정할 수 있습니다.
이 값들은 GS2의 동작에는 영향을 주지 않으므로, 게임 내에서 사용하는 정보를 저장하는 용도로 사용할 수 있습니다.
targetInventoryModelIdstring
~ 1024자강화 대상으로 사용할 수 있는 GS2-Inventory 인벤토리 모델의 GRN
강화 대상이 되는 아이템을 보유하는 GS2-Inventory의 인벤토리 모델을 지정합니다. 강화되는 아이템은 이 인벤토리 모델에 속해 있어야 합니다.
acquireExperienceSuffixstring
~ 1024자GS2-Experience에서 획득한 경험치를 저장하는 프로퍼티 ID에 부여하는 서픽스
아이템의 프로퍼티 ID 끝에 추가되어, 경험치가 저장되는 GS2-Experience의 프로퍼티 ID를 구성하는 문자열입니다. 같은 아이템에 여러 경험치 종류를 부여할 수 있습니다(예: 캐릭터 레벨의 “level”, 호감도의 “like”).
materialInventoryModelIdstring
~ 1024자강화 소재로 사용할 수 있는 GS2-Inventory 인벤토리 모델 GRN
강화 소재로 사용할 수 있는 아이템을 보유하는 GS2-Inventory의 인벤토리 모델을 지정합니다. 각 소재가 제공하는 경험치는 acquireExperienceHierarchy로 지정된 JSON 계층을 사용하여 아이템 모델의 메타데이터에 정의됩니다.
acquireExperienceHierarchyList<string>0 ~ 10 itemsItemModel의 메타데이터에 저장할, 획득 경험치를 정의하는 JSON 데이터의 계층 구조 정의
GS2-Enhance에는 GS2-Inventory와 연동하여 강화를 수행하는 기능이 있으며, ItemModel의 메타데이터에 JSON 형식으로 강화 소재로 사용했을 때의 경험치량을 설정합니다.
예를 들어, { “aaa”: { “bbb”: { “experienceValue”: 100 } } }와 같은 구조의 데이터 정의로 메타데이터에 설정하고 싶은 경우에는 [ “aaa”, “bbb”, “experienceValue” ]와 같이 지정합니다.
자세한 내용은 마이크로서비스 소개 / GS2-Enhance 항목에서 설명합니다.
experienceModelIdstring
~ 1024자강화 결과로 얻는 GS2-Experience 경험치 모델 GRN
강화로 얻은 경험치가 기록되는 GS2-Experience의 경험치 모델을 지정합니다. 경험치는 대상 아이템의 프로퍼티 ID와 acquireExperienceSuffix를 조합하여 식별되는 프로퍼티에 가산됩니다.
bonusRatesList<BonusRate>0 ~ 1000 items경험치 획득량 보너스
강화 시 보너스 경험치 배율의 가중치 추첨을 정의합니다. 각 항목은 배율(예: 1.5로 150%)과 추첨 가중치를 지정합니다. 강화 실행 시 가중치 추첨으로 하나의 항목이 선택되어, 획득 경험치에 “대성공” 보너스가 적용되는지 여부가 결정됩니다.

BonusRate

경험치 획득량 보너스

강화 시 경험치 보너스 배율을 결정하는 가중치 추첨의 단일 항목을 정의합니다. 서로 다른 배율과 가중치를 가진 여러 항목을 설정함으로써, 제어된 확률에 따른 “대성공"이나 “초성공” 같은 시스템을 구현할 수 있습니다.

타입활성화 조건필수기본값값 제한설명
ratefloat1.00 ~ 10000경험치 보너스 배율 (1.0 = 보너스 없음)
이 항목이 추첨되었을 때 기본 경험치에 적용되는 배율입니다. 1.0은 보너스 없는 일반 강화, 1.5는 경험치 150%(대성공), 2.0은 경험치 200%(초성공) 등을 의미합니다.
weightint10 ~ 2147483645추첨 가중치
보너스 레이트를 선택하는 가중치 추첨에서 사용되는 상대적인 가중치입니다. 값이 클수록 이 보너스 레이트가 선택될 확률이 높아집니다. 실제 확률은 이 가중치를 보너스 레이트 목록 내 모든 가중치의 합계로 나눈 값이 됩니다.

UnleashRateModel

한계돌파 레이트 모델

아이템의 한계돌파(해방) 조건을 정의합니다.

여기서 말하는 한계돌파란, 동일 종류의 아이템을 소재로 소비함으로써 GS2-Grade 에서 관리하는 그레이드를 끌어올리는 강화 처리입니다.
그레이드가 올라가면 GS2-Experience 측의 랭크 캡이 상향되어, 대상을 더 높은 레벨까지 육성할 수 있게 됩니다.

targetInventoryModelId 에는 한계돌파 대상이 되는 아이템을 보유하는 GS2-Inventory 의 인벤토리 모델을 지정합니다.
한계돌파하는 아이템과 소재로 소비하는 동일 종류 아이템 모두 이 인벤토리 모델에 속해 있어야 합니다.
gradeModelId 에는 대상 아이템의 그레이드를 추적하는 GS2-Grade 의 그레이드 모델을 지정합니다. 한계돌파에 성공하면 해당 그레이드가 1 상향됩니다.

gradeEntries 에는 각 그레이드에 도달하기 위해 소비하는 동일 종류 아이템의 수를 그레이드별로 정의합니다. 엔트리는 1건 이상 1,000건까지 등록할 수 있습니다.
예를 들어 그레이드 1은 1개, 그레이드 2는 3개와 같이 설정함으로써 한계돌파 단계마다 비용을 개별적으로 제어할 수 있습니다.

소재로 소비한 리소스는 그 리소스가 보유하고 있던 내용과 함께 사라집니다.
소재가 경험치 등의 리소스를 가지고 있더라도 대상에게 인계되지 않으므로, 인계가 필요한 경우에는 사전에 인계용 리소스로 변환해 두어야 합니다.

타입활성화 조건필수기본값값 제한설명
unleashRateModelIdstring
~ 1024자한계돌파 레이트 모델 GRN
※ 서버가 자동으로 설정
namestring
~ 128자한계돌파 레이트 모델명
한계돌파 레이트 모델 고유의 이름. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다.
descriptionstring~ 1024자설명문
metadatastring~ 2048자메타데이터
메타데이터에는 임의의 값을 설정할 수 있습니다.
이 값들은 GS2의 동작에는 영향을 주지 않으므로, 게임 내에서 사용하는 정보를 저장하는 용도로 사용할 수 있습니다.
targetInventoryModelIdstring
~ 1024자한계돌파 대상에 사용할 수 있는 GS2-Inventory 인벤토리 모델 GRN
한계돌파 대상이 되는 아이템을 보유하는 GS2-Inventory의 인벤토리 모델을 지정합니다. 한계돌파하는 아이템과 소재로 소비되는 동일 종류 아이템 모두 이 인벤토리 모델에 속해 있어야 합니다.
gradeModelIdstring
~ 1024자그레이드 모델 GRN
대상 아이템의 한계돌파 레벨을 추적하는 GS2-Grade의 그레이드 모델을 지정합니다. 한계돌파가 성공하면, 이 그레이드 모델 내에서 아이템의 그레이드가 가산됩니다.
gradeEntriesList<UnleashRateEntryModel>
1 ~ 1000 items그레이드 엔트리 목록
한계돌파의 각 그레이드 레벨에 대한 소재 비용을 정의합니다. 각 엔트리는 그레이드 값과, 해당 그레이드에 도달하기 위해 소비해야 하는 동일 종류 아이템 수를 매핑합니다. 예를 들어, 그레이드 1은 복제품 1개, 그레이드 2는 복제품 3개와 같이 설정할 수 있습니다.

UnleashRateEntryModel

한계돌파 레이트 엔트리 모델

한계돌파 진행에서 단일 그레이드 레벨의 소재 비용을 정의합니다. 각 엔트리는 대상이 되는 그레이드 값과, 해당 그레이드를 달성하기 위해 소비해야 하는 동일 종류 아이템의 수를 지정합니다.

타입활성화 조건필수기본값값 제한설명
gradeValuelong
1 ~ 1000대상 그레이드
이 엔트리가 비용을 정의하는 그레이드 값입니다. 이 그레이드 레벨로의 한계돌파를 실행할 때, needCount로 지정된 수의 아이템이 소비됩니다.
needCountint
1 ~ 1000동일 종류의 아이템을 몇 개 소비할지
대상 그레이드로의 한계돌파를 실행하기 위해 소비해야 하는 동일 종류 아이템의 수입니다. 이 아이템들은 한계돌파되는 아이템과 동일한 아이템 모델의 것입니다.