FX Animation: Grass Waving and Flags Flying [Animal and Creature Animation - Unit 11]

FX Animation: Grass Waving and Flags Flying

17/04/24

Introduction

The next unit in the lecture series was some FX animation. I wasn't super excited about this one as I knew it was exploring paint effects and cloth simulations - things that I have explored previously and haven't typically used in my workflow, especially as they don't tend to export to game engines, which instead have their own counterpart systems. None-the-less, I wanted to experiment with the concepts and processes from an open minded perspective to either learn something new or to further confirm my perspective on these systems. The unit felt a little out of place in this module on animal and creature animation, however, I understand that this could be an element that might help you build a full scene to raise the presentation. I felt like this would be a fairly short exploration rather than a more project driven approach and this blog post would cover my exploration through this largely tutorial driven unit. There would also be a lot less theory to explore as the tutorial driven approach lends itself to a more technical focused exploration.

Project Management

The below image shows my Trello board that shows an update of where I am at in terms of the full module. Whilst I have completed the scorpion animation I need to complete the blog post, I would have tackled this sooner, however, because I am about to have surgery on my shoulder I am unsure what I will be able to do after surgery. I also felt I could do speech to text but might not be able to use Maya practically for some time so I decided to pause with my blog write up of the scorpion unit which currently just had notes on it and instead complete the practical work on this unit. Other tasks on my Trello board were to update my public facing YouTube descriptions to correctly reference all the resources I was using and to finish the front page of this module on my blog to prepare the module for submission. 

I felt fairly comfortable that I would meet the deadline, however, the upcoming surgery did worry me slightly as I didn't know what I would be able to physically do afterwards. However, I felt my very organised approach to the module from the start to now meant that I had been managing my workload well over time, therefore, I was largely on top of things rather than needing to cram loads of work at the end. I had an extension for the practical and blog submissions due to my surgery and whilst I was hoping I wouldn't need the extension for the practical submission I definitely would for the blog submission since I knew typing and processing words was going to be a lot more challenging post-surgery.


The task card for this module was fairly straight forward: explore the grass fx tutorial, then the flag and then present my exploration through my blog. This wasn't something that I felt needed a lot of time on it and instead was something to further my understanding of Maya and hopefully learn something I didn't know about these systems.

Grass FX

My approach to this module was different to the others. I planned to follow along with the tutorials and experiment with the different options rather than absorbing the theory and producing a research and refined outcome. So I used the How to Animate Grass Waving in Maya (2017) lecture to walk myself through creating simulated grass waving.


I created the paint effects through the content browser and applied the wind settings, however, I instantly ran into an issue where the simulation wasn't playing back when I hit play. I tried deleting and recreating this, as well as saving and reopening, however, it wasn't playing back. I rewatched the video and looked online and I couldn't find anything that looked like it would help me. However, whilst I was spending some time researching it randomly started working! I created another type of grass but ran into the same issue again. This was slightly puzzling, however, I did notice a yellow bar slowly growing on the time slider. I realised that this is Maya caching the simulation, therefore it will only appear to simulate where the yellow bar on the time slider has reaching. This made an awful lot of sense and calmed my worries.


The below image shows my exploration of wind setting on a couple of different types of grass paint effects and where the wind settings are. I experimented with the settings until I reached an animation I was happy with and looked fairly natural.


Next I explored the process of converting to polygons and exporting as an Alembic cache. This was actually incredibly interesting as polygons will work in a game engine and maybe there was a way to get an alembic cache working in a game engine too. I did a little bit of research and found that in the Unity Docs (Unity, 2023) there is a package that will allow you to accept alembic cache! This is really interesting as it means that it looks likely that there is a pipeline for exporting complex simulations to a game engine - something I would be keen to explore in the future!


I imported the alembic cache back into the Maya scene with the view to duplicate a small clump around to build a field and see how Maya handled this. It had default materials when it was reimported so I created a quick aiStandardSurface shader with a ramp node plugged into the colour value to create a small gradient across the grass. However, when I applied it it didn't work.


The reason that the material wasn't showing on the grass even when applied was because it had no UVs. I quickly created some UVs using a quick planar map to achieve the result shown below. These are extremely dirty UVs as you can see in the clump below, however, the mesh itself is very complex. The visual result in the viewport was good so it didn't really need any further time spending on it, however, I wish I could have made them a little straighter!


The below image is a quick render from Arnold renderer. Another reason why I didn't like paint effects is that they wouldn't render in Arnold. I was sure there would be a process to make them work, however, they wouldn't render straight of of the box. However, as this is a paint effect converted to polygons - when I added the material this would mean that it would render in Arnold. It also meant I could control the roughness and metalness values to hopefully get some realistic response to the lighting. I threw in a really quick skydome light and achieved the render below. I was happy with the quality of the outcome as it looked realistic despite my very quick and crude exploration through this pipeline. I was more interested that I could confirm that this pipeline actually works and would be a viable option if I wanted to use it in the future for other paint effects and simulations.


The playblast below shows the final outcome for the grass FX exploration. I decided not to render this as I knew I wasn't going to put a small experimentation task in my showreel and a playblast would be significantly quicker. I was happy with what I was able to achieve and felt like I had learnt a little bit more about the pipeline of using simulations and paint effects that could be a viable option for me to use in the future. Converting them to polygons opened up a whole host of options for how and where these simulations could be used, including the possibility of game engines and rendering in Arnold. I was happy with the overall quality - the render quality actually reminded me of something that could be from a Studio Ghilbli film!


