Smart Items - Avanzado

Usar smart items en tu escena para añadir interactividad.

La mayoría de los smart items tienen un módulo básico donde puedes configurar solo los ajustes más comunes de forma simple, pero puedes desplazarte hacia abajo más allá del Advanced marcador para personalizar casi cualquier aspecto de cómo se comporta el item.

El siguiente item tiene un componente Transform y un módulo básico que expone solo los campos básicos para configurar un botón. Pero si te desplazas hacia abajo más allá del Advanced marcador, encontrarás todos los ajustes disponibles.


circle-info

📔 Nota: La mayoría de los ajustes en el módulo básico también están disponibles en los componentes más abajo. Los cambios realizados en el módulo básico se reflejan en los componentes más abajo y viceversa, excepto en algunos casos donde los ajustes básicos son una abstracción de múltiples ajustes más abajo. En esos casos, cambiar los ajustes avanzados a valores que no son compatibles con el módulo básico hará que el campo en el módulo básico quede marcado como undefined.

Configuración avanzada

Las propiedades se agrupan en components. Diferentes smart items pueden tener diferentes components, dependiendo de su funcionalidad.

El comportamiento de la mayoría de los items está controlado por:

  • Actions: El componente Actions define cosas que el item puede hacer. Por ejemplo reproducir un sonido, reproducir una animación, moverse hacia arriba o volverse invisible.

  • Triggers: El componente Triggers asigna qué eventos hacen que esas acciones ocurran. Por ejemplo cuando el jugador hace clic en el item, cuando el jugador camina dentro de un área, o cuando la escena se carga por primera vez.

Por ejemplo, en un smart item de puerta, el Actions component incluye acciones "Open" y "Close". El Triggers component en ese item incluye un On Click trigger que activa la acción "Open" cuando la puerta es clickeada por el jugador.

Los triggers de un smart item pueden activar acciones en cualquier smart item de la escena, no solo en ese mismo smart item. Por ejemplo, un smart item de botón puede tener un Triggers component que activa la acción "move up" definida en el Actions component de una plataforma flotante.

Los Triggers también pueden ocurrir de forma condicional. Por ejemplo, los smart items de puerta incluyen dos On Click triggers en su componente Triggers: uno abre la puerta si esa puerta estaba cerrada, el otro cierra la puerta si estaba abierta. Para más detalles ver States and conditional logic.

Interacciones entre items

Para hacer que los items interactúen entre sí:

  • Un item necesita tener al menos una acción definida en un Actions component.

  • El otro item necesita un trigger en el Triggers component que apunte a esa acción.

Por ejemplo, para hacer que un botón abra una puerta:

  1. Añade cualquier smart item de botón, abre su Triggers component. Tiene un evento trigger por defecto que reproduce un sonido y una animación para el propio botón.

  2. Haz clic en el + signo junto a Assigned Actions, para añadir una tercera acción en ese mismo evento trigger.

  3. Selecciona el smart item para la puerta en el primer desplegable.

  4. En el segundo desplegable, selecciona la acción "Open".


circle-info

💡 Tip: En su lugar, puedes crear un nuevo evento Trigger que solo maneje la acción de la puerta. Ambos eventos trigger se llaman cada vez que se hace clic en el botón.



Cualquier item puede disparar cualquier acción de cualquier otro item, siempre que la acción esté definida. Ver Triggers para más formas en las que una acción puede ser disparada.

Puedes usar states and conditional logic para disparar una acción solo si se cumple una condición. La condición incluso puede comprobar el estado de un tercer smart item. Por ejemplo, un botón solo abre la puerta si un smart item personalizado "power generator" tiene su estado en "On".

Actions

El Actions component lista acciones que el item puede llevar a cabo. Cada smart item incluye un conjunto de acciones predefinidas. Puedes personalizar acciones existentes o añadir nuevas. Los siguientes tipos de acciones están disponibles:

  • Play Animation: Reproduce una animación en el modelo 3D del item. Ver About playing animations

  • Stop Animation: Detiene todas las animaciones reproducidas por el modelo 3D del item.

  • Play Sound: Reproduce un sonido desde un archivo, en la ubicación del item. Ver About playing sounds

  • Stop Sound: Detiene todos los sonidos reproducidos por el item.

  • Start Tween: Realiza un cambio gradual en posición, rotación o escala durante un periodo dado. Ver Moving, rotating or scaling.

  • Set Visibility: Hace que el item sea visible o invisible.

  • Attach To Player: Establece el item como hijo del avatar del jugador. Por ejemplo para llevarlo en la mano o sobre la cabeza.

  • Detach From Player: Desprende el item del avatar del jugador.

  • Open Link: Abre un enlace a un sitio web externo.

