Pirate Character Development #2: Jumping into ZBrush

Work In Progress / 13 February 2020

Part of me became too excited to jump straight into sculpting and ended up using the head from my base mesh to start sculpting and practising brush techniques. I learned a great deal about how brushes work, which ones effect geometry realistically and which ones didn't - I mainly looked into a custom Orb Brush package which allowed me to have some skin and hair textures, as well as some others for details such as warts etc.


I used a reference image to begin sculpting some of the details in his hear and beard, noting the widows peak and beard hair detail. Overall, I was pretty happy with the sculpt I had created as it showed some good detail I could take further into ZBrush. However, this became my downfall as I did not have a side reference for this character, and the proportions were not as good as they should be; I found this out through asking for feedback in 'The Club' Discord server, and discovered I had proportions which were inaccurate.

Shown above, the facial and head hair were not accurate and need to be re-worked into a future sculpt; the ears and head shape were also too close to the original base mesh, which because I added a lot of clay to get the hair, was now warped forward.

I have decided to take a step back from being too excited, and look into the basics of character creation once more inside ZBrush without a 3DSMax base mesh.

Pirate Character Development #1: A New Project!

Work In Progress / 27 January 2020

Character design is something I haven't really attempted to do... ever, so taking on this task is something that I will find very valuable to my skillset. I have to create a 3D character, texture it and animate it in an idle animation loop. Once I complete the base mesh, I plan to sculpt the character within ZBrush for detail, texture within the Substance Suite and animate in-engine inside of 3DSMax; finally, I will upload the idle, rigged character to Sketchfab to be presented in a 3D view.

After looking online, I was greeted with a variety of tutorials for body and face low-poly modelling from a box, where I used a reference image from Robin Keijzer as my inspiration for this task as I plan to use his character for this development. Starting out this wasn't too challenging, as it required simply following a guide and making sure that the modelling looked smooth and consistent when smoothed out (as it would be in ZBrush).

During this process, I used Miro, an online whiteboarding tool, to create a series of images I could use as reference while sculpting, texturing and animating. By using these reference images I should be able to incorporate these ideas into the Substance Suite and create unique and appealing materials for my character.

