스마트 웨어러블
상호작용 기능이 있는 웨어러블 만들기
스마트 웨어러블은 일종의 글로벌 씬이다. 예를 들면 포터블 경험처럼, 이는 플레이어가 메타버스를 이동하면서 함께 가져가는 게임플레이다. 예를 들어, 글로벌 씬을 실행하는 동안 플레이어는 Genesis Plaza의 바닥에서 눈덩이를 집어 들고 다른 씬으로 이동한 뒤, 같은 게임을 플레이하고 있는 다른 플레이어에게 그 눈덩이를 던질 수 있다.
스마트 웨어러블은 플레이어가 특정 의류 아이템을 착용하면 활성화되는 휴대형 경험이다. 스마트 웨어러블은 플레이어에게 제트팩처럼 날 수 있게 해 주는 새로운 능력을 부여할 수도 있고, 제네시스 시티 전체에 수집할 코인을 무작위로 배치하는 것처럼 세계의 나머지 부분 위에 새로운 콘텐츠 층을 추가할 수도 있다.
시작하기
CLI 사용하기
새 폴더에서 명령줄을 열고 다음을 실행하세요
npx @dcl/sdk-commands init --project smart-wearable
이 명령은 새 스마트 웨어러블을 위한 기본 파일과 구조를 만듭니다.
템플릿의 파일들
새 스마트 웨어러블 프로젝트의 폴더는 Decentraland 씬의 폴더와 매우 비슷하지만, 다음과 같은 차이점을 확인할 수 있습니다:
wearable.json휴대형 경험에 대한 모든 메타데이터를 포함합니다어두운 안경 한 쌍을 위한 자리표시자 3D 모델(glasses.glb)과 썸네일(glasses.png)이 있습니다. 이 파일들은 여러분이 실제로 만들고 있는 웨어러블로 교체해야 합니다
scene.json훨씬 짧고, 구획이나 스폰 지점처럼 웨어러블과 무관한 속성은 포함하지 않습니다
wearable.json에 대해
기본 wearable.json 파일은 다음과 같습니다:
다음 필드는 wearable.json:
id에 필요합니다: 스마트 웨어러블의 고유 ID.name: 사용자가 마켓플레이스에서 보게 될 웨어러블의 이름설명: 사용자가 마켓플레이스에서 보게 될 웨어러블의 설명입니다. 마켓플레이스 사용자는 구매 전에 기능을 미리 볼 수 있는 방법이 없으므로, 스마트 웨어러블이 무엇을 할 수 있는지 반드시 명시하세요.희귀도: 토큰의 희귀도 수량입니다. 가능한 값은 다음과 같습니다:unique (1개)
mythic (10개)
exotic (50개)
legendary (100개)
epic (1000개)
uncommon (10,000개)
common (100,000개)
다음 필드들도 선택적으로 포함할 수 있습니다. 스마트 웨어러블을 업로드한 후 Builder UI에서도 이러한 설정을 구성할 수 있습니다.
data다음이 포함됩니다replaces: 이 카테고리의 기본값에 더해, 이 웨어러블을 착용할 때 함께 벗겨져야 하는 다른 웨어러블 카테고리 목록입니다. 예: 망토 상의 상체를 착용할 때 발도 함께 숨깁니다.hides: 이 카테고리의 기본값에 더해, 이 웨어러블을 착용할 때 숨겨져야 하되(벗겨지지는 않음) 하는 다른 웨어러블 카테고리 목록입니다.태그: 마켓플레이스에서 웨어러블을 검색할 수 있도록 만드는 데 사용되는 태그입니다.representations:bodyShapes: 이 웨어러블을 사용할 수 있는 아바타 표현의 목록입니다. 모든 스마트 웨어러블은 남성과 여성 체형 모두에서 사용 가능해야 합니다.mainFile: 웨어러블의 3D 모델이 들어 있는 मुख्य 파일입니다.contents: 웨어러블의 3D 모델을 렌더링하는 데 사용되는 전체 파일 목록입니다. 예를 들어, 3D 모델에 텍스처가 별도 파일로 포함될 수 있습니다.overrideHides: 이 웨어러블 카테고리의 기본 hide 동작에서의 예외 사항입니다.overrideReplaces: 이 웨어러블 카테고리의 기본 대체 동작에서의 예외 사항입니다.
카테고리: 사용할 웨어러블 카테고리는 무엇인가요? 가능한 값은 다음과 같습니다:'eyebrows'
'eyes'
'facial_hair'
'hair'
'mouth'
'upper_body'
'lower_body'
'feet'
'earring'
'eyewear'
'hat'
'helmet'
'mask'
'tiara'
'top_head'
'skin'
'hands_wear'
menuBarIcon: “experiences” 메뉴에서 이 휴대형 경험을 나타내는 데 사용할 이미지입니다. 이 이미지는 폴더 루트에 있어야 합니다. 권장 이미지 크기는 256x256입니다.model: 웨어러블에 사용할 3D 모델입니다. 이 파일은 폴더 루트에 있어야 합니다.bodyShape: 이 웨어러블과 호환되는 아바타 체형입니다. 가능한 값:male
female
both
collectionAddress: 게시된 웨어러블 컬렉션의 이더리움 주소입니다. 이 주소는 게시 시 할당되며, 비워 둘 수 있습니다.
썸네일
다음 이름의 이미지를 포함해야 합니다 thumbnail.png 폴더 루트에 있습니다. 이 이미지는 백팩과 마켓플레이스 모두에서 2D로 웨어러블을 나타내는 데 표시됩니다. 권장 필수 이미지 크기는 256x256입니다.
플레이어의 기대를 설정하고 여러분의 창작물을 올바르게 나타내는 이미지를 고르세요.
미리보기
휴대형 경험의 미리보기를 실행하는 것은 씬의 미리보기를 실행하는 것과 같습니다. Creator Hub에서 실행 를 클릭하거나 명령줄에서 npm run start 를 실행하세요. 만약 wearable.json 파일이 올바르게 구성되어 있고 프로젝트가 스마트 웨어러블로 인식되면, 주변에 보이는 모든 것이 기본 빈 구획임을 확인할 수 있습니다. 이 미리보기 모드에서는 특정 구획 집합에 제한되지 않으며, 세계 어디든 3D 모델이나 소리를 추가할 수 있습니다.
스마트 웨어러블이 씬의 맥락에서 어떻게 작동하는지 테스트하려면, 하나 또는 여러 씬의 미리보기를 실행하는 것과 동시에 Workspace의 미리보기를 함께 실행할 수도 있습니다. 예를 들어, 여러분의 스마트 웨어러블을 제네시스 플라자 씬과 함께 실행하여 붐비는 씬이나 엘리베이터 안 등에서 어떻게 작동하는지 테스트할 수 있습니다.
팁
엔티티를 배치할 때, 위치는 Genesis Plaza의 0,0 좌표를 기준으로 한 전역 좌표라는 점에 유의하세요.
주변 플레이어에게 반응하려면:
다음 모든 플레이어 가져오기 주변의 다른 플레이어로부터 데이터를 얻는 방법을 알아보세요.
스마트 웨어러블, 주변 씬, 다른 플레이어의 로딩은 상황에 따라 서로 다른 순서로 발생할 수 있다는 점에 유의하세요. 플레이어가 스마트 웨어러블을 이미 착용한 상태로 Decentraland에 प्रवेश하면, 다른 플레이어보다 여러분의 웨어러블의 글로벌 씬이 먼저 로드될 가능성이 높습니다. 반면 플레이어가 먼저 씬에 로드된 다음 웨어러블을 착용하면, 웨어러블의 씬이 시작될 때쯤에는 다른 플레이어가 이미 로드되어 있을 가능성이 높습니다.
멀티플레이어 경험의 경우, 플레이어가 자신의 리얼름 안의 섬에 연결될 때까지 기다리세요. 리얼름 데이터를 가져와 ‘room’ 필드를 확인하세요. ‘room’ 필드가 null이면 플레이어는 아직 섬에 연결되지 않은 것이며 다른 플레이어도 아직 로드되지 않은 상태입니다. ‘room’ 필드가 존재할 때까지 1초마다 이를 주기적으로 확인한 뒤, 그때서야 로직을 초기화하세요.
주변 씬과 상호작용하려면:
주변 씬이나 다른 휴대형 경험에 직접 어떤 지시도 보낼 수는 없습니다.
messageBus는 현재 각 휴대형 경험/씬마다 샌드박스 처리되어 있습니다.중간 서버를 사용해 휴대형 경험과 씬 사이에 정보를 주고받을 수 있습니다.
레이캐스트를 수행하면 주변 씬의 엔티티 콜라이더에 대한 충돌을 감지할 수 있습니다. 이를 통해 정확한 충돌 지점, 법선 방향, 심지어 3D 모델의 엔티티 이름과 메쉬 이름까지 확인할 수 있습니다. 이는 SDK7으로 작성된 씬의 엔티티를 맞출 때만 작동합니다.
휴대형 경험 종료하기: 다음을 실행하세요
kill()메서드로 휴대형 경험을 자체 종료할 수 있습니다.
게시
스마트 웨어러블을 게시하려면:
다음의 정보가 정확한지 확인하세요
wearable.json. 다른 프로젝트를 시작점으로 사용했다면,id가 다른 웨어러블에서 사용되지 않은 고유 식별자인지 확인하세요.다음을 실행하세요
npm run pack을 프로젝트 폴더에서 실행하세요. 그러면smart-wearable.zip파일이 프로젝트 폴더에 생성됩니다.
Builder를 열고 Collections 탭을 연 다음, +를 클릭해 새 웨어러블을 업로드하세요.
압축된
smart-wearable.zip파일을 Builder로 드래그하고 모든 정보가 정확한지 확인하세요.
참고: 웨어러블에 서로 다른 모델 표현이 포함되어 있다면, 다음과 같은 우회 방법을 사용해야 합니다:
프로젝트에서 각 표현마다 새 폴더를 만들고(
male과female), 각 표현의 3D 모델을 해당 폴더에 넣으세요.다음을 업데이트하세요
wearable.json파일에 새 표현을 포함하도록 합니다.다음을 실행하세요
npm run pack새 smart-wearable.zip 파일을 생성하세요.새 smart-wearable.zip 파일을 Builder로 드래그하세요.
웨어러블 편집기를 열고, 이 웨어러블이 착용되었을 때 다른 웨어러블 카테고리를 비활성화하도록 “hide” 및 “remove” 카테고리가 올바르게 설정되어 있는지 확인하세요.
이 웨어러블과, 필요하다면 다른 웨어러블들을 사용해 새 컬렉션을 만드세요.
“Mint Items” 옆의 점 3개 아이콘을 클릭하고 “See in world”를 선택하세요. 그러면 Sepolia의 익스플로러가 있는 탭이 열리며, 그곳에서 컬렉션의 모든 웨어러블을 Decentraland에서 시험해 보고 Genesis Plaza를 뛰어다니는 것처럼 더 실제적인 시나리오에서 어떻게 작동하는지 확인할 수 있습니다.
이제 여러분의 웨어러블은 게시할 준비가 되었습니다.
제한된 동작
남용을 방지하기 위해, 특정 기능은 기본적으로 휴대형 경험에서 허용되지 않으며 권한 플래그를 추가해야 합니다.
다음 필수 권한 자세한 내용은.
제한 사항
중요: 전체 스마트 웨어러블은 3MB 이내여야 합니다. 여기에는 3D 모델, 썸네일, 코드, 라이브러리, 사운드 파일, 추가 3D 모델, UI 이미지 등이 포함됩니다. 이 제한은 압축되지 않은 폴더 기준입니다. builder에서는 이보다 큰 웨어러블을 업로드할 수 없습니다. 휴대형 경험의 크기를 확인하려면 다음을 실행하세요
npm run pack명령의 출력 텍스트에 프로젝트 크기가 표시됩니다. 생성된smart-wearable.zip파일의 압축을 풀고 폴더 크기를 확인해도 됩니다.
스마트 웨어러블은 웨어러블을 착용한 플레이어를 위한 휴대형 경험만 실행합니다. 다른 플레이어는 효과를 볼 수 없습니다. 예를 들어, 휴대형 경험이 플레이어를 따라다니는 반려동물을 렌더링하더라도 주변의 다른 플레이어는 이 반려동물을 볼 수 없습니다. 하지만 다른 플레이어는 웨어러블의 씬의 일부로 실행되는 애니메이션을 아바타가 수행하는 것은 볼 수 있으며, 이는 사용자 지정 아바타 애니메이션 스마트 웨어러블 파일의 일부로 업로드된 경우에도 마찬가지입니다.
스마트 웨어러블은 플레이어가 착용하고 있을 때만 작동합니다. 이런 이유로 플레이어는 활성화된 스마트 웨어러블을 제한된 수만큼만 가질 수 있으며, 몸의 어느 부분을 차지하느냐에 따라 서로 호환되지 않는 것들도 있습니다. 예를 들어, 동시에 두 개의 모자를 착용할 수는 없고, 헬멧과 머리카락을 동시에 착용할 수도 없습니다.
다른 웨어러블이 착용되어 “숨겨지기”만 하고 “제거”되지는 않았다면, 해당 웨어러블이 보이지 않더라도 스마트 웨어러블은 계속 착용된 상태일 수 있습니다.
예시
마지막 업데이트