Smart Items - Avançado

Usar smart items na sua scene para adicionar interatividade.

A maioria dos smart items tem um módulo básico em que você pode configurar apenas as definições mais comuns de forma simples, mas você pode rolar para baixo além do Advanced marcador para personalizar quase tudo sobre como o item se comporta.

O seguinte item tem um componente Transform e um módulo básico que expõe apenas os campos básicos para configurar um button. Mas, se você rolar para baixo além do Advanced marcador, encontrará todas as definições disponíveis.


circle-info

📔 Nota: A maioria das definições no módulo básico também está disponível nos components mais abaixo. As alterações feitas no módulo básico são refletidas nos components mais abaixo e vice-versa, exceto em alguns casos em que as definições básicas são uma abstração de várias definições mais abaixo. Nesses casos, alterar as definições avançadas para valores que não são suportados pelo módulo básico resultará no campo do módulo básico sendo marcado como undefined.

Configuração avançada

As propriedades são agrupadas em components. Smart items diferentes podem ter components diferentes, dependendo da sua funcionalidade.

O comportamento da maioria dos items é controlado por:

  • Actions: O componente Actions define coisas que o item pode fazer. Por exemplo, reproduzir um som, reproduzir uma animação, mover para cima ou ficar invisível.

  • Triggers: O componente Triggers atribui quais events fazem essas actions acontecerem. Por exemplo, quando o player clica no item, quando o player entra numa área, ou quando a scene carrega pela primeira vez.

Por exemplo, num smart item de door, o Actions componente inclui actions "Open" e "Close". O Triggers componente nesse item inclui um On Click trigger que ativa a ação "Open" quando a door é clicada pelo player.

Os triggers de um smart item podem ativar actions em qualquer smart item da scene, não apenas nesse mesmo smart item. Por exemplo, um smart item de button pode ter um Triggers componente que ativa a ação "move up" definida no Actions componente de uma floating platform.

Os triggers também podem acontecer condicionalmente. Por exemplo, smart items de door incluem dois On Click triggers no seu componente Triggers: um abre a door se essa door estava fechada, o outro fecha a door se ela estava aberta. Para mais detalhes, veja States and conditional logic.

Interações entre items

Para fazer os items interagirem entre si:

  • Um item precisa ter pelo menos uma action definida em um Actions component.

  • O outro item precisa de um trigger no Triggers componente que aponta para essa action.

Por exemplo, para fazer um button abrir uma door:

  1. Adicione qualquer smart item de button, abra o seu Triggers componente. Ele tem um evento trigger padrão que reproduz um som e uma animação para o próprio button.

  2. Clique no + símbolo ao lado de Assigned Actions, para adicionar uma terceira action nesse mesmo evento trigger.

  3. Selecione o smart item da door no primeiro dropdown.

  4. No segundo dropdown, selecione a action "Open".


circle-info

💡 Dica: Em vez disso, você pode criar um novo evento Trigger que trata apenas da action da door. Ambos os eventos trigger são chamados toda vez que o button é clicado.



Qualquer item pode acionar qualquer action de qualquer outro item, desde que a action esteja definida. Veja Triggers para mais formas pelas quais uma action pode ser acionada.

Você pode usar states and conditional logic para acionar uma action apenas se uma condição for atendida. A condição pode até verificar o state de um terceiro smart item. Por exemplo, um button só abre a door se um smart item personalizado de "power generator" estiver com o state definido como "On".

Actions

O Actions o componente lista actions que o item pode executar. Cada smart item inclui um conjunto de actions predefinidas. Você pode personalizar actions existentes ou adicionar novas. Os seguintes tipos de actions estão disponíveis:

  • Play Animation: Reproduz uma animação no modelo 3D do item. Veja About playing animations

  • Stop Animation: Para todas as animações que estão sendo reproduzidas pelo modelo 3D do item.

  • Play Sound: Reproduz um som a partir de um arquivo, na localização do item. Veja About playing sounds

  • Stop Sound: Para todos os sons reproduzidos a partir do item.

  • Start Tween: Faz uma alteração gradual de position, rotation ou scale ao longo de um período determinado. Veja Moving, rotating or scaling.

  • Set Visibility: Torna o item visível ou invisível.

  • Attach To Player: Define o item como filho do avatar do player. Por exemplo, para carregá-lo na mão ou acima da cabeça.

  • Detach From Player: Desanexa o item do avatar do player.

  • Open Link: Abre um link para um website externo.

