Digging up this thread!
Dave emailed me directly about setting up his course and I thought I’d post my reply here. Let me know what you think.
I see two major challenges in the process of training technical artists as part of a university program:
The first challenge is related to the amount of information that technical artists need to know. Technical artists solve problems for artists and build tools that make artists’ jobs easier. They also perform art-related tasks that are too technical for most artists to understand. In order to do these things, a technical artists must first know all of the things that the regular artists know. They have to know how models are built, how UVs work, how textures and shaders work, how animation is done and character rigs are built, etc - all of the knowledge that a general 3D artist uses. On top of that, technical artists must also understand the process of creating tools. They need to learn programming, scripting, and shader languages, and how to use these to make art tasks easier. This is a LOT of information to cram into one program. Current technical artists in the industry usually start out as artists. They learn all of the art side of things in school and then get a few years of experience doing normal art tasks in the industry. At that point, they know the process well enough to begin seeing things that can be done to speed things up. That’s when they go out and learn scripting and programming on their own in order to make these things happen.
Having said that, there are some tech artists that I know that are new to the industry that did go through a specific program in school to learn to be technical artists - and they’re doing quite well - so perhaps the model is changing.
The second challenge I see is that there are lots of different kinds of technical artists and every video game company is looking for something slightly different when they say they’re hiring technical artists. Some companies are looking for someone to do all of the character rigging and skinning (these are often referred to as technical animators). Some companies are looking for someone to just write shaders. Other companies want someone who can write mesh exporters and be in charge of the art content pipeline. And some companies want someone that will create lots of plugins and tools. (And some companies want other things besides what I have described here.) Each of these different kinds of technical artist needs to know enough information that you could fill an entire degree program devoted specifically to each of them. The problem is that if you focus on only one of these areas, your students will be well prepared for that specific area - but the companies that are hiring might be looking for something else. And on the other hand, if you teach a little bit of all of them, your students might not know enough about the specific area that a company is looking for. You’ll need to find a ballance between too narrow a focus and too broad of a focus. One possible solution to this problem would be to have a one semester class where the tech art students get a small taste of all of the different types of work that tech artists do, and then allow them to choose a focus based on what they think they would be best at.
How important is shader writing for a technical artist? Do you feel that learning how to write shaders is as important as being able to control them using a package, say ShaderFX or the material editor in ut3?
Shader writing is one specific focus for a technical artist. It’s a very important part of the art process that most artists are not able to do. It’s very important that a project have artists that are capable of creating shaders. Not all technical artists will be interested in shader creation however, so this may be one of the courses that you create as optional. I’d recommend allow the art students to choose between a course in shaders and a course in rigging. As for your question about writing shaders vs controlling them - the main thing that a tech artist needs to understand are the fundamentals behind what’s going on in the shader. He needs to understand what a dot product does, how lighting works, what “normalize” means, how and why vectors need to be transformed to different spaces, etc. These are the fundamental principles behind shader creation. When the students understand the foundational principles and the math behind what’s going on, they’re be able to created shaders in whatever interface they have. The important thing to keep in mind is that HLSL, ShaderFX, UE3, etc are all just interfaces to creating shaders - different methods of going about it. If the student doesn’t first know the core principles, they won’t be able to use any of the interfaces. Now that I think about it a bit, I’d recommend teaching the students to write shaders in HLSL. That’s the most fundamental way to learn it and the most universally accepted skill. If a company is looking for a tech artist to create shaders in UE3, and they know that a candidate knows how to write them in HLSL, they’ll hire that candidate because the shader programming knowledge is easily transferable. On the other hand, if a company is looking for an artist to create shaders in HLSL and they know that the candidate only knows how to use the UE3 gui editor, they may pass on that candidate because he doesn’t have the required skill.
-
Do you think this course meets the requirements to enable a graduating student to work as a Technical Artist?
There is something very important that I don’t see on your list of classes that all tech artists have to know. One of the main things that tech artists do is to identify areas in the work-flow and pipeline of regular artists that are borring, slow, broken, etc, make a plan for how to improve that work-flow or pipeline, carry out the plan, and then work with the artists to make sure that the solution is suitable - making revisions along the way while observing how the new tool or solution is being used by the artists. It is essential that your students learn this skill. Learning to create a rig, learning to write scripts in python, learning to create shaders - all of these skills are important - but if the students don’t know how to apply these skills to solving real problems, then they haven’t learned what they really need.
I recommend teaming up your tech art students with your normal students on group final projects. In the projects, have the art students create the art, and have the tech art students look for ways to improve the work-flow of the artists, help them get their work into the game engine, etc. This is how the real industry works and it would be the best experience for the students in my opinion.
-
Do you feel that the course offers too much variation of content
Yes - although I don’t think you should drop any of it. As I said before, I think you should offer classes in shaders, scripting, rigging, etc - more than the students are able to fit into their program - and then allow them to choose which areas of focus they’d like to have. Perhaps their favorite 3 out of 4 or something like that.
-
Are there any other subject areas you would consider vital for this role?
As I stated above, they need to learn how to work together with artists. The art team are the clients of the tech artists. Tech artists need to know how to make tools, but the tools need to fit a need and solve a specific problem that the artists have. They need to learn how to teach artists how to use a tool that they’ve created, take feedback on it, and then improve the tool based on artist feedback.
-
Which of these programming/scripting languages do you consider vital for a Technical Artist to know? (MEL, MaxScipt, UScript, Pthyon, Lua, C++, HLSL)
All of these lanuages are good to know. The specific languages that a tech artist will need depend on the software that the company uses where they get hired - ie MaxScript vs MEL, etc. Some companies use a lot of Python. Others use more Lua, etc. I recommend that the students learn at least one 3d software specific scripting language (MaxScript or MEL) and one general purpose scripting language (python or lua). HLSL is kinda of in it’s own category because it’s only for shader writing. If the student descides to go down that path, then yes, they need to learn HLSL.