Keep your place in this quest

Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.

En esta lección, prepararemos el objeto que se usará como objeto coleccionable en el juego.

Configuraremos su malla visual, aplicaremos un material y una textura, añadiremos la colisión necesaria para la interacción con el Jugador, definiremos una etiqueta de identificación y crearemos una lógica de movimiento simple para hacer el objeto más visible y atractivo dentro de la escena.

Los objetos coleccionables son muy comunes en los juegos. Pueden representar monedas, llaves, recogidas de salud, munición, potenciadores, objetos de misión, o cualquier otra cosa que el Jugador pueda tocar y recoger. En esta lección, nos centraremos en preparar el propio objeto. Más adelante, la lógica del Jugador podrá detectar este objeto y recogerlo.

1. Creando el Objeto

Dentro del panel Contenido, crea un nuevo Activo de tipo Plantilla de Entidad.

Esta Plantilla de Entidad se utilizará como base para nuestro objeto coleccionable. Dado que los objetos coleccionables generalmente se reutilizan muchas veces a lo largo de un nivel, crearla como una Plantilla de Entidad es el enfoque correcto. De esta manera, puedes colocar múltiples instancias del mismo objeto en la escena, y si cambias la plantilla más tarde, todas las instancias pueden actualizarse desde la misma fuente.

image.png

Abre la Plantilla de la Entidad para que podamos editarla.

Luego renombra la Entidad a Objeto y crea una nueva Malla, que será responsable de la representación visual del objeto.

En la sección de Componentes, añade un componente Transformar. El Transformar le da a la Entidad acceso a las propiedades de posición, rotación y escala, que son necesarias para colocar y manipular el objeto en el mundo 3D.

Después de eso, también añade un componente Cuerpo Rígido. Este componente será responsable del comportamiento de la física y la colisión del objeto dentro de la escena.

image.png

En el componente Cuerpo Rígido, habilita la opción Fantasma.

Con esta opción habilitada, el objeto podrá seguir detectando colisiones e interacciones, pero no bloqueará físicamente el movimiento del personaje.

Esto es exactamente lo que generalmente queremos para objetos coleccionables. El Jugador debería poder caminar a través del objeto, y el juego debería detectar ese contacto como una interacción. Si el objeto tuviera una colisión sólida regular, podría bloquear al Jugador o empujar objetos alrededor, lo cual generalmente no es el comportamiento deseado para las recogidas.

image.png

En este punto, puedes importar un modelo 3D a Cave y usarlo como la Malla de tu objeto.

En este ejemplo, usaremos solo un ícono 2D creado a partir de una textura, por lo que no será necesario importar un modelo personalizado. Pero siéntete libre de personalizar la apariencia visual del objeto como prefieras, dependiendo de las necesidades de tu proyecto.

Por ejemplo, podrías usar:

  • un modelo de moneda
  • un modelo de llave
  • una botella de poción
  • un cristal flotante
  • un ícono de potenciador
  • un plano texturizado simple

Ahora, así como creamos la Entidad antes, crea un nuevo Material dentro del panel Contenido.

Luego configúralo de acuerdo con el estilo visual que desees para tu juego, añadiendo las texturas necesarias, como Albedo, Mapa Normal, o cualquier otro mapa que desees usar.

image.png

image.png

Después de configurar el material, aplícalo a la Malla del objeto para definir cómo se verá dentro de la escena.

La Malla define la forma que se renderizará, mientras que el Material define cómo esa forma aparecerá visualmente, incluyendo su color, textura, aspereza, información normal y otras propiedades relacionadas con el shader.

image.png

image.png

Por motivos de organización, el panel Contenido te permite crear carpetas libremente para estructurar mejor los activos de tu proyecto.

Una buena práctica es crear una carpeta llamada Objeto y mover todos los archivos relacionados con este coleccionable dentro de ella, como la Plantilla de Entidad, materiales, texturas y cualquier otro recurso utilizado por este objeto.

Mantener tus activos organizados facilita la navegación por el proyecto, mejora tu flujo de trabajo y hace que el mantenimiento sea mucho más simple a medida que el juego crece.

image.png

Ahora, vamos a crear un nuevo Ladrillo Lógico para nuestro objeto.

Este Ladrillo Lógico será responsable de añadir una rotación continua al objeto, facilitando así que el jugador lo note en la escena.

Este tipo de movimiento es muy común en objetos coleccionables. Un objeto completamente estático puede ser más difícil de ver, especialmente en un entorno ocupado. Una rotación simple ayuda al objeto a destacarse y comunica inmediatamente que es algo especial o interactivo.

image.png

Para hacer esto, simplemente obtendremos la Entidad y accederemos a su Transformar.

Luego añade el nodo Rotar en Yaw, que es responsable de aplicar rotación alrededor del eje Y, el eje vertical del objeto.

En el campo Radianes, define el valor que deseas usar como velocidad de rotación. Cuanto mayor sea este valor, más rápido girará el objeto.

Finalmente, conecta el Transformar a Rotar en Yaw y ejecuta esta lógica a través de Al Actualizar, para que el objeto rote continuamente durante el juego.

image.png

Finalmente, añadamos una Etiqueta a nuestro objeto para que pueda ser identificado por la lógica de colección del Jugador más adelante.

Selecciona la pestaña Etiquetas, crea una nueva etiqueta llamada objeto, y asígnala a la Entidad coleccionable.

Más adelante, usaremos esta etiqueta para detectar cuándo el Jugador toca el objeto. Esto facilita identificar qué Entidades son objetos coleccionables, sin depender solo de su nombre o apariencia visual.

Usar una etiqueta es un enfoque limpio y flexible porque tu proyecto eventualmente puede tener muchos objetos coleccionables diferentes. Siempre que todos tengan la etiqueta objeto, la lógica del Jugador puede reconocerlos como coleccionables.

image.png

En este punto, el objeto coleccionable está listo para ser usado en la escena.

Tiene una representación visual, un material, colisión fantasma para detección, un Ladrillo Lógico para hacerlo rotar, y una etiqueta objeto que permitirá al Jugador reconocerlo más tarde.