The Task

This character was a tall order. Lark had three abilities and no one knew how we were going to tackle them. One of of those abilities was the spore seed. The gameplay design was to place plants on the ground and have them slowly grow in a radius. When friendly players are inside the AOE they would be given a armor buff and a speed buff. However, if an enemy entered the radius they would be given a speed debuff and a armor debuff. These needed to be placed anywhere on the map so when verticality had to be in mind if they were placed on a crate or a ledge. They also needed to be IFF colors so that a player could tell right away if they were friendly or not.


Concept


 

RnD

I wasn’t sure how I was going to make this happen at first but I do love a good technical VFX challenge. In my mind, I figured the center plant would be easy. So, I set my sights on the part that I felt would be more difficult: the vines.

The Vines:

I decided to give niagara ribbons a try and see if I could get something going with that. I decided to spawn each vine as it’s own system, give them collision, and give them a local velocity multiplied by their normalized initialization number. At first, I thought that this was the right direction to take it but the ribbons had their drawbacks. For one, the particles that the ribbons used to to draw were bouncing all over the place so they needed to have limits. You can see the issue in the video above. They needed their position to be limited by the distance away from the previous particle on the the initialization stack. Similar to a chain, they needed to be locked in to their neighbor. Luckily Niagara has many different ways of accomplishing this.

With the help of some research and a lot of videos breaking down how other’s were able to solve their own issues, I was able to create a custom niagara module to keep each particle attached to it’s neighbor. You can see this illustrated here in the above video. In that video you can see that I am using meshes rather than ribbons at this point. Once I had the vines working somewhat like a chain, I just needed to do a bit of an art pass to make them look like actual vines.


 

Art Iteration

I did away with mesh based vines and went back to using ribbons. The Meshes would just obviously break the illusion whenever three particle positions created more that a 90 degree angle.

My first pass on the art turned out pretty good but it had it’s flaws. The vines didn’t have a ton of texture or life to them and the performance needed an into effect. The vines all grew in a very linear way so I decided to add some curl noise to the vines. The center flower was made to be a stand in asset while world art made us a high fidelity organic model. However, there were some good takeaways here like the small little wiggle stems coming out of the center flower.

While waiting for the new center flower model, I decided to explore a different path. This led to some very lively vines. This pass used Lark’s weapon projectile model as the center flower. This pass was a far ways away from the concept but the exploration led to a much nicer read on the vines. The vines were much more lively in this pass which we needed to tone down.


 

IFF (Is Friendly or Foe)

I needed diegetic way to convey IFF in the effect. Looking at the concept there are many different little features that could potentially have IFF. I went ahead and added our IFF function to all of these features: the bulbs on the ground, bulbs on the vines, the decal growing on the ground, and the little wiggly tendrils in the center. All of these features helped player determine if a spore was friendly at a moments glance.


 

The Center Flower

I received the center flower from world art and I was very excited to bring it to life. I went ahead and ported it over to my effect and got it functional.

I now had the art but it still felt so robotic. It needed some animation principles. I knew I need to make it feel a little more alive and I needed to pump up the into to get better timing on the effects. The whole performance was so linear, I needed to add some curves and some exaggeration to sell the effect. I put it into 3DS Max and started working on a vertex animation that could play when it is placed on the ground.

Now that I had a vertex animation, I imported it into unreal and reached something very close to my final product.

A little bit of polish time later I was done with the effect and had my final product.


 

Final Product


 

The Whole Process Video: