Discusión:Desarrollo de Videojuegos con Unreal Engine
Federico Peinado (discusión) 23:22 5 ene 2015 (UTC):
- Para aquellos que vienen del mundo de Unreal Engine 3 o Unreal Development Kit: https://wiki.unrealengine.com/UE3_to_UE4_Transition_Guide
- Todo un esquema para organizar esta wiki, generado a base de resumir el mapa de la web de la documentación oficial:
GETTING STARTED (ST) ST: Descargar el código fuente ST: Instalar Unreal Engine ST: Vistazo rápido a los directorios ST: Especificaciones de software y hardware ST: Ejecutar el Unreal Engine
Manejar el editor de Unreal - Actores (y geometría... los brochazos/brochas de geometría son actores)
- Seleccionar actores - Colocar actores - Transformar actores - Movilidad de actores (estáticos, estacionarios o móviles) - Agrupar actores
- Cámara Explicar los tres tipos de rotación: GUIÑADA/YAW (ángulo de deriva en barcos y aviones) CABECEO/PITCH (ángulo de inclinación en barcos y aviones) ALABEO/ROLL (ángulo de escora en barcos, y de alabeo en aviones)
- Calcos o Calcomanías (decals) que se renderizan en diferido (para adornar la geometría)
- Efectos de niebla (niebla atmosférica, por ejemplo... no sé si incluye skybox)
- Tipos más habituales de actores
- Mallas estáticas - Brochas (de geometría) - Mallas esqueletales
- Volúmenes (bloqueantes, bloqueantes de cámara, disparadores, límites de mallas de navegación, de física, de daño, de muerte Z, de flujo de nivel, de descarte -culling-, de sonido, de posprocesado de imagen, de visibilidad, de importancia para Lightmass...)
- Salida del jugador - Puntos de objetivo - Disparadores (triggers... son lo mismo que los volúmenes?)
- Actores de matiné
- Luces (de punto, de foco -spot- y direccional)
- Emisor de partículas
- Sonido ambiente
- ...
- Guía rápida para manejar el editor (pensada para diseñadores)
(crear proyectos, navegar puertos de vista, crear un nuevo nivel, colocar actores allí, editarlos, hacer un build y más...)
El interfaz del editor de Unreal
- Ver clases
- Elegir color
- Editar curvas
- Cambiar preferencias del editor
- Selector de asset
- Personalización de capas
- Controles personalizados de teclas (entiendo que rápidas)
- Configuración del proyecto
- Matrix para editar muchas propiedades de muchos actores al mismo tiempo
- Source Control (el sistema para trabajar en remoto)
- Editor de niveles
- Configuración rápida - Barra principal de menú - Barra de herramientas del editor - Puertos de vista (ajustar viewports a actores, lo básico de los puertos de vista, picture-in-picture para ajustar con precisión la cámara, todas las showflags, todos los modos de vista, controles,opciones,herramientas del puerto de vista) - Modos del editor: - Colocar actores - Pintar mallas (los vértices) (con su overview, su guía de usuario, asset vs instancia, configurar brocha, color vs pesos de blend, setups del material para distintos blendings, pintar colores, pintar en mallas, elegir colores, compartir color, matchear color, modos de vista...) - Organizar los actores en capas https://docs.unrealengine.com/latest/INT/Engine/UI/LevelEditor/Layers/index.html - El scene outliner (con su interfaz y tal) - Panel de detalles - Interfaz de usuario del panel este de detalles - Personalizaciones: Ver jerarquía de clases, ver capas, ver materiales, ver mallas estáticcas, ver transformaciones - Propiedades: control de array, controles básicos, control de color, control de referencia de objeto, control de rotador - Simular y jugar - Actualizar propiedades de un actor tomándolos e la simulación - Jugar en el propio editor - Jugar en red (Me mola este videotutorial: https://www.youtube.com/watch?v=TbaOyvWfJE0&feature=youtu.be que además explica una forma rápida de hacer accesos directos para lanzar el server y lanzar el cliente) (también me mola el segundo y siguiente...) - Herramientas de rendimiento
- Sistemas y herramientas que están de alguna manera integradas o accesibles en el interfaz de usuario de Unreal Engine
Engine Basics
- Sistema de paquetes y de assets
- Sistemas de coordenadas
- Derived Data Cache (DDC), formato para guardar assets de una manera específica de UE4
- Estructura de directorios
- Unreal Game Projects, como manejar y crear plantillas
- ¡Toda una teoría sobre distribuciones numéricas en UE4!
- Redirectores de assets
- Tomar screenshots
- Colaboración (mediante Source Control, configurando bien Perforce o SVN... y parece ser que hay forma de usar Git/GitHub)
Rendering (todo lo que tiene que ver con luz/sombra, materiales y texturas, partículas y efectos, y post-procesamiento)
- Overview de todo lo que es el rendering
- Luz y sombra, con sus reflejos y todo
- lo básico de la luz, poner luces y tal - tipos de luces (direccional, de punto, de foco y de cielo) - guía rápida para temas de luz (crear proyecto, nivel, una habitación con una luz de punto, ajustar sus características, añadir una luz de foco, luego una direccional, luego cambiar el perfil de luz y tal) - Traslucencia - Sombras en general (una visión general) - Sombras dinámicas - cubemaps de ambiente - sistema para reflexiones de la luz en el entorno - funciones de luz (usando un material) - oclusión ambiental (simular cómo la luz se atenúa con la oclusión -sitios más cerrados-) - oclusión ambiental con distance field, para luces dinámicas - bump mapping hechos con shaders procedurales 3D - caché de iluminación indirecta - El sistema Lightmass de iluminación global (con sus cositas básicas) - Movilidad de la luz (estáticas, estacionarias y móviles) - Volúmenes de propagación de luz - Light shafts (son rayos de luz... https://docs.unrealengine.com/latest/INT/Engine/Rendering/LightingAndShadows/LightShafts/index.html
en muchos sitios se hace referencia a cierto efecto como God Rays, a veces combinado con partículas de polvo para animar un poco las escenas estáticas
- IES Light Profiles, unas curvas avanzadas
En cuanto a luz, hubo un trabajo muy significativo de Koola presentado en los foros de Unreal: https://forums.unrealengine.com/showthread.php?28163-ArchViz-Lighting que luego dió lugar a otras personas que intentaban reproducir cosas así, como lo de este post, bastante bien explicado: http://bluevoidstudios.com/lighting-and-post-processing-study-of-ue4/
H
- Materiales
- Conceptos básicos de materiales - Materiales por capas - Entras de material - Instancias de material (con su guía de usuario para el editor) - Propiedades de material (blend modes y hading models) - Colecciones de parámetros - materiales basados en física - UVs personalizados - Referencia del editor de materiales y cómo funciona su interfaz - Referencia de todas las "expresiones de materiales que hay" (las de atmósfera,de color, constantes, coordinadas, personalizadas, de profundidad, de fuentes, de funciones de material, de terrenos, de atributos de material, de matemáticas, de parámetros, de partículas, de texturas, utilidades, de vectores, de operación de vectores) - Funciones de materiales (crear funciones de materiales, editarlas, una vista general y una referencia completa: blends, gradientes, ajuste de imagen, matemáticas, mezcla, opacidad, partículas, pivot painter, procedurales, reflexiones, sombreados, texturizados, vectorops, worldpositionoffset) (cómo usar estas funciones de materiales) - Cómo usar el editor de materiales para... - Animar coordenadas UV - Usar el bump offset node - añadir texturas de detalle - usar el input de emisión - usar fresnel - crear y usar instancias de material - usar el nodo principal de material - hacer funciones de material - hacer parámetros de material - hacer texturas como máscaras del material - colocar expresiones de material y funciones - previsualizar y aplicar tus materiales - usar refracción - usar transparencia - usar materiales brillantes - usar un perfil de subsuperficie - usar scattering de subsuperficie - montar algo parecido a piel humana (https://docs.unrealengine.com/latest/INT/Engine/Rendering/Materials/HowTo/Human_Skin/index.html además recomiendan este enlace chulo, de un tal Jorge Jiménez: http://www.iryoku.com/stare-into-the-future - Lighting o Shading models (subsurface shading y subsurface profile shading)
- Sistemas de partículas
- Conceptos clave de la partículas - Guía de usuario de sistemas de partículas - Referencia del sistema de partículas (clases base: emisor, módulo y sistema) (módulos: aceleración, atractor, beam, cámara, colisión, color, evento, kill, lifetime, localización, órbita, orientación, parámetro, spawn, rotación, ratio de rotación, tamaño, default required y spawn, subUV, campo de vector, velocidad) (tipo de datos: beat, GPUSprites, mesh, ribbon) - La referencia del editor Cascade - Luces en partículas - Vector fields y GPU Sprites - LOD (level of detail) de los sistemas de partículas - Optimización de estos sistemas de partículas VFX (equilibrando lo visual con el rendimiento, conceptos básicos de optimizacion, obteniendo resultados, dividiendo la pantalla)
- Efectos de post-procesado (entiendo que son cosas que haces sobre los fotogramas, una vez renderizados, pero antes de mostrarlos)
- antialiasing - adaptación del ojo - bloom - gradiente de color - profundidad de campo - lens flare - Meter pasos de pos-procesado en el propio editor de materiales (con un ejemplo) - scene fringe (aberraciones cromáticas que pasan en cámaras reales) - screen space reflection (cambiar reflexiones) - efecto viñeta (bordes oscuros)
Gestión de contenidos
- El Starter Content Pack, que está chulo
- Guía para ponerse en marcha los artistas (con sus pasos y tal)
- Crear assets
- Usar el explorador de contenido
- Como funciona el interfaz del explorador de contenidos - Visor de referencias - Herramienta para listar árboles de referencias de assets en una serie de objetos - Herramienta para reemplazar referencias de assets - Guía de uso - trabajar con assets - manejar el panel de sources - colecciones - directorios de desarrolladores - filtros - directorios - migrar assets
- SpeedTree para hacer árboles
(cómo se crean modelos, o importan, o se trabaja con ellos o se calculan cordenadas UV de luces y tal)
- Tipos de contenidos
- Mallas esqueletales (tienen una cosa llamada sockets) - Mallas estáticas (el editor, desenrrollar UVs para mapas de luces, LODs simplygon, morph targets...) - Texturas (propiedades de texturas, texturas compuestas, cómo importar texturas, cubemaps -la manera rudimentaria de hacer skyboxes- y cómo trabajar con ellos, mapas de normales, streaming de texturas, soporte por hardware)
- Estándar para trabajar con contenido externo, FBX y otros ficheros: https://docs.unrealengine.com/latest/INT/Engine/Content/ContentStandards/index.html - FBX para mallas, animaciones, materiales y texturas
- mejores prácticas - animación - opciones de importación - pipeline de materiales - morph target pipeline (modificaciones de mallas, por ejemplo un gesto facial... que luego en Unreal podrás usar como una Secuencia Animada) - ver FBX con QuickTime - pipeline de mallas estáticas - pipeline de mallas esqueletales
- Herramientas de gestión de contenidos
- Animación y rigging para Maya - PivotPainter, para animaciones interactivas - Conjunto de blueprints para convertir un render en cualquier momento a TEXTURA (configurar esta herramienta, material de tiling, material de una malla estática, 3D imposters -impostores?-, mapa de profundidad, animación flipbook...)
Animación
- Animación de mallas esqueletales (deformas mallas en función de información de animación por keyframes)
(Componer animaciones, hacer blending de animaciones -blend nodes o blend spaces para blendings más complejos-, montajes, etc. con sus nodos de animaciones, etc.) Secuencias de animación Grupos de sincronización de animaciones Máquinas de estados, para poder dividir en trozos animaciones esqueletales. PERSONA: sistema para hacer esquemas/blueprints de animación que crean y controlan complejas animaciones IK (INVERSE KINEMATIC) Cinemática inversa para colisionar pies o manos dinámicamente en función de las colisiones Animación basada en física para hacer ragdolls y tal Montar un personaje animado: https://docs.unrealengine.com/latest/INT/Engine/Animation/CharacterSetupOverview/index.html Mixamo ofrece 15 personajes que están muy bien, aquí viene como usarlos: https://docs.unrealengine.com/latest/INT/Engine/Animation/UsingMixamoContent/index.html
Audio - Sistema de audio, audio ambiental, atenuación con la distancia - Entradas de audio (Sound Cues), con el editor para combinar nodos y tal
Niveles
Streaming de niveles - Cómo componer mundos grandes conectando unos niveles con otros
Cinemáticas (con el sistema Matiné, vale para cosas dinámicas o cinemáticas no interactivas) - Referencia del editor - Todos los tipos de pistas/tracks que hay - Guía de usuario
(cómo modificar las propiedades de blueprints desde el matiné)
- Cómo: abrir una puerta, montar ascensores, usar varias cámaras, usar efectos de cámara, ajustar luces, animar materiales, ejecutar animaciones y sonidos, disparar eventos y cambiar la visibilidad
GAMEPLAY (GP) Overview
GP: Terminología Unreal, proyectos y gameplay
Guionización visual (Visual Scripting) con esquemas/blueprints.
- Introducción a los blueprints / Overview a los blueprints
- Glosario de los blueprints
- Comunicación entre blueprints
(con event dispatchers/castings, binding de events al crear, comunicarse con HUDs, comunicarse con múltiples blueprints...)
- Referencia del editor de esquemas
- modos de edición - editar componentes - editar el grafo
- El editor de esquemas cambia su interfaz según estemos editando un:
- esquema de clase - esquema sólo de datos - esquema de interfaz - esquema de nivel - esquema de macro-librería (se pueden usar como nodos en otros blueprints)
- El editor de esquemas tiene una serie de componentes:
- resultados de compilación - panel de depuración - panel de detalles - editor de grafos - el puerto de vista - barra de opciones, con sus opciones... - menú - mi blueprint (que es como un resumen de todo lo que contiene el blueprint) - paleta donde encontrar todas las variables y funciones que podemos usar...
- Guía de uso
- Grafo de eventos, y eventos - Flujo de control - Funciones y llamadas a funciones - Grafos - Macros - Variables - Nodos - Nodos de expresiones matemáticas - Nodos de sesión online - Arrays y sus nodos - Generación de números aleatorios - comunicación directa entre blueprints (pasar de interfaces a funciones) - Insistir en lo de más formas de comunicación: https://docs.unrealengine.com/latest/INT/Engine/Blueprints/UserGuide/BlueprintCommsUsage/index.html - Los event dispathcers, y lo de binding tiene chicha - Casting - Componentes - Comentarios contenedores - Constructions Script - Tipos de blueprints. Los que dijimos de: - blueprints de clase - blueprints de interfaz - blueprint de nivel - blueprint macro-biblioteca - Depurar blueprints - Timelines (superútil para lo que es hacer animaciones y tal) (nodos en el timeline, luces que fliquean, puertas que se abren, curvas y los keypoints, ...) - HOJA DE COMANDOS BÁSICOS: https://docs.unrealengine.com/latest/INT/Engine/Blueprints/UserGuide/CheatSheet/index.html
- Cómo...
- hacer un uso básico - colocar nodos - conectar nodos - navegar por el grafo - colapsar grafos - set y get de referencias a actores - crear funciones - trabajar con arrays
- Guía técnica de blueprints para programadores (son como un sistema avanzado de prefabs, puedes extender otro blueprint o extender una clase 'nativa' de C++ -una UClass, entiendo-)
- Cómo compilar código para que salgan blueprints, cómo exponer variables y cosas así de tu código C++ a los diseñadores en forma de blueprints, etc.
GP: Crear clases (con C++, con blueprints o con ambos)
GP: El framework de Gameplay de Unreal Engine
- Guía rápida, Cámara, controlador (y controlador de jugador), game mode, game state, pawn (y character)
(No es un tema del editor -sólo hablan de ello en GamePlay-, pero habrá que explicar los UIs: Slate es el armazón para crear GUIs, de hecho es como está hecho casi todo el Unreal Engine Se puede usar para interfaces in-game, pero para eso es mejor UMG) GP: Crear Interfaces y HUDs
Interfaces de usuario (creación mediante Unreal Motion Graphics... entiendo que esto es experimental, pero mejor forma que hacer interfaces en modo tradicional -primer libro de Shah-) - Guía rápida
(crear un proyeto, crear un esquema de widge, configurar variables del personaje, mostrarndo munición, salud y energía, barra de experiencias y un botón caliente...)
- Guía de usuario
(anchors para posicionar, animación, crear widgets, escalado por DPI, eventos, fuentes, binding de propiedades, slots, styling, blueprints de windge) (referencias de tipos de Widgets: menu anchor, named slot, wrap box)
- Cómo...
- Crear widgets 3D que puedes echar a la escena
GP: Unreal Motion Graphics
GP: Entradas
GP: How tos - Meter entrada en un actor (normal, y con esquemas) - Añadir componentes a un actor (normal y con esquemas) - Encontrar actores (normal y con esquemas) - Configurar el movimiento de un personaje (normal y con esquemas)
- Montar el personaje, gamemode y entrada, terminar el setup del personaje, crear blendspaces, blueprints de idle y caminar, crouch, jog, jump, y finalmente prone
- Referenciar actores (normal y con esquemas) - Respawn un jugador (normal y con actores) - Configurar un modo de juego (normal y con esquemas) - Configurar entradas -teclado, ratón, etc.- (normal y con esquemas) - Spawn/destroy un actor (normal y con esquemas) - Usar traceado por Raycast (normal y con esquemas) - Usar timers (normal y con esquemas) - Poseer pawns (normal y con esquemas) - Usar cámaras (normal y con esquemas)
Deployment (Implantación de juegos) - Empaquetamiento y cocinado (cooking) de juegos
- Ccoinar contenido - Lanzar a dispositivos (hay hasta un emulador de móviles) - El frontend de Unreal
MediaFramework, un sistema en C++ para ejecutar videos, música, etc. (distinto del MoviePlayer que se usa al arrancar para mostrar un video inicial)
Paper2D, sistema para hacer flipbooks y animación por sprites tradicional
- Referencia para hacer flipbooks
- Referencia para hacer sprites animados
GP: Almacenamiento externo de datos
GP: Salvar el juego - Con esquemas o con C++
Inteligencia artificial - Árboles de comportamiento (servicios, tareas, decoradores...) GP: INTELIGENCIA ARTIFICIAL (básicamente árboles de comportamiento, con su guía rápida, y navemesh)
GP: Red y multijugador
- Replicación
- Replicación de componentes - Replicación de arrays dinámicos - RPCs
GP: How tos (bueno, lo estoy repitiendo, estoy de los GP How tos ya salió antes): - Temas de red:
- Replicar actores (normal y con esquemas) - Replicar funciones (normal y con esquemas) - Replicar variables (normalí y con esquemas) - Probar el multijugador
GP: Localización (traducción del juego y tal)
- Vista general, configurar, commandlets...
GP: In-game analytics (con sus plugin de blueprints) ... también leí que hay hasta plugins para enchufarse a Steam
Simulación física (incluye vehículos)
- Cuerpos físicos
- Colisiones y sus posibles respuestas, tratando mallas estáticas
- Restriccioens físicas (su referencia, con sus componentes, guía de uso... y cómo se hace damping o resistencia al movimiento físico)
- Materiales físicos (con su referencia, su guía de usuario)
- APEX para hacer destruibles, con sus tipos
- Destruibles
- Matriz de propiedades
- PhAT para meter mallas esqueletales con física
(con su referencia, guía de uso, referencia de todas las propiedades que hay...)
- Se puede activar el substepping, para una física más precisa paso a paso... - Vehículos
- Guía de usuario de vehículo: https://docs.unrealengine.com/latest/INT/Engine/Physics/Vehicles/VehicleUserGuide/index.html - Ruedas simuladas vs sistemas de suspensión más realistas - Setup de arte del vehículo
- Pendientes caminables (según el ángulo, lo puedes ajustar) Para gameplay este está bien: https://www.unrealengine.com/blog/new-training-video-blueprint-time-attack
Terreno, para exteriores
- Crear terrenos
- Usando capas y mapas de alturas
- Editar terrenos (brochas, gizmos, splines, modo gestión, modo pintar, modo esculpir)
- Materiales
- Guía rápida para:
- Manejar las herramientas - Crear un nuevo terreno - Esculpirlo - Crear materiales de terreno - Pintar con esos materiales - Consejos y trucos
- Guía técnica de terrenos - Referencia del interfaz del editor de terrenos
Vegetación, yo lo pondría junto con el terreno
Rendimiento y perfilado/profiling
- Ajustar el nivel de calidad del motor
- de CPU
- de GPU
- Guidelines para conseguir buen rendimiento/performance
- Usar el profiler
- Escalabilidad (referencia, según el desarrollador, etc.)
- Comandos para ver estadísticas
- Configuración del sistema
- Visualizadores de rendering
- Problemas de píxeles fuera de sus límites (y que fliquean o salen mal, etc.)
DESARROLLO ESPECÍFICO DE PLATAFORMAS - Ajustando perfiles específicos para el dispositivo
>> Consejos generales para móvil (incluyendo también sus temas de rendimiento y optimización... y el previewer que hay) >>>> Android >>>> iOS
>> HTML 5
>> Consejos generales para realidad virtual (con sus mejores prácticas y su hojita de referencia rápida) >>>> Oculus Rift (buenas prácticas, guía rápida...)
TENGO TODAVÍA QUE METER LO DEL PROGRAMMING GUIDE
Y LO DE LOS EJEMPLOS Y TAL
(hay algunos consejos muy buenos para hacer cinemáticas, en superejemplos -showcases- como este:
https://docs.unrealengine.com/latest/INT/Resources/Showcases/MatineeFightScene/index.html#matineetipsandtricks )