Hey folks, Im design student currently on placement and am beginning to work on my final year dissertation. I wanted to try and make it relevant to (what will hopefully be) my future career path, starting out as an environmental artist and working towards a technical artist. Now, I already have a module in final year where I can focus on creating environmental art, but I still wanted my dissertation to revolve around that somehow. I also wanted to it have a more technical edge but that is also practical for me in the short term.
So I decided to base my dissertation on MAXScript and how it can help an environmental artist. The dissertation title for now is, How MAXScript Can Help an Environmental Artist: Speeding up Processes and Solving Problems. So, as implied by the title, I am going to be looking at two types of scenarios for scripts: those to accompany the artist while modelling props, texturing, layout the scene, etc; and those for moments when the artist is faced with a huge time-consuming problem, maybe requiring hours of work that could be solved with a few lines of code.
As you can maybe tell Im a bit concerned about the latter part of it. I cant really think of a whole lot of examples of time consuming problems that can be solved via scripting. Ive been working on a few, mostly based from personal experience and problems that weve had at work. But overall Im looking for some people with experience in this area, especially anyone who was a environmental artist, who can maybe point me in the right direction and give feedback.
At the moment Im not precisely sure how
much research into the area is needed and may need to find people who have experience in this area willing to answer a few questions for me. Now, I know that people cant be completely frank about certain things due to NDAs and such, but if anyone can give any advice, personal or otherwise, Id be really grateful.
Over the past few months Ive been diving into MAXScript to prepare myself for this. Ive been using the fantastic CG Academy DVDs on MAXScript and ASutodesks MAXScript Essentials book. Ive also been frequenting scripting sites such as ScriptSpot and looking at others coding to help learn. I also have two years of C# in XNA experience. Any advice on how to further progress in MAXScript would be welcome; as would any about generally how to make the move from environmental art to technical art (although Im less concerned about that considering Ive not even broken in yet).
So all in all Ill be using this thread for advice and help over the course of however many months my dissertation takes. For now Id be looking for anyone with experience in this area, especially MAXScript and helping environmental design through coding, just to simply state that so I can contact them if and when needed via PM. Also if anyone has any articles or examples theyve seen Id be much appreciated. So far the best Ive come across is this article on Gamasutra:
http://www.gamasutra.com/view/feature/3870/an_environmental_pipeline_in_.php
If youre still reading after that wall of text cheers very much.
Also, this has been posted across Polycount, Tech-Artists and CG Society, so sorry to anyone whos seen this more than once and is sick of seeing it.
![:\ :\](https://polycount.com/plugins/emojiextender/emoji/twitter/confused.png)
Replies
Hmmm. Env art tasks that could be aided by some Maxscript. I can't think of anything offhand. There are many excellent scripts already, but there's always room for improvement too. It might help to look through some of the stuff here in this section of the wiki, see if anything pops out at you...
http://wiki.polycount.com/CategoryEnvironment
I can give you some examples from my own experience.
- I've created custom hotkeys for actions that were not hotkeyable in the hotkey menu.
- I've tweaked TexTools & the standard Max tools to create a uv toolset customized to my workflow.
- We had an issue where our shader had the vert alpha inverted, and when the shader was fixed it reversed the damage blending on 300 pieces of modular trims and walls. This was in Max 9, which limited our options. Vert alpha was only accessible through the editable poly menu, so I couldn't put an edit poly on everything. I couldn't combine the objects because it would break the collision linking and break all the naming. By using the Maxscript listener, I was able to record the action of setting the vert alpha to 100, select all the pieces and apply it in a single action instead of having to do it individually to every single piece. It probably saved me hours of repetitive work across multiple files, which is the worst kind of work.
This kind of stuff is valuable to know so that when you come across random issues like this, it doesn't slow you down when you have a deadline.
For a full fledged tech artist, they can create lots of valuable tools that are customized to a proprietary workflow, create, fix, and customize shaders, create workarounds to program bugs, etc.
A few things you could tackle:
Mainly about optimizing data (meshes, meta objects, colliders,...) or just getting stuff ready for the engine. This can be a very time consuming job for the artists being involved, a tool that takes away the tiresome tasks can speed productivity so much. Imo. the most important thing if you work on bigger projects.
Max, maya and many other tools don't have satisfying tools when it comes to dropping, scattering or just randomly placing objects in a more natural look. There are plenty of maxscripts out there that distribute instances on shapes, splines or using a brush engine or simply randomize positions.
If you work with bigger teams and serious amount of tiles / prefabs it makes sense to invest some time into a system to archive and store the data. There are likewise scripts for this available, scripts that generate thumbnails and data to browse in a nifty explorer tool.
When you start a environment and you need to play with units (door heights, stair heights, proportions, ...) a few scripts in this area could speedup that process when it is not so much about the details but just quick and dirty blocking of a level or environment piece.
in the end I always script what I hate to do multiple times - thats the only category I have. If something makes me really really upset because the workflow is just painful I'll usually start a script to speedup things and get some peace. Because in the end its all about the time you have in your job, not so much the fanciness of your tool.
Now I am at Turn10, and its the same kind of situation, but maybe even more so. Just trying to figure out how to automate redundant tasks and whatnot, so I can focus on the bigger picture and get things done quickly and up to the quality I want without taking too much time.
I highly recommend people learn at least some some basic Maxscripting or MEl or Python. Even 1 line of code sometimes can make a big difference in a tasks, or save 5-10 minutes or work.
What might be a nice way to do it would be to choose a workflow that is used by environment artists and identify and automate as many areas as you can to make that process efficient.
If you'd prefer to work on a single system that will be more complex archetecturally then I'd probably do something like an asset system as renderhjs suggested. For example a system where you have a library of modular low res placeholder assets that can be placed to block out a level which are then updated as soon as the environment artist has finished that modular piece.
http://www.polycount.com/forum/showthread.php?t=78621
is a great example of how you can automate a workflow. If you're familiar with the tedious process of creating work for the valve engine you'll recognise how much this speeds things up.
Similar things can be done for other engines depending on how they're set up.
So basically after a few months of further planning, speaking to lecturers and getting advice from others I've decided to change my dissertation idea. Instead of working on MAXScript tools to help an environmental artist, I've instead changed it to a rigging dissertation. Although I think the idea as a whole is less unique, it does mean that I can research and create a piece of work that involves the skills of advanced rigging and MAXScript (I'm planning a whole bunch of tools to help create and animate the rig).
A lot of the ideas I'd come up with for my earlier idea I'll still create to help give me experience of MAXScripting (I'll be starting off super-simple though).
So yeah, you folks are awesome, thanks for all the advice!