Archive for the ‘Art’ Category

What I’ve still been working on - trailer 2


Technorati Tags:

Dominance War 2 started

A year ago, Polycount and CGChat had a game art competition to build a futuristic War General - The Dominance War. One year on, and the sequel is here.

I’ve not decided if I’ll enter yet. Hmm.

Technorati Tags: , ,

Tips for artist organisation

Inspired by a thread on Polycount about being an organised artist, I decided to post my tips there and here.

If you have any other suggestions on how I could become more organized and efficient in producing cg work, I would be much obliged.

Some general art tips:

  • I use a folder of shortcuts (as posted here before): Windows shortcuts speed up your workflow
  • At work I do a lot of rigging/skinning. I’m always dropping animations onto skeletons to test them, and by default 3dsmax looks in it’s own Animation folder. Therefore in that folder I have a shortcut to our exported animation folder on the network - this stops me browsing for it each time.
  • I use Alienbrain a lot to prevent me having multiple versions of a file lying around with slightly different names.
  • In Photoshop, if I’m using only a few layers, like using a PSD file simply as a container to store a diffuse, spec and normal map for the same object, I’ll have empty layers between each of those, named SPACER and turned off. It helps me separate each section, and prevents me accidentally collapsing them onto each other.
  • With a busy PSD, I’ll make use of folders - example: if I have several diffuse textures for the same object with dirt layers, then each of those gets its own folder, jumper1, jumper2. Each of those has sub folders dirt, rips etc.
  • Map your photshop filters to hotkeys! FILTERS?!!!!YUCK!!!!11. No, this is really clever. Alt-F5 is Unsharp mask, Alt-F6 is Gaussian Blur, Alt-F7 is Highpass (a VITAL filter)
  • Never name a file temp.xxx if you plan on keeping it.
  • Likewise, NEVER name a file latest.xxx

A few other computer workflow tips:

  • Sort your internet bookmarks into folders, such as Music, Money, Art, Games. Sort these with subfolders where applicable.
  • Delete emails as you get them/deal with them, or move them to a folder. At home I usually have 0 emails in my inbox - they are either deleted or stored in folders such as Friends, Holiday, Registration Information. If you do need to find an email later, use your packages SEARCH function.
  • Use an RSS reader to get your dose of news. I prefer to use Google Reader, I used to use bloglines. A web based reader allows me to read the same feeds at home or work. I’m subscribed to BBC news, Eurogamer, Lifehacker, Warren Ellis, lots of friends sites, some Polycounters sites, Boing Boing, Penny arcade etc. Like everything else, I’ve organised these into sections - Computing, Art, Friends, Music, News etc.
  • Use your feed reader to subscribe to digital photograpy technique sites - thats where you pick up invaluable tips such as colouring grayscale images with duotones and tritone. I learned the orton effect there, which is superb for concept art. I learned that you often get a better sharpen with less artifacts if you do it in LAB mode…

3dcreature site for games artists

Whilst browsing Polycount, dishing out advice with my uncalibrated moral compass, I stumbled upon a link to 3dCreature. You should pop along to it for a good look.

This website is aimed at being a quick stop-over for digital artists to check out cool art and update themselves on news that matter. The content on this site is mostly tailored towards character art. You can also find news about the games and film industry. Let’s just say that the content has been filtered and streamlined so you can surf more in less time.

Tutorial - Basic Game Lighting

Eric Elwell has a new tutorial online covering basic game lighting. It shows how a model is affected by the deafult and advanced lights in the Torque engine, and will be followed by a texturing tutorial to take advantage of this knowledge.

Scripting streamlines your 3d workflow

I think a lot of 3D artists overlook the power that scripting with their 3D application provides them.

“I’m an artist - so why do I care about scripting?” I hear you cry. Scripts are great for automating repetitive tasks, and you don’t need to be a superb programmer to take advantage of them. That being said, if you understand a few of the basic aspects of programming like loops and variables then scripting becomes even more powerful.

I predominantly use 3d Studio Max at work (along with Silo for modelling), and I’ve found that maxscript is relatively easy to learn. I’m not a Maya user, but I understand that it’s scripting language, Mel, is fantastic.

How about some examples of where scripting is useful?

I know that all the characters I build in my current project have the same bones, so rather than creating them from scratch each time, I have a script that loads them from an external file. After the bones are loaded, it creates 2 selection sets - 1 for all the bones (but no nubs), and another set with a drastically reduced bone list for the LOD model (no fingers, toes, helper bones or face bones for example). The script finds all the components that need a skin modifier applied, applies it and assigns the correct bone set (thats the benefit of a sensible naming convention for you).

I like all my renders to look the same, so I’ve written a render script - it loads a scene with my preferred lights, floor and camera, sets the background colour of the scene to be neutral and changes the lighting tint. It selects the camera, sets the output size, grabs the name of the model from the max filename so that it can name the image, then renders and saves the image to the same folder as the model. It also renders Front, Back and 3/4 views.

Sound useful? How about a batch script? It loads a list of models in turn and executes another script. So if I need to render out all my work, I just point my batch script at my models and tell it to execute my render script - then I can bugger off for a coffee, or leave it running overnight.

