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 sencilla, 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 se marque como indefinido.

Configuración avanzada

Las propiedades están agrupadas en componentsarrow-up-right. Diferentes smart items pueden tener distintos 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 entra en 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 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 la cierra si estaba abierta. Para más detalles ver States and conditional logicarrow-up-right.

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 componente.

  • 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 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 de la puerta en el primer menú desplegable.

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


circle-info

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



Cualquier item puede activar 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 activada.

Puedes usar states and conditional logicarrow-up-right para activar 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 ajustado a "On".

Actions

El Actions component enumera 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 que se están reproduciendo en 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: Produce un cambio gradual en posición, rotación o escala durante un período 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 encima de la cabeza.

  • Detach From Player: Desvincula 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 entrar en 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: Teleporta 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 (ej.: saludar, o 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, que se ocultará después de unos segundos. Ideal para pistas, líneas de diálogo, notificaciones, etc.

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

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

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

  • Start Loop: Vuelve a reproducir 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 pide 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 una leyenda.

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

  • Damage: Reduce la salud en cualquier healthbar que esté cerca. La Layer propiedad puede determinar si solo actúa sobre healthbars 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: Empieza 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 se acercará 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 logicarrow-up-right para aprender sobre otras acciones relacionadas con condiciones lógicas.

El Actions component define posibles acciones, pero estas no hacen nada en la escena a menos que sean activadas. Las acciones son activadas por 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 da 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 logicarrow-up-right 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 entity que quieres activar y una acción de esa entity.


circle-info

📔 Nota: Una acción necesita estar definida en el Actions component de la entidad antes de que puedas activarla. 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 existir ya como parte del archivo del modelo 3D. El Select Animation menú desplegable muestra una lista de todas las animaciones disponibles en el modelo 3D.

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



Una vez creada la acción, 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 las en bucle como las que no lo están.

circle-info

💡 Consejo: Para comprobar fácilmente el contenido de un modelo 3D, ver qué animaciones incluye y cómo se ven, una buena herramienta es el Babylon Sandboxarrow-up-right. Simplemente arrastra el archivo del modelo 3D a la ventana. Un menú desplegable con una lista de sus animaciones debería aparecer 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

💡 Consejo: 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 creada la acción, 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 los sonidos del AudioSource componente.

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 component 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 actualmente. Esto también se aplica a los sonidos del 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 soundsarrow-up-right para más sobre reproducir sonidos en Decentraland.

Moving, rotating, or scaling

Usa una Start Tween action para cambiar la position, scale, o rotation, del item durante un período de tiempo. Todas las Start Tween actions empiezan desde el estado original del item y cambian a un estado final durante un período 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á allí, 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 por 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 añade a la rotación actual del item. Un tween absoluto en rotación hará que el item mire en una dirección específica, relativa a la escena.

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



Una vez creada la acción, 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 desde el inicio hasta el final. Hay muchas opciones para elegir, que dibujan curvas con diferentes formas dependiendo de si el principio y/o el final comienzan lentos, y cuánto. Una easeinexpo curve comienza lenta y termina rápida, aumentando la velocidad exponencialmente; por el contrario una easeoutexpo curve comienza rápida y termina lenta.


circle-info

💡 Consejo: 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 logicarrow-up-right para describir un camino en bucle para una plataforma flotante, de modo que se mueva constantemente entre dos ubicaciones.

Cuando un item realiza un tween, esto afecta todo lo relacionado con el item. Por ejemplo, si cambia la escala, cambia la escala de su modelo 3D visible y también de 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 entity 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 alternativa, puedes usar entidades parentadas. Por ejemplo, puedes tener una entidad padre invisible que se mueve lateralmente, con un hijo visible que rota.

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 Make any item smartarrow-up-right 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 collidersarrow-up-right.

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 se superponga al item que quieres clicar. El smart item Click Area es un invisible item.

Trigger on spawn

Triggers of type 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 - Basicarrow-up-right 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 para los components que quieras compartir.

Por ejemplo, una puerta comparte su Animator para que todos vean las animaciones de apertura, su AudioSource para que todos escuchen su sonido, y su State para que todos sepan 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 encendida y apagada, puede que quieras tener este component marcado también, para que los cambios se sincronicen entre todos los jugadores.

Invisible items

Algunos items no están destinados a ser vistos por el jugador, pero son visibles mientras editas tu escena para hacerlos más fáciles de manejar. 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 component no afecta la visibilidad de los items en el Scene Editor, pero cualquier item configurado como invisible no es visto por los jugadores cuando se ejecuta una preview.

Ver también

Última actualización