TL;DR: I’m working on a framework to ease the authoring, previewing and integration of VFX within Unity. My goal is to use this as a foundation to author VFX packs for the Asset Store, but I’m thinking about open-sourcing the scripts so that anyone can use the system itself.
Thus I’m posting here to gauge potential interest in it!
Hey everyone,
I’m currently working on a VFX framework for Unity to go beyond the built-in Particle System and easily use other built-in parts for VFX.
The idea is to have an interface that resembles the Particle System one for Scene View preview, but that can preview more effects than just particles (e.g. material/light/objects animations, screen shake).
Here’s how it looks currently (here some particles + one material animation + slight screen shake, all previewed in the Scene View):
Goals:
- Easily author effects composed of
- particle systems
- meshes with material animations
- move/rotate/scale animations
- any custom script that extends from the system
- Full Scene View preview in editor mode
- Prevent the clunkiness of working with AnimationClips
- Possibly better performance than AnimationClips (I don’t know about that part, but it feels like direct objects/properties references would be better than sampling an animation clip that is based on properties names?)
- Match Unity’s workflow (component based, works with Unity’s usual keyboard shortcuts, replicate the Particle System scene view window)
This is the core system, but I’m also working on several other scripts that can complement it, such as:
- a palette system to easily change an effect’s colors
- a catmull-rom spline script with Unity-like editing workflow
- a “trail baker” that can create swoosh meshes based on an animation clip and using these splines
Eventually I want to use this framework to create effects and sell them on the Asset Store; but I’ll open-source the code itself and make it available to everyone.
Questions for you!
- Would you be interested in testing/using this? (for free)
- What do you currently use to make “advanced” effects within Unity? (e.g. to animate materials: custom scripts, animation clips, …)
- How do you test these effects? (e.g. only in play mode, animation window scrubbing, …)
- Any ideas of things that would make your life easier making VFX in Unity?
Let me know if you want details on the system.
Any kind of feedback is appreciated! (and that’s what I’d hope to get by open-sourcing it!)
I’ll eventually put it on GitHub, more or less soon depending on the interest I get from you!
(I’ll need to clean up the code before ding so, which may take some time!)
Videos/Screenshot
Looped effect with fade out animations (mesh scaling, light intensity fade) when stopping the effect.
Also allows inspecting the effect from all angles in the scene view while it is playing (here the shader is fading between two meshes depending on the view direction).
Continous laser: the laser script is custom, but the buildup, shoot and impact effects all use the system (particles, mesh material anim, screen shake, light intensity pulse/curves)
(this is in Game view at runtime)
Same with projectile lasers (Game view, runtime)
This video shows the WIP trail baker tool, not user friendly but you can get the idea of the workflow (create splines from anim, and generate a mesh from these splines)
(Model from @RobbertWiggin from his game Neon Child)
Screenshot of the Effect inspector in its current form (with a “nested inspector” to edit values directly during preview)
Thanks for reading!