Notes on Using Blender 2.8

One thing I discovered when testing EyeSkills at the beginning, is that people who have a lazy eye often have a particular psychological relationship to the condition.  They would like to understand and perhaps change it, but they have generally come to accept it as “inevitable” and found ways to compensate in everyday life.  It is regarded as an unknowable mystery.

The consequence of this, is that initial enthusiasm does not continue into daily practice where there are too many hurdles- made worse by the mountains of technical jargon associated with amblyopia and strabism!  To make EyeSkills accessible, I believe it needs a simple metaphor, expressed visually, and humorously. This needs to run on a human platform, after all!

I have taught myself 2D animation over the last week, but it is a slow and inefficient process. I can see that I need to move to 3D.  To do that I’m now teaching myself Blender as quickly as possible, so that I can go from from character modelling, to rigging (with humanoid bones and correct standard names) and skinning, to shape keys, to UV mapping and drawing textures, to animation, to importing into Unity and finally creating a cell shader to give the animations the cartoon like character I’m seeking.

As I run into issues with Blender, I’ll make some notes here.

Metaballs

I’m using Metaballs to model Domi/Supti before creating their meshes.  It turns out that naming is very important.  If the metaballs stop interacting, be sure to read this: https://docs.blender.org/manual/en/latest/modeling/metas/editing.html#object-families

Unfortunately, having got to the kind of base model I wanted :

I couldn’t find a way to convert it to a mesh without it suddenly becoming “overweight”!

All in all, after speaking with a friend, metaballs may not be the way to start the character modelling. I’ll try again building with meshes from the ground up.

This involves much more direct manipulation of vertices and edge/face creation:

You will probably want to half your object, enabling the mirror modifier, but only apply the mirror modifier when finished. It’s also extremely likely that you’ll want to be able to select vertices behind those visible:

https://blender.stackexchange.com/questions/119472/blender-2-8-how-to-select-edges-behind-other-edges-when-in-numpad-1-mode

Copying modifiers

Shift-Select the items you want to receive the modifier from, and finally the item with the modifier you want to copy.  You then use Cntrl-L to link the modifiers, BUT you MUST do this with the mouse cursor over the modelling viewport – otherwise nothing will happen!!!

A problem with this approach is that, if Armature modifiers or mirror modifiers are already setup, you’ll end up breaking your animations and causing new limb parts to appear everywhere!!!  To make use of this approach, try to model the mesh first (only on one side), then the materials, then things like the outliner, mirror modifiers, and rigging last.

Blender Outlining [SOLVED] – Cannot find Backface Culling option under Viewport Shading.

Helping people with Lazy Eye learn to use both eyes again requires a long term commitment on their part.  That shouldn’t be a drag, so I am hoping to inject a little humour through two animated characters which accompany the participant on their journey, helping to motivate people to continue.

A part of the look and feel that I am striving for is to use a Toon Shader / Cell Shader to create an Outline image similar to that shown in this short tutorial :

Unfortunately, the current release of Blender 2.8 just doesn’t work the same way.  You cannot select Backface Culling from the shader menu!

It does exist in the “solid” view as shown below, but that isn’t very useful:

In the rendering modes, the option just isn’t there anymore:

Now, you need to look inside the material you chose to be your outline, and under settings you’ll find the “Backface Culling” option.

 I hope this helps somebody!

When Unity UI Goes bad – The perils of DontDestroyOnLoad

This is quick note about a really obscure problem which can bite you quite hard in unity. If you switch between scene you may need to use DontDestroyOnLoad to keep certain objects hanging around during and after the transition. If, however, you have stored collections of scripts under empty game objects – and there should be an overlap between the set of scripts in a GameObject in Scene1, and Scene2, that DoNotDestroyOnLoad will prevent the GameObject containing the clashing script in Scene2 from being loaded- AT ALL! This will break things in the most unexpected and non-obvious way. For instance, RayCasters may suddenly disappear because they were never loaded (but ONLY when Scene2 is loaded via Scene1) causing User Interface elements to no longer pick up user input etc.

Bewarned.