there was a sale price i believe, we'll fix it right away
very cool but subscribe to pewdiepie
Parag Ponkshe did a beautiful breakdown of his complex VFX, which he created for the Riot Creative Contest 2017.
I’m Parag Ponkshe from Pune, India. I have been working in the gaming industry for last 3+ years. Earlier I used to work for film & animation as a VFX artist (simulating particles and fluids).
Gaming has been my passion since childhood. I am hugely addicted to video games since then. But my life turning event was after I joined UBISOFT, PUNE. At Ubisoft I worked on Prince of Persia: Time Run, Care Bears: Belly Match. These games were based on Ubisoft’s own proprietary engine. This engine was in the early stages of development. So, we were quite bound by engine’s capability of handling particle VFX, no custom shaders etc.
South Park: Phone Destroyer was my first project on Unity engine. Also extended my support for Just Dance games video production. After a brief stint of 2 years at UBISOFT I joined GLU in HYDERABAD. Here I was assigned projects – LiveOps for Deer Hunter, Dino Hunter, Sniper X and currently working on an unannounced project.
The Key Elements
In 2014 when the Riot contest took place I desperately wanted to participate but the limited knowledge of Unity and overall Real-Time VFX creation restricted by participation in the contest. But this time when they announced the contest in 2017, I was excited to dive in.
Contest started in November and I literally wasted 2 months thinking about the concept and originality of the idea. And one day while watching Lord of the Rings and in that movie, I saw this beautiful firework of butterflies in it. Though it’s there in the movie for only a fraction of a second, I knew what I had to do for the Riot contest.
So, I decided to go ahead with this concept as we had only 1 month in hand and didn’t want to waste any more time thinking or sketching out the concept.
The stereotypical thought of Butterflies being associated with beauty, peace, etc. is not a necessity, it can be dangerous too!
At the early stages, I just made a blocking of butterflies fly out of a firework with basic texture and standard Unity particle shaders. Initially, I was thinking they would just fly out but then I decided it would be great if they come back and attack. Concept-wise I was not sure for charging VFX yet. The main key element here is external forces which I had never used to attract and repel butterflies in and out.
With Charging effect and projectile, I struggled with a few concepts.
The main constituent layers of the VFX
In early stages, it was simple with few emitters in it. Then it started getting complex as I have multiple nested sub-emitters in it. Take a look at my emitter hierarchy here:
Working with particles
There is a lot to tell about this effect.
I made the butterfly explode out from a cone emitter which has a noise module turned on so they get very natural motion. To make them attack back I tried to use ‘force over time’ but it didn’t work as I wanted all of them to come back to a point and not in a particular direction. So, I created one sub emitter inside butterfly particle system to be spawned on death at the exact same position of its parent particle. In the sub emitter I added external forces module turned on with negative force amount which basically attracts particles towards its center.
Also in sub-emitter I turned on collision module to collide with the sphere which again spawns decals particle system on death with some explosion glow and sparks as sub emitters. Sub-emitters having sub-emitters is a bit complex to understand. Take a look at the following hierarchy to understand it better. (sub-emitters are marked red):
I used the same concept in charging effect butterflies, in addition to negative external force they have some extra speed to make a spiral kind of motion. Of course, they have a noise module to keep the flow natural.
All the butterflies have a faded trail with some trail particles. Also, the butterflies render mode is Stretched Billboard so that butterflies align with its travel direction. (you can see they look flat in top view)
Smoke fumes at the end is a simple emitter with noise module and trails with rendering off so that we can just render trails. Take a look at settings for smoke fumes.
Initially, I thought to add the sprite of a flower, but it was too flat. Another thought was to model the whole flower and then animate it in Unity. But then decided to model just a single petal and animate it using the particle system. (Better for performance point of view as well) Take a look at my rotation graph here.
Also, petals are faded from its origin, so for this I used vertex color and painted petals with alpha 0 and smoothen out the values.
There are a couple of difficulties I faced while creating this effect.
Problem with petal emitter was aligning multiple petals over circle emitter equally. I struggled a lot to fix this and accidently found this feature in Unity. Radius thickness in shape module emits particles on the edge of the circle, still petals were not equally divided. Changing Arc Mode to burst spread sorted out this problem. See image below for reference (property marked red is important setting here):
Another problem was to align the explosion decals on affected sphere in its normal direction. I played a lot with the settings to get it right.
Adding very small amount of speed to the particles and changing its render alignment to Velocity sorted this out.
The main key element of this effect is external forces, which I never used before. This is a really fun module to work with.
Also adding custom shaders with additional glow helps the effect to stand out, not to forget Unity’s post-processing stack is an awesome little asset to give your scene a dramatic feel.
Overall this was really fun effect to work with, there are tons of things I learned while developing this effect including some minor C# scripting to trigger VFX at the exact time I wanted it to.
There are still a lot of things to improve this effect. Hoping to update this effect in the coming days.
I have provided a detailed description of my flow of work, but in case you would have further queries, kindly get in touch with me – email: firstname.lastname@example.org.