Smart Wearables
Crie wearables com capacidades interativas
Smart wearables são um tipo de cena global. Como portable experiences, eles são jogabilidade que os jogadores levam consigo enquanto se movem pelo metaverso. Por exemplo, enquanto executa uma cena global, um jogador poderia pegar uma bola de neve do chão em Genesis Plaza, caminhar para outra cena e arremessar a bola de neve para outro jogador que também esteja jogando o mesmo jogo.
Smart wearables são experiências portáteis que são ativadas quando o jogador coloca um determinado item de vestuário. Smart wearables podem conceder aos jogadores novas habilidades, como um jetpack que lhes permite voar, ou adicionar uma nova camada de conteúdo sobre o resto do mundo, como posicionar moedas aleatoriamente para serem coletadas por toda a Genesis City.
📔 Nota: Smart Wearables só podem ser criados usando o SDK 7.
O Creator Hub não oferece suporte atualmente para criar projetos de Smart Wearables.
Primeiros passos
Usando o CLI
Abra uma linha de comando em uma nova pasta e execute
npx @dcl/sdk-commands init --project smart-wearable
Este comando cria os arquivos básicos e a estrutura para um novo smart wearable.
Os arquivos no template
A pasta de um projeto Smart Wearable novo é muito similar à de uma Decentraland scene, mas você notará as seguintes diferenças:
wearable.jsoninclui todos os metadados para a experiência portátilHá um modelo 3D placeholder (glasses.glb) e uma miniatura (glasses.png) para um par de óculos escuros. Você deve substituir estes pelo wearable real que está criando
scene.jsoné muito mais curta, não inclui propriedades que são irrelevantes para um wearable, como parcels ou spawn points
Sobre wearable.json
O padrão wearable.json arquivo se parece com isto:
Os seguintes campos são obrigatórios em wearable.json:
id: Id único do smart wearable.campo name: O nome do wearable que os usuários verão no marketplacedescrição: A descrição do wearable que os usuários verão no marketplace. Certifique-se de indicar o que o smart wearable pode fazer, pois os usuários do marketplace não terão como pré-visualizar sua funcionalidade antes de comprá-lo.rarity: A raridade/suprimento do token. Valores possíveis são:unique (1 copy)
mythic (10 copies)
exotic (50 copies)
legendary (100 copies)
epic (1000 copies)
uncommon (10.000 copies)
common (100.000 copies)
📔 Nota: Se você forkou seu projeto a partir de um existente, certifique-se de que o id valor é único antes de publicar seu wearable. Use uuidgenerator.net para gerar um novo UUID aleatório
Os seguintes campos também podem ser incluídos opcionalmente. Essas configurações também podem ser configuradas a partir do UI do Builder, assim que você fizer upload do smart wearable.
dados: Inclui o seguintereplaces: Lista de categorias de outros wearables que devem ser desequipados ao equipar este wearable, além do padrão desta categoria. Ex.: Ao colocar uma capa top-body, também esconder feet.hides: Lista de categorias de outros wearables que devem ser escondidos (mas não desequipados) 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 ambas as body shapes masculina e feminina.mainFile: O arquivo principal com o modelo 3D do wearable.contents: A lista completa de arquivos usados para renderizar o modelo 3D do wearable. Por exemplo, o modelo 3D pode incluir texturas como arquivos separados.overrideHides: Quaisquer exceções do padrão hide comportamento desta categoria de wearable.overrideReplaces: Quaisquer exceções do padrão replace comportamento desta categoria de wearable.
categoria: Qual categoria de wearable usar. 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 ser usada no menu “experiences”, para representar esta experiência portátil. Esta imagem deve estar no nível root da sua pasta. O tamanho de imagem recomendado é 256x256.model: O modelo 3D a ser usado para o wearable. Este arquivo deve estar no nível root 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 publicada de wearables. Este endereço é atribuído após a publicação, pode ser deixado em branco.
A miniatura
Você deve incluir uma imagem chamada thumbnail.png no nível root da sua pasta. Esta imagem será mostrada tanto na backpack quanto no marketplace, para representar seu wearable em 2D. O tamanho de imagem recomendado é 256x256.
Escolha uma imagem que defina as expectativas do jogador e represente adequadamente sua criação.
A Pré-visualização
Executar uma pré-visualização de uma experiência portátil é como executar a de uma cena, simplesmente clique Run Scene na aba Decentraland, ou execute npm run start na linha de comando. Se o wearable.json arquivo estiver configurado corretamente e o projeto for reconhecido como um smart wearable, você notará que todos os visíveis ao seu redor são os parcels vazios padrão. Neste modo de pré-visualização, você não está restrito a nenhum conjunto de parcels, você pode adicionar modelos 3D ou sons em qualquer lugar do mundo.
Para testar como o smart wearable se comporta no contexto de uma cena, você também pode executar uma pré-visualização do seu wearable ao mesmo tempo em que executa a pré-visualização de uma ou várias cenas usando um Workspace. Por exemplo, você pode executar seu smart wearable junto com a Genesis Plaza scene para testar como ele se comporta em uma cena movimentada, dentro de um elevador, etc.
Dicas
Ao posicionar uma entidade, observe que as posições são globais, relativas às coordenadas 0,0 de Genesis Plaza.
Para reagir a jogadores próximos:
Veja Buscar todos os jogadores para saber como obter dados de outros jogadores nas proximidades.
Tenha em mente que o carregamento do smart wearable, das cenas ao redor e de outros jogadores pode ocorrer em ordens diferentes dependendo da situação. Se o jogador entrar no Decentraland com o smart wearable já ativado, é provável que a cena global do seu wearable carregue antes dos outros jogadores. Por outro lado, se o jogador primeiro carregar em uma cena e então colocar o wearable, é provável que outros jogadores já estejam carregados quando a cena do wearable começar a rodar.
Para experiências multiplayer, espere até que o jogador esteja conectado a uma island dentro do seu realm. Busque os dados do realm e verifique o campo ‘room’. Se o campo ‘room’ for null, o jogador ainda não está conectado a uma island e outros jogadores não estarão carregados ainda. Você pode checar periodicamente isso a cada 1 segundo até que o campo ‘room’ esteja presente, e só então inicializar sua lógica.
Para interagir com cenas ao redor:
Você não pode enviar instruções diretamente para cenas próximas ou outras experiências portáteis, o
messageBusestá atualmente sandboxed para cada experiência portátil/cena.Você pode usar um servidor intermediário para enviar informações entre a experiência portátil e uma cena.
Se você fizer um raycast, pode detectar acertos contra os colliders de entidades das cenas ao redor. Isso pode informar a localização exata do impacto, a direção da normal e até o nome da entidade e o nome da mesh do modelo 3D. Isso só funciona ao atingir entidades em cenas escritas com SDK7.
Encerrar uma experiência portátil: Execute o
kill()método para auto-terminar uma experiência portátil.
Publicar
Para publicar seu smart wearable:
Certifique-se de que as informações em
wearable.jsonestejam precisas. Se você usou outro projeto como ponto de partida, certifique-se de que oidseja um identificador único, não usado por outros wearables.Execute
npm run packna pasta do seu projeto. Isso gera umsmart-wearable.ziparquivo na pasta do seu projeto.
📔 Nota: A saída de npm run pack indicará o tamanho do projeto exportado não compactado, ele deve estar abaixo de 3MB. Se for maior que isso, não será aceito pelo Builder.
Abra o Builder, abra a aba Collections, clique em + para subir um novo wearable.
Arraste seu
smart-wearable.zipcompactado para dentro do Builder, verifique se todas as informações estão corretas.
Nota: Se seu wearable contém diferentes representações de modelo, você precisa fazer 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 em sua pasta correspondente.Atualize seu
wearable.jsonarquivo para incluir as novas representations.Execute
npm run packpara gerar um novo arquivo smart-wearable.zip.Arraste o novo arquivo smart-wearable.zip para dentro do Builder.
Abra o editor de wearables e certifique-se de que as categorias “hide” e “remove” estejam corretamente definidas para desativar outras categorias de wearables quando este wearable estiver ativado.
Crie uma nova coleção com este e possivelmente outros wearables.
Clique no ícone de 3 pontos ao lado de “Mint Items” e selecione “See in world”. Isso abrirá uma aba com o Explorer em Sepolia, onde você pode experimentar todos os wearables da sua coleção em Decentraland e ver como eles se comportam em um cenário mais real, por exemplo correndo por Genesis Plaza.
A partir deste ponto, seu wearable está pronto para ser publicado.
Ações restritas
Para evitar abuso, certos recursos não são permitidos em experiências portáteis por padrão, e requerem a adição de uma flag de permissão.
Veja Permissões requeridas para mais detalhes.
Limitações
IMPORTANTE: Todo o smart wearable precisa caber dentro de 3MB. Isso inclui o modelo 3D, miniatura, código, bibliotecas, arquivos de som, modelos 3D adicionais, imagens de UI, etc. Este limite é para a pasta descompactada. O Builder não permitirá que você envie wearables maiores que isso. 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. Você também pode verificar isso descompactando o geradosmart-wearable.ziparquivo e checando o tamanho da pasta.
Smart wearables apenas executam a experiência portátil para o jogador que está usando o wearable. Outros jogadores não veem os efeitos. Por exemplo, se a experiência portátil renderiza um pet que segue o jogador, outros jogadores ao redor não verão esse pet. No entanto, outros jogadores verão avatares executarem animações que rodem como parte da cena do wearable, mesmo custom avatar animations carregadas como parte dos arquivos do smart wearable.
Smart wearables só funcionam quando os jogadores os estão usando. Por esse motivo, os jogadores só podem ter um número limitado de smart wearables ativados, e dependendo de qual parte do corpo ocupam, alguns serão incompatíveis com outros. Por exemplo, você não pode usar dois hats ao mesmo tempo, ou um helmet e hair ao mesmo tempo.
Se um wearable estiver “hidden” mas não “removed” por outros wearables sendo usados, então o smart wearable ainda pode estar ativo, mesmo que o wearable correspondente não esteja visível.
Exemplos
Atualizado