Vandal

Shadow Of The Colossus (PS2) - Cómo se hizo

sutalu
Lugar: Madrid · 21279 mensajes · Colección
PlayStation NetworkXbox LiveSteamEnviar mensajeAgregar amigoVer relación
#1  Enviado: 00:04 01/02/2018

Buenas a todos!

Hace ya bastante tiempo, allá por el 2006 (joder, que viejo soy ya jajajjaj), cuando salió Shadow Of The Colossus en PS2, hice la traducción (o más bien resumen/traducción) de un artículo en inglés, que a su vez era una traducción de un artículo japonés.

Éste es el PDF del artículo en inglés. Hay un MONTÓN de imágenes. Podéis irlas viendo a la vez que vais viendo la traducción.

www.froyok.fr/documents/making_of_sotc.pdf

Ahora que se avecina el lanzamiento del remaster/remake (llamadlo como prefiráis Smilie) de Shadow Of The Colossus en PS4, creo que puede ser interesante saber cómo se hizo la versión de PS2, qué retos tuvieron, y qué soluciones ingeniosas aplicaron.

Sin más, aquí tenéis los secretos de la obra de ingeniería que parieron en PS2 Sonrisa

***** Comentarios preeliminares *****

- Ueda:

"El trabajo de SOTC se ha ido haciendo poco a poco, y cuando finalmente se une todo, parece completamente natural".

- Sugiyama:

"He trabajado mucho para que el juego parezca natural a nuestros ojos. No estoy seguro de haberlo conseguido, pero es difícil de decir, pues no son dibujos animados".

- Seki:

"En lugar de ser los programadores quienes pusieran los límites, o decir cómo debían ser las cosas, fueron los diseñadores quienes hicieron volar su imaginación, y los programadores hicieron todo lo posible por plasmarlo en el juego".

- Tanaka:

"Se tarda mucho tiempo en lograr manualmente las animaciones de los personajes. Se tienen que hacer paso a paso".

***** El renderizado HDR (High Dinamic Range: Alto Rango Dinámico - de luz -) y la exposición (de luz) dinámica (dynamic exposure), y el algoritmo de mapeado de tonos (tone mapping) *****

Por ejemplo, cuando estamos en el interior del santuario, la luz brillante se cuela entre las columnas, y el exterior se ve con mucha luz (el exterior y el interior tienen HDR distintos, es decir, rangos de luminosidad distinta). Al salir, unos breves segundos la luz del sol nos cegará, y posteriormente se irá balancenado (el TM - tone mapping - es parte del HDR, y consiste en hacer la transición entre distintas luminosidades).

En el mundo real hay una gran variación entre los brillos, desde los más cegadores del sol, hasta las penumbras más oscuras. En el videojuego usamos un rango muy parecido al real, mediante el HDR. Posteriormente se ajustan a la cámara.

Sin embargo, implementar un renderizado real de la luz con la técnica HDR consume muchos recursos, así que usamos un pseudo-HDR, que es lo que se usa en las actuales consolas. En las de la siguiente generación se podrá implementar perfectamente el HDR real.

El pseudo-HDR tiene como objetivo general difuminar las áreas sobre-expuestas a la luz. Nuestra implementación del pseudo-HDR incluye además la exposición y simulación de la pupila, según el brillo de la luz que nos rodee. Esto usualmente no se hace. Es más, también se tendrá en cuenta el escenario donde nos encontremos.

***** Detrás del renderizado pseudo-HDR en Shadow Of The Colossus *****

En el SOTC, el escenario se divide en "cajas". Cada una de estas cajas tiene su propia configuración de luz (su HDR particular, es decir, más luz o menos luz según la parte del escenario).

Primero se hace un renderizado preeliminar. Luego, según el efecto que haya para el escenario en el que estemos (la "caja" en la que estemos), simplemente se aplica ese efecto, es decir, no es lo mismo estar en un interior, que en la selva, o que en el desierto... Cada uno de estos escenarios tiene su propia configuración de luz.

Por otro lado, ¿cómo hacemos los cambios de luz?, es decir, pasar de un sitio oscuro (el santuario) a uno iluminado (el exterior); o viceversa, ya que no es un cambio instantáneo, sino gradual. Pues lo que se hace es eso, hacer un cambio gradual, aunque en principio es instantáneo, ya que se pasa de una "caja" a otra instantáneamente, y cada una tiene su propia configuración de luz. Lo que se hizo pues fue un cambio gradual "a mano" (el tone mapping), consiguiendo al fin ese efecto natural y gradual. Eso llevo mucho tiempo, pues el mundo del SOTC es muy grande.

