NextGenSprites – Modular Shader for Sprites -> Reflections, Liquid, Dissolve & more!

Hey Everybody,

I like to present you my Shader-Set for 2D Sprites on which I have been working on lately and it is called NextGenSprites.

It comes with many Features and I went the extra mile to make this Shader modular, which means that you can toggle any Shader Feature to save performance.

But what are those Shader Features? At launch the Standard Shader will have:

  • Curvature (Normal mapping)
  • Reflection (Screenspace Projected)
  • Emission
  • Transmission
  • Dissolve (with Edge Emission)

Slides

These features have many properties and even abilities for masking!
The Standard Shader also comes in 3 Lighting Modes: Multi Lit, Single Lit and Unlit(limited features).

Furthermore you get 3 super cool FX Shaders for Sprites included:

  • Glass
  • Lava
  • Liquid

Slides

To make development more easy, I have included some goodies for you:

  • Material Creator Widget
  • Easy Material Editor
  • Helper Methods for Scripting
  • Playmaker Actions
  • Bootstrap Assets

And last but not least, I have also built an Online Wiki for Documentation and Video Tutorials.

NextGenSprites is now available at the AssetStore:

Please, if you have any questions, go ask me! :slight_smile:

3 Likes

This asset is just awesome! Ah! First! :slight_smile:

1 Like

Thanks, but I also have to mention that thanks to DoTweens superb Material support, all Shader Properties can be animated in very creative ways! I even have made a Video Tutorial on this:

2 Likes

Just purchased it from itchio. Looks like a really good package. Turned up just at the right time.

1 Like

I am glad that you like this! One thing I didn’t mention is, that you can also use the Shader for UI. You just need to set the Canvas Render Mode to World Space :slight_smile:


And then on the Image Component you assign a Material with the NGS Shader.

1 Like

Thanks for pointing that out. I’ll start using this package next week when I’m polishing the art for my game, it will definitely help up the ante on how appealing the art is.

I have made a basic tutorial for creating Normal Maps and I hope it helps on your creative work together with NGS.

https://www.youtube.com/watch?v=i6GnKxUT4Gg

A Tutorial for the popular Quixel Suite is also on the works! Furthermore I am currently working on some new Features for NGS 1.1 - I hope to show something soon :slight_smile:

PS: The Intro you see on all NGS Videos where actually made with NGS and Unity :slight_smile:

1 Like

Late night update!
I have been experimenting with extra Sprite Layers for NGS upcoming 1.1 release:

Mixed

So far I have two additional Sprite “Layers” to the Main Sprite and as you can see on the right side, the masking can be controlled by a single image. Next step is adding scrolling to these extra Layers, this could yield some awesome effects :slight_smile:

1 Like

Hey guys,

I am happy to announce that NextGenSprites is finally live on the AssetStore:

And with that, I am already working on NGS 1.1 new update:
1. Multi Layer Sprite with Scrolling:
This adds two additional Sprites that can also be scrolled.
No extra Draw Calls or Materials!
Multi Sprite Layer

2. Multi Channel Emission Masking with Pulse/Fade Animation
This allows you to tint your Sprite with 3 different channels individually. The 3rd channel also sports a Pulse Animation!

Multi Channel Tinting

NGS 1.1 will be submitted soon to the AssetStore.
There also new Video Tutorials coming, stay tuned!

I am considering buying your asset ( I am especially interested in normal maps) but I have a few questions:

1- Can I use Unity’s automatic sprite sheet feature for your asset.

2- If I have a series of sprites for animation (ofc) should I create a normal map for each of the sprites? And normal maps shader works in that case?

3- This like a summary but can I create sprites (animation) like these

I am interested in your asset because I am a total noob in shaders and I will most probably will require your help (at least at start)

Regards & Peace!

When it comes to Sprite Animation with Normal mapping, you need indeed a Normal Map for each corresponding Animation Frame. This means that you need to make a separate Sprite-sheet for the Normal Maps.
But if you use a deformation/spline based animation like RageToolsPro, Anima2D or Puppet2D, then you can use a single Normal Map and happily pack (via Unitys sprite sheet maker) everything into a single Sprite sheet.

I am working on some Video Tutorials for this specify which should clarify everything.

No worries, I love to help :slight_smile:

1 Like

hi, i bought your asset yesterday,

very cool!

but i’ve s small problem, can i scroll picture with transparent ? that or be able to scroll the alpha

Hey Everybody,

I have two important news:

