Home Technical Talk

Dissertation help - MAXScript to help Environment Artists

polycounter lvl 13
Offline / Send Message
Wesley polycounter lvl 13
Hey folks, I’m 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 I’m a bit concerned about the latter part of it. I can’t really think of a whole lot of examples of time consuming problems that can be solved via scripting. I’ve been working on a few, mostly based from personal experience and problems that we’ve had at work. But overall I’m 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 I’m 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 can’t be completely frank about certain things due to NDAs and such, but if anyone can give any advice, personal or otherwise, I’d be really grateful.

Over the past few months I’ve been diving into MAXScript to prepare myself for this. I’ve been using the fantastic CG Academy DVDs on MAXScript and ASutodesk’s MAXScript Essentials book. I’ve also been frequenting scripting sites such as ScriptSpot and looking at other’s 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 I’m less concerned about that considering I’ve not even broken in yet).

So all in all I’ll be using this thread for advice and help over the course of however many months my dissertation takes. For now I’d 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 they’ve seen I’d be much appreciated. So far the best I’ve come across is this article on Gamasutra: http://www.gamasutra.com/view/feature/3870/an_environmental_pipeline_in_.php

If you’re 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 who’s seen this more than once and is sick of seeing it. :\

Replies

  • Eric Chadwick
    Options
    Offline / Send Message
    Yeah, I was going to suggest Tech-Artists.Org for a look-see.

    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
  • PredatorGSR
    Options
    Offline / Send Message
    PredatorGSR polycounter lvl 14
    I think a basic knowledge of maxscript/melscript is essential to be a productive environment artist.

    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.
  • renderhjs
    Options
    Offline / Send Message
    renderhjs sublime tool
    I guess you should focus on a few key examples, there are just to many cases one could tackle for environment production.

    A few things you could tackle:
    • Pipeline
      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.
    • Randomizers & Drop / scatter tools
      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.
    • Library tools (asset management)
      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.
    • Blocking tools
      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.
  • MattLichy
    Options
    Offline / Send Message
    Yeah, I got into maxscript just for this kinda stuff. I was running into what I felt as roadblocks in 3DS Max when at Bungie, and started learning to maxscript to help me get past those and focus more on the art side of things and less on how to go about using max to do what I needed to do.

    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.
  • haiddasalami
    Options
    Offline / Send Message
    haiddasalami polycounter lvl 14
    Just finished creating it thanks to some help from claydough. Made a pivot tool to move pivots faster. Made it because I felt moving pivots was just a chore for me especially when you need to go through 100 meshes to export out to UDK. Ever since I started learning MEL been recommending it to my classmates and scripting is always an asset to any 3d modeler.
  • Warheart
    Options
    Offline / Send Message
    Warheart polycounter lvl 17
    I totally agree with MattLichy and renderhjs. One of the greatest values of having artists with technical knowledge is being able to automate the monotonous production specific tasks that we all have to do in the process of making assets. Because of this in a production environment you'll more often than not be asked for a tool to automate doing something very specific to the workflow that everyone is using. The problem with that is that it isn't something you're likely to be able to emulate for your dissertation unless you can do it as part of a group project or something.

    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.
  • sprunghunt
    Options
    Offline / Send Message
    sprunghunt polycounter
    This thread:

    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.
  • Wesley
    Options
    Offline / Send Message
    Wesley polycounter lvl 13
    I know this is a huge bump and that's generally frowned upon. But! I couldn't let this thread die without giving an update and saying a huge thanks to you guys. The amount of well considered replies with amazing examples really shows how much this place rocks.

    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!
Sign In or Register to comment.