Ezequiel García Díaz - 3º curso en Grado en Diseño y Desarrollo de Videojuegos.
La realización de esta primera práctica consiste en la simulación de las deformaciones de una sólido en Unity implementando las físicas de forma manual sobre una malla de tetraedros que recubre la malla original. La práctica se divide en 4 requisitos, con otros adicionales de mejoras.
Para ejecutar la simulación desarrollada, es importante importar el paquete de Unity adjunto a un proyecto vacío, habiendo eliminado previamente cualquier archivo creado automáticamente por Unity.
💡 Para importar el paquete, navegar a Assets → Import Package → Custom Package… y seleccionar el archivo Solido_EzequielGarcíaDíaz.unitypackage
Una vez importados los archivos, se recomienda cargar por la escena Mesh, ubicada en la carpeta “Scenes”. Esta escena muestra una simulación básica de la tela. Con presionar el botón Play (
Para modificar los parámetros de la simulación, basta con seleccionar el GameObject “gummy_bear” y editar los parámetros del componente ElasticSolid en el inspector. Los valores por defecto deberían proporcionar una simulación satisfactoria y realista.
Se puede interactuar con la simulación si se cambia la ventana de Unity de modo Game a Scene, ganando control sobre los GameObjects de la escena. Se puede seleccionar el Fixer que sujeta la tela desplegando el GameObject “gummy_bear”, y seleccionando el GameObject “Fixer” posteriormente. Mover el Fixer durante la ejecución de la simulación dotará de movimiento a la malla asociada al Fixer
Con motivo de mostrar la funcionalidad completa de la simulación desarrollada, se ha creado otra escena en la que se muestra la implementación del requisito 4 con cálculos de densidades de nodos y aristas.
Esta escena se ha propuesto de forma independiente puesto que la simulación resulta bastante inestable, y se necesita demostrar el correcto funcionamiento del resto de implementaciones.
Esta escena está disponible en la carpeta Assets/Scenes del proyecto.
- Ordenación de los nodos de un tetraedro ✅
- Depuración visual ✅
- Fijación de la malla de tetraedros ✅
- Generación de malla superficial de baja poligonización ✅
- Generación de malla de tetraedros mediante TetGen ✅
- Importación de la malla de tetraedros en Unity ✅
- Asociación de datos y comportamientos a un GameObject ✅
- Cálculo de posición por interpolación baricéntrica ✅
- Identificación del tetraedro contenedor ✅
- Eliminación de aristas duplicadas ✅
- Densidad de masa ✅
- Densidad de rigidez ✅
📌 Realizar este apartado ha supuesto una simulación bastante inestable. Es por ello que se dispone de una casilla en el componente ElasticSolid para poder activar o desactivar estos cálculos de densidad.
- Simulación con substeps ✅
- Amortiguamiento ✅
- Fuerza de viento ✅
- Aspectos visuales ✅
- Aspectos de interacción ✅
- Implementación de Prefabs ✅