***** Desenfoque de movimiento (motion Blur) - con efecto ¿afterglow? y la tasa de imágenes (frame rate) *****

En el SOTC, cuando la cámara se mueve rápidamente, el efecto de desdenfoque de movimiento ocurre.

Hay muchas formas de implementar este efecto, pero debido a la escasa memoria de la PS2, y la lenta velociad de acceso, hemos buscado un método bastante razonable.

Básicamente se hace lo siguiente: después de que el renderizado de un frame esté hecho (es decir, se dibuje toda una pantalla del juego), se ajusta el frame actual según la velocidad de la cámara, y luego simplemente se acumulan estas imágenes renderizadas (se "juntan" las imágenes, y se van moviendo, pareciendo que existe el efecto de desenfoque).

Además, este efecto de desenfoque sólo se aplica al fondo. Si se aplicara también al personaje, éste aparecería demasiado desenfocado. Por ello, también hay otro filtro de desenfoque aplicado al personaje, ya que el personaje se podría mover rápidamente sin necesidad de que se moviera el fondo, por ejemplo, corriendo rápidamente, o blandiendo la espada, y en estos casos sólo se desenfocaría el personaje y no el fondo. Y en el caso de que se movieran los dos (personaje y fondo) respecto la cámara, se aplicarían ambos filtros, sobre el fondo, y sobre el personaje.

Cuando el personaje está agarrado a los colosos, y éstos se sacuden, la cámara se mueve rápidamente desde el cielo hacia la tierra, y sin embargo el brillo del cielo permanece fuertemente visible. En estos casos, cuando el punto de vista se mueve severamente, ocurre un efecto similar al desenfocado, que es parecido a cuando el ojo humano ve un punto brillante, y al rato percibimos como deja una estela; es decir, esto se consigue retardando el cambio de brillo con el efecto de desenfocado y el pseudo-HDR, y la imagen permanece. Sería algo así como decir: "Si el movimiento es excesivo, mantén la cámara fija".

En el SOTC la tasa de frames puede incrementar y decrementar salvajemente (desde los 60fps hasta los 15fps), por ello hemos diseñado el juego con una tasa de frames variable, autoajustándose según la situación. Para disimular las bajadas de frames, se aplica el efecto de desenfoque, con lo que la sensación de la bajada de frame no se aprecia tanto.

***** Generando sombras mediante las técnicas de volumen de sombras con patrones y autosombreado *****

En el SOTC las sombras se generan mediante una técnica de patrones de sombras volumétricas (parecidas a las empleadas en DOOM 3), que además permite el autosombreado. Muy pocos juegos en la PS2 lo hacen, e incluso en el SOTC se va más allá.

El proceso es el siguiente: se proyecta el perfil de un objeto 3D según la dirección de la luz, formándose así un área. Luego, según la vista de la cámara, y otros valores del escenario, se decidirá que píxeles están encima o debajo de ese área formada (formándose así una sombra volumétrica, que se adapta a las superficies). Los resultados se guardan en un buffer (memoria auxiliar), que luego se usarán para el renderizado final.

La calidad de las sombras generadas con esta técnica es muy alta, ya que se dibujan más polígonos que los realmente necesarios. Esto complica las cosas cuando hay muchos objetos que proyectan sombras. Afortunadamente, en el SOTC, el juego se centra sólo en el protagonista, el caballo, y los colosos.

Sin embargo, cuando el protagonista genera sombras detalladas (zonas con mucha luz), se utiliza entonces un modelo con muchos menos polígonos, aunque conserva la misma forma, y un perfil muy parecido. El personaje principal ronda los 3.000 polígonos, y los colosos unos 18.000; sin embargo, los modelos usados para generar sombras en entornos con mucha luz, contienen muchos menos polígonos, cerca de un cuarto menos, así el personaje principal tendría 750 polígonos, y los colosos 4.500.

