Hola a todos,
un socio y yo estamos empezando un nuevo proyecto 2D y nos hemos encontrado con un primer problema. Tenemos un mapa de 12800 px y necesitamos una cámara de 1242x2208 px, para que se muestre, aproximadamente, una sexta parte del mapa. Hemos cambiado los valores W y H del Normalized View Port Rect de la Main Camera a los valores deseados, pero no sabemos qué "Field of View" poner para que se respete el tamaño que necesitamos.
Cualquier sugerencia será bienvenida.
Gracias!
Y por qué usan FOV? ya que FOV funciona solo para perspectiva, no se si con 2D quieren proyección ortonormal o no(?).
Por código en la cámara tal vez os funcione
void Start() {
// resolución en pantalla completa
Screen.SetResolution (1242, 2208 , true);
}
Cita de: lightbug date=1521583784Y por qué usan FOV? ya que FOV funciona solo para perspectiva, no se si con 2D quieren proyección ortonormal o no(?).
Sinceramente, ni idea jajajaja. Es lo que vimos en las opciones de la cámara, pero luego con el tema del zoom de la cámara es un desastre y se nos descuadra. Nos gustaría tener todas las medidas perfectamente calculadas. Help!
el fov es para el angulo de apertura de la camara, no vas a poder cuadrar eso con la perspectiva xq unity ajusta el ancho segun el dispositivo... la mejor opcion es ortogonal, o usa pixel-perfect: https://blogs.unity3d.com/es/2015/06/19/pixel-perfect-2d/ (https://blogs.unity3d.com/es/2015/06/19/pixel-perfect-2d/)
pero tienes q hacerte a la idea de q hoy en dia las resoluciones varian mucho y no hay manera de ajustar un cuadrado a todas las pantallas y q se siga viendo cuadrado...
Cita de: muxacalma date=1521628413Sinceramente, ni idea jajajaja. Es lo que vimos en las opciones de la cámara, pero luego con el tema del zoom de la cámara es un desastre y se nos descuadra. Nos gustaría tener todas las medidas perfectamente calculadas. Help!
y pero no se dieron cuenta que tocando el Fov no cambiaba nada? a que llamás zoom? al size?
el concepto de Zoom, position.z y/o FOV no existen en 2D, 2D en Unity es ortogonal (proyección), la razón por la que tampoco te digo perspectiva es porque supongo que usas sprites, y los sprites responden raro si ponés uno cerca del otro (hablando de z) y los visualizas en los bordes de la camara (donde mayor angulo existe), por eso supongo 2D en Unity = sprites + ortonormal, si querés profundidad podés mezclar ortonormal (la camara del gameplay), con una o dos camaras más en perspectiva (background y foreground, con objetos cuidadosamente colocados, generalmente bien separados) para tener un parallax "verdadero" (y no el fake que se da en todo tutorial de youtube). Y si querés 2D quizás moderno quizás pasarte a "full 3D de costado con físicas 2D o 3D" es una posibilidad, que incluso tiene varias ventajas (hablando de lo visual).
Volviendo, lo que tenés que configurar es proyeccion = ortonormal y size = (unidades en vertical) / 2 , este size debería ser de x unidades, correspondientes a la mitad del alto --> 2208 px / 2 = 1104 px, ya que size entiende de unidades y no de pixels
acá es donde la cosa influye, de cuanto es el ppu de tus sprites (ya que acá tenés que pasar de unidades a pixels), cuantos pxs representan una unidad? si tenés 64 px de ppu entonces tu size deberá ser de aprox. 17.25 unidades , si fuera de 128px deberá ser de 8.625 unidades ... y así .
Cita de: lightbug date=1521646976lo que tenés que configurar es proyeccion = ortonormal y size = (unidades en vertical) / 2 , este size debería ser de x unidades, correspondientes a la mitad del alto --> 2208 px / 2 = 1104 px, ya que size entiende de unidades y no de pixels acá es donde la cosa influye, de cuanto es el ppu de tus sprites (ya que acá tenés que pasar de unidades a pixels), cuantos pxs representan una unidad? si tenés 64 px de ppu entonces tu size deberá ser de aprox. 17.25 unidades , si fuera de 128px deberá ser de 8.625 unidades ... y así ...
es lo que dice @lightbug si es 2D deveria ser "ortho"
Genial! Probaremos todas estas cosas! Muchas gracias, simplemente leyendo vuestras respuestas nos damos cuenta de todo lo que nos queda por aprender. Partido a partido!
Un saludo, os daremos feedback del resultado.
Gracias!
Cita de: lightbug date=1521646976y pero no se dieron cuenta que tocando el Fov no cambiaba nada? a que llamás zoom? al size?
el concepto de Zoom, position.z y/o FOV no existen en 2D, 2D en Unity es ortogonal (proyección), la razón por la que tampoco te digo perspectiva es porque supongo que usas sprites, y los sprites responden raro si ponés uno cerca del otro (hablando de z) y los visualizas en los bordes de la camara (donde mayor angulo existe), por eso supongo 2D en Unity = sprites + ortonormal, si querés profundidad podés mezclar ortonormal (la camara del gameplay), con una o dos camaras más en perspectiva (background y foreground, con objetos cuidadosamente colocados, generalmente bien separados) para tener un parallax "verdadero" (y no el fake que se da en todo tutorial de youtube). Y si querés 2D quizás moderno quizás pasarte a "full 3D de costado con físicas 2D o 3D" es una posibilidad, que incluso tiene varias ventajas (hablando de lo visual).
Volviendo, lo que tenés que configurar es proyeccion = ortonormal y size = (unidades en vertical) / 2 , este size debería ser de x unidades, correspondientes a la mitad del alto --> 2208 px / 2 = 1104 px, ya que size entiende de unidades y no de pixels acá es donde la cosa influye, de cuanto es el ppu de tus sprites (ya que acá tenés que pasar de unidades a pixels), cuantos pxs representan una unidad? si tenés 64 px de ppu entonces tu size deberá ser de aprox. 17.25 unidades , si fuera de 128px deberá ser de 8.625 unidades ... y así .
Hola! La clave era lo de PPU, que no sabíamos qué poner en el size.
Gracias a todos por las ganas de ayudar!
Un saludo y suerte en los proyectos.