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:
- Usar un Objeto para elegir un objeto de la escena que repelerá los elementos de Forest.
- Utilizar el Distancia parámetro para establecer los límites de caída del efecto de repulsión.
- Utilizar el Fortaleza parámetro para alejar los elementos dispersos del objeto de repulsión.
- 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.