Comunicación entre blueprints
Clase 8 de 10 • Curso de Introducción a Unreal Engine: Configuración y Entorno de Desarrollo
Contenido del curso
Instalación y configuración de Unreal Engine para desarrollo de videojuegos
Primeros pasos con Unreal Engine
Siguientes pasos con Unreal Engine
La comunicación entre Blueprints en Unreal Engine puede ser eficiente y clara si se aplican buenas prácticas. Aquí verás cómo conectar un Animation Blueprint con el actor de tu Tamagotchi, evitar cuellos de botella por Cast To en cada frame y crear una animación de lesionado que active el estado correcto sin trucos manuales.
¿Cómo comunicar Blueprints sin perder rendimiento?
Para que un Animation Blueprint lea datos del actor (tu Tamagotchi), necesitas una referencia válida. De fábrica, los Blueprints no se hablan entre sí. La clave está en tomar la referencia correcta y guardarla una sola vez.
- Usa el nodo Try Get Pawn Owner para obtener quién posee el Animation Blueprint.
- Evita ejecutar Cast To desde Update Animation en cada frame. Es costoso y puede causar problemas de optimización.
- Haz el Cast To en Event Blueprint Begin Play y promuévelo a variable. Solo se ejecuta una vez.
¿Por qué cast to es costoso en cada frame?
Porque Update Animation funciona como un Event Tick: corre cada frame. Si castearas 60 veces por segundo, impactarías el rendimiento. Mejor paga un costo único al inicio y guarda la referencia.
¿Cómo guardar una referencia con promote to variable?
- Tras el Cast To al Tamagotchi Mascot, promueve el pin de salida a variable.
- Nómbrala claro, por ejemplo: ref Mascota.
- Desde el panel de variables, arrástrala como Get cuando la necesites. Ya no repites el Cast To.
¿Qué nodo dispara la lógica cada frame?
- Update Animation: todo lo que salga de este nodo corre en cada frame. Úsalo con cautela.
- Event Blueprint Begin Play: ideal para inicializaciones y obtener referencias una sola vez.
¿Qué variables sincronizar entre el actor y el Animation Blueprint?
Una vez que tienes la referencia del Tamagotchi, puedes leer sus variables heredadas. Activa “variables heredadas” en el panel My Blueprint para verlas.
- health: sincronízala con tu variable de salud en el Animation Blueprint usando Get del actor y Set local.
- death: igual, lee el valor del actor y actualiza en cada frame en el Animation Blueprint.
- enfermo: es lógica interna del Tamagotchi. No necesitas leerla si ya decides estados por salud.
Puntos clave: - Actualiza salud y muerte en cada frame desde la referencia guardada. - No castees en cada frame. Ya tienes la referencia persistente. - El estado Injured se activa cuando la salud es menor a 33. No hace falta consultar “enfermo” si la transición depende de health.
¿Cómo crear y usar una animación Idle Injured?
Si no existe una animación de lesionado, puedes derivarla del idle original ajustando huesos clave para reflejar una pose derrotada.
¿Cómo duplicar y editar la animación?
- Duplica la animación de idle y nómbrala: Idle Injured.
- Abre el editor de animación y coloca el playhead en segundo 0.
- En Skeleton Tree, selecciona huesos y aplica rotaciones suaves. Usa los modos de transformación correctos.
¿Qué ajustes aplicar en la pose?
- cuello: rota unos 30 grados hacia abajo. Presiona key y apply.
- head: baja ligeramente la cabeza. Key y apply.
- wing upper arm derecho e izquierdo: rota aprox. 30 grados hacia adentro. Key y apply.
Consejos prácticos: - Ajusta la velocidad de cámara si te mueves muy rápido mientras editas la pose. - Asegúrate de estar en el segundo 0 antes de marcar los keys.
¿Cómo integrar la animación en el estado Injured?
- Guarda la nueva animación Idle Injured.
- En el Animation Blueprint, dentro del estado Injured, coloca Idle Injured en el flujo.
- Con la salud sincronizada, el estado se activará cuando health < 33.
Nota final: desde la versión 4.26, Unreal añadió exposición de propiedades en el Animation Blueprint, lo que facilita aún más la conexión entre Blueprints.
¿Te gustaría que revisemos tu gráfico de animación o tus estados? Cuéntame en los comentarios qué parte te gustaría optimizar o automatizar.