circle-info

📔 Nota: Esta action só pode acontecer como resultado de clicar em um item. Ela não pode ser acionada ao entrar numa trigger area.

  • Move Player: Altera a posição do player para um conjunto de coordenadas locais dentro da scene. Só é possível mover o player dentro da mesma scene.

  • Teleport Player: Teleporta um player para as coordenadas de outra scene em Decentraland. Os players aparecerão no spawn-point da scene de destino.

  • Move Player: Altera a posição do player para outra posição dentro da mesma scene, usando coordenadas relativas à origem da scene.

  • Play Emote: Faz com que o avatar do player execute uma das animações padrão do avatar (ex.: wave ou clap).

  • Play Custom Emote: Faz com que o avatar do player execute uma animação personalizada, a partir de um arquivo enviado para a scene.

  • Show Text: Exibe texto na UI da tela, para ser ocultado após alguns segundos. Ideal para hints, linhas de diálogo, notificações etc.

  • Hide Text: Oculta qualquer texto de UI que possa estar sendo exibido no momento.

  • Start Delay: Atraso de outra action do mesmo item pelo número de segundos necessário.

  • Stop Delay: Cancela quaisquer actions atrasadas no item.

  • Start Loop: Reproduz uma action do mesmo item repetidamente em um intervalo determinado.

  • Stop Loop: Cancela quaisquer actions em loop no item.

  • Play Video Stream: Reproduz um video como um material sobre uma forma primitiva.

  • Stop Video Stream: Para quaisquer videos que estejam sendo reproduzidos no momento.

  • Play Audio Stream: Reproduz um audio stream.

  • Stop Audio Stream: Para quaisquer audio streams que estejam sendo reproduzidos no momento.

  • Open link: Abre um link em uma aba do browser. Os players são perguntados se confiam no domínio antes de continuar.

  • Clone: Duplica um item na posição designada.

  • Remove: Deleta um item da scene.

  • Show Image: Exibe uma imagem na UI, potencialmente por tempo limitado. Também pode incluir legenda.

  • Hide Image: Oculta qualquer imagem atualmente exibida na UI por meio da action Show Image.

  • Damage: Reduz a saúde de qualquer healthbar que estiver por perto. A Layer propriedade pode determinar se ela age apenas sobre healthbars do player ou sobre outros items.

  • Move player here: Altera a posição do player para a posição deste item.

  • Place on Player: Altera a posição do item para a posição do player.

  • Rotate as Player: Altera a rotação do item para a rotação do player.

  • Place on Camera: Altera a posição do item para a posição da camera.

  • Rotate as Camera: Altera a rotação do item para a rotação da camera.

  • Set Position: Altera a position do item para uma específica. Pode ser absoluta ou relativa à sua posição atual.

  • Set Rotation: Altera a rotation do item para uma específica. Pode ser absoluta ou relativa à sua rotação atual.

  • Set Scale: Altera a scale do item para uma específica. Pode ser absoluta ou relativa à sua scale atual.

  • Follow Player: Começa a mover-se e a virar-se na direção da posição do player. Ignora quaisquer obstáculos no caminho. Você pode definir a velocidade e fazer com que se mova apenas em certos eixos. Min Distance determina quão perto ele chegará do player.

  • Stop Following Player: Para a action Follow Player.

  • Random Action: Uma das actions listadas aqui será reproduzida aleatoriamente com igual probabilidade cada vez que a ação aleatória for chamada. Você pode listar quaisquer actions que pertençam ao item.

  • Batch Actions: Todas as actions listadas aqui serão reproduzidas simultaneamente cada vez que a batch action for chamada. Você pode listar quaisquer actions que pertençam ao item.

  • Heal Player: Restaura a saúde da health bar do player.

Consulte states and conditional logic para aprender sobre outras actions relacionadas a conditions lógicas.

O Actions o componente define actions possíveis, mas estas não fazem nada na scene a menos que sejam acionadas. Actions são ativadas por um trigger, seja do mesmo smart item ou de outro diferente.