Flag FX

Next I would explore the flag simulation FX through the same tutorial exploration process as the grass FX. I started by reviewing the Flag Wave Tutorial in Maya 2016 (2016) lecture and following along with the techniques. I was pretty confident this was going to be nCloth driven simulations, which I knew would have their uses when rendering from Maya, however, typically if you're working in a game engine you would use the engine's specific tools and processes so that the cloth could properly respond to the input from the player and game. You could use a similar conversion and baking system to what I used for the grass but a baked simulation in this case would be less useful.


This was a video (Unreal Engine 4 Tutorial | Character Cloth & Cloth Physics (Works in UE5), 2021) I had came across previously that shows how you can set up cloth using live physics and simulations in Unreal Engine. There are a lot of similarities in the two processes but it just shows if you were to work in a game engine we wouldn't use an nCloth setup, however, if we were rendering straight from Maya then we could use nCloth. 


I wanted to search for a flag asset that I could use and apply cloth physics to rather than creating a simple plane. I wanted to do this because the asset would be a higher visual quality and closer how this technique could be used on an asset that looked more realistic. I came across this asset by Sousinho (2022) that I thought would work particularly well due to the 2 points where the flag connects to the pole. I thought this would be more interesting than a flag that was connected completely along one side and was interested to see how this would react when flapping in the wind. 


The below two images show the exploration of settings to create the wind and the collisions. The mesh itself had some thickness so I spent a lot of time experimenting with the values here to explore how the self collision would work to reduce intersection. This was a fairly simple process of experimenting with values and reviewing until I firstly understood how the values affected the simulation and secondly until I achieved a visual outcome that I was happy with. One challenge I was facing was actually similar to the grass FX, every time I tweaked settings it would need to recache and this would take some time. This meant it was quite time consuming to reach a visual outcomes that I was happy with and felt realistic. However, as this was primarily a exploration task I wanted to just spend enough time experimented until I reached a point where I felt I understood the system and how to manipulate it. Then in the future if I wanted to use this technique I would invest the time into completely perfecting the settings to achieve a strong outcome.


Collisions were challenging as there were some points where the flag was clipping through the main support pole. I solved this by applying enough force so that it wouldn't go near this, however, in the future I would need to do more research into how collisions work - I feel it will have something to do with thickness and the scale that this value works on.


The below shows the outcome of my experimentations. I was really happy with the nCloth pinning to keep the cloth hanging from the pole in the two points as it felt realistic and responded well to the physics. There is some self intersection happening on the tip of the flag which is annoying as this would mean the read of the flag would be poking through. It was fairly minimal, however, this is something I would need to solve if used in a final animation scene. As mentioned earlier, I would need to do more research into how to control the collisions as my current experimentation wasn't working. Despite this the flag flaps in the wind and flops about like a piece of cloth therefore I was generally happy with the outcome.

Conclusion

Overall this was a good exploration of techniques that I hadn't explored in some time. I learnt a few new key aspects of these somewhat fiddly systems that potentially make them viable solutions for me in the future. I do tend to stray away from simulations because although they can offer good solutions they can be extremely difficult to get them working 'perfectly' without visual artefacts. They are often easy to get working, however, difficult to perfect as I found out during the exploration of the nCloth on the flag. However, taking an optimistic approach to this unit allowed me to learn a few new techniques, particularly the conversion of paint effects to polygons.

I have achieved the learning outcomes as I have explored both tutorials and experimented with practical experimentations to achieve simulated grass blowing in the wind and a flag. I've experimented with a whole host of settings to achieve realistic looking effects through experimenting with a range of simulation settings.

Learning Objectives

  • Animating Grass Waving:
    1. Dive into the principles of animating grass using Maya's physics functions.
    2. Learn how to simulate realistic grass movement, creating dynamic and believable environments for your animated animals and creatures.
    3. Explore the step-by-step process of setting up and fine-tuning the simulation to achieve natural-looking grass waving.
  • Animating a Flag Waving:
    1. Uncover the basics of cloth simulation in Maya, focusing on animating a flag waving in the breeze.
    2. Gain insights into the key parameters and controls for creating convincing cloth movement.
    3. Explore how to integrate animated flags into your scenes to add depth and visual interest to your animated environments.

Reference List

  1. Flag Wave Tutorial in Maya 2016 (2016) YouTube video, added by Alexander Williams [Online] https://www.youtube.com/watch?v=rDg_9EP9A_k [Accessed 6th May 2024].
  2. How to Animate Grass Waving in Maya (2017) YouTube video, added by Alexander Williams [Online]. https://www.youtube.com/watch?v=tC-yXs3TBbA [Accessed 6th May 2024].
  3. Sousinho (2022) Medieval Flag, January 26th [SketchFab]. Available at https://sketchfab.com/3d-models/medieval-flag-b807b00647a7417da3e8654c85f78d87 [Accessed 6th May 2024].
  4. Unity (2023) Alembic for unity: Alembic: 1.0.7, Alembic | 1.0.7. Available at: https://docs.unity3d.com/Packages/com.unity.formats.alembic@1.0/manual/index.html [Accessed: 08 May 2024]. 
  5. Unreal Engine 4 Tutorial | Character Cloth & Cloth Physics (Works in UE5) (2021) YouTube video, added by pinkpocketTV [Online] https://www.youtube.com/watch?v=FD0mfXq93bU [Accessed 6th May 2024].

Comments