First: I am working on a System for saving “Sprite and Property Collections” as Assets on your Project. This will be especially practical for Animations where you use separate Sprite Sheets for the main Sprite. I will talk about this at a later point.

Second and the most important: I have reworked and improved the Multi Sprite Layer feature! The alpha (ie transparency) channels are now supported natively which in turns mean that the Multi Layer Mask is not needed at all. With that, the Main Sprite can now also be scrolled! All this happens without any extra draw calls.

So please remember, with the next 1.1.2 release, the Multi Layer Mask will be removed from the Shader, Editor and Scripts.

1.1.2 probably won’t be live on the Asset Store before the end of next week (Submission review currently takes more than 5 business days :().

If you need these new features now - please contact me via PM with your Invoice No. and I will send you the new 1.1.2 Package when it’s finished.

3 Likes

Hi Ruben,

I found the properties oh boy it is soooo easy now :slight_smile: I am just swapping around my normal map all around, happily I am developing my game for pc but it is all needed for me right now.

A new question. How can I paint the same sprite’s cloths with different colors. Only tint will not save me. I think I need to add a mask layer and then tint it maybe?

Ah so you want only certain areas of your sprite get tinted? Then you are right, for this task the Emission Mask is your friend :slight_smile:

Hey Folks,
I am currently finishing 1.2 and I made a Video Walkthrough through all features:

Please enjoy :slight_smile:

Looks great! The pulse emission will help bring my sprites to life even further.

The scrolling sprites is a nice feature. Is there any kind of performance benefit to using the scrolling feature directly in the shader as opposed to scrolling the texture through script?

The MultiLayer also looks fantastic. I’m excited to try it out!

What is your estimate on 1.2’s release? (itch.io purchase here)

The Scrolling for the main Sprite is currently indeed just a convenience, but to me it seems important giving Artist such essential tools build into the shader. Regarding performance, Scrolling by the Shader is faster than by scripting but it is not really worth mentioning.

Yeah I am myself quite happy with it and it yields a lot of potential :slight_smile:

So far I am kinda positive with a releases this Friday for itch.io customers :slight_smile:

NextGenSprites 1.2 is now online on itch.io!

The difference to the last Beta Version is:

  • More Bug Fixes
  • Moved more operations to the Vertex Shader
  • Added a Manager and Controller Class for Properties Collections
  • You can now import and export Propertie Collections directly from the Material Inspector

AssetStore release will follow ASAP!

Edit
Version 1.2 has now been submitted to the AssetStore. Now it’s a matter of waiting. In the meantime I will work on the Documentation, Tutorials and a new interactive Demo which will be included in the next release :slight_smile:

1 Like

1.2 is now live on the AssetStore :slight_smile:

Change log:

  • Liquid and Lava can now Scroll by World Position or Time(Auto scrolling)
  • Added Scriptable Object of type “Properties Collection” to store variations of Shader Properties
  • Added a custom Icon for the Properties Collection
  • Properties Collection can be created from the Toolbar, NGS Widget or the Material Inspector
  • Ability to generate a Properties Collection directly from an existing Material
  • Inherit from “Properties Collection Base” for basic Properties Collection handling via scripting
  • Added “Properties Collection Manager” to update the Material from AnimationEvents/Scripts/PlayMaker # Invoke: UpdateMaterial(collectionId)
  • Multi Layer supports now Transparency without the need for a helper Mask
  • Layers can now be individually Tinted
  • Added Stencil (RGB)Masking as a “Soft”-feature for Multi Layer
  • Added an additional 4th Sprite Layer (going now from 0 to 4)
  • Emission operates now by default with Multi Channel Masking
  • Scrolling added as a “Soft”-Shader Feature
  • Emission Pulse Animation added as a “Soft”-Shader Feature * Pulse Animation is now present on all 3 Emission Channels

UPDATE:

  • Following Features have been changed to "Soft-"Shader Features:
  • Double Sided
  • Pixel Snapping
  • Multi Sprite Layer
  • Added “ShaderFeatureRuntime” Enum to return only Shader Keywords that can be toggled at runtime
  • Removed “Multi Layer Sprite Mask” property from Shaders, Scripts and Inspectors
  • Removed “Multi Channel Emission” Shader Key “EMISSION_MULTILAYER_ON”
  • Renamed “_EmissionToggleAnimation3” to “_EmissionBlendAnimation3”
  • New Shader Properties added to all related Classes and Inspectors
  • Changed PlayMaker Action “SetShaderFeature” Enum to ShaderFeatureRuntime
2 Likes