Para adicionar uma nova action a um item, clique no Add New Action botão na parte inferior do componente Action. Em seguida, dê um nome à action, selecione um tipo e preencha quaisquer campos adicionais específicos do tipo de action.



Triggers

O Triggers o componente define eventos trigger; estes ativam actions quando um certo event acontece. Os seguintes tipos de eventos trigger existem:

Consulte states and conditional logic para aprender sobre outros triggers relacionados a conditions lógicas.

Para adicionar um novo trigger, clique em Add New Trigger Event na parte inferior do componente Trigger. Em seguida, selecione o tipo de trigger, a entity que você quer ativar e uma action dessa entity.


circle-info

📔 Nota: Uma action precisa ser definida no Actions componente da entity antes que você possa acioná-la. Triggers só podem afetar entities que tenham um componente Actions.

About Playing Animations

Use uma action do tipo Play Animation para executar uma animação no modelo 3D do smart item. A animação já precisa existir como parte do arquivo do modelo 3D. O Select Animation dropdown exibe uma lista de todas as animações disponíveis no 3D mode.

O Play Mode campo permite selecionar se uma animação deve ser reproduzida apenas uma vez ou se deve continuar em loop.



Depois que a action é criada, você pode ativá-la por meio do Triggers componente desse mesmo item ou de qualquer outro item.

Use a Stop Animation action para parar todas as animações do item, tanto em loop quanto sem loop.

circle-info

💡 Dica: Para verificar facilmente o conteúdo de um modelo 3D, ver quais animações ele inclui e como elas se parecem, uma boa ferramenta é o Babylon Sandboxarrow-up-right. Basta arrastar o arquivo do modelo 3D para a janela. Um dropdown com uma lista das animações deve aparecer na parte inferior.

Para saber mais sobre animações e como você pode criar as suas próprias como parte de um modelo 3D, veja Animationsarrow-up-right.

About Playing sounds

Use uma action do tipo Play Sound para reproduzir um arquivo de som. Você pode reproduzir qualquer arquivo de som, desde que ele tenha sido importado para o projeto da scene. O som é ouvido de forma posicional, a partir da localização do item, o que significa que soa mais alto se o player estiver mais perto.

circle-info

💡 Dica: Em vez de digitar o caminho para o arquivo de som, você pode arrastá-lo para o Path campo a partir do menu de navegação de arquivos na parte inferior do Scene Editor.

Use a Play Mode campo para escolher se o som será reproduzido uma vez ou em loop continuamente.



Depois que a action é criada, você pode ativá-la por meio do Triggers componente desse mesmo item ou de qualquer outro item.

Use a Stop Sound action para parar todos os sons do item, tanto em loop quanto sem loop. Isso também para sons do AudioSource component.

Para fazer um item reproduzir sempre um som em loop, por exemplo para ambiente ou música, é mais fácil usar o AudioSource componente, em vez de usar Actions e Triggers. Este componente só exige que você forneça o caminho para um arquivo e marque as caixas Start Playing e Loop.


circle-info

📔 Nota: Um smart item só pode reproduzir um som por vez. Chamar um segundo som interromperá quaisquer outros sons atualmente audíveis. Isso também se aplica aos sons do AudioSource componente AudioSource. Se você precisar que dois sons soem juntos, considere adicionar uma entity invisível no mesmo local para conter uma Play Sound action.

Consulte sounds para mais informações sobre reprodução de sons em Decentraland.

Movendo, girando ou escalando

Use uma Start Tween action para alterar a position, scale, ou rotation, do item ao longo de um período de tempo. Todas as actions Start Tween começam no estado original do item e mudam para um estado final ao longo de um período de tempo.

Tweens em position podem ser relativos ou absolutos. Um tween absoluto em position move o item para uma posição fixa em relação à scene. O item se moverá de onde quer que esteja para essa posição. Se ele já estiver lá, não parecerá se mover. Um tween relativo em position move o item a uma certa distância de onde ele está agora, por exemplo, um tween para uma posição relativa de 1, 0, 0 move o item 1 metro para frente, na direção em que ele está atualmente virado. Se você executar a action tween uma segunda vez, o item se moverá mais um metro para frente.