En las zonas con penumbra, donde generalmente se desarrollan los combates, las sombras están menos detalladas (y por tanto se puede incrementar el detalle del modelo), pero tampoco es necesario que estén lo estén más (las sombras), pues en la realidad las sombras en las penumbras se notan menos, y están más difusas. Además, a estas sombras de las penumbras se le aplica un filtro de desenfoque, y aunque físicamente esto no sea correcto, se consigue un efecto muy similar al real, obteniendo sombras suavizadas.

***** El pelo de los colosos usando el "perfilador de pelos" (fur shader) *****

Cuando jugamos al SOTC, algo que impresiona bastante es la pelambre de los colosos. Para darle "vida" se ha usado un "perfilador de pelos" (en inglés "fur shader"). En la XBOX y PC existen "perfiladores programables" (programmable shaders), es decir, se podrían usar dichos perfiladores, para hacer perfiladores personalizados, en este caso de los pelos. Sin embargo, en la PS2 no existen los perfinaldores programables, así que han tenido que implementarlos a mano.

El procedimiento ha sido el siguiente: los pelos (la pelambre en general) se han construido usando un sistema de multicapas. Estas capas se van extendiendo desde la raiz de los pelos, hasta niveles superiores, que se mueven con las sacudidas, se apartan a nuestro paso... Cuantas más capas se pongan, más realista parecerá, sin embargo, por las capacidades técnicas de la PS2 se han usado de 3 a 6 capas.

Esta técnica no sólo se ha usado para construir el pelo de los colosos. También se ha usado para la vegetación.

Por otro lado, esta implementación les dio por probarla en un sistema que sí admitía los "perfiladores programables", y además le metieron el efecto de relieve (normal mapping), y otro tipo de efectos de luz, y los resultados que obtuvieron fueron realmente realistas. Sin embargo, en la PS2 esto no se puede hacer directamente debido a las limitaciones de hardware. A pesar de ello, se han alcanzado los mismos resultados, sabiendo utilizar correctamente otros elementos de la PS2, y una correcta programación. De hecho, dicen que es de los puntos más fuertes del SOTC respecto a los gráficos.

***** Sistema LOD (Level Of Detail - Nivel De Detalle) y renderizado de paisajes *****

En el SOTC viajaremos por extensos escenarios. Es en estos momentos cuando se aplica el sistema de renderizado para paisajes, sin necesidad de recurrir al típico truco de colocar niebla.

Los paisajes se renderizan dividiéndose en 3 profundidades:

- El fondo se renderiza como una textura. Antes de convertirlos en texturas, se les baja la cantidad de los polígonos, de unas 30 a 100 veces.
- Los objetos a media distancia, la gran mayoría, se renderizan a baja resolución. Se manejan en unidades de 600 m2.
- Y cuando el personaje se acerca (a los objetos que estaban a media distancia), a cierta distancia, los modelos de baja resolución pasan a alta. Además, el escenario del primer plano, se maneja en unidades de 100 m2.

Combinando todo esto, los paisajes parecen muy naturales.

Los colosos sin embargo, aunque estén en la lejanía, debido a lo grandes e importantes que son algunos, se muestran en su mayor resolución, dando lo mismo la distancia.

Por otro lado, aunque no se aprecien cargas entre una zona y otra, sí que las hay, pero se procesan de fondo. Al principio, cuando llegamos a una nueva área, los nuevos datos se cargan, y los antiguos se "tiran". Cuando esto se repite mucho, la memoria se fragmenta. Esto es una mala gestión de la memoria. Sin embargo, en el SOTC, esos datos tirados se vuelven a recuperar de la memoria (y no del disco que es más lento) cuando volvemos a sitios en los que estuvimos antes, por lo que se gana en velociad, y no hay que estar continuamente cargando del disco, sino directamente de la memoria.

***** Las colisiones con los colosos y el sistema de deformación de colisiones (deforming collision system) ****

El sistema de deformación de colisiones funciona de la siguiente forma: el modelo de colisiones de los colosos, se ajusta exactamente al modelo de los colosos, y según se muevan estos, el modelo de colisiones variará, es decir, no es fijo; sino que se mueve acorde con el coloso, de ahí el nombre de "sistema de deformación de colisiones". Sin embargo, cuando el coloso interacciona con el entorno, el modelo de colisiones del coloso se ha considerado como una grande esfera. El modelo de colisiones del protagonista también se ha considerado como una esfera.

