En esta guía encontrarás información sobre cómo configurar una simulación de Chaos Flesh utilizando un recurso de estrella de mar proporcionado.
Configuración del archivo
Ejemplo de referencia de archivo
La siguiente información detalla dónde descargar los archivos de ejemplo y dónde colocarlos en tu proyecto.
Cómo crear un proyecto en blanco desde el iniciador
Para utilizar los archivos proporcionados, tienes que crear un proyecto de UE en blanco desde el iniciador.
Versión del editor
Asegúrate de que estás utilizando la versión 5.5.0-37670630+++UE5+Release-5.5 o una posterior.
Descarga de archivos
Descarga Fleshtutorials-ExampleContent.7z.
El archivo también contiene una carpeta FBX que se utiliza para la sección Proyecciones de rayos con límite de rig de esta guía.
Carpeta de contenido de ejemplo «Example Content»
Extrae el archivo zip Fleshtutorials-ExampleContent.7z. A continuación, mueve manualmente la carpeta ExampleContent extraída a tu directorio Content.
Si ya tienes una carpeta ExampleContent posiblemente siguiendo algunos ejemplos anteriores de Cloth, solo tienes que arrastrar la carpeta 5_5_ChaosFlesh desde el archivo zip a esa carpeta ExampleContent.
Cómo cargar los complementos
Primero tendrás que activar el complemento Chaos Flesh.
A continuación, carga los complementos ML Deformer Framework y ML Deformer Neural Morph Model.
Inicio de la estrella de mar
Configuración rápida
El sistema Flesh implementa una simulación elástica volumétrica utilizando una estructura de soporte tetraédrica. El solucionador evalúa los tetraedros y proporcionan fuerzas de apoyo que intentan preservar el volumen y evitar que la superficie del personaje se oculte por su propio peso. Este ejemplo describe cómo crear geometría tetraédrica a partir de una malla estática cerrada (un cubo simple) y, a continuación, simular el recurso dentro de Unreal Engine.
Importación de la estrella de mar
La simulación de Flesh requiere una malla tetraédrica creada a partir de geometrías de superficie. Este ejemplo describe cómo importar geometría desde archivos FBX y crear una malla tetraédrica de la estrella de mar utilizando nodos de flujo de datos.
Restricciones
Importación de recursos de Flesh y cinemática simple
Las restricciones cinemáticas permiten a los artistas controlar los vértices mediante animación. La cinemática se define en los vértices del tetraedro. Cuando un vértice se define como cinemático, las propiedades de masa de ese vértice se definirán como masa infinita y no se simularán. Los vértices cinemáticos pueden utilizarse como condiciones de contorno para la dinámica, donde los vértices libres que están conectados a ellos serán conducidos por el movimiento de la cinemática. Este ejemplo describe cómo pintar y restringir cinemáticamente partículas para que permanezcan fijas en el espacio en relación con la posición del componente.
Transferencia de atributos de vértices
La malla tetraédrica puede sufrir cambios, y el progreso de pintura en la malla tetraédrica deja de ser válido tras cualquier cambio de topología. Este ejemplo muestra cómo pintar la malla esquelética y transferir atributos de vértices (atributo pintado y color) a la malla tetraédrica.
Restricción del esqueleto cinemático
También se pueden utilizar transformaciones de esqueletos para definir la cinemática. Un caso típico de uso consiste es añadir un componente de Flesh a un esqueleto. Cuando el componente de Flesh se coloca en el espacio local del esqueleto, los vértices de los tetraedros que se cruzan con el esqueleto (segmentos de línea padre-hijo) se restringirán cinemáticamente. Este ejemplo muestra cómo definir automáticamente vértices cinemáticos en el recurso estrella de mar en función de su esqueleto colocado.
Restricción cinemática animada
Cuando los vértices cinemáticos se limitan a un esqueleto animado, la geometría tetraédrica quedará sometida al movimiento del esqueleto. Este ejemplo muestra la configuración necesaria para dirigir una malla de Flesh desde una jerarquía de transformación animada.
Restricciones débiles
Los objetivos de posición o las restricciones débiles son otra forma de restringir la geometría a una posición objetivo. La diferencia entre restricciones débiles y restricciones cinemáticas es que las primeras tienen una rigidez que permite un ligero deslizamiento del objetivo real. Al introducir restricciones débiles en un entorno con restricciones excesivas, la simulación puede encontrar un estado razonable que pueda seguir siendo fluido y visiblemente aceptable. Este ejemplo muestra cómo vincular el recurso de Flesh a objetivos de articulaciones cinemáticas utilizando restricciones débiles.
Colisiones
Colisión del mundo
El solucionador tetraédrico se ejecuta independientemente del solucionador de mundos principal. De forma similar al solucionador de Chaos Cloth, cualquier colisión contra la geometría tetraédrica tendrá que añadirse durante la simulación. Esta demostración ilustrará cómo añadir cuerpos de colisión al inicio de la simulación utilizando un gestor de colisiones que se adjunta al solucionador de Flesh.
Transmisión de colisiones
Las colisiones contra la geometría del mundo se implementan actualmente mediante un sistema de transmisión. El solucionador tetraédrico puede responder a un conjunto limitado de tipos de colisiones que debe cargarse y liberarse en función de la proximidad a la simulación de tetraedros. Las colisiones contra el solucionador tetraédrico se implementan como colisiones basadas en vértices contra el volumen rígido del cuerpo, de modo que a medida que aumente la resolución del tetraedro, también lo hará el coste computacional de la respuesta a la colisión.
Actualmente el solucionador admite tipos convexos y algunos analíticos (esfera, cubo y plano), y la colisión es de un solo sentido, desde el cuerpo rígido hasta el tetraedro. Esto significa que el tetraedro no afectará al estado del cuerpo rígido y el cuerpo rígido es, efectivamente, una interacción cinemática de masa infinita. Normalmente, la posición y la velocidad del cuerpo rígido se calcularán en el solucionador de cuerpos rígidos principal, y Flesh solo reaccionará al movimiento de los cuerpos rígidos.
Recurso de Blueprint y deformador de mallas
Los recursos de Flesh pueden deformar mallas esqueléticas incrustadas. Utiliza el nodo GenerateSurfaceBindings del grafo de flujo de datos del recurso de Flesh para compilar los datos de correspondencia entre el renderizado de superficie de una malla esquelética y una malla tetraédrica. A continuación, utiliza el nodo DG_FleshDeformer en la malla esquelética para aplicar la deformación de la malla tetraédrica a la malla esquelética.
Si el deformador no parece funcionar, consulta el registro para obtener más información. Surge un posible problema si el actor tiene varios componentes de Flesh y hay que decirle al deformador qué recurso de Flesh debe reformar cada malla esquelética. La desambiguación se consigue configurando los parámetros opcionales TransformSelection o GeometryGroupGuids en el nodo GenerateSurfaceBindings. También hay que comprobar que el recurso de Flesh (resto de la colección) tenga vinculaciones con la malla esquelética derecha mediante GenerateSurfaceBindings. Por supuesto, si cambia la topología de la superficie de renderizado o de la malla tetraédrica, será necesario regenerar las vinculaciones. Se les aplicará skinning a los puntos de renderizado que no tengan vinculaciones. Si el deformador deja puntos atrás, o bien no tienen vinculación o se han enmascarado (lo que actualmente solo se hace si no hay vinculación, pero habrá un nodo de flujo de datos para enmascarar en el futuro).
Por atributo de partícula
Muchas de las propiedades de simulación utilizadas por el solucionador tetraédrico se basan en partículas. Por ejemplo, la masa puede variar a lo largo de la malla y se guardará en el vértice del tetraedro simulado. Esto puede permitir que una malla tetraédrica con uniformidad variable tenga una distribución uniforme de la masa en todo el volumen de la malla. La masa es solo un ejemplo de propiedad por partícula e ilustra cómo cada propiedad almacenada en la partícula puede configurarse dentro de la configuración del recurso. Esta demostración ilustrará el uso de campos para establecer propiedades por partícula en el tetraedro.
Generar y destruir en Blueprint
El recurso de Flesh también puede aparecer durante las operaciones de Blueprint. El actor de Blueprint funcionará de forma similar al actor de malla esquelética, en el que se crea un componente de Flesh y se asocia a un recurso de Flesh. Los nodos de actor de Blueprint Spawn y Destroy pueden utilizarse para añadir y eliminar dinámicamente actores de Blueprint de la simulación.
Resultados de la simulación de muestreo
Mientras la pantalla de renderizado del componente de Flesh muestra el resultado de toda la simulación tetraédrica, a veces puede ser útil mostrar solo un subconjunto de las deformaciones de la simulación. Por ejemplo, el renderizado de la compensación de la posición en el mundo (WPO, por sus siglas en inglés) de la malla de Nanite en la demostración de Electric Dreams se implementó muestreando las posiciones cercanas a la superficie del neumático, y se representó en una textura que desplazaba la geometría del neumático en la GPU. Esta demostración ilustrará cómo interpolar un conjunto de muestras a partir de los resultados de deformación a los que se puede acceder durante el juego.
Almacenamiento en caché
Almacenamiento en caché y ML Deformer
Las simulaciones de Flesh pueden resultar costosas. Aunque se puede hacer que un recurso de baja resolución funcione dentro de un juego, para conseguir resultados en geometría de alta resolución, la simulación tetraédrica no puede ejecutarse en tiempo real. El sistema de almacenamiento en caché permitirá al artista grabar los resultados de una simulación y reproducirlos de nuevo en el grafo del flujo de datos. Desde la caché, también podemos generar caché de geometría como datos de entrenamiento en ML Deformer. Este ejemplo ilustra cómo guardar en caché los resultados de la simulación, generar la caché de geometría y entrenar un ML Deformer.
Almacenamiento en caché en el editor
También podemos guardar en caché en el editor y ver la reproducción en una secuencia de nivel. Este ejemplo describe cómo guardar en caché un recurso (o un blueprint) de Flesh simulado y cómo inspeccionar los resultados de la simulación en detalle.
Propiedades de simulación
Las propiedades de simulación se establecen en varios lugares del sistema Chaos Flesh. El solucionador tetraédrico tendrá propiedades que afectarán a todo el sistema de simulación, por ejemplo, permitiendo a los usuarios configurar las propiedades de paso de tiempo y subprocesos, así como los controles de colisión. Mientras que las propiedades del actor de Flesh permiten configuraciones específicas de una instancia individual de un recurso, las propiedades basadas en el flujo de datos configuran el propio recurso. Esta demostración repasa algunas de las propiedades más importantes de la simulación y te da una visión general de dónde puedes esperar encontrar tipos específicos de controles.
Proyecciones de rayos con límite de rig
Consulta el archivo .fbx proporcionado en Descarga de archivos para seguir esta sección de la guía.
Las proyecciones de rayos con límite de rig permiten que ciertos tipos de objetos interactúen con la geometría estática del entorno. El enfoque de la proyección de rayos no es una configuración general de colisión con el entorno, pero con configuraciones específicas permitirá que un cuerpo deformable responda a la geometría de la escena. Por ejemplo, se utilizó esta configuración en la demostración de Electric Dreams para permitir que los neumáticos reaccionaran a la geometría de la escena.
Para que este enfoque resulte útil, deben cumplirse algunos requisitos. Los vértices de la proyección de rayos tendrán que ser convexos en una ubicación de la transformación en el modelo, el componente tetraédrico tendrá que estar contenido en un blueprint de malla esquelética y el recurso tendrá que estar cinemáticamente restringido a un esqueleto. Debido a la forma en que se implementa la respuesta a la colisión, el origen de la proyección de rayos debe partir de un punto interior del modelo y la respuesta a la colisión trasladará el vértice hacia el origen interior, en contra de la dirección de la proyección de rayos.
Proceso de trabajo avanzado
Consulta Chaos Flesh para simulación de músculos para obtener más información sobre la configuración de la simulación de músculo y grasa con Chaos Flesh.