06
07

⚠️이 글은 API 문서를 공부한 내용을 정리한 글입니다.  ↓

https://partner.steamgames.com/doc/features/inventory/itemtags

 

썸네일

 

아이템 태그 부분은 ItemDef를 알고 계셔야 합니다.↓

https://kimyir.tistory.com/59

 

스팀 인벤토리 서비스 Steam Inventory Service

⚠️이 글은 API 문서를 공부한 내용을 정리한 글입니다. 물론 직접 테스트한 내용도 담고 있습니다. API 문서 주소 ↓ https://partner.steamgames.com/doc/features/inventory 인벤토리 구조 생성 관련 글 ↓ https

kimyir.tistory.com

https://kimyir.tistory.com/60

 

스팀 인벤토리 구조 Steam Inventory Schema

⚠️이 글은 API 문서를 공부한 내용을 정리한 글입니다. ↓ https://partner.steamgames.com/doc/features/inventory/schema 인벤토리가 지원하는 기능이 하도 많아서 어렵네요. 인벤토리 시스템 구조 아이템 (Items

kimyir.tistory.com

 

 


아이템 태그

 

스팀 인벤토리의 아이템에는 태그를 붙이는 것도 가능합니다.

 

예를 들면 Iron Sword라는 아이템에는 희귀도가 존재가능한데,

"Quality:Common" 또는 "Quality:Rare"와 같은 값이 있는 "Quality" 태그가 있을 수 있습니다.

아이템에 태그 붙이는 방법 ↓

https://partner.steamgames.com/doc/features/inventory/itemtags

 

 

Item 태그를 사용하면 Steam이 아이템의 대한 "고급 필터"를 이용할 수 있습니다.

인벤토리나 시장(Market)에서 아이템을 검색할 때 편리하게 사용 가능합니다.

태그 필터로 쉽게 결과에 좁혀지는 모습

 


태그를 사용하려면?

먼저 ItemDef에서 직접 카테고리와 태그를 정의한 다음 사용자가 볼 수 있도록 셋팅해야합니다. 

영어 및 지원하려는 기타 언어로 현지화된 문자열을 제공해야합니다.

영어 현지화조차 없는 문자열은 인벤토리 기능에서 무시됩니다.

 

아이템 정의에 사용되는 값은 짧고 단순한 텍스트 토큰이어야 합니다.

이러한 토큰은 각 언어에서 지역화된 문자열을 식별하는 키로 사용됩니다.

토큰은 사용자에게 직접 표시되지 않습니다.

 


아이템 태그 현지화

아이템에 대한 태그를 정의한 후 사용자에게 보여주려면 사용자가 볼 수 있는 번역을 제공해야 합니다.

가능하다면 지원되는 모든 언어로 번역해줘야하지만 최소한 영어로 번역해놔야합니다.

애플리케이션의 Inventory Service 페이지에서 SteamWorks 구성 설정으로 변역 할 수 있습니다.

 

Steamworks > App Admin > 게임 이름 > Community > Inventory Service > 스크롤 아래

 


아이템 태그 형식(Format)

tag 필드는 분류된 토큰 목록을 통해 ';'으로 분리하여 제시해야 합니다.
각 토큰은 카테고리 토큰과 값 토큰으로 구성되어있으며, ':’으로 분리됩니다.

<tag_list>: <tag_pair> { ";" <tag_pair> }
<tag_pair>: <category_token> ":" <tag_token>

아이템 태그 예시 (Example)

"tags":"class:elf;farms:potato;rarity:legendary;type:character;handed:ambi"
...
"tags":"class:troll;farms:gold;rarity:common;type:character;handed:left"

아이템별 태그 ( Per-Item Tags)

generator, playtimegenerator, bundle로 아이템을 생성한다면 lifetime 내내 태그가 지속되고,

소유권이 바뀌어도 유지되는 태그를 지정할 수 있습니다.


