Table of Content

About

"Cartoon FX Remaster 1" is a collection of stylized visual effects mainly made with Particle Systems (using Unity's CPU-based particle system 'Shuriken').

Featuring:


Render Pipelines

"Cartoon FX Remaster 1" supports the Built-In and Universal Render Pipelines.

It uses a special custom shader format that will only compile the relevant shader code for the currently active render pipeline in the project.

If you change the render pipeline after having imported the assets, then you will have to reimport the shaders so that they compile for the newly selected render pipeline (right-click on the Shaders folder, and hit Reimport).


Legacy Effects

"Cartoon FX Remaster 1" is called so because it is a made from scratch remake of the old "Cartoon FX Pack 1" set of effects, released circa 2012.
Those old effects are still included if you are curious or want to use them: they are in the Cartoon FX 1 (old legacy effects) package and need to be extracted through Unity.

Usage

Spawn Effects

"Cartoon FX Remaster 1" effects are provided as individual prefabs. Simply spawn the prefabs (e.g. using Instantiate) and activate the instantiated GameObject to play the effect.

GameObjects will auto-destroy themselves when the effect has finished playing. You can change that behavior in the CFXR_Effect script attached (to either Destroy, Disable or do nothing after the effect has finished playing).


Cartoon FX Easy Editor

This is an included tool allowing you to easily edit the effects even if you don't know much about Unity's Particle System.

Simply select the Particle System(s) you want to edit, and then use the buttons to perform various operations (scale the effect, change the colors, etc.).

I recommend editing instances rather than prefab sources for fast iteration, and to apply the changes to the prefab (or create a new one) once you are happy with the results.

Open the tool through the top menu: Tools > Cartoon FX Easy Editor

Note about the SCALE function:
This tool was made when Unity didn't support scaling Particle Systems through their transform.
Although it is now supported, sometimes scaling doesn't result in the exact same effects scaled up because some properties aren't scaled properly (e.g. velocities, gravity, etc.).
Cartoon FX Easy Editor will scale the particle system differently by multiplying the various values related to the visual scale of the effect (particle size, velocities, etc.) rather than relying on the scale of the transform.
Depending on your requirements, one or the other technique may work best for you.


CFXR Script file

You can change some global script settings in the CFXR_Effect.cs file, by uncommenting the global defines at the top:


CFXR Settings file

You can change some global shader settings in the CFXR_Settings.cginc file:

Troubleshooting

Please send me an email if you are having other issues or have any question: jean.moreno.nonsensepublic+unity@gmail.com

Changelog

R 1.4.0 - Shaders: Greatly reduced the number of possible shader variants (e.g. for Ubershader from roughly 130M to 12k possible variants) - Shaders: Added option to force compilation for a specific render pipeline (select the shader file and look in its Inspector window) - Shaders: fixed incorrect color for text effecs (green channel was always forced to 0.5) - Moved the legacy effects into a Unitypackage file so that they are not imported by default anymore - Updated and changed the readme format from txt to html for better readability and navigation R 1.3.1 - Removed 'NEW' suffix in shader names, as it was meant for internal testing R 1.3.0 - Replaced the old .shader files with a new .cfxrshader file format, that will only compile them for the currently active render pipeline (this should fix all issues related to the effects not working in builds using Addressables or Asset Bundles) R 1.2.6 - Distortion effects now work with URP 2D Renderer - Small user-friendly UI changes for "Cartoon FX Easy Editor" R 1.2.5 - Fixed possible shader compilation error when Single-pass instanced rendering is enabled R 1.2.4 - Reorganized the shader code in a separate file to avoid a 'multi_compile' hack, which will hopefully fix issues with Asset Bundles/Addressables R 1.2.3 - Improved CFXR_ParticleText usability when toggling the "is Dynamic" flag on an existing text effect - Disabled mesh GPU instancing in the shaders because it was causing too many issues (even when using Unity's default particle shader) R 1.2.2 - Removed GPU instancing support on the "CFXR Procedural Ring" shader, because it visually breaks it - Fixed compilation error related to 'projPos' in the "CFXR Particle Glow" shader R 1.2.1 - Added support for GPU instancing in the shaders - Fixed possible build erro when adding a text effect in a prefab due to HideFlags R 1.2.0 - Merged CFXR_ParticleText and CFXR_ParticleText_Runtime: now you just have to enable "isDynamic" to include the script at runtime and be able to update the text - CFXR_ParticleText now also allows to change the colors and lifetime multiplier - Fixed legacy custom shaders not working in URP builds - Added subcategory for legacy shaders ("Cartoon FX/Legacy/...") - Fixed Camera Shake that was still applied when Time.timeScale is 0 R 1.1.3 - Updated files for compatibility with "Cartoon FX 4 Remaster" R 1.1.2 - Added "Screen Distortion" shader, and a few effect variants using it - Fixed fireball materials - Fixed compilation errors on some platforms (e.g. PS4) - Prevent possible asmdef conflict with Toony Colors Pro 2 - Strip shaders for the unused render pipeline during build, depending on if built-in or URP is used R 1.1.1 - Fixed AABB errors spamming in the console in Unity 2020.2+ with some effects (e.g. "CFXR Fire Trail") - Fixed shader compilation warnings when building R 1.1.0 - Added text prefabs variants with a new font - Fixed fire materials where flames could sometime clip out of the particle mesh - Fixed an effect using a legacy material instead of a new one (should be safe to delete the legacy folder now if not needed) - Fixed shader compilation on Metal platform (iOS, macOS) - Fixed some textures not working on WebGL (they were set to "Alpha 8" instead of "R8") - Fixed typo in "Flame" prefabs name (Flamme => Flame) R 1.0.9 - Added Single-Pass Stereo support (VR) in the shaders R 1.0.8 - Fixed Camera Shake for URP - Fixed "Hide Flags" issue in CFXR Text prefabs that could prevent from building R 1.0.7 - Updated lighting support in "CFXR Particle Ubershader" - Added "CFXR_ParticleText_Runtime" script to allow updating a text effect at runtime with an example in the "CFXR Demo" scene R 1.0.6 - Forced single-channel red textures to be uncompressed for WebGL target, as they don't work with Chrome otherwise - Added lighting support in "CFXR Particle Ubershader" R 1.0.5 - Added CFXR_SETTINGS.cginc file for global shader settings - Added support for Orthographic cameras (enable the relevant setting in CFXR_SETTINGS) R 1.0.4 - Disabled internal menu item ("Tools/Create font asset") R 1.0.3 - Added URP 2D Renderer support R 1.0.2 - Added "DISABLE_SOFT_PARTICLES" global define in CFXR.cginc: uncomment it to disable Soft Particles for all effects. Can be useful with URP, because particles won't render at all if the "Depth Texture" isn't enabled. - [Unity 2019.1+] Changed `shader_feature` to `shader_feature_local` to avoid global shader keyword usage R 1.0.1 - Fixed "Soft Particles" in shaders for both pipelines (built-in & URP) - Added "GLOBAL_CAMERA_SHAKE_MULTIPLIER" const in CFXR_Effect.cs to easily scale the camera shaking for all effects R 1.0 - "Cartoon FX Remaster" first release, as a free update of "Cartoon FX Pack"