The past few weeks I have been working on a Corgi Patronus VFX in Unreal Engine. This was the finished product. I am going to walk through my process and how I was able to get this effect.
Step 1 - Reference & Concept
First I looked at mostly video reference of what this looked like in Harry Potter (link). I wanted to see how they got the whimsical feel and the silhouette of the animals. I also looked at Kingdom Hearts 3 and how they animate and create the Summons since they are specific to each Disney character you summon to fight (link).
After this, I sketched up a rough concept to know the feeling and what types of particles I would be using. I then made a list of the types of particles I would be creating: Ribbons, Sparkles, Smoke, and then the corgi.
Step 2 - Prototype
For the first part of the prototype, I did not know how I was going to make the particles fly through space. So to test it I attached it to a spline to see how the motion was going to work. I started with just the simple sparkles to see the timing and play with the particle emitters.
After I did that, I attached the clouds and tried to use a mesh for the ribbons but it did not work as I planned so I came up with another idea but it was going to cost on performance if implemented into a game. As of right now, I am focusing on silhouette, timing, and color so I am not worring about any transparency.
Step 2 - Ribbons
For the ribbons, I ended up making a mesh with joints attached to the center and the corners (think a simple 3 point ninja star). I then attached the ribbon particles to the end joints and had it rotate over time. I had two of these of different sizes so I could have ribbons at different spots. I had them rotate in different directions and at different speeds. I also made sure the mesh was hidden in game so no one could see what was driving the ribbons.
Step 3 - Materials
I only had to worry about 3 materials for this project: The ribbons, smoke, and corgi. Everything else where simple things I made in Unreal.
For the ribbons, I did what is pictured above. I made the general shape that I wanted the ribbons to be (knowing this would get stretched), I made a cloud noise filter, and the end gradients. I multiplied these together to get this result of the ribbons that with some noise and you do not have a hard edge where they end. I also made the ribbon shape and the noise pan in opposite directions to give more of an effect of movement.
For the smoke, I made a general cloud noise but distorted it to get this shape. I then multiped it by a radial gradient to get this effect. With that, I clamped the values between 0 and 1 and attached a dynamic parameter which I can attach to the particle emitters to change the opacity over time. If I kept the material in opacity mask it would the smoke would have dissipated in clumps but I wanted more transparency in the smoke.
Step 4 - Corgi
For the corgi, I did a rough first pass of the model, rig and the animation. I wanted to get the rig and animation down 1st and worry about topology and textures later. As soon as I got the animation down I imported it into Unreal and got it all hooked up. I wanted to make sure that a simple model looked okay with the VFX before I added more detail. Sillhoute and timing were what I needed first.
After this, I brought the model into Zbrush and sculpted a more detail high-poly so I could bake the high-poly onto a low-poly and use that normal map for a fresnel effect adding a more detailed whimsical look. After I did that I also redid the low-poly for proper animation topology and transferred skin weights saving the rig and animation.
Step 5 - Context (Wizard)
I added a wizard character for context and made some small animations for them. The character is from a previous project I worked on with a team of artists and is not mine. I did animate it for this VFX project.
Step 6 - Polish & Final Product
At this time I realized instead of having my particles be hooked up to a spline I could do a projectile. I began to polish the particles and materials, troubleshoot any troubles I was having with the projectile and make small timing adjustments. Timing was key for this VFX so I spent a very long time on that.
This was the finished product! I hope you liked my break down.