Have you ever wondered how those amazing tools on the Unity Asset Store are created? Have you ever needed a Vertex Painter tool for your own game development projects? Then this course is just for you!
Throughout this course we will take you step by step through the creation of your very own Vertex Painter tool inside of Unity3D! The tool that we create together will allow you to paint vertex colors, save out colors to color palettes and show you have to create a brush that control falloff, opacity, and size.
By the end of this course you will have gained the knowledge and confidence to build your own vertex painter tool inside of Unity3D, and other tools that your game development projects might need!
Lets take a look at what we are going to build throughout this course, and walk through some of the elements we are going to program in Unity 3D.
Before we begin the development of our Vertex Painter Tool for Unity 3D, we need to get a few things set up first. We will walk you through the creation of your development environment by setting up a proper folder structure for tools development, and discussing the required folder names that Unity looks for when developing tools.
With our Development Environment all set up, lets start out our tool development by creating the base Editor Window, so we have a working editor for our Vertex Painter tool. This will lay in the framework and show how to build a basic Editor Window in Unity 3D.
Editor Tools rely heavily on a user experience. If the end user can't use the Editor, then we have a useless tool. Ensuring that the User experience is clean and easy to use, we need to learn a bit about how to create our own Editor GUI, using Unity's Editor GUI classes.
Now that we have discovered how to make your most basic Editor UI elements, lets take it a step further and see how we can utilize Unity's GUI Styles to give even more custom control over those UI elements. By the end of this lesson you will have gained the knowledge necessary to create some very dynamic Editor UI's in Unity 3D.
In order for us to create an interactive type tool inside of Unity 3D, we need to gain a better understanding of how we can manipulate and override the Scene View so we can draw our own GUI for our Vertex Painter. In this lesson we are going to lay in the foundation for us to do just that. This will give us the power to draw our own custom brush graphics in the next few lessons!
In lesson 6 we will begin the process of getting inputs from the user, so they can control the different aspects of our vertex painter tool. We will code up the necessary methods in order to capture inputs such as key presses and mouse actions to allow the user to interact with the tool and drive the user experience.
In order for our vertex painting tool to paint vertex colors, we need to detect if the mouse is over a mesh or not. Without this core component it would be impossible to apply vertex colors to a mesh through the use of our tool.
Before we go any further with our Vertex Painter we need to make sure that the scene view does not allow us to pick objects, or drag select objects, and we also want to turn off any transform gizmos. This will allow the user to paint freely, without the default Unity controls getting in the way.
With our Vertex Painter almost ready to go for actually painting color, lets add in our brush controls, so we can give control over the brush size, the opacity, and the falloff.
In lesson 10 we are going to look at how to get access to our mesh component without having to explicitly assign it to the editor tool. This type of dynamic search and retrieve functionality is key to a smooth user experience.
With our complete editor system up and running now we can add in the code we need to paint our vertex colors.
To close out this course, we are going to cover the basics of programming a Linear Falloff and a custom Color Lerping method. This will give our Basic Vertex Painter a bit more polish before we get into some more math heavy lessons in Creating a Vertex Painter Part 2.
Gametutor teaches the latest in game development and technical art for Unity 3D, Houdini 14, Houdini Engine, C#, and Substance Designer. Gametutor has been teaching industry professionals, online, for over a year and a half, and continues to push the boundaries of game development education.
Noah Kaarbo (Co-Creator / Designer / Entrepreneur), has worked in the Game Industry for over 14 years. He has helped ship over 20 AAA titles, ranging from Halo Reach to countless Forza, Call of Duty, and infamous franchises. He is proud to be contributing his skill sets to Gametutor.
Kenny Lammers (Co-Creator / Instructor / Programmer / Technical Artist) has worked in the Game Industry for over 14 years, for large game companies such as Microsoft Games Studios, Activision Blizzard, Surreal Software, Eline Media and Amazon. He has a deep knowledge of C# programming, Shader Development for Games, General Technical Art Techniques, Modeling, Texturing, and Teaching. He has taught course online, for Digipen, and for the University of Washington.
Our Goal with Gametutor is to bring the highest quality Technical Art and Programming training, to the masses, and show how awesome game development can be!