Conceptos clave - Game Juice Pro
Juice Preset
Un Juice Preset es un Data Asset que agrupa una colección de feedbacks configurados. Es el elemento central del flujo de trabajo: creas un preset, le añades feedbacks y luego lo reproduces con el nodo Play Juice.
Los presets son reutilizables: puedes crear un preset "Impacto Fuerte" y usarlo en cualquier actor del proyecto.
Propiedades del preset:
- Preset Name: Nombre descriptivo
- Description: Descripción del efecto
- Feedback Templates: Array con los feedbacks que componen el preset
- Intensity Multiplier: Multiplicador de intensidad global del preset
- Duration Multiplier: Multiplicador de duración global del preset
- Sequential: Si es true, los feedbacks se ejecutan uno detrás de otro en vez de todos a la vez
- Sequence Delay: Retardo entre feedbacks cuando se ejecutan de forma secuencial
Para crear un preset: Content Browser → Click derecho → Game Juice Pro → Juice Preset.
Feedbacks
Un Feedback es la unidad mínima de efecto. Cada feedback representa una acción concreta: animar escala, reproducir sonido, aplicar camera shake, etc. Se añaden dentro de un preset en su array Feedback Templates.
Todos los feedbacks comparten estas propiedades base:
- Active: Activa o desactiva el feedback sin eliminarlo
- Chance (0-100): Probabilidad de ejecución. Un valor de 100 significa que siempre se ejecuta.
- Should Replicate: Indica si este feedback se replica en red cuando se usa multijugador
- Channel Data: Canal de comunicación (por índice o Gameplay Tag)
- Timing: Configuración de temporización (delays, repeticiones, cooldowns)
- Randomness: Variación aleatoria en intensidad y duración
- Range Settings: Activación y atenuación basados en distancia
Consulta el Catálogo de feedbacks para ver los 28 tipos disponibles.
Nodo Play Juice
El nodo Play Juice es la forma principal de usar Game Juice Pro. Es un nodo Blueprint personalizado que se encarga de todo internamente.
Pins de entrada:
- Target: El actor que recibirá los efectos del preset
- Preset: El Juice Preset a reproducir
- Intensity: Multiplicador de intensidad (0 a 1)
- Skip Replication: Si está activado, el feedback solo se ejecuta localmente sin replicar a otros clientes
Pins de salida:
- Session ID: Identificador único de esta ejecución. Guárdalo en una variable para poder detener este preset específico más adelante con Stop Session en el Game Juice Component, sin afectar a otros presets que estén activos en el mismo actor.
Pins dinámicos: Dependiendo de los feedbacks que contenga tu preset, el nodo puede mostrar pins adicionales automáticamente:
- Look At Target: Aparece si el preset contiene un feedback de Look At
Game Juice Component
El Game Juice Component es un componente opcional para uso avanzado. Se añade a un Actor cuando necesitas control adicional sobre la reproducción: sesiones independientes, configuración de red detallada, auto-play, etc.
Propiedades principales:
- Initialization Mode: Cuándo se inicializan los feedbacks (Script, BeginPlay o OnEnabled)
- Auto Play On Start / On Enable: Reproduce automáticamente al inicio o al activarse
- Direction: Dirección de reproducción (TopToBottom o BottomToTop)
- Auto Change Direction On End: Alterna la dirección tras cada reproducción
- Can Play While Already Playing: Permite reproducciones simultáneas
- Chance To Play: Probabilidad global de reproducción (0-100%)
- Duration Multiplier: Escala la duración de todos los feedbacks
- Feedbacks Intensity: Multiplicador global de intensidad (0-1)
- Initial Delay: Retardo antes de iniciar la reproducción
- Cooldown Duration: Tiempo mínimo entre reproducciones
- Replication Mode: Modo de replicación en red (ver Multijugador)
Eventos del componente
- OnPlay: Se dispara cuando se inicia la reproducción
- OnComplete: Se dispara cuando todos los feedbacks terminan
- OnPause / OnResume: Se dispara al pausar/reanudar
- OnDirectionChanged: Se dispara al cambiar la dirección de reproducción
Sesiones
Cada vez que reproduces un preset (ya sea con el nodo Play Juice o con Play Preset en el componente), se crea una sesión independiente con su propio estado. Esto permite:
- Ejecutar múltiples presets simultáneamente en el mismo actor sin conflictos
- Detener sesiones individualmente por su ID sin afectar a las demás
- Que cada sesión trabaje con copias clonadas de los feedbacks, evitando estados compartidos
Tanto el nodo Play Juice como la función PlayPreset del componente devuelven un Session ID que puedes guardar en una variable. Usa ese ID con Stop Session en el Game Juice Component para detener solo esa sesión específica.
Ejemplo práctico: un actor interactuable con un efecto de Rim Glow cuando estás en rango. Al entrar en rango, reproduces el preset y guardas el Session ID. Al salir, detienes solo esa sesión. Otros presets activos en el mismo actor (como Spin o Bob) no se ven afectados.
Modos de ejecución
Los feedbacks que modifican propiedades a lo largo del tiempo (escala, zoom, luces, etc.) soportan tres modos:
- Instant: Aplica el valor inmediatamente, sin interpolación.
- OverTime: Interpola el valor usando una curva de animación durante una duración configurable. Es el modo más usado para crear efectos suaves.
- ToDestination: Interpola linealmente desde el valor actual hasta un valor objetivo.
En modo OverTime, puedes configurar la curva de animación, el remapeo de valores y si los valores son relativos al estado actual o absolutos.
Timing
Cada feedback tiene su propia configuración de timing:
- Timescale Mode: Scaled (respeta slow-motion) o Unscaled (tiempo real)
- Initial Delay: Retardo antes de comenzar la ejecución
- Random Initial Delay: Retardo aleatorio adicional (delay final = Initial Delay + Random(0, valor)). Útil para desincronizar múltiples instancias del mismo preset (ej: muchos pickups flotantes).
- Cooldown Duration: Tiempo mínimo entre ejecuciones
- Number Of Repeats: Cuántas veces se repite (0 = sin repetición)
- Repeat Forever: Repite indefinidamente hasta que se detenga manualmente
- Delay Between Repeats: Pausa entre cada repetición
- Limit Play Count: Limita el número total de reproducciones
- Direction Condition: Ejecutar solo hacia adelante, solo hacia atrás, o siempre
- Intensity Interval: Solo se ejecuta si la intensidad está dentro del rango definido
¿Necesitas ayuda?
Para dudas o sugerencias, únete a nuestro Discord.