While working on the base mesh, I discovered that I should include some details with the base as you would not see any of the elements underneath; for this character, this would mean the beard and armour. I started working on these late at the weekend (due to my laptop dying! :( ) and finally got a headshape I am happy with to start sculpting, I just need to get some form of hands working and work out my proportions for the body.

Crystal Generator Tool #12: To the Unity Store!

Work In Progress / 10 December 2019

After further refinement using Shadergraph, I finally have the crystals looking the way I'd like to them to and have now created promotional imagery using screenshots taken from the engine. The Unity Asset Store asks for an icon image, a card image, a cover image and a social media promotional image; I created these using Photoshop and screenshots from my tool to create images which show the most visually appealing angles of some crystals which have been generated.

When it came to adding information, I made sure that it was from the version I was working on and higher (2019.2.13) and used with HDRP otherwise shadergraph would not work with the materials refraction and visuals. Now, I will just be waiting to see if Unity approves the first build and hope someone may buy the product. 

For the tool, I also recorded a demo of how to use the tool. This video shows the way the designer would use the tool with some explanation of how each element works; I also supplied a .pdf document which is an offline guide of how to use the tool.

Crystal Generator Tool #11: Emission and Bloom

Work In Progress / 09 December 2019

Adding further development I have added the emissive elements to the crystals. Being a novice to the HDRP in Unity, I was not aware that Emission had to be supported through PostProcessing Volumes and Bloom elements; after messing around with various values, I discovered that the emissive value needs to be a ridiculously high number to prevent the bloom from blurring the entirety of the scene - to combat this, I added a x10 multiplier within the code so the emissive value the user sees isn't a silly number which I feel helps prevent over-complicating the tool.

After adding this functionality to the demo scene, I figured that I should clear up the Shadergraph nodes and make it look less like spaghetti with structure. I made sure the texture multiply nodes were aligned to see the changes at each stage which lets me see how each node affects the texture and helps me understand my workflow. I still plan to make further changes to the visuals here in terms of transparency and refraction within the crystal, which will be my next step.

Crystal Generator Tool #10: Mesh and Console Variety

Work In Progress / 08 December 2019

Following the main functionality finally being integrated, there is now 20 variations of low-poly crystals available when the user first gets the tool - they are also able to drag their own meshes into this folder to add them to the list the tool can pull from.

I also decided to add some colour to the debug menu using Rich Text (<color=yellow></color>) in order to show the user the saving elements inside of the console; I felt that this was important so the user is able to see the file path the prefab/material has been saved to (even though they can customise this).

Next up, I plan to refine the shadergraph material and polish some advanced functionality!

Crystal Generator Tool #9: We Have Saving!

Work In Progress / 08 December 2019

After a long few days of trying to figure out why the material wouldn't save the parameters, it turns out that the materials have to be exposed during instantiation for them to actually be seen within the scene. Annoying, but it's done!

Below, you can see a quick run-down of the current workflow, with mesh generation, customisation and saving! It's brilliant finally seeing some form of progress some out of this tool.

Next, I plan to create further meshes  to include for the user as well as adding some polish on the UI, shadergraph and Debug elements.

Crystal Generator Tool #8: Refining and Fixes

Work In Progress / 07 December 2019

After a bit of user testing I have discovered that clicking the rename field without typing anything renames the file to ""; this causes an invalid path when it comes to saving the asset so I have implemented a Dialouge window when the asset is renamed in this way which also prevents the save from being executed. Users found this a bit easier to use as it allowed them to not do it accidentally and allowed the workflow to be polished,

I implemented a system for adding the custom material clone to the crystals using List<T> which uses a forloop to add the material to all of the crystals which had been instantiated. Funnily enough, I was not aware that lists are not automatically cleared which led to 208 meshes being stored and Unity to almost crash - after finding this error, I simply added a ClearList function before the objects are instantiated and it now works.

One issue I seem to be facing now is forcing the custom material clone to look the same as the normal one - for some reason the material is resetting to default when it is being cloned and I am unsure why especially when it seems to have the correct parameter clone values when they are exposed. It seems it will be a lot of trial and error to fix this.

Crystal Generator Tool #7: Cloudy Patterns

Work In Progress / 05 December 2019

Looking further into Shadergraph I am slowly realising how textures can be created procedurally using Math functions as well as noise patterns available within the editor; by combining these with a texture input I have been able to allow a customisation feature where the crystals look 'cloudy' and a bit more fantasy-like. Adding some animation to the UV co-ordinates has allowed the crystals to look more alive which could potentially be supported by particles and lighting in the future.

Combining these cloudy elements with my randomisation function has allowed for some pretty cool colour combinations to come out of it!

Looking forward in progress, I need to sort out the saving of the materials/prefabs so the user can keep the crystals they use; as well as model further variations of crystals which can look more detailed.

Crystal Generator Tool #6: Visual Updates

Work In Progress / 03 December 2019

Having made some basic prefabs for crystals using online reference images, I implemented these into the array which are then taken into the tool for the random choice generation - users are also able to add their own crystals into the /Meshes/ folder which the tool can automatically add to its array. By allowing random rotations and scaling, it allows the crystals to have further variation and this allows the concept of the tool to have a larger unique selling point in comparison to other assets on the Unity store.

Having generated some basic circle code using a tutorial, the crystals are able to replicate a fantasy environment and this also allows them to also look like strategically placed crystals as well as clusters.

Crystal Generator Tool #5: UI

Work In Progress / 03 December 2019

After heavy experimentation with the different functionalities the tool could have, I decided to separate out the Mesh Generation from the Customisation tab. This is now shown in a 2x2 grid with the main mesh elements on the top and the customisation on the bottom row.

After working on the mesh generation code, I realised the original concept of creating the crystals through code would not be a good solution to this generation due to finding out the normal code for a Primitive Cube is an extensive amount which I would not be able to implement even with knowing the pseudo code.

Working on a new system, I decided that creating a set amount of meshes that the tool can pull models from would be the best course of action. I added the array to the GUI, as well as new parameters which dictate how many are instantiated, how they are scaled and how they are positioned in a circle relative to one another in order to create a cluster type feel.

Overall, this has become an excellent update of progress and it is definitely motivating to see something finally come out of the tool. Onto the next update!