Saltar al contenido principal

Coches a lo largo de spline

Descripción general

Recientemente publicamos un tutorial sobre cómo usar Forest Pack para dispersar autos. En esto discutimos la mejor manera de colocar pivotes y caminos, y la escena final usó splines que se colocaron en el centro de los estacionamientos para que pudiéramos usar el espejo y las funciones de desplazamiento para crear autos estacionados orientados en cualquier dirección.

Sin embargo, es posible que ya tengas una ranura en la parte superior del aparcamiento que desees reutilizar. Normalmente, esto significaría que no se podría reflejar el automóvil, pero con Forest Effects ahora podemos ampliar fácilmente el complemento para que esto sea posible.

Este efecto de estacionamiento de automóviles le permite utilizar una ranura en la parte superior o inferior del espacio de estacionamiento y los vehículos se desplazan automáticamente a lo largo de su longitud para caber en el espacio. Además, también aleatoriza la posición del coche a lo largo de su eje local y añade controles para que sea más fácil ajustar la probabilidad de espacios y elegir en qué lado del spline deben posicionarse los coches. También puede aleatorizar la dirección de los autos rotándolos 180 grados en lugar de voltear el auto, lo que eliminó cualquier problema de autos con volante a la izquierda y a la derecha y matrículas y logotipos reflejados. Para usarlo, configura los autos como se describe en el tutorial con el pivote en el centro del auto. Coloca los autos usando Editor de árbol > Herramientas de creación > A lo largo de un camino es normal y luego ajuste los siguientes parámetros:

  • Usar Cambio de lados mover todos los autos de un lado del camino al otro
  • Usar espacios vacíos para cambiar la probabilidad de espacios de estacionamiento vacíos
  • Usar aleatorizarParqueDirección para aleatorizar si los coches se aparcan primero con el capó del maletero en cada espacio.
  • Usar xOffsetInicio para establecer un valor mínimo de traducción X, en unidades de escena.
  • Usar xOffsetEnd para establecer un valor máximo de traducción X, en unidades de escena.
  • Usar YOffsetInicio para establecer un valor mínimo de traducción Y, en unidades de escena.
  • Usar YOffsetEnd para establecer un valor máximo de traducción Y, en unidades de escena.

Guión de efectos

real angle = fpItem.rotation.z;
fpItem.rotation.z =fpItem.rotation.z + if(randomInt(0,randomiseParkDirection)==1,degtorad(180),0);
real randomOffsetX = randomInt(xoffsetStart,xoffsetEnd);
real randomOffsetY = randomInt(YoffsetStart,YoffsetEnd);
vector position = [cos(angle)*(fpItem.collisionRadius+randomoffsetX), sin(angle)*(fpItem.collisionRadius+randomoffsetX),0];
position = position + [cos(angle-degtorad(90))*(randomOffsetY), sin(angle-degtorad(90))*(randomOffsetY),0];
fpItem.position = if(switchSides==0,fpItem.position+position, fpItem.position-position);
int spaceProbability = randomInt(1,100);
fpItem.visible = if(emptySpaces >= spaceProbability,0,1);

Puedes encontrar este efecto dentro del Biblioteca de Forest Effects .

Este efecto utiliza

Parámetros

  • YOffsetInicio

Tipo: Unidades de escena

  • YOffsetEnd

Tipo: Unidades de escena

  • YOffsetInicio

Tipo: Unidades de escena

  • YOffsetEnd

Tipo: Unidades de escena

  • Cambio de lados

Tipo: Int (0 está desactivado, 1 está activado)

  • espacios vacíos Tipo: Internacional
  • aleatorizarParqueDirección Tipo: Int (0 está desactivado, 1 está activado)

Atributos

  • posición.fpItem

Vector de posición del elemento fp individual.

  • fpItem.rotación.z

Rotación Z de un elemento individual.

  • fpItem.visible

Visibilidad del artículo individual

  • fpItem.collisionRadius

El radio de colisión del elemento. Medido como una esfera cuyo diámetro coincide con el tamaño de la dimensión más grande del objeto.

Funciones

  • randomInt

Devuelve un número entero aleatorio en el rango

a, b

  • degToRad(p)

Convierte grados a radianes.

  • porque(p)

Coseno de p (p expresado en radianes)

  • pecado(p)

Seno de p (p expresado en radianes)