Saltar a contenido

Camera Shake

Tipo: Procesador (ejecutar en la cámara)
Categoría: CAMERA

Aplica el efecto de temblor de cámara cada frame. Lee los parámetros de globalDict (escritos por Trigger Camera Shake) y aplica desplazamientos aleatorios con fade al objeto cámara.

Sockets

Socket Dirección Tipo
In Entrada Exec
Out Salida Exec

Código generado (simplificado)

_shk = Range.logic.globalDict.get('_rnc_shk', None)
if _shk and _shk['current'] < _shk['frames']:
    _shk['current'] += 1
    _shk_t = 1.0 - (_shk['current'] / _shk['frames'])  # fade 1→0
    _shk_i = _shk['intensity'] * _shk_t
    import random
    _shk_off = [random.uniform(-_shk_i, _shk_i) for _ in range(3)]
    _shk_off[2] = 0  # solo X e Y
    self.own.applyMovement(_shk_off, True)

Dónde poner este nodo

Debe ejecutarse en el objeto cámara, no en el objeto que dispara el temblor:

# Árbol de nodos de la cámara:
[On Update] → [Camera Shake]

Uso típico

Configuración completa de temblor de cámara

# Objeto "Player" — dispara el temblor:
[On Message: Subject="take_damage"]
    → [Trigger Camera Shake: Intensity=0.3, Frames=20]

# Objeto "Camera" — procesa el temblor cada frame:
[On Update] → [Camera Shake]

Notas

  • El fade es lineal: el desplazamiento máximo ocurre en el primer frame y se reduce a 0 al final.
  • El desplazamiento se aplica en espacio local de la cámara (applyMovement(..., True)).
  • Si globalDict['_rnc_shk'] no existe o el temblor ha terminado, el nodo no hace nada.