circle-info

📔 Nota: Esta acción solo puede ocurrir como resultado de hacer clic en un item. No puede ser activada al caminar dentro de un área trigger.

  • Move Player: Cambia la posición del jugador a un conjunto de coordenadas locales dentro de la escena. Solo es posible mover al jugador dentro de la misma escena.

  • Teleport Player: Teletransporta a un jugador a las coordenadas de otra escena en Decentraland. Los jugadores aparecerán en el spawn-point de la escena de destino.

  • Move Player: Cambia la posición del jugador a otra posición dentro de la misma escena, usando coordenadas relativas al origen de la escena.

  • Play Emote: Hace que el avatar del jugador realice una de las animaciones por defecto del avatar (p. ej.: saludar, aplaudir).

  • Play Custom Emote: Hace que el avatar del jugador realice una animación personalizada, desde un archivo subido a la escena.

  • Show Text: Muestra texto en la UI de la pantalla, para ocultarlo después de unos segundos. Ideal para pistas, líneas de diálogo, notificaciones, etc.

  • Hide Text: Oculta cualquier texto de la UI que pueda estar actualmente mostrado.

  • Start Delay: Retrasa otra acción del mismo item por tantos segundos como necesites.

  • Stop Delay: Cancela cualquier acción retrasada en el item.

  • Start Loop: Repite una acción del mismo item de forma recurrente en un intervalo dado.

  • Stop Loop: Cancela cualquier acción en bucle del item.

  • Play Video Stream: Reproduce un video como material en una forma primitiva.

  • Stop Video Stream: Detiene cualquier video que se esté reproduciendo.

  • Play Audio Stream: Reproduce un flujo de audio.

  • Stop Audio Stream: Detiene cualquier flujo de audio que se esté reproduciendo.

  • Open link: Abre un enlace en una pestaña del navegador. A los jugadores se les pregunta si confían en el dominio antes de hacerlo.

  • Clone: Duplica un item en la posición designada.

  • Remove: Elimina un item de la escena.

  • Show Image: Muestra una imagen en la UI, potencialmente por un tiempo limitado. También puede incluir pie de foto.

  • Hide Image: Oculta cualquier imagen mostrada actualmente en la UI mediante la acción Show Image.

  • Damage: Reduce la salud en cualquier barra de salud que esté cerca. La Layer propiedad puede determinar si solo actúa sobre barras de salud del jugador, o sobre otros items.

  • Move player here: Cambia la posición del jugador a la de este item.

  • Place on Player: Cambia la posición del item a la del jugador.

  • Rotate as Player: Cambia la rotación del item a la del jugador.

  • Place on Camera: Cambia la posición del item a la de la cámara.

  • Rotate as Camera: Cambia la rotación del item a la de la cámara.

  • Set Position: Cambia la posición del item a una específica. Puede ser absoluta o relativa a su posición actual.

  • Set Rotation: Cambia la rotación del item a una específica. Puede ser absoluta o relativa a su rotación actual.

  • Set Scale: Cambia la escala del item a una específica. Puede ser absoluta o relativa a su escala actual.

  • Follow Player: Comienza a moverse y girar en dirección a la posición del jugador. Ignora cualquier obstáculo en el camino. Puedes ajustar la velocidad y hacer que solo se mueva en ciertos ejes. Min Distance determina qué tan cerca llegará al jugador.

  • Stop Following Player: Detiene la acción Follow Player.

  • Random Action: Una de las acciones listadas aquí se reproducirá al azar con igual probabilidad cada vez que se llame la acción aleatoria. Puedes listar cualquiera de las acciones que pertenezcan al item.

  • Batch Actions: Todas las acciones listadas aquí se reproducirán simultáneamente cada vez que se llame la acción por lotes. Puedes listar cualquiera de las acciones que pertenezcan al item.

  • Heal Player: Restaura salud en la barra de salud del jugador.

Ver states and conditional logic para aprender sobre otras acciones relacionadas con condiciones lógicas.

El Actions component define posibles actions, pero estas no hacen nada en la escena a menos que sean disparadas. Las actions se activan mediante un trigger, ya sea del mismo smart item, o de uno diferente.

