Hacer nuestro propio gran videojuego. ¿Quién no ha soñado alguna vez con eso?, crear mundos míticos, dar vida a personajes legendarios, desarrollar historias asombrosas, y porque no, ver nuestros títulos en la lista de los mas vendidos de Steam, o de los mejores puntuados por IGN.
Hace tiempo que ando preparando esto, y por fin esta en condiciones de empezar a ser compartido: se trata de una serie (muy extensa) de post en los que les voy a enseñar a hacer sus propios videojuegos. Así es gente, una vez finalizado este "mini-curso", ustedes van a ser capaces de manejar con soltura a Unreal, uno de los motores mas importantes de la industria, desarrollado por Epic Games, y que le ha dado vida a las sagas BioShock, Mass Effect, Unreal Tournament y Gears of War, por nombrar algunas.
A base de varios posts, les voy a enseñar a utilizar las herramientas de uno de los motores mas importantes del mundo. En resumen, las "clases" y sus temas más relevantes serán:
1- Fundamentos: Conociendo el motor. Comandos básicos y avanzados. Interfaz de la aplicación e introducción al desarrollo.
2- Implementación: Importación básica, integración con otros programas y animación básica.
3- Iluminación: Fundamentos de la luz, atributos y canales. Luz dinámica y dominante. Fundamentos y configuración de la iluminación.
4- Sonido: Fundamentos y edición de sonido con UDK. Diseño de sonidos para ambientes y zonas. Sonido simple.
5- Gameplay: Desarrollo optimo de mapeados. Interactividad juego-jugador, modos de juego y diseño de mundos.
6- Efectos Visuales: Del render a la textura. 2D y 3D. Volumen, distancia y cámaras. Seteos. Componentes generales.
Como ven, se trata de un temario bastante extenso. Todo acompañado con capturas propias que edité yo mismo en Photoshop para marcar lo mas relevante según la necesidad. El curso va a ser bastante intensivo, y va a haber muchos posts (dependiendo de la cantidad de caracteres que pueda meter en cada uno).
Por supuesto, lo mínimo indispensable que vamos a necesitar es el Unreal SDK (o UDK). Si todavía no lo tienen, lo pueden bajar clickeando en la siguiente imagen.
Una vez que lo bajen, lo instalan (es realmente muy fácil), ya van a poder proseguir con el post, pero si planean hacerlo, tengan en cuanta que van a necesitar programas, recursos (económicos no, tranquilos), tiempo y paciencia. Si están dispuestos a esto, será un placer enseñarles. Suerte muchachos, acá empieza lo bueno
Empecemos por el principio. Los temas puntuales que vamos a ver durante los posts sobre Fundamentos van a ser:
Temario de Fundamentos dijo:1.0 SHORTCUTS Y COMANDOS
1.1 FLUJO DE TRABAJO GENERAL EN UDK
1.2 UI: INTERFAZ DE USUARIO EN UDK
1.3 NAVEGACIÓN DE VIEWPORTS
1.4 NAVEGACIÓN ALTERNATIVA
1.5 VIEWPORTS Y OPCIONES
1.6 MODOS DE VISORES UDK
1.7 FIND ACTORS
1.8 CONTENT BROWSER
2.0 MAIN TOOLBAR Y TOOLBOX
2.1 BSP & CSG
2.2 GEOMETRY MODE
2.3 Geometry Tool - Extrude
2.4 Geometry Modifiers Tool - Clip
2.5 Geometry Tool - Pen
2.6 Geometry Tool - Lathe
2.7 Geometry Tool – Active Modifiers
3.0 TERRAINS: TOOLS / MATERIAL LAYERS.
3.1 TERRAINS: FOLIAGE LAYER.
3.2 TERRAINS: DECO LAYERS.
3.3 CREACION DE UN NIVEL.
No se preocupen si no entienden muy bien, van a ver que se hace mas fácil de lo que piensan.
Antes que nada, ya habrán notado (si abrieron UDK por lo menos una vez) que esta en inglés. Se puede cambiar el idioma, pero calculo que chino simplificado, coreano o japones no van a ser mas fáciles de usar, así que ingles tendrá que ser. Dicho sea de paso, van a notar como muchas cosas que tranquilamente podrían estar traducidas, no lo están. Mas adelante van a entender esto.
Empecemos con las tecla rápidas y los atajos. No es necesario que lo aprendan ni lo entiendan ya mismo, pero me parece bueno que ya quede claro, así van a ser mas fáciles de encontrar cuando avancemos. Probablemente me este olvidando alguno, así que si me los acuerdo los voy a ir poniendo.
Modos de vista:
Click Izquierdo (sobre actor) | Selecciona actor
Doble Click Izquierdo o F4 (sobre actor) | Abre actor
Click Derecho | Abre el menú contextual
Shift + D o Ctrl + W | Duplica el objeto seleccionado
Todos los modos de vista (con objeto seleccionado):
Supr | Borrar objeto actual
Click Derecho (sin hacer hover a nada) | Deseleccionar objeto actual
Shift + arrastrar actor (sin mover el widget) | Mover
Barra espaciadora | Rota entre los widgets X-Y-Z estándar, Rotación y Escala Libre
Alt + arrastrar actor (moviendo el widget) | Duplica el actor seleccionado y lo mueve
Click Derecho (en los vértices de un pincel) | Cambia el pincel original por el seleccionado
Home | Alinea todas las cámaras al actor seleccionado
Shift + Home | Alinea solo la cámara seleccionada al actor
Ctrl + End | Devuelve el actor a la grilla
Ctrl + G | Select all other actors belonging to the same groups as the currently selected actors.
Alt + ▲, ►, ▼ o ◄ | Escala posiciones del(los) actor(es) seleccionado(s)
M | Pasa el nivel del actor seleccionado al actual
Ctrl + M | Mueve los actores seleccionados al nivel actual
Ctrl + K | Encuentra el actor seleccionado en Kismet.
Ctrl + Shift + A | Selecciona todos los actores con las mismas características que el actor actual
Ctrl + B | Sincroniza el actor seleccionado actual con el explorador genérico
Escape | Deselecciona todo y cierra las ventanas de propiedades del actor que estén abiertas
Modos de edición:
Shift + 1 | Modo Cámara
Shift + 2 | Modo Geometría
Shift + 3 | Modo Terreno
Shift + 4 | Modo Texturas
Vistas ortogonales:
Click Izquierdo (en el borde de la BSP) | Slecciona un pincel BSP
Ctrl + Alt + Click Izq | Seleccionar Caja
Click Izquierdo o Derecho + Cualquier tecla | Mueve la cámara en la dirección del mouse
Click Medio + Cualquier tecla | Mide distancia en la unidad del juego
Click Derecho e izquierdo + Arriba/Abajo | Zoom in/out
Ctrl + Click Medio | Alienar todas las cámaras a la posición actual
Vistas ortogonales (con objeto seleccionado):
Ctrl + Click Izquierdo + Cualquier tecla | Mueve el objeto seleccionado
Ctrl + Shift + Click Izquierdo + Cualquier tecla | Mueve el objeto seleccionado y la cámara
Ctrl + Click Derecho + Cualquier tecla | Rotación libre del objeto seleccionado
Vistas no-ortogonales:
Click Derecho + Cualquier tecla | Movimiento libre de cámara
Click Derecho e Izquierdo + Cualquier tecla | Mueve la cámara arriba y abajo (Z) o izquierda y derecha (X)
Click Izquierdo (en un pincel BSP) | Selecciona la superficie del pincel
Ctrl + Shift + Click Izquierdo (en un pincel BSP) | Selecciona un pincel BSP
Alt + Click Derecho (haciendo hover a la superficie deseada) | Copia la textura de la superficie al portapapeles de texturas
Alt + Click Izquierdo (haciendo hover a la superficie deseada) | Aplica textura a la superficie
Shift + Alt + Click Izquierdo (sobre la superficie deseada) | Aplica textura a múltiples superficies seleccionadas
Ctrl + Alt + Click Izquierdo (sobre la superficie deseada) | Aplica textura y la coordina
Con superficie de pincel seleccionada:
Shift + B | Selecciona todas las superficies de ese pincel
Shift + S | Selecciona todas las superficies en ese nivel
Shift + Q | Selecciona todas las superficies de ese pincel excepto la ya seleccionada
Shift + J | Selecciona todas las superficies de ajuste
Shift + W | Selecciona todas las superficies adyacentes
Shift + T | Selecciona todas las superficies con la misma textura
Shift + N | Deselecciona todas las superficies
Modo Render:
Alt + 1 | Modo Render de pincel wireframe
Alt + 2 | Modo Render wireframe
Alt + 3 | Modo Render sin iluminación
Alt + 4 | Modo Render con iluminación
Alt + 5 | Modo Render solo reflejo
Alt + 6 | Modo Render reflejo complejo
Específicos de construcción:
Ctrl + A | Añadir pincel
Ctrl + S | Sustraer pincel
Ctrl + I | Insertar pincel
Ctrl + D | Desinsectar pincel
Archivo de cámara:
Ctrl + número | Archiva la actual posición de la cámara
number | Mueve la cámara a la posición archivada
Herramientas de cámara de Maya:
Click Izquierdo + Cualquier tecla | Orbitar al rededor del actor actual
Click Medio + Cualquier tecla | Paneo
Click Derecho + Abajo | Zoom out
Click Derecho + Arriba | Zoom in
Shortcuts Avanzados:
B | Activar/Desactivar el pincel de construcción
C | Activar/Desactivar los cilindros de colisión
D | Activar/Desactivar vista en tiempo real
F | Activar/Desactivar niebla
G | Activar/Desactivar "vista en juego"
H | Activar/Desactivar modo "Mostrar solo BSP y reflejo"
K | Activar/Desactivar referencias de kismet
L + Click Izquierdo | Ubicar luz de actor en ubicación determinada
N | Activar/Desactivar nodos de navegación
O | Activar/Desactivar volumen
Q | Activar/Desactivar BSP
R | Activar/Desactivar visualizador de radio de audio y luz
T | Activar/Desactivar terreno
Ctrl + P | Copia los polígonos seleccionados al pincel de construcción
Shift + A | Selecciona todo
F4 | Ver propiedades del actor
F5 | Ver propiedades de la superficie
Rueda del mouse | Zoom in/out en la vista seleccionada
Ahora hablaremos de los comandos. Para abrir la consola e insertar los comandos, debemos estar en la ventana GamePlay y presionar TAB. Esto permite activar varias cosas muy útiles cosas, como ponernos todas las armas, activar bots, etc. Se pueden repetir los comandos presionando la tecla arriba y abajo.
Jugador con súper poderes:
god
allweapons
allammo
Cargar todas las Armas/Municiones:
fly
ghost
walk
playersonly (Detiene el gameplay, pero te podes seguir moviendo en la escena)
Comando de Bots
addbots
killbots
Viewmodes:
viewmode lit
viewmode unlit
viewmode wireframe
viewmode lightingonly
viewmode lightcomplexity
viewmode texturedensity
viewmode shadercomplexity
viewmode (Restaurar valores)
Performance/reporte del "framerate":
stat fps
stat scenerendering
stat memory
stat engine
Mostrar Comandos
show collision
show bsp
show staticmeshes
show postprocess
show particles
show foliage
show rigidbody
Comandos de Pantalla y Camara:
behindview (Cambiara vista de 3ra persona).
setres (Método de valores “640x480”)
fov (Valores en grados, default es 90)
Otros Comandos:
shot (Tomar un screenshot)
slomo (1 es la velocidad normal, <1 es lento, >1 es rapido)
showhud
switchteam
exit
quit
Lo que van a ver en este cuadrito que arme es un esquema aproximado de como se trabaja con Unreal en relación a otros programas que también necesitaremos mas adelante.
La Interfaz Gráfica o UI (del ingés User Interface) es la forma que el programa tiene para interactuar con nosotros. Es la forma en que se organiza el espacio de trabajo y de que manera se puede adaptar dependiendo de lo que necesitemos.
Lo bueno de Unreal es que incluye una mesa de trabajo realmente muy flexible. Para cambiarla, basta con presionar en , o bien buscar seguir la ruta View > Viewport Configuration que nos llevará es esto:
Ahí podremos optar por la mesa de trabajo que mas nos guste: 4 cuartos; 1 mitad, 2 cuartos; 2 mitades horizontales o 2 mitades verticales.
La navegación es un elemento fundamental en Unreal, es lo que nos permite tener una visión total de nuestro trabajo. Sin embargo, cuestas acomodarse a ella al principio.
Para no perderse, hay que recordar que los comandos básicos pueden ser asociados de manera simple:
CLICK IZQUIERDO: Desplazamiento sobre la escena (atrás y adelante).
SCROLL CENTRAL: Acercamiento y alejamiento (Zoom In/Out).
CLICK DERECHO: Rotar la vista de la cámara (solo en vista de perspectiva o cámaras).
CLICK IZQUIERDO + DERECHO: Panear sobre la escena (arriba, abajo, izquierda y derecha).
Podemos controlar la velocidad de desplazamiento de los visores usando la herramienta "Camera Movement Speed", que expresado de forma matemática seria algo mas o menos así:
Los "Modos de navegación alternativa en los visores" son lo mismo que "Lighting Only", pero este muestra una textura mapeada en todos los objetos que también mostrara un grid que mapea todos.
Tecla 1: Zoom Out.
Tecla 3: Zoom In.
Tecla 2/Flecha Abajo: Desplazar Atrás.
Tecla 4/Flecha Izquierda: Desplazar Izquierda.
Tecla 6/Flecha Derecha: Desplazar Derecha.
Tecla 8/Flecha Arriba: Desplazar Adelante.
Tecla 7: Desplazar Abajo.
Tecla 9: Desplazar Arriba.
Podemos navegar sobre objetos seleccionados en el visor al estilo Autodesk Maya, con solo presionar la tecla “L” al momento de estar seleccionando un objeto en UDK.
L+ Clic Izquierdo: Rotar alrededor del objeto.
L+ Clic Central: Panear sobre el objeto.
L+ Clic Derecho: Hacer acercamientos o alejamientos sobre el objeto.
Este menú () nos permite cambiar las propiedades u opciones de que podemos mostrar, ocultar grupos, mostrar en el visor modo de GamePlay o GameView, etc.
Pero no termina acá, porque todavía hay mas opciones para la visualización, que se pueden utilizar mediante este panel:
Game View: Permite mostrar desde el Viewport como se mostrara la escena, esto es que nos muestre post-process, fog, y cualquier efecto que tenga la escena, sin activar las animaciones de partículas, Shaders, etc.
También desactiva el pivote para manipular los objetos, ya que estas opciones no aparecen en el método de gameplay.
Shorcut: G
Lock Viewport: Este opción nos permite bloquear el visor que no queremos que se mueva si activamos la tecla de "Home/Inicio" lo cual esta tecla nos permite, que el objeto seleccionado al presionar esta tecla, los Viewports brinquen en la dirección donde se encuentre el objeto que tenemos seleccionado. Así de esta manera con el candado activado el visor ya no brincara a donde se encuentre el objeto.
Lock Selected Actor to Camera: Hay dos maneras de usar esta herramienta
1. Seleccionamos primero el objeto luego Activamos la opción en el “ojo” cuando mueva la cámara del visor navegando, el objeto automáticamente brincara hacia donde está la cámara y donde dejemos el visor desactivamos la opción y dejara ahí el objeto.
2. Activamos la opción en el “ojo” y luego seleccionamos un objeto, y lo que haremos es ver en donde estaba el objeto, y de ahí poder navegar en el visor y cuando desactivemos la opción, ahí dejara el objeto.
Lo que se hace es crear con el Builder Brush un volumen sobre el área de un nivel que se cargara externamente, pero al momento de tocar este volumen nos permite cargarlo o si salimos del volumen simplemente que descargue la escena (también conocido como ).
Lo que se hace es crear con el Builder Brush un volumen sobre el área que deseamos que afecte este, la ventaja del PostProcess, es de que podemos modificar desde el desenfoque de campo DOF, la saturación, los tonos altos, medios y sombras, así de esta manera podemos crear otro efecto cuando entramos a este volumen, como podría ser entrar al agua el efecto borroso, o algún campo de energía, etc.
Para que esto lo podamos ver en el visor necesitamos primero activar el "Game View Mode" y así activar el Post Process Previs, quedando así:
Las vista "View modes" son exclusivos de los estilos de Render. Un visor puedes solamente tener una sola vista activa con estos modos.
En el editor, la el "view mode" es seleccionando desde el panel de Modos en los iconos de las cajas en el "viewport's toolbar". En el modo de juego, los modos de vista se pueden cambiar por medio del panel de "viewmode command".
Brush Wireframe: Este modo muestra el wireframe de los actores y !CSG brushes". Los BSP wireframe están ocultos en este modo. Este modo solamente trabaja desde la vista del Editor.
Shorcut: Alt+1
Wireframe: Este modo muestra en modo de mallas todos los polígonos que tenemos en la escena.
Comando: viewmode wireframe. /// Shorcut: Alt+2
Unlit: Este modo nos muestra solamente las texturas o colores del Diffuse del material que usa cada mesh.
Comando: viewmode unlit /// Shorcut: Alt+3
Lit: Este modo nos muestra el material usado en cada mesh afectado por las luces.
Comando: viewmode lit /// Shorcut: Alt+4
Lighting Only / Textel Density: Este modo solamente muestra los meses con un material gris para ver como lo afectan las luces.
Comando: viewmode lightingonly /// Shorcut: Alt + 5 | Alt + 0
Light Complexity: Este método muestra los meshes con un color solido basado en el número de luces que afectan al mesh.
Comando: viewmode lightcomplexity /// Shorcut: Alt + 6
El mesh colorizado en el modo de viewmode lightcomplexity indica el número de luces que afectan al mesh que no son "skylights o lightmaps", de acuerdo con el siguiente esquema (definido en el archivo YourGameEngine.ini):
#Lights: Mesh Color
0: (R=0,G=0,B=0,A=1)
1: (R=0,G=255,B=0,A=1)
2: (R=63,G=191,B=0,A=1)
3: (R=127,G=127,B=0,A=1)
4: (R=191,G=63,B=0,A=1)
5: (R=255,G=0,B=0,A=1)
Así como lo ven, esta complejidad de luces es algo muy importante en la vista del Juego, como muchas luces dinámicas son creadas durante el GamePlay, ejemplo: Flashes, explosiones, etc.
Texture Density: Este modo de vista es usado para dos cosas:
1. Para checar si estamos gastando mucha resolución en superficies que realmente no importan mucho.
2. Para checar si tenemos texturas “High-res” puestas a un lado de texturas “Low-res”.
● Los parámetros del “threshold” bajos, medios y altos en la densidad son definidos en el archivo “BaseEngine.ini”
● Los parámetros son “MinTextureDensity” (default 0.0), IdealTextureDensity (default 13.0) y MaxTextureDensity (default 55.0).
Comando: viewmode texturedensity /// Shorcut: Alt + 8
La vista en el modo Shader complexity permite visualizar cuántas instrucciones son ejecutadas en el pixel Shaders en cada pixel. La totalidad de la complejidad es calculada como el número de instrucciones usadas en las instrucciones del "render emissive plus" para cada pase de luz, traslucido, distorsión y humo. Nota que no se cuenta la altura de humo, post process y otros pequeños efectos. La cuenta de la instrucción cumulativa es mapeada de verde brillante a verde oscuro, de rojo oscuro a rojo brillante por una instrucción cuenta 300. "QA built" tendrá un rango extendido de rosa que significa una instrucción que cuenta por 600, y el blanco se define como 900 instrucciones de Shaders. Materiales con máscaras también se representarán más precisos como en "QA built".
Al usar el "shader complexity" se debe tener en cuenta: Asegúrate de ver el Shader complexity en tu nivel en el editor y en del juego (PIE). Ya que te permitirá saber cuando el nivel está muy cargado de elementos, así como efectos de luces creadas, y que den como resultado un bajo performance.
Este modo de vista es solamente visible para PC con el soporte de la tarjeta de video con "shader model 3", y es compatible con lightmaps simples.
Comando: viewmode shadercomplexity. /// Shorcut: Alt + 7
Lightmap Density: Este modo muestra la densidad lightmap de objetos que se mapeado de texturas, la codificación de color es de acuerdo a la relación ideal / densidad máxima y la visualización de un "Grid" que se asigna "Lightmap Texels".
Comando: viewmode lightmapdensity. /// Shorcut: Alt + 7.
Lit Lightmap Density: Este modo de vista es el mismo como 'Lighting Only', pero este muestra una textura mapeada en todos los objetos que también mostrara un grid que mapea todos los lightmap texels.
Comando: viewmode litlightmapdensity. /// Shorcut: Alt + 0.
Este panel nos permite poder buscar rápidamente en todo un nivel los actores que tenemos insertados en la escena.
El Content Browser (o Navegador de Contenidos) es una herramienta mediante la cual podremos explorar de manera eficaz todos los contenidos (valga la redundancia) que podremos utilizar para nuestro juego.
Cuando entren, podrán distinguir 3 partes importantes del Navegador:
Tag: Un “tag” es una etiqueta que se le agrega a los Asset. Así es más rápido encontrar Assets con las mismas etiquetas.
My Collections: Una colección donde están los Assets. Mientras que la información de cada asset reside en un archivo empaquetado, un asset puede residir en cualquier número de colecciones. "My Collections" son privados; esto es, que son visibles solamente para uno mismo.
Shared Collections: Shared Collections difiere de la colección Privada en el cual estos son visibles para todos en el equipo.
Seleccione una fuente de archivo en el panel de ASSETS. Estos son paquetes que contienen múltiples tipos de archivos, desde animación, meses, materiales, etc.
Para agregar más "Assets" a la colección simplemente con arrastrarlos desde la vista de "Asset View" en el paquete de colección que deseamos.
Para remover un Asset de la colección selecciona la colección, click derecho en el asset y seleccionamos "Remove from Collection".
Para crear un Nuevo Asset o importar, usamos los botones de "NEW" o "IMPORT".
Una vez que seleccionaste una o más "fuentes", podrás usar el Filter Panel para poder buscar y seleccionar que tipo de filtros quieres aplicar para la búsqueda.
Este panel nos permite cambiar el método de visualización de todas las fuentes, desde textos, iconos o combinados, así como cambiar el tamaño y el zoom de las mismas fuentes.
Vista en Lista de Detalles.
Vista de Detalles y Miniaturas (Horizontal).
Vista de Detalles y Miniaturas (Vertical).
Vista de Miniaturas.
Arrastras a Izq./Der. Para cambiar el nivel del Zoom.
Cambia el tamaño de las muestras.
También hay soporte para tener varias ventanas del Browser abiertas al mismo tiempo.
El Tags Pone nos permite ver los tags que ya aplicamos a asset o podemos removerlos. También podemos crear nuevos en "Create Tag" o destruirlo ya creados en "Destroy Tag".
Para agregar otro tag, seleccionamos uno o más assets y hacemos click en uno de las banderitas en el panel "All Tags". T Los tags aplicado a los aseets seleccionados aparecerán en "Applied Tags". Para remover los Tags haz click en el signo de "-" a un lado del nombre del Tag. En el panel de "Applied Tags". Los Tags están presentes en todos los Assets que seleccionamos y podemos saber por el símbolo que tienen aunque no en todos se ve este símbolo
Los Grupos de Tags sirven para organizarlos en grupos facilita el poder navegar y buscar de manera más rápida.
Estos grupos se muestran en el panel de Filtros también.
Como les dije, esto recién esta empezando, todavía no vimos nada en comparación con lo que les estoy preparando. Así que mejor estén atentos, porque la próxima clase va a llegar muy pronto...