Ésta entrada la he actualizado para incluir el vídeo que debería acompañar a este tutorial. Desde hace unas semanas estoy actualizando mi canal en Youtube. Así que ahora podéis ver el vídeo al final de esta entrada o bien, ir directamente al Canal de Zao3D en Youtube.
La idea de crear estos tutoriales es por el hecho de documentar en español lo que he ido aprendiendo, tanto de forma autodidacta como a base de tutoriales (en inglés). En el último trabajo que realicé me tuve que enfrentar al hecho de que en ese momento Lagoa era algo nuevo por lo que no se encontraban muchos tutoriales. Así que parte de la metodología descrita en estos tutoriales ha tenido que ser a base de mucho «prueba y error». Por eso ahora quiero aprovechar para tener un sitio donde poder consultar estas metodologías, tanto para mis usos futuros como para el que se quiera iniciar con Lagoa. Otra ventaja que obtengo de hacer estos tutoriales, es que me ayuda a mi mismo a refrescar y asentar mis conocimientos por el simple hecho de repetirlos aquí. Es posible que algunos de vosotros encontréis formas diferentes de trabajar, así que siempre podéis aportar vuestras experiencias en los comentarios de los artículos.
¿Qué es Lagoa?
Lagoa es un sistema de simulación basado en nodos de ICE desarrollado por Thiago Costa. Al ser un motor de simulación multi-físico nos permite simular desde fluidos a rigid bodies, e incluso telas, de una forma muy intuitiva teniendo en cuenta el modo de trabajar con ICE. El término Lagoa proviene del portugués y quiere decir «laguna» o «lago pequeño».
Los nodos de Lagoa
Lagoa lo podemos encontrar en el módulo ICE, dentro del grupo Create. Como podemos ver, nos encontramos con una serie de presets en el apartado Lagao Particles, ya creados para empezar una simulación rapidamente, como son Pouring Liquid (Chorro de líquido), Jello (Gelatina), Sticky Paste (Pasta pegajosa), Surface Tension (Material con alto grado de tensión), Throw Breakable Structure (Romper objetos) y Throw Elastic Clusters (…).
Estos presets, ya contienen los nodos, llamados compounds, necesarios para realizar simulaciones básicas desde las que partir sin tener que ir construyendo nodo a nodo todo el árbol de ICE. Aunque también veremos cómo realizar una simulación desde cero, y cómo guardar estos nodos como un compound.
A continuación veremos un ejemplo de cómo usar estos compounds.
El chorro
Para crear un chorro necesitamos un emisor y un objeto para colisionar. Podemos usar una primitiva para crear el emisor. En éste ejemplo crearemos una esfera con un tamaño de 1, y la llamamos Emisor. Y para la colisión con un simple grid sería suficiente, y le llamamos Colision. Los colocamos como ves en la siguiente imagen, poniendo la esfera más arriba del grid.
Seleccionamos los dos objetos, seleccionando la esfera en primer lugar y el plano a continuación. El orden en el que seleccionamos es importante, ya que Lagoa lo tiene en cuenta para saber cuál es el emisor y cuál es la colisión. Veremos que durante unos segundos parece que Softimage está calculando. Si abrimos el explorer podrás comprobar que se ha creado un nuevo objeto llamado Pouring_Liquid_from_Volume_PointCloud. Éste es un cloud de partículas que contiene los nodos de la simulación. Para ver éstos nodos debemos abrir el ICE Tree. Para abrirlo usamos el atajo de teclado Alt + 9.
El ICE Tree contiene los siguientes nodos:
Vemos, lógicamente, un nodo llamado ICETree, que recibe como entrada un compound llamado Lagoa Setup Pouring Liquid from Volume. Éste a su vez recibe dos entradas más llamadas Get Emisor y Get Colision, que son los nombres que hemos puesto para emisor y colisión. Como vemos, hemos tenido que hacer poco trabajo para construir ésta simulación. Pero ya es otro cantar que la simulación sea la que queremos. Para eso debemos editar el compound. Pero antes de liarnos editandolo, haremos una prueba. Las simulaciones de ICE las podemos ver reproduciendo la animación. Le damos al botón de reproducir y vemos qué pasa. Para empezar, ya vemos que las particulas que emite son muy grandes. Así que haremos un primer ajuste. Haciendo doble clic en el compound Lagoa Setup Pouring Liquid from Volume, abriremos la página de propiedades. El primer valor que encontramos se llama Sim Quality que hace referencia a la calidad de la simulación. Tiene un valor de 1, que es el que pone siempre por defecto. Vamos a cambiar éste valor por 0,25. Si reproducimos de nuevo la simulación vemos que la cosa ya ha cambiado, mostrándonos unas partículas más pequeñas. Eso si, ahora el cálculo es mayor, pero bueno, aún se defiende bien la máquina.
Softimage usa una linea de tiempo de 100 fotogramas por defecto. Para las simulaciones suele quedarse corto. Así que es aconsejable que pongas un rango de fotogramas más largo, por ejemplo, de 500 fotogramas, para que te de tiempo a ver la simulación más progresada.
Cuando reproducimos una simulación y la detenemos, si le volvemos a dar al botón de reproducir ésta empezará de nuevo. Si quieres que la simulación siga a partir del fotograma donde has detenido la simulación, acuérdate de hacer clic con el botón central del ratón en el botón de reproducir.
Descomponer el compound
El compound en realidad es un conjunto de nodos de ICE, tanto básicos como otros compounds con más compounds, dependiendo de lo complejo que sea. También es útil el compound para que no nos encontremos con ICETree’s larguísimos, más largos que un fuet. El compound lo distinguimos de un nodo básico porque si pasamos el ratón por encima aparece una «e» en un círculo, indicándonos que es editable. Se puede ver el contenido haciendo clic en ésta «e». Vamos a abrirlo. ¿Qué vemos? Un montón de nodos, que en realidad es lo que nos hemos ahorrado de montar nosotros.
El nodo que tenemos más a la derecha, llamado Simulation Root recibe 4 compounds:
- Lagoa Emit Volume
- Lagoa Add Force
- Lagoa Phase
- Lagoa Simulate Multiphysics
Tanto el Lagoa Phase como el Lagoa Simulate Multiphysics reciben información de dos compounds más. Uno es Lagoa Material Generic Liquid que es un compound que contiene la información necesaria para crear las propiedades básicas de un líquido: Surface Tension, Internal Pressure, External Pressure. Con este compound ya tenemos un líquido, pero los líquidos pueden ser muy diferentes, ya que el agua no es igual que el aceite, por ejemplo. En éste tutorial el líquido será agua, por lo que o cambiamos los valores de este compound manualmente o usamos un compound ya creado con esos valores. Lo podemos encontrar en el cuadro de búsqueda de ICETree, escribiendo water. Veremos dos coincidencias: Lagoa Material Liquid Splashy Water y Lagoa Material Liquid Water. Usaremos el último. Para usarlo dentro del ICETree lo arrastramos del panel de la izquierda a una zona vacía del ICETree. Éste compound lo tenemos que conectar al Lagoa Phase. Primero desconectamos el material que tenia antes y conectamos el port Execute del material de agua al port de entrada del Lagoa Phase llamado Execute. El otro nodo nos quedará ahí suelto, pero lo podemos dejar por si queremos reusarlo en otro momento.
Y hasta aquí por hoy. Más adelante actualizaré ésta entrada con un vídeo explicando éste mismo tutorial. Si tenéis alguna duda, podéis dejar un comentario más abajo.
Hasta pronto.
Espero hasta el siguiente que se está poniendo interesante la cosa.
Gracias por tu tremendo trabajo.
Gracias Jorge. Estoy terminando lo siguientes tutoriales. En breve actualizaré el blog con los nuevos.