Saltar al contenido principal

Repulsión

La repulsión calcula la distancia en 2 dimensiones a un objeto determinado y aplica un efecto de "repulsión" de acuerdo con los parámetros de distancia y fuerza. A continuación, el elemento se proyecta sobre la superficie en su nueva posición utilizando la función fpSurfaceHitZ. Para usarlo:

  1. Usar un Objeto para elegir un objeto de la escena que repelerá los elementos de Forest.
  2. Utilizar el Distancia parámetro para establecer los límites de caída del efecto de repulsión.
  3. Utilizar el Fortaleza parámetro para alejar los elementos dispersos del objeto de repulsión.
  4. Utilizar el Controlador droperty para elegir una pista de la escena que se agrega al parámetro de distancia para controlar los límites de caída. Por ejemplo, si estás usando una bola para repeler elementos de Forest, puedes usar el controlador Radio para ajustar automáticamente la distancia de caída a medida que cambia el tamaño de la bola.

Guión de efectos

vector vec = [fpItem.position.x - Object.position.x, fpItem.position.y- Object.position.y, 0];
vector dir = unit(vec);
real dist = length(vec);
real dd = easeOut(dist, 0, (Distance+Controller)*5, (Distance+Controller)*2.5, 0) * Strength / 100;
vector displ = dir * dd;
fpItem.position = fpItem.position + displ;
fpItem.geomID = if(dd > 0,1, fpItem.geomID);
fpItem.position.z = fpSurfaceHitZ(fpItem.position);

Puedes encontrar este efecto dentro del Biblioteca de Forest Effects.

Este efecto utiliza

Parámetros

  • Objeto

    Tipo: Objeto

  • Distancia

    Tipo: Unidades de escena

  • Fortaleza

    Tipo: Porcentaje

  • Controlador

    Tipo: Controlador

Atributos

  • posición.fpItem

    Posición del elemento Forest en coordenadas locales

  • fpItem.geomID

    Índice en la Lista de Geometría, comenzando en cero

Funciones

  • facilidad de salida (x, x1, x2, y1, y2)

    Devuelve una interpolación facilitada entre y1 e y2. Devuelve y2 cuando x > x2.

  • unidad(v)

    Devuelve un vector unitario en la misma dirección que v.

  • length(v)

    La longitud de v.

  • fpSurfaceHitZ(p)

    Calcula la proyección de p sobre la superficie de Forest (solo modo XY). Devuelve el valor z.