A few years ago I had created a 30 second 3D animation of a Betsy Ross flag waving in a sunset to celebrate America’s Independence Day. To celebrate this year’s Independence Day I had updated that animation and extended it to a full minute and 20 seconds. This was long enough to play along with the full Star Spangled Banner by the USAF Band and Choir as seen above.
I used LightWave 3D and its ClothFX to create the 3D animation of the waving flag. My original behind the scenes post details the creation of the original animation. The slowly modulating golden clouds in the background were created using a simple 3D Coriolis texture. The 3D texture is slightly rotated to cause the clouds to travel in the direction of the wind. It is also slowly moved toward the camera to modulate the texture/cloud shapes over time. I then composited the 3D animated foreground and background plates in Apple Motion where I added the audio and animated the lyrics slowly rising behind the flag in synchronization with the song.
When extending the animation from 30 seconds to almost three times that length, one of ClothFX’s weaknesses started to cause problems. The dynamics system in LightWave 3D detects collisions between deforming points and intersecting collision polygons. One weakness is that polygon edges do not trigger the dynamics collisions. So on a flat surface like a waving flag, the edges of the flag often cut right through the rest of the flag. In the short 30 second version I was able to adjust the settings to avoid that problem during those 30 seconds, but when extending the animation to three times that, no matter what I did, the edges always kept cutting through the flag at various points.
I tried giving the flag some thickness, rather than as a flat plane, so that the edges would have some edge polygons for the collisions to detect. Unfortunately that caused problems with the two sides of the flag crossing each other and the edge polygons were not large enough to solve the edge cutting problem. Any adjustments to the settings have to be recalculated through the whole animation before you can see if it works or not. So it was a slow slog working through tweaking various settings to try to minimize this problem.
After wrestling with this for a while, one trick I came up with was to create an invisible “bumper” all around the flapping edges of the flag. These “bumper” polygons could be used for the dynamics collision calculations but wouldn’t be visible in the final animation.
Here is a screenshot of how that edge “bumper” looked as a wireframe.
That helped solve much of the intersection problem. Even with this trick however, there were still a few frames where a corner of the flag peeked through from the back side to the front. With only a few frames impacted though, I was able to simply retouch those frames in post editing, so that they wouldn’t appear in the final animation.
I hope you enjoy watching the animation as much as I enjoyed creating it for America’s Independence Day!