Setting up all your shaders? Press a button and maxscript converts all my max materials to shaders, with all the shader values set to our correct defaults.

So where do you start?
The best thing to do is to pick a simple task and try to script it. I learned to script not by doing abstract examples, but by just grabbing the bull by the horns and trying to write something useful. But where can I START? The first step?

3DSMax has a tool called the Maxscript Listener, which records almost everything you do in max. This is usually my first step - I open the listener, then I perform the entire task manually. The listener records all the steps (usually, sometimes the listener has selective hearing), and I can simply copy and paste them to a new script document where I can then edit until I’m content.

It’s worth mentioning that not just 3d applications that can have their workflow improved by scripts - Photoshop is a good example of a 2d package that allows you to create actions to automate repetitive actions - such as resizing and sharpening an entire folder of textures.

Resources:
These are a few things I could think of to help you along the way.

  • The Maxscript help files that come with max are very, very good. I’ve gotten most of my help from these.
  • Search Google for ‘Learn Maxscript
  • Scriptspot has got thousands of 3DS Max scripts online - there is a good chance that you get something to suit your needs, or tear them apart to learn how they work.

NY Bridge



Yes, I’ve posted this image before, but I’d ve been busy at work and had nothing new to say.

Efficient use of polygons

This tutorial is aimed at newcomers to modelling. It partially discusses a problem that I call “square modeling”. This is where a significant number of the polygons in a model are (nearly) perfect squares. I’m not taking about quads - they have 4 sides and 4 corners, but this doesn’t mean they are square.

Use it or lose it

Often when you start modeling you end up using more polygons than you need to define a shape, and you keep a lot of square edges. The most common mistakes that newcomers make is to create another row of edges (known as a loop) just to define a corner on one area of a mesh. The other new vertices and egdes that were created are not used to define the shape of the model, so in effect they are being wasted.

I must stress that sometimes leaving these extra polygons is a good idea - either for better use of textures when UV mapping, or for better lighting results. However, in most cases this extra geometry can be removed, or used to define more shape.

If its there, use it.

The tutorial

This is a very short and simple tutorial showing how I often see shape definition being done inefficiently, and describes a more elegant method. It deals SOLELY with shaping without excess geometry.

This tutorial is also aimed SOLELY at static parts of a model, not areas with joints that should deform. Joints are a case when keeping or adding geometry is very useful.

The pipe

Firstly, lets get a simple shape with some angles on it. I’ve drawn a very simple pipe that has a slight kink in it, and a then surrounded it with a cube to block out the shape.

image1.png image2.png
The initial sketch. The initial sketch with a box surrounding the extents.

Method one

Now that we have the basic box, lets make the shape.

Firstly, here is the way I often see it being done - the modeller looks at each angle individually, without considering the shape as a whole. Since they consider each angle individually, they construct each angle individually.

image3.png image4.png
The modeler creates a new row of edges for every angle on the object. There are 2 angles at each side (2 sides shown), making 4 new rows of edges. Once the loops are created the vertices are pulled into shape.

The model looks correct, and works perfectly. However, there are more polygons there than need to be. Only part of the geometry is used to define the overall shape, and some parts simply do nothing - the look like big squares. This is “square modeling”.

If you look at bottom left section of the second image above, you can see 4 vertices in a perfect vertical line. The middle 2 are serving no purpose. These are wasted. Where edges meet at 180 degrees, the connecting vert is often unnecessary - either give it a purpose of defining some shape, or simply remove it.

Method two

Lets have a look at another method to build the same shape, this time considering the shape as a whole, looking at volumes of mass.

image5.png image6.png
I create a new loop for every PAIR OF ADJACENT angles on the object. There are 2 angles at each side, so that is 2 new rows of edges, not 4 as before. Once the new rows of edges are created the vertices are pulled into shape.

The first thing to note is that the model also looks correct - it is exactly the same shape as before. However, there are less polygons than the first method. How many? Lets work it out.

We’ll have to make some assumptions:

  • The pipe has no ends
  • The pipe has 4 sides
  • 1 quad = 2 polygons

The maths part

In the first method, there were 5 rows, or 5 loops of quads. The pipe has 4 sides.

4 sides * 5 sections of quads * 2 (to convert quads to triangles) = 40 triangles/polygons.

In the second method, there were 3 sections, or 3 loops of quads.

4 sides * 3 sections of quads * 2 (to convert quads to triangles) = 24 triangles/polygons.

Method 2 uses almost HALF the number of polygons that method 1 uses.

This was a very simple tutorial based on a simple feature - a pipe - yet the same method works perfectly well on characters. With characters it can provoke a more organic flow.

Points to note

As mentioned at the start, this tutorial is aimed SOLELY at static parts of model, not areas with joints that should deform. When you have a join, such as an elbow or a knee, you need to have those extra rows (loops). If you don’t have them, the model will collapse horribly during animation.

With some models, adding the extra geometry used in the first method will make the model much easier to UVmap, and may improve lighting - squares provide a better generic surface to calculate light and shadow over as they are based on 2 identical triangles.