Debido a que es muy complejo calcular las detecciones de colisiones en tiempo real, estas se han simplificado para que puedan calcularse fácilmente en la PS2.

***** Control de movimiento sobre los colosos *****

En los juegos más simples de 3D, el movimiento de los personajes se realiza calculando la siguiente posición según la entrada del usuario (si ha pulsado izquierda, derecha...), y luego se aplica la animación. A veces esto provoca el conocido efecto "andando sobre la luna", que parece que floten, o que no posan los pies lo suficiente como para impulsarse.

Esto sin embargo en el SOTC no se lleva a cabo, más aún con los modelos tan grandes que hay. En el caso de los colosos, necesitamos que los pies se posen literalmente sobre el suelo para moverse. No basta con una simple animación.

Este proceso es bastante complejo, ya que entre otras cosas, se tiene que tener en cuenta la orografía del terreno. No todo es plano, hay obstáculos, desniveles... Es decir, los pies de los colosos, cuando se posen sobre el suelo, tendrán un ángulo de inclinación respecto de éste.

Además, para realizar el movimiento de los colosos, hay que tener en cuenta su IA, es decir, según decidan a dónde ir, se moverán en una dirección u otra, más rápido o más despacio, y por lo tanto los pasos pueden ser más cortos o más largos. Y esto se debe hacer en cada paso.

Y más aún. Alrededor de los colosos habrá unos sensores, que se activarán cuando el jugador pase por ellos, desencadenando una acción asociada. Por ejemplo, si estamos en el suelo a cierta distancia fijada del coloso, éste cojerá su mazo y nos atacará, o si estamos a sus espaldas, el coloso se dará la vuelta, o si estamos agarrados en su espalda, se agitará fuertemente.

***** El verdadero sentido de la realidad llega con la simulación de las físicas *****

En el SOTC intervienen distintas simulaciones físicas, pero la simulación del péndulo es la más importante (cuando estamos colgando de los pelos de los colosos).

La simulación del péndulo consiste, por una parte en la animación manual (de la que se encargan los diseñadores), y la física del péndulo (de la que se encargan los programadores). Es combinando estos dos mecancismos cuando se consigue el "resultado físico real". Si sólo hubiese animación manual, sin la adición del movimiento físico del péndulo, todo parecería muy robótico.

Esta combinación o adición de movimientos, de la animación manual, con las físicas programadas, también se aplica a otros elementos, como al cabalgar en nuestro caballo.

***** Las partículas de volumen falsas (fake volume particles) y la dispersión fasea de la luz (fake light scattering) con iluminación de alta calidad (high-quality illumination) *****

En el SOTC, las nubes de polvo y humo tienen gran realismo.

En otros juegos, estos efectos de nubes se consiguen creando una textura de la nube, y luego se dibujan un gran número de partículas usando polígonos a los que se le asocia la textura creada.

En el SOTC, estas nubes se crean realizando cálculos sobre la luz, es decir, usando la relación entre la dirección de la vista (no es lo mismo mirar una nube desde un lado que de otro), y las luces que afectan a las partículas (según la dirección en que incidan, la cantidad de luz...), consiguiendo que las texturas de las partículas aparezcan correctamente iluminadas. Esto hace que parezca realmente 3D (pues todo se calcula en tiempo real), pero no lo es, por ello llamamos a este efecto "partículas de humo falsas".

También se usa mucho en el juego el efecto de "dispersión falsa de la luz", y que lo llamamos como "perfilador mágico" (fairy shader). Este efecto funciona del siguiente modo: cuando la cámara enfoca a un punto de luz, y el personaje está entre medias (entre la cámara y el punto de luz), generamos un halo de luz alrededor del protagonista (parecido a los eclipses). Con esto se consigue un efecto especular anisotrópico sobre la imagen (menudo "palabro" Smilie).

Este mismo efecto (el fairy shader) también se aplica en sitios donde hay poca luz, consiguiendo así que el protagonista tenga mayor constraste (y se vea mejor) sobre el fondo oscuro.

***** Las maravillas visuales de ICO y Shadow Of The Colossus fueron el resultado final de muchas pruebas y errores *****

- Fumito Ueda:

"SOTC nos llevó producirlo cerca de unos 3 años. Con ICO fue algo entre efectos visuales fotorealisticos y los dibujos animados. Al principio del desarrollo fue difícil añadir cosas, como patrones volumétricos de sombras, luz ambiental... pero merecieron la pena los intentos y errores, y algunas veces llegabamos a gráficos fantásticos."