이러한 태그는 Steam 클라이언트의 다른 아이템 속성과 함께 자동으로 전달되며, 

속성 이름 '태그'로 ISteamInventory::GetResultItemProperty를 호출하여 가져올 수 있습니다. 

태그는 제공된 문자열 버퍼에서 ; 기호로 분리되어 반환됩니다.

태그를 지정하는 간단한 방법은 생성된 itemDef에 정의하는 것입니다. 

기본적으로 형성된 모든 아이템에는 generator의 tags 필드,

또는 playtimegenerator의 itemDef가 통째로 복사됩니다.


태그 지정 예시

아래의 상황을 읽으면서 지정 예시를 살펴 봅시다.

Generator A는 서로 다른 Generator 확률을 지정할 수 있습니다.

Generator Legendary에서 아이템을 생성할 확률이 10%, 

Generator Common에서 아이템을 생성할 확률이 90%입니다. 

 

또한 Generator A는 color:red 태그를 적용합니다. 

 

Generator Legendary는 quality:legendary 태그를 적용하여 검 또는 방패 아이템을 생성하고,

Generator Common은 quality:common 태그를 적용하여 검 또는 방패 아이템을 생성합니다.

itemdefid: 10
type: item
name: Sword

itemdefid: 11
type: item
name: Shield

itemdefid: 100
type: generator
name: Generator A
bundle: 101x1;102x9
tags: color:red

itemdef: 101
type: generator
name: Generator Legendary
bundle: 10;11
tags: quality:legendary

itemdef: 102
type: generator
name: Generator Common
bundle: 10;11
tags: quality:common

태그 생성자 ( Tag Generator)

태그를 지정하는 또 다른 방법은 tag_generator 아이템 정의 타입을 사용하는 것입니다. 

이 특수 아이템 정의(실제로 아이템을 생성 X)를 통해 선택할 일련의 태그와 확률을 정의할 수 있습니다. 

generator, playtimegenerator, bundle 아이템 정의에서는 모든 태그 생성자의 itemDef ID를

tag_generators 필드에 설정해야 합니다. 이 태그 생성자는 모든 하위 아이템에 적용됩니다.


태그 생성자 예시 ( Tag Generator Example )

Generator A는 검이나 방패를 생성하고 color:red 태그를 적용한 후, 

새로운 아이템에 태그 생성자 Quality태그 생성자 FX를 적용합니다.

 

태그 생성자 Quality

quality:legendary 태그를 적용할 확률이 10%,

quality:common 태그를 적용할 확률이 90%입니다.

 

태그 생성자 Fx는

fx:flames, fx:sparks, fx:lasers 태그를 적용할 확률이 동일합니다.

 

이를 통해 생성될 태그가 나뉘어져서,

‘Legendary Red Shield with Flames' 혹은 'Common Red Sword with Lasers’를 얻을 수 있습니다.

itemdefid: 10
type: item
name: Sword

itemdefid: 11
type: item
name: Shield

itemdefid: 100
type: generator
name: Generator A
bundle: 10;11
tags: color:red
tag_generators: 101;102

itemdefid: 101
type: tag_generator
name: Tag Generator Quality
tag_generator_name: quality
tag_generator_values:  legendary:1;common:9

itemdefid: 102
type: tag_generator
name: Tag Generator FX
tag_generator_name: fx
tag_generator_values:  flames;sparks;lasers

tag_generators 필드 형식은 적용하려는 태그 생성자의 모든 아이템 정의 ID를 ';'으로 구분하여 

나타낸 목록입니다.

tag_generator 아이템 정의를 위해서는 tag_generator_name 필드와 tag_generator_values 

필드를 모두 정의해야 합니다.

tag_generator_name 필드는 위에 정의한 카테고리 토큰과 동일합니다.

tag_generator_values 필드는 ';'으로 구분된 tag_token:chance 목록입니다. 

확률을 누락할 경우 기본값은 1입니다.

COMMENT