Para añadir una nueva acción a un item, haz clic en el Add New Action botón en la parte inferior del componente Action. Luego ponle un nombre a la acción, selecciona un tipo y completa los campos adicionales específicos del tipo de acción.



Triggers

El Triggers component define eventos trigger, estos activan acciones cuando ocurre cierto evento. Existen los siguientes tipos de eventos trigger:

Ver states and conditional logic para aprender sobre otros triggers relacionados con condiciones lógicas.

Para añadir un nuevo trigger, haz clic en el Add New Trigger Event en la parte inferior del componente Trigger. Luego selecciona el tipo de trigger, la entidad que quieres activar y una acción de esa entidad.


circle-info

📔 Nota: Una acción necesita ser definida en el Actions component de la entidad antes de que puedas dispararla. Los triggers solo pueden afectar entidades que tengan un componente Actions.

About Playing Animations

Usa una acción de tipo Play Animation para ejecutar una animación en el modelo 3D del smart item. La animación debe ya existir como parte del archivo del modelo 3D. El Select Animation desplegable muestra una lista de todas las animaciones disponibles en el modelo 3D.

El Play Mode campo te permite seleccionar si una animación debe reproducirse solo una vez, o si debe seguir en bucle.



Una vez que la acción es creada, puedes activarla a través del Triggers component de ese mismo item o de cualquier otro item.

Usa la Stop Animation action para detener todas las animaciones del item, tanto en bucle como no en bucle.

circle-info

💡 Tip: Para comprobar fácilmente el contenido de un modelo 3D, ver qué animaciones incluye y cómo lucen, una buena herramienta es el Babylon Sandboxarrow-up-right. Simplemente arrastra el archivo del modelo 3D a la ventana. Debería aparecer un desplegable con una lista de sus animaciones en la parte inferior.

Para aprender más sobre animaciones y cómo puedes crear las tuyas como parte de un modelo 3D, ver Animationsarrow-up-right.

About Playing sounds

Usa una acción de tipo Play Sound para reproducir un archivo de sonido. Puedes reproducir cualquier archivo de sonido siempre que esté importado en el proyecto de la escena. El sonido se escucha posicionalmente, desde la ubicación del item, lo que significa que suena más fuerte si el jugador está más cerca.

circle-info

💡 Tip: En lugar de escribir la ruta al archivo de sonido, puedes arrastrarlo al campo Path desde el menú de navegación de archivos en la parte inferior del Scene Editor.

Usa la Play Mode campo para elegir si reproducir el sonido una vez, o hacerlo en bucle continuamente.



Una vez que la acción es creada, puedes activarla a través del Triggers component de ese mismo item o de cualquier otro item.

Usa la Stop Sound action para detener todos los sonidos del item, tanto en bucle como no en bucle. Esto también detiene sonidos del AudioSource component.

Para hacer que un item reproduzca un sonido en bucle siempre, por ejemplo para ambiente o música, es más fácil usar el AudioSource component, en lugar de usar Actions y Triggers. Este componente solo requiere que proporciones una ruta a un archivo, y marques las casillas Start Playing y Loop.


circle-info

📔 Nota: Un smart item solo puede reproducir un sonido a la vez. Llamar a un segundo sonido interrumpirá cualquier otro sonido que se esté reproduciendo. Esto también aplica a los sonidos del componente AudioSource component. Si necesitas que dos sonidos suenen juntos, considera añadir una entidad invisible en la misma ubicación para contener una Play Sound action.

Ver sounds para más sobre la reproducción de sonidos en Decentraland.

Moving, rotating, or scaling

Usa una Start Tween action para cambiar la position, scale, o rotation, del item durante un periodo de tiempo. Todas las Start Tween actions comienzan desde el estado original del item y cambian a un estado final durante un periodo de tiempo.

Los tweens en posición pueden ser relativos o absolutos. Un tween absoluto en posición mueve el item a una posición fija en relación con la escena. El item se moverá desde donde esté hasta esa posición. Si ya está ahí, no parecerá moverse. Un tween relativo en posición mueve el item cierta distancia desde donde está ahora, por ejemplo un tween a una posición relativa de 1, 0, 0 mueve el item 1 metro hacia adelante, en la dirección que actualmente enfrenta. Si ejecutas la acción tween una segunda vez, el item se moverá otro metro hacia adelante.