Tweens em rotation também podem ser relativos ou absolutos. Uma rotation relativa é adicionada à rotação atual do item. Um tween absoluto em rotation fará com que o item aponte para uma direção específica, em relação à scene.

Use a Duration campo para definir quanto tempo todo o movimento deve levar, em segundos. Observe que o slider vai até 100 segundos, mas você também pode escrever um número maior manualmente, se precisar.



Depois que a action é criada, você pode ativá-la por meio do Triggers componente desse mesmo item ou de qualquer outro item.

Tweens podem seguir diferentes Curve Types que afetam a taxa de mudança ao longo do tempo. Uma linear curve (padrão) significa que a velocidade da mudança é constante do início ao fim. Há muitas opções para escolher, que desenham curvas de formatos diferentes dependendo se o início e/ou o fim começam devagar, e de quanto. Uma easeinexpo curve começa devagar e termina rápido, aumentando a velocidade exponencialmente; pelo contrário, uma easeoutexpo curve começa rápido e termina devagar.


circle-info

💡 Dica: Experimente diferentes curvas de movimento. As diferenças costumam ser sutis, mas interpretamos subconscientemente informações sobre como as coisas se movem, como peso, atrito ou até personalidade.

Use On Tween End eventos trigger no Triggers componente para ativar uma action depois que um tween terminar. Use states and conditional logic para descrever um caminho em loop para uma floating platform, de modo que ela se mova constantemente entre dois locais.

Quando um item executa um tween, isso afeta tudo sobre o item. Por exemplo, se ele altera a scale, altera a scale do seu modelo 3D visível e também a geometria do collider invisível, o tamanho do texto etc. Se o item tiver filhos (aninhados na entity tree à esquerda), essas child entities também são afetadas pelo tween.

circle-info

📔 Nota: Cada entity só pode executar um tween por vez. Por exemplo, você não pode fazer um item se mover lateralmente e também girar ao mesmo tempo. Como alternativa, você pode usar entities com parent. Por exemplo, você pode ter uma entity pai invisível que se move lateralmente, com um filho visível que gira.

About click triggers

Para acionar uma action ao clicar em um item, crie um On Click trigger. A action será ativada toda vez que o player clicar na entity.



Consulte Torne qualquer item smart para mais detalhes.

circle-info

📔 Nota: Ao usar modelos 3D personalizados, o modelo deve ter uma geometria de collider invisível para que possa ser clicado. Veja colliders.

Como alternativa, você pode configurar o GLTF componente do item, para que sua Visible Layer de colisão seja definida como Pointer.

Outra alternativa é adicionar um smart item Click Area , para desenhar um cube que se sobreponha ao item que você quer clicar. O smart item Click Area é um item invisível.

Trigger on spawn

Triggers do tipo On Spawn ativam uma action quando a scene é carregada. Em vez de esperar o player interagir com um item, a action é executada imediatamente.

Por exemplo, use isso para fazer uma platform se mover continuamente. Use um On Spawn trigger para ativar uma ação tween. Em seguida use On State Change triggers para mantê-la se movendo entre duas ou mais posições.



Multiplayer

Todos os smart items são multiplayer por padrão. Veja Smart Items - Basic para mais detalhes.

Você pode alterar ou refinar esse comportamento multiplayer para sincronizar apenas certos components do item.

No Multiplayer componente do item, marque as caixas dos components que você quer compartilhar.

Por exemplo, uma door compartilha seu Animator para que todos vejam as animações de abertura, seu AudioSource para que todos ouçam seu som, e seu State para que todos acompanhem se ela está aberta ou fechada no momento. A door não compartilha seu Visibility componente, porque a door normalmente está sempre visível. Se você incluir actions para ativar e desativar sua visibilidade, talvez queira marcar também esse componente, para que as mudanças sejam sincronizadas entre todos os players.

Itens invisíveis

Alguns items não devem ser vistos pelo player, mas ficam visíveis enquanto você edita sua scene para facilitar o gerenciamento. É o caso de items como Ambience, Trigger Area, Click Area, etc.

No modo avançado, esses items têm um Visibility componente definido como invisível. Esse componente não afeta a visibilidade dos items no Scene Editor, mas qualquer item definido como invisível não é visto pelos players ao executar uma preview.

Veja também

Atualizado