The shader (besides the complicated work described above) is pretty standard emissive material that uses the texture as a mask. Because the behavior of the pull effect is so complicated and already has so much motion I didn’t want to overdo it with extra noise with shader effects.

The release effect ghost left behind when the arrow fires are just small GPU sprites scaled quite a bit along one axis. Similarly, the trail for the arrow is just a few extra sparks. Finally, the impact effect is a final burst of small sparks partnered with a big flash mesh. I say flash mesh because rather than use a sprite, we layered a few sprites on top of each other in a model to create a bit of fake volumetrics. That mesh actually got re-used for many other effects in the project (see Bow Vid 02 above).

The other element that is left over after the main flash from the arrow impact is similarly a mesh. We couldn’t afford proper decals on the project and since the “Cyber” bow is digitally themed I thought it would be fun to create a glitchy looking effect for the impact that could slowly fade out. The sizes of the flash and glitch effect are actually linked to how strong the arrow pull is.

Timing

The timing for this effect is probably the easiest thing to talk about! It’s almost 100% player driven. The release itself is when the player lets go of the arrow and they drive how fast all the elements lock into place. If you pull the bow back, you get a crazier effect. If you go slowly, you can appreciate the visuals and enjoy a larger build up. The one-to-one mapping of the input to the effect animation creates a pretty fun response. It’s something I am definitely looking forward to exploring more in VR.

The speed of the arrow flight was tuned by Richard, though the lingering effect from the release was timed by me. The most complicated aspect of that release element is that it lingers in world space, so if you move the bow after firing the effect stays behind (which felt weird when we tested it). Generally, for timing purposes, I focus a lot on iteration and intent. I decide what the feeling I want to achieve is (satisfying buildup, large impact, ambient peaceful etc) and then iterate on that feeling a ton. We definitely don’t shy away from acting out actions in real life, making loud noises to demonstrate timing to each other, or sometimes even record behaviors and examine them later to see what makes them work great. It’s something that may sound a bit silly but is invaluable when it comes to communicating ideas, timing, or the feel of certain effects.

Advice for Learners

When it comes to recommended reading, I don’t have anything specific but I would recommend two things.

First, there are definitely active communities that are great to join in and be a part of. RealTimeVFX, for example, is a great first place to learn more about VFX from and see what the industry is doing. The second is the massive amount of resources that are available for free already. Epic’s content drops are full of fun complex materials, particle systems, and blueprints that are just packed with new techniques to learn. I still find new stuff in there and I’ve been tearing them apart for years now!

Alex Dracott, Real-time Lighting/Shader/VFX Artist

Jacob Stone, Hard-Surface 3D Artist

Richard Weschler, Game Designer

Interview conducted by Kirill Tokarev