En el SOTC, muchos de los efectos aplicados (efectos de desenfoque, el efecto de los pelos, la adición de movimientos...) fueron diseñados antes de que comenzara la programación. Primero, Ueda hacía tests de los efectos en el LightWare (creo que es un programa de diseño en 3D), y luego se pasaban a un equipo para que los desarrollara y los programara.

Con ICO y el SOTC, su estilo visual único no se hizo sólo para hacer gala de la tecnología. Todo comienza por el diseño artístico, y se decide la apariencia visual, y todo se lleva a la vida con las grandes habilidades de los artistas diseñadores y programadores.

Estamos muy en contacto con los fans de SOTC, y ellos siempre se preguntan "¿por qué no se ha hecho para la PS3?". Es decir, si con ICO trasladamos su desarrollo de la PS a la PS2, ¿por qué no se ha hecho lo mismo con el SOTC?.

- Fumito Ueda contesta a la pregunta:

"Una vez comienza el interes por la siguiente generación, y comencemos a realizar la conversión a PS3, aparecerá otra consola, y esto nunca acabaría. Pero si incluso lo hiciéramos, nos llevaría de nuevo otros 3 años (aunque ya se llevasen unos 3 años en la anterior generación, pues habría que comenzar casi de cero)."

- Hajime Sugiyama también contesta:

"Fue bueno terminarlo en la PS2, pues hemos llegado muy cerca de los límites la potencia de la PS2".

La gente está pendiente de si habrá una secuela en la PS3 o no. El SOTC es un juego de gigantescas proporciones, que parece estar hecho para la PS3, pero...

- Fumito Ueda agrega (y finaliza el artículo):

"Muchos de los juegos actuales que manejan las colisiones entre dos simples objetos, como espadas contra espadas, parece normal. Pero con la siguiente generación de consolas, la gente ha visto lo que podría ser la interacción entre el jugador y los enormes colosos, y esperan que sea el estándar. No puedo decir nada concreto sobre nuestro siguiente proyecto (así que ya están planeando algo...), pero podría usar el mismo mecanismo de 'agarrarte y desarrollar una acción' del SOTC (cuando nos agarramos de los pelos de los colosos). Es posible que este concepto de juego se convierta en un estandar en la siguiente generación de consolas... así que esto parece una buena razón para completar el SOTC en la PS2 (supongo que lo dirá para que vayamos cogiendo práctica)".
SO: Windows 10 Pro (64bits) - CPU: Intel Core i7-4820K (3.70GHz) - RAM: 16GB - GPU: GeForce GTX 1080 Xtreme Gaming 8GB - HD(SO): Samsung SSD 840 EVO (250GB) - HD(Juegos): Samsung SSD 850 EVO (500GB) - MB: Gigabyte X79-UP4  ###  Juegos: NES (3), SNES (10), PS2 (60), PS3 (39 fisicos, 52 digitales), PS4 (13 físicos, 9 digitales), PC (7 físicos, 355 digitales)
sutalu
Lugar: Madrid · 21279 mensajes · Colección
PlayStation NetworkXbox LiveSteamEnviar mensajeAgregar amigoVer relación
#2  Enviado: 00:06 01/02/2018  Editado: 00:16 01/02/2018 (1 vez)

Y después de tanto texto, como recompensa por leerlo, un vídeo Smilie

Es el documental que se incluyó en la versión PS2 PAL. Eso sí, no es tan detallado como toda la parrafada de antes. Pero se dicen cosas interesantes también.

SO: Windows 10 Pro (64bits) - CPU: Intel Core i7-4820K (3.70GHz) - RAM: 16GB - GPU: GeForce GTX 1080 Xtreme Gaming 8GB - HD(SO): Samsung SSD 840 EVO (250GB) - HD(Juegos): Samsung SSD 850 EVO (500GB) - MB: Gigabyte X79-UP4  ###  Juegos: NES (3), SNES (10), PS2 (60), PS3 (39 fisicos, 52 digitales), PS4 (13 físicos, 9 digitales), PC (7 físicos, 355 digitales)
Este tema está inactivo y no se puede replicar más.
Buscar en el foro: En foro: Tipo:
Foro de Vandal
>
Flecha subir