Smart Wearables
Crie Wearables com capacidades interativas
Smart wearables são um tipo de cena global. Assim como experiências portáteis, elas são gameplay que os jogadores levam consigo à medida que se movem pelo metaverso. Por exemplo, enquanto executa uma cena global, um jogador poderia pegar uma bola de neve no chão em Genesis Plaza, afastar-se para outra cena e lançar a bola de neve para outro jogador que também esteja a jogar o mesmo jogo.
Smart wearables são experiências portáteis que são ativadas quando o jogador veste uma determinada peça de roupa. Smart wearables podem conceder aos jogadores novas habilidades, como uma jetpack que lhes permite voar, ou adicionar uma nova camada de conteúdo por cima do resto do mundo, como colocar moedas aleatoriamente para serem coletadas em toda a Genesis City.
📔 Nota: Smart Wearables só podem ser criados usando SDK 7.
O Creator Hub não suporta atualmente a criação de projetos de Smart Wearables.
Como começar
Usando a CLI
Abra uma linha de comando numa nova pasta e execute
npx @dcl/sdk-commands init --project smart-wearable
Este comando cria os ficheiros e a estrutura básicos para um novo smart wearable.
Os ficheiros do template
A pasta de um projeto Smart Wearable totalmente novo é muito semelhante à de uma cena do Decentraland, mas irá notar as seguintes diferenças:
wearable.jsoninclui todos os metadados da experiência portátilExiste um modelo 3D placeholder (glasses.glb) e uma miniatura (glasses.png) para um par de óculos escuros. Deve substituí-los pelo wearable real que está a criar
scene.jsoné muito mais curto, não inclui propriedades irrelevantes para um wearable, como parcels ou spawn points
Sobre wearable.json
O ficheiro predefinido wearable.json tem o seguinte aspeto:
Os seguintes campos são obrigatórios em wearable.json:
id: ID único do smart wearable.name: O nome do wearable que os utilizadores verão no marketplacedescription: A descrição do wearable que os utilizadores verão no marketplace. Certifique-se de que indica o que o smart wearable pode fazer, uma vez que os utilizadores do marketplace não terão forma de pré-visualizar a sua funcionalidade antes de o comprar.rarity: A raridade da oferta do token. Os valores possíveis são:unique (1 cópia)
mythic (10 cópias)
exotic (50 cópias)
legendary (100 cópias)
epic (1000 cópias)
uncommon (10.000 cópias)
common (100.000 cópias)
📔 Nota: Se fez fork do seu projeto a partir de um existente e ele inclui um id, certifique-se de que o valor é único antes de publicar o seu wearable. Use uuidgenerator.net para gerar um novo UUID aleatório
Os seguintes campos também podem ser incluídos opcionalmente. Estas definições também podem ser configuradas a partir da UI do Builder, assim que carregar o smart wearable.
data: Inclui o seguintereplaces: Lista de categorias de outros wearables que devem ser removidos ao equipar este wearable, além do padrão desta categoria. Ex.: Ao vestir uma capa para a parte superior do corpo, também oculte feet.hides: Lista de categorias de outros wearables que devem ser ocultados (mas não removidos) ao equipar este wearable, além do padrão desta categoria.tags: Tags usadas para tornar o wearable pesquisável no marketplace.representations:bodyShapes: A lista de representações de avatar que podem usar este wearable. Todos os smart wearables devem estar disponíveis para body shapes masculina e feminina.mainFile: O ficheiro principal com o modelo 3D do wearable.contents: A lista completa de ficheiros usados para renderizar o modelo 3D do wearable. Por exemplo, o modelo 3D pode incluir texturas como ficheiros separados.overrideHides: Quaisquer exceções ao comportamento predefinido de hide desta categoria de wearable. hide desta categoria de wearable.overrideReplaces: Quaisquer exceções ao comportamento predefinido de hide desta categoria de wearable. replace desta categoria de wearable.
category: Que categoria de wearable usar. Os valores possíveis são:'eyebrows'
'eyes'
'facial_hair'
'hair'
'mouth'
'upper_body'
'lower_body'
'feet'
'earring'
'eyewear'
'hat'
'helmet'
'mask'
'tiara'
'top_head'
'skin'
'hands_wear'
menuBarIcon: Imagem a usar no menu “experiences”, para representar esta experiência portátil. Esta imagem deve estar na raiz da sua pasta. O tamanho recomendado da imagem é 256x256.model: O modelo 3D a usar para o wearable. Este ficheiro deve estar na raiz da sua pasta.bodyShape: O tipo de corpo do avatar com o qual este wearable é compatível. Valores possíveis:male
female
both
collectionAddress: O endereço Ethereum da coleção de wearables publicada. Este endereço é atribuído após a publicação; pode deixá-lo em branco.
A miniatura
Tem de incluir uma imagem chamada thumbnail.png na raiz da sua pasta. Esta imagem será mostrada tanto na mochila como no marketplace, para representar o seu wearable em 2D. O tamanho recomendado e obrigatório da imagem é 256x256.
Escolha uma imagem que defina as expectativas do jogador e represente corretamente a sua criação.
O Preview
Executar um Preview de uma experiência portátil é igual a executar o de uma scene; basta clicar Preview no Creator Hub, ou executar npm run start na linha de comando. Se o wearable.json ficheiro estiver corretamente configurado e o projeto for reconhecido como um smart wearable, irá notar que tudo o que vê à sua volta são os parcels vazios predefinidos. Neste modo de Preview, não está limitado a qualquer conjunto de parcels; pode adicionar modelos 3D ou sons em qualquer lugar do mundo.
Para testar como o smart wearable se comporta no contexto de uma scene, pode também executar um Preview do seu wearable ao mesmo tempo que executa um Preview de uma ou várias scenes através de um Workspace. Por exemplo, pode executar o seu smart wearable em conjunto com a Genesis Plaza scene para testar como se comporta numa scene movimentada, enquanto está num elevador, etc.
Dicas
Ao posicionar uma Entity, tenha em atenção que as posições são globais, relativas às coordenadas 0,0 da Genesis Plaza.
Para reagir aos jogadores próximos:
Veja Obter todos os jogadores para saber como obter dados de outros jogadores nas redondezas.
Tenha em atenção que o carregamento do smart wearable, das cenas circundantes e de outros jogadores pode ocorrer em ordens diferentes, dependendo da situação. Se o jogador entrar no Decentraland com o smart wearable já colocado, é provável que a sua scene global seja carregada antes dos outros jogadores. Por outro lado, se o jogador carregar primeiro numa scene e depois vestir o wearable, é provável que os outros jogadores já estejam carregados quando a scene do wearable começar a ser executada.
Para experiências multijogador, espere até o jogador estar conectado a uma ilha dentro do seu realm. Obtenha os dados do realm e verifique o campo ‘room’. Se o campo ‘room’ for null, o jogador ainda não está ligado a uma ilha e os outros jogadores ainda não serão carregados. Pode verificar isto periodicamente a cada 1 segundo até o campo ‘room’ estar presente, e só então inicializar a sua lógica.
Para interagir com as cenas circundantes:
Não pode enviar diretamente quaisquer instruções para as cenas próximas ou para outras experiências portáteis, o
messageBusestá atualmente em sandbox para cada experiência portátil/cena.Pode usar um servidor intermédio para enviar informações entre a experiência portátil e uma cena.
Se fizer um raycast, pode detetar impactos contra os colliders de Entities das cenas circundantes. Isto pode indicar-lhe a localização exata do impacto, a direção normal e até o nome da Entity e o nome do Mesh do modelo 3D. Isto só funciona ao atingir Entities em scenes escritas com SDK7.
Terminar uma experiência portátil: Execute o
kill()método para terminar uma experiência portátil por si própria.
Publicar
Para publicar o seu smart wearable:
Certifique-se de que a informação em
wearable.jsonestá correta. Se usou outro projeto como ponto de partida, certifique-se de que oidé um identificador único, não usado por outros wearables.Execute
npm run packna pasta do seu projeto. Isto gera um ficheirosmart-wearable.zipna pasta do seu projeto.
📔 Nota: O resultado de npm run pack indicará o tamanho do projeto exportado não comprimido; tem de ser inferior a 3MB. Se for maior do que isso, não será aceite pelo Builder.
Abra o Builder, abra o separador Collections, clique em + para carregar um novo wearable.
Arraste o ficheiro comprimido
smart-wearable.zippara o Builder, verifique se toda a informação está correta.
Nota: Se o seu wearable contiver representações de modelo diferentes, precisa de aplicar uma solução alternativa:
No seu projeto, crie uma nova pasta para cada representação (
maleefemale), e coloque o modelo 3D de cada representação na respetiva pasta.Atualize o seu
wearable.jsonficheiroExecute
npm run packpara gerar um novo ficheiro smart-wearable.zip.Arraste o novo ficheiro smart-wearable.zip para o Builder.
Abra o editor de wearables e certifique-se de que as categorias “hide” e “remove” estão corretamente definidas para desativar outras categorias de wearable quando este wearable estiver ativo.
Crie uma nova coleção com este e, talvez, outros wearables.
Clique no ícone dos 3 pontos ao lado de “Mint Items” e selecione “See in world”. Isto abrirá um separador com o Explorer em Sepolia, onde pode experimentar todos os wearables da sua coleção no Decentraland e ver como se comportam num cenário mais real, por exemplo, a correr à volta de Genesis Plaza.
Nesta altura, o seu wearable está pronto para ser publicado.
Ações restritas
Para evitar abusos, certas funcionalidades não são permitidas por predefinição em experiências portáteis e requerem a adição de uma flag de permissão.
Veja Permissões necessárias para mais detalhes.
Limitações
IMPORTANTE: Todo o smart wearable precisa de caber em 3MB. Isto inclui o modelo 3D, a miniatura, o código, as libraries, ficheiros de som, modelos 3D adicionais, imagens da UI, etc. Este limite aplica-se à pasta não comprimida. O Builder não lhe permitirá carregar wearables maiores do que isto. Para verificar o tamanho da sua experiência portátil, execute
npm run pack, o tamanho do projeto é especificado no texto de saída do comando. Também pode verificar isto ao descomprimir o ficheirosmart-wearable.zipgerado e verificar o tamanho da pasta.
Os smart wearables executam apenas a experiência portátil para o jogador que está a usar o wearable. Os outros jogadores não veem os efeitos. Por exemplo, se a experiência portátil renderizar um animal de estimação que segue o jogador, os outros jogadores à volta não o verão. No entanto, os outros jogadores verão avatares executar animações que fazem parte da scene do wearable, mesmo animações personalizadas de avatar carregadas como parte dos ficheiros do smart wearable.
Os smart wearables só funcionam quando os jogadores os têm equipados. Por esse motivo, os jogadores só podem ter um número limitado de smart wearables ativados e, dependendo da parte do corpo que ocupem, alguns serão incompatíveis entre si. Por exemplo, não pode ter dois chapéus ao mesmo tempo, nem um capacete e cabelo ao mesmo tempo.
Se um wearable estiver “hidden” mas não “removed” por outros wearables usados, então o smart wearable ainda pode ficar ativo, mesmo que o wearable correspondente não esteja visível.
Exemplos
Atualizado