A newbee animator who wants to be a tech-artist

Hi guys, just heard this website from a book and here I am ! I’m currently a junior animator and really want to dive into tech area. I have basic knowledge of rigging and I’m just lost where to even begin to become a tech-artist. I have taken one pymel class and have basic understanding how code works. Beyond that, I have no clue where to start and which language i should start with. I hope I can get some advise here to either buy a book or videos or anything to get start.
Thank you very much guys. any help will be grateful .

1 Like

I’ve found that while books and tutorials are helpful, the best way (in my experience) to get comfortable with coding is to write small scripts to help out with the tasks you are already doing. So, you might be rigging something and realize you have to perform a certain task many times. See if you can write a script that automates that. Nothing beats learning by running into real problems, bugs, and technical challenges that you have to search out the answers to.
You can look at the script editor (assuming you’re in Maya) to see what commands are being executed when you do certain things. For this reason, I think MEL is a good starting point, but once you get somewhat familiar with the process, you might want to jump to Python, which is more powerful for certain things. Hope that’s somewhat helpful.

Maya Programming for Games and Film (Mechtly/Trowbridge) and Practical Maya Programming with Python (Galanakis) are the two books every Maya TA seems to have.

As far as Mel vs Python, I have to favor python. Mel’s value lies in revealing the structure and systems of Maya, how Maya ‘thinks’. Maya.cmds is basically a python wrapper for Mel. Early on in my career I was advised to ‘Google how to do stuff with Mel, then implement with Python.’ python is much more useful beyond Maya, and more fun to program with as well.

As an artists to jump into programming by using examples found online or just reading the maya script editor mel / Python outputs is in my opinion dangerous.

Anyone can script and almost any issues you have has probibly been solved on some forum or online video, but to understand what they are doing and tread off the path of (Youtube tutorials or programming tutorials in general) is something else. You have to understand how the basics of programming works (You’re going to want to learn: C++ for plugins, Python because almost all used software contains python as a scriptable extension, C# for .net applications, and most in house / commercial engines use it) these are the languages I use in order, I personally would take time (minimum 200 hours) to learn and understand the basics of programming there are hundreds of resources to teach you, but if you’re really interested in learning and being one the fastest and most successful way is a (1) year diploma.

1 Like

“Dangerous” may be too strong of a word. That said, It is very easy to write (and google examples of) poorly formed code that still works in python. The point should be taken: to have mindset to learn as much about programming mechanics, principals and good ‘clean’ coding practices as you can.

C++ is awesome for really understanding how code works at the (almost) lowest level.
C# is great for learning to structure your code , especially Object oriented stuff. (and if Unity is your engine, it’s a must)
Both should definitely receive an investment of time at some point
But I’d still start with Python.

I was only saying what languages I use in order (I don’t see him jumping into C++ anytime :P), but I agree with you @Mambo4 OP should learn Python first since it directly aligns with the tools he’s currently using.

It’s not dangerous to include programming into your profession, it’s just dangerous to not know how to transfer skills properly.

I say it’s dangerous because I’ve seen many people who have one background and choose to get into programming rely too much on copy paste scripting too much, they say “I can easily google any question” (Because technically it’s easy to script) and they won’t know how to preform actual logic / operations. All the time they spend They don’t fully understand that they need to understand basic concepts.

Once you touch graphics and performance, C++ is good to know to understand whats causing your bottlenecks.
Especially when you are looking into CPU/GPU problems and how DirectX comes into play.

But for tools and pipeline, you can easily get away with Python/C#.

I would personally learn a language you can use right now so you can practically practice. There is a timing for everything.

Yeah, plenty of TAs get by without ever having to know C/C++.

But I do agree on learning the fundamentals of programming, luckily Python is used a lot for teaching just that, so there are tons of resources out there written in a language that is directly useful for you as a TA. C# is another fantastic language for learning as well, and again can be directly applied to life as a TA.

Something I thought I would add to the other comments, for me I feel one of the harder things when learning on your own and googling your way to glory is definitely the aspect of no code reviews from others that know the ins and outs as well as some of the deeper concepts. This site and possibly others out there might help fill that void a bit when you get to that point and want to test yourself a bit. https://app.codility.com/programmers/

1 Like

https://codereview.stackexchange.com/questions/tagged/python is also a great place to get folks to comment on your code structure and style; they won’t usually know much about the application-specific problems or APIs but they can definitely point out when you’ve done something suboptimal.

1 Like