Los tweens en rotación también pueden ser relativos o absolutos. Una rotación relativa se suma a la rotación actual del item. Un tween absoluto en rotación hará que el item apunte en una dirección específica, relativa a la escena.

Usa la Duration campo para establecer cuánto debe durar todo el movimiento, en segundos. Ten en cuenta que el control deslizante llega hasta 100 segundos, pero también puedes escribir manualmente un número mayor si lo necesitas.



Una vez que la acción es creada, puedes activarla a través del Triggers component de ese mismo item o de cualquier otro item.

Los tweens pueden seguir diferentes Curve Types que afectan la tasa de cambio a lo largo del tiempo. Una linear curve (por defecto), significa que la velocidad del cambio es constante de principio a fin. Hay muchas opciones para elegir, que trazan curvas con diferentes formas dependiendo de si el inicio y/o el final comienzan lento, y cuánto. Una easeinexpo curve comienza lenta y termina rápida, aumentando la velocidad exponencialmente; en cambio una easeoutexpo curve comienza rápida y termina lenta.


circle-info

💡 Tip: Experimenta con diferentes curvas de movimiento. Las diferencias suelen ser sutiles, pero subconscientemente interpretamos información por cómo se mueven las cosas, como peso, fricción o incluso personalidad.

Usa On Tween End trigger events en el Triggers component para activar una acción después de que un tween haya terminado. Usa states and conditional logic para describir una ruta en bucle para una plataforma flotante, de modo que se mueva constantemente entre dos ubicaciones.

Cuando un item realiza un tween, esto afecta todo sobre el item. Por ejemplo, si cambia la escala, cambia la escala de su modelo 3D visible y también la geometría de colisión invisible, el tamaño del texto, etc. Si el item tiene hijos (anidados en el entity tree a la izquierda), estas entidades hijas también se ven afectadas por el tween.

circle-info

📔 Nota: Cada entidad solo puede realizar un tween a la vez. Por ejemplo, no puedes hacer que un item se mueva lateralmente y también rote al mismo tiempo. Como solución, puedes usar entidades parentadas. Por ejemplo, puedes tener una entidad padre invisible que se mueva lateralmente, con un hijo visible que rote.

About click triggers

Para activar una acción haciendo clic en un item, crea un On Click trigger. La acción se activará cada vez que el jugador haga clic en la entidad.



Ver Haz inteligente cualquier item para más detalles.

circle-info

📔 Nota: Al usar modelos 3D personalizados, el modelo debe tener una geometría de colisión invisible para que sea clickeable. Ver colliders.

Como alternativa, puedes configurar el GLTF component del item, de modo que su Visible Layer de colisión esté configurada en Pointer.

Otra alternativa es añadir un Click Area smart item, para dibujar un cubo que solape el item que quieres clicar. El smart item Click Area es un invisible item.

Trigger on spawn

Los Triggers de tipo On Spawn activan una acción cuando la escena se carga. En lugar de esperar a que el jugador interactúe con un item, la acción se ejecuta de inmediato.

Por ejemplo, usa esto para hacer que una plataforma se mueva continuamente. Usa un On Spawn trigger para activar una acción tween. Luego usa On State Change triggers para mantenerla moviéndose entre dos o más posiciones.



Multiplayer

Todos los smart items son multiplayer por defecto. Ver Smart Items - Basic para más detalles.

Puedes cambiar o ajustar este comportamiento multiplayer para sincronizar solo ciertos components del item.

En el Multiplayer component del item, marca las casillas de los components que quieras compartir.

Por ejemplo, una puerta comparte su Animator para que todos vean las animaciones de apertura, su AudioSource component para que todos escuchen su sonido, y su State para que todos lleven el seguimiento de si está actualmente abierta o cerrada. La puerta no comparte su Visibility component, porque la puerta normalmente siempre es visible. Si incluyes acciones para activar su visibilidad on y off, quizá quieras tener este componente marcado también, para que los cambios se sincronicen entre todos los jugadores.

Invisible items

Algunos items no están pensados para ser vistos por el jugador, pero son visibles mientras editas tu escena para hacerlos más fáciles de gestionar. Este es el caso de items como Ambience, Trigger Area, Click Area, etc.

En el modo avanzado, estos items tienen un Visibility component configurado como invisible. Este componente no afecta la visibilidad de los items en el Scene Editor, pero cualquier item configurado como invisible no es visto por los jugadores al ejecutar una preview.

Ver también

Última actualización