허두
한마포 커뮤니티 매니저
HURDOO 2b370e4f33334fd5af2d1419cfe356a7
1.15에서 한 가지의 자료구조가 마인크래프트에 추가되었습니다.
storage, 스토리지 라고 불리더군요.
raw JSON text format 이나, /data, /execute 명령어로 접근이 가능하다고 합니다.
마인크래프트 위키에서 /data 명령어 문서의 Storage 단락의 내용을 읽어보니, 이렇게 나와있습니다.
( https://minecraft.gamepedia.com/Commands/data#Storage )
대략 정리해보자면 "NBT를 다루는 가장 효과적인 방법" 이라고 할 수 있겠네요
그리고 Command Storage Format 문서가 있길래, 그곳에도 들어가보았습니다.
( https://minecraft.gamepedia.com/Command_storage_format )
...이렇다고 합니다.
이 storage라는 것을 커멘드에서 어떻게 접근할 수 있는지, 또 어떤 방식으로 활용이 가능한지
아시는 분 계실까요?
+ (이 게시글의 모든 사진은 minecraftwiki.net 에서 가져왔으며, 저작권 또한 그 사이트에 있음을 밝힙니다.)
++ (와! 제가 커멘드 질문 첫 사용자이네요!)
PatrickKR
2020.05.11제가 이해한 바로는.... Storage는 일반 엔티티처럼 저장할 수 있는 하나의 nbt 저장소 인것 같네요. 평범한 nbt처럼 data get/merge/modify/remove 다 되는 storage고, execute와 엮으면 storage의 특정 key가 특정 value를 가지면 실행 가능하거나,, 뭐 이런식으로 사용이 되는 것 같네요... (으으 어렵다...)
허두
2020.05.11으윽.... struct같은 NBT의 묶음으로써의 오브젝트인 걸까요....
(어렵당)
PatrickKR
2020.05.11대충 그렇게 해석했는데... 맞게 이해한건지는 잘..모르겠네요 ㅎㅎㅎ
허두
2020.05.11커멘드는 직접 써보면서 익히는 수밖에 없죠...
그래도 연구 방향 잡아주셔서 감사합니다!
PatrickKR
2020.05.11ㅎㅎ 감사합니다! 혹시 좋은 정보 있으면.. 공유해주세요!! ㅎㅎ
허두
2020.05.11넵 알겠습니다! ^^
허두
2020.05.12윗분이 친절하게 설명해 주셨네요!
PatrickKR
2020.05.12오! 그렇군요! 그러면 이제 아머스탠드는 자연스럽게.. 사라지게 되겠네요 ㅎㅎ
허두
2020.05.12...음
다른 용도로 잘 쓰이지 않을까요 ㅋㅋ?
PatrickKR
2020.05.14저는 커맨드 분야는 초보여서 ㅋㅋㅋ 아마 써봤자 아머스탠드 대용 그 이상은 잘 모르겠네요 읔..
허두
2020.05.14글쎄요...
저는 아머스탠드를 카메라 대용으로 소환해두고
플레이어가 /spectate 명령어로 그 아머스텐드의 시점으로 관전하게끔 만들어 놓았거든요
그러면 아마 스토리지에 아머스탠드 기본 정보들(예: Invisible:1b,Invulnerable:1b,NoGravity:1b,Tags:["camera_n"] 등등)을 입력해두고
나중에 소환할때 스토리지만 불러오면...? 확실히 매번 입력해야하던 번거로움은 줄겠네요.
사향(CivetKitty)
2020.05.12Storage는 /data modify에서 주로 사용되는데 /scoreboard에서 임의의 플래이어 이름에다 값을 저장하듯이 nbt를 임시로 저장하는 기능을 합니다.
제가 1.14때 만들었던 갑옷 거치대 커스터마이처 데이터팩을 예로 들어볼게요. .zip폴더에서 data > cvt_armorstand > functions > slotswap에 있는 파일들을 보시면 됩니다.
이 파일들을 이용해서 저는 갑옷 거치대에 특정 아이템을 던지면 오른손에 들려있는 아이템을 다른 슬롯에 있는 아이템과 맞바꾸는 기능을 만들었는데요, 일반적인 /data modify로는 nbt를 복붙하는 기능밖에 못하기 때문에 잠시 투명 거치대를 소환해서 거기다 아이템 정보를 저장한 다음 다시 저장한 곳에서 불러오는 방식을 택했습니다.
1.15에 추가된 storage는 바로 이 투명 거치대의 기능을 대신하는데요, 다른 엔티티를 소환할 필요 없이 월드 내에 저장공간을 만들어 보관했다가 꺼내 쓸 수 있습니다. 다른 점이라면 어느 nbt든 제한 없이 저장할 수 있다는 점이랑 필요한 작업을 마치고 정리할 때 /kill이 아닌 /data remove를 이용해 지울 수 있다는 점이네요.
허두
2020.05.12오옹.. 이거 되게 유용한 기능이었네요.
알려주셔서 감사합니다!