Animal Crossing tiene una forma única de desplazarse por el mapa del mundo: cuando el personaje se mueve hacia abajo, el mundo gira y gira en la parte superior, como si estuviera pegado a un tubo de cartón:
Este video muestra cómo se mueve.
¿Cómo puedo crear este efecto?
Respuestas:
Estaba experimentando un poco después de jugar Deathspank, que tiene un efecto similar. Aunque nunca profundicé lo suficiente como para ver si podría ajustarse para que funcione súper bien, una posibilidad es simplemente modificar elementos en su sombreador de vértices en función de la profundidad. Una función de mapeo cos (profundidad) a una modificación del eje Y funciona. Puede ajustarlo de modo que el mundo no solo se caiga en la distancia, sino también si está más cerca de cierta profundidad, haciendo que el mundo se sienta especialmente redondo. Puede hacer lo mismo para el valor del eje X para que parezca más esférico. No estoy seguro si así es como realmente lo hacen estos juegos; mis experimentos dieron resultados insatisfactorios, pero no jugué mucho con las proporciones, por lo que puede haber sido tan simple como cambiar la tasa de caída para mejorarla.
fuente
Parece que solo está tomando un "mundo plano" y mapeado en coordenadas cilíndricas . Esencialmente envolviendo el mundo en un cilindro. Hice algo similar con un mundo plano, pero lo envolví en una esfera:
La forma en que lo hice para una esfera es similar a la forma en que lo haría para un cilindro. Elija un radio adecuado (ρ o "rho" en coordenadas cilíndricas) para su mundo. Para cada vértice, tome las coordenadas XZ de su mundo (suponiendo que Y es la altura), luego encubra las coordenadas cilíndricas usando XZ y el radio más Y. Si no agrega la Y, obtendrá un cilindro plano. Luego vuelve a convertir las coordenadas cartesianas para dibujar en el juego.
fuente
Quieres pasar de un mundo plano a uno cilíndrico.
Una rotación alrededor del eje x (en coordenadas homogéneas) se ve así:
Dónde:
Para calcular el ángulo, mira la imagen. El pi / 2 se cancela y te quedan:
Además, mira la imagen. El ángulo del punto proyectado depende de la distancia horizontal desde el personaje, la distancia desde la esfera depende de la vertical.
asegúrese de seleccionar cosas que están en el horizonte, de lo contrario, el mundo entero se envolverá.
Descargo de responsabilidad: no he probado esto y no soy un experto en matemáticas, pero la respuesta es algo como esto. Alguien corríjame si me equivoco.
fuente