Manejando sprite sheets – RanGE

⚠️ Muchas imágenes GIF
Dale un poco de tiempo para cargar si estás en una conexión lenta.


Todos sabemos que el BGE tiene algunas herramientas para lograr texturas animadas, pero el problema es que ¡en la práctica son casi inutilizables! 😅
Si eres nuevo en Blender, probablemente te estés preguntando por qué ocurre esto; y si ya llevas tiempo trabajando con el BGE, seguramente estarás de acuerdo conmigo.

👉 Si eres completamente nuevo en Blender y quieres aprender sobre el BGE, te recomiendo primero leer este tutorial para conocer lo básico y luego volver aquí 🙂


🧠 Una breve explicación para quienes empiezan en el BGE

La forma en que Blender maneja las texturas animadas no es realmente usable para juegos.

  • ❌ Lee la hoja de texturas en un orden incorrecto

  • ❌ Las animaciones no son independientes

  • ❌ No hay forma de evitar el loop automático

  • ❌ El timing no es consistente entre instancias

  • ❌ No hay soporte para texturas con scroll ni animaciones por eventos


🕒 Ejemplo de tiempos no consistentes

Como puedes ver en la imagen de arriba, todas las explosiones tienen exactamente el mismo timing, lo que significa que cada explosión se ve idéntica, sin importar cuándo aparece.
Este mismo problema ocurre con efectos de humo u otras animaciones tipo sprite creadas en diferentes momentos del juego.

El hecho de que la herramienta interna de Blender no sea suficiente no significa que no se pueda hacer animación en el BGE 💡
Simplemente debemos controlarla manualmente usando logic bricks.


Existe un addon que facilita la animación de sprites por alrededor de USD $9.99, pero muchos usuarios son jóvenes o no pueden comprar en línea.
Por eso, aquí presento una solución alternativa, ideal para:

  • Sangre

  • Explosiones

  • Monedas

  • Personajes 2D

  • Bandas transportadoras

  • Orugas de tanque


⚙️ Este método requiere un poco más de trabajo, pero el resultado es perfecto.
Veamos un ejemplo (archivo .blend disponible).


🎬 La demostración

Para esta demostración usaremos un sprite sheet de sangre de
opengameart.org

🩸 Resultado de imagen para blood sprite sheet

Resultado de imagen para blood sprite sheet


📁 Recomendación
Organiza la estructura de carpetas de tu proyecto, incluso si es algo sencillo, para mantener todo limpio y ordenado.


📥 Importando el sprite a Blender

Usaremos el addon “Import Images as Planes”.
Si no está activo, primero debemos habilitarlo.

🔧 Mira el GIF de abajo para ver cómo activarlo.

Si el Add-on no está activo, checa este GIF


Ahora que el addon está activo, vamos a importar la textura.

  1. 💾 Guarda el archivo .blend dentro de la carpeta del proyecto

  2. 🗑️ Elimina el cubo por defecto

  3. 📥 Importa Blood.png usando el addon

  4. 🎨 Verifica que el canal alpha esté activo para permitir transparencias

2018-02-06_16-07-13.gif

 


El sprite ya está listo.
El plano se llama blood porque toma automáticamente el nombre del archivo.

Sigamos 👇


🎯 Configurando el objeto como HALO (billboard)

Esto hará que el sprite siempre mire a la cámara del jugador.

  1. Selecciona blood

  2. Entra en Edit Mode y selecciona todo

  3. Rota 90° en X

  4. Rota 90° en Z

  5. Activa HALO en
    Game Settings / Face Orientation / Halo

  6. Presiona P para probar el motor de juego

2018-02-07_12-03-51.gif

✔️ Si todo funciona, ¡felicidades! 🎉


🧩 Preparando los objetos para “Replace Mesh”

  1. Renombra blood a blood.001

  2. En Edit Mode, presiona Ctrl + R

    • Necesitamos 5 cortes (porque el sprite tiene 6 frames)

  3. Selecciona cada cara y sepárala con P

  4. Elimina el objeto vacío resultante

  5. Verifica que el nombre del objeto coincida con el mesh

  6. Ajusta el origen al centro de la geometría

    • Shift + Ctrl + Alt + C

  7. Prueba el motor de juego

2018-02-07_13-56-36.gif

✔️ ¡Listo!


🧠 Hora de trabajar con Logic Bricks

🎞️ Agregando la propiedad frames

  1. Duplica blood.001 y nómbralo blood_still

  2. Agrega una propiedad entera llamada frames

  3. Crea un sensor Always

    • True Pulse

    • Skip 10

  4. Conéctalo a un actuador que sume +1 a frames

  5. Activa Debug Info para verificar el contador

2018-02-07_13-56-36.gif


🔄 Controlando el valor de frames

  • La animación tiene 6 frames

  • frames debe ir de 0 a 5

  • Al llegar a 5, vuelve a 0

Cuando alcanza el valor de 5, borramos el objeto

Usamos:

  • Property Sensor para detectar el valor

  • Property Actuator para reiniciar

  • Delete Object al final de la animación


🎭 Animación con Replace Mesh y State Machine

Usamos State Machine para:

  • Reducir lógica activa

  • Mejorar rendimiento

  • Mantener todo más claro

Las capas funcionan como las del View 3D, pero para lógica.

  • Visible: lógica mostrada

  • Initial: lógica inicial


🏷️ Nombrando capas

Para nombrar una capa:

  • Nombra el primer controlador

  • Ese nombre aparece como tooltip

La capa de animación se activa solo cuando es necesaria.


🎉 Resultado final

Resumen del comportamiento del sprite:

  • 🩸 Animación de 6 frames

  • 🧮 frames incrementa de 0 a 5

  • 🎬 Cada valor activa un Replace Mesh

  • 🔄 Estado Animation activo entre 0 y 5

  • 🛑 Se desactiva al finalizar


🧪 Probando el asset

Creamos un objeto simple que actúa como spawner de blood_still.


Así es como puedes crear sprites animados funcionales en el BGE
Abajo puedes ver otro ejemplo y descargar el archivo .blend.


🙏 Espero que este tutorial te sea útil.
Si tienes dudas o comentarios, escríbelos abajo.
¡Gracias por leer!

Leave a Reply

Your email address will not be published. Required fields are marked *

Hey!

I’m Bedrock. Discover the ultimate Minetest resource – your go-to guide for expert tutorials, stunning mods, and exclusive stories. Elevate your game with insider knowledge and tips from seasoned Minetest enthusiasts.

Join the club

Stay updated with our latest tips and other news by joining our newsletter.