Attempt 01
For this small project I wanted to attempt so cell shading, for the creation of assets for stylised games. I managed to achive one aspect of the astetics, the black outline, the real struggle was creating the stepped shading, which I haven't found a solution for yet as I am a complete beginner with Unity Shaders. 
Attempt 02
For this second attempt, I created a completely new project, as I had installed the HD render Pipline and Universal Render Pipeline packages into the same project and this cause some issues, and had errors appearing. For this second attempt and following a new tutorial, I had my first dive into a small amount of scripting. 
This new toon shading method also incoperated both the colour palette texturing method and the outline method, meaning that the only part that needed to be redone was the shader graph.
NEW SHADER CREATION PROCESS AT BOTTON OF PAGE 
Topology & Black outline Effect
I remember hearing or reading somewhere that in order to create an outlined effect on a model, the normals had to be flipped in order to create this effect. So this is what I did in order to create this. I created this effect by dulpicating the mesh, scaling it along normals and then flipping the normals. 

Whilst this way works and creates the desired outlined effect, it is not the most optimal in terms of poly/tri count, as you are essentaly doubling the poly count. I also added two material slots to each asset, one for the outline and the other for the attempted toonshader. Again not the most optimal way of doing things. 
Exporting to Unity
During this project I noticed an issue, and that was all the assets I was exporting to Unity were 100x to big, similar to the rig issue within Unreal. I did attempted the empty scale correction technquie, but also learned of an experimental apply transforms export setting which also fixed this issue in Unity. 
(This does not effect static assets for Unreal, just Unity)
Incorrect Scaling
Incorrect Scaling
Assets & Materials
Assets & Materials
Export Options
Export Options
Correct Scaling
Correct Scaling
Black Outline Working in Unity
Black Outline working in Unreal Engine 4
Trying to Create Toonshader in Unity: 
Followed this Tutorial: https://www.youtube.com/watch?v=Rn_yJ516dVQ&t=275s

I tried going through this tutorial to try and create a toon shader with stepped shadng/lighting. This was my first intro to packages and trying to use unitys Universal Render Pipeline package and worked on creating my own render features which could help provide effects to aspects like shaders.
The shader nodes and setup weren't working as expected,as custom render feature was meant to effect everything with a mat texture on it and it keeping a specific chosen colour, whilst connected to other nodes in the graph. Further work needs to be done problem solve and figure out a solution. The main issue with this attempt was that the tutorial was out of date (but also because I am inexperienced in this sort of thing).
Decision 02: Back to simple materials for the moment
After the attempted toon shader did not work, I deceided to go back and use colour palete textures for the mean time,until I workedshoped the toonshader and got it working. With method I created two UVs: one for baking lightmaps and the other for transfering colours to different sections. 
The assets could be made really efficent this way because, the outline could even use the one palette texture, instead of each object having two material slots.
Decision 03: New Project, New Tutorial
Link to Tutorial I Followed: 
https://www.youtube.com/watch?v=FIP6I1x6lMA&list=PLzsK5OyMQ96vlBadGQAsMuCETN4k44PfX&index=5

Link to Their Process on Patreon: 
https://www.patreon.com/posts/lit-toon-shader-54740865
First Time Coding:
Follow the tutorial, the first thing it mentioned was in order to get the toon shading effect code would need to be added in order to tell the engine what calacultions to perform for shading, rim lighting and getting the light direction to effect the shading. It was also used for calculating the dot product and fresnel effect.

(Image below) This is what I created following the Tutorial, and placed into a custom function node in the shader graph. I thought I had typed out the code accurately, however I was still recieving a purple material, meaning it had not worked. 

MY CODE:
(Below) this is the working code which I copied and pasted from the link the instructor provided and it worked.
Link to Code: 
https://pastebin.com/grL2nccg
THEIR CODE:
Shader Graph
Once the code had been implemented into Unity via a Custom Function, I connected various position nodes, fasnel node and normal nodes together, I also converted some connected float nodes into properties (like in Unreal's Blueprints) so that they could be acess from outside the shader graph. 
Node Tree
Node Tree
Property Option in Inspector Pannel
Property Option in Inspector Pannel
(Calaculation realtime normal and position information, connected to custom function)
(Connecting base colour/albedo texture)
This is where I connected the colour palete map to the shader/toonshading material. The texture connection was again turned into an editable property, allowing for the texture to be dragged and droped into the material settings.
(Calculating Fresnel Effect and Dot Product)
Final Results
Back to Top