2010-03-31

Grab your weapon

Phew, do you know that feeling when you have so much stuff to do and don't know where to start? It sucks, doesn't it? Well, for tonight I decided not doing any from my to-do list, instead I was drawing a little. This is the first few of the weapons' concept art I'm gonna make.


And yes, I know I promised a tutorial, but turns out my microphone is a regular cheap-ass one - you know, the ones that after a year or two turn into an extraterrestial-communicator-unit (too much unidentified alien noise and sound) :)
So I bought a better one which I'm also gonna use for dubbing and probably for sound effects as well, but I'm still waiting for it.

2010-03-26

Flags in UDK

I decided to make some flags for my soldier. After all, he DOES need to capture some points in the game!
So I made a model, and I put it into UDK (Unreal Development Kit). I also gave it a cloth simulation with some wind effect. Here is the result:



It's 3 skeletal meshes. They use one material and two other materials being material instance constraints. The materials use a diffusemap, a specularmap, an opacity mask, and a normalmap.

The three flags are one neutral flag, one british, and one german flag by the way..

2010-03-17

Church concept

Okay, it's far from being a concept, it's more like a study of a church.


If you're planning to make a scenery in a map editor, or as a whole model, it's always nice to start drawing such concepts no matter how good or bad you're drawing. Here I started with the pictures on the bottom, and went upper, drawing how I imagine more rooms. It's not only good to know how I imagine the whole building, but I also see what other environment models I will need.


In other news, sorry I didn't post the normalmap tutorial I promised, but I didn't have too much time to make one last weekend. Probably on the next weekend you get it. Or maybe not. We'll see...

2010-03-13

Some small update

Just a quick update. At the moment I'm sculpting our hero's coat, but I wanted to show you the current progress. Here's the model made so far:


Don't go away too far, there will be a video tutorial soon (probably this weekend, or early next week) of how I make a basic model with a basic normalmap!

2010-03-09

History of a man - from first idea 'till now

As I promised in my previous post, I'm going to write about the cartoonized soldier character.
So I once came up with the idea of a cartoonized shooter game, but I didn't quite know further details. The only thing I saw in front of my eyes were small soldiers, sorta like Cannon Fodder, but not as a strategy game, but rather as a third-person or an arena shooter game.


As time went on the project got itself a not-yet-final name, and theme. As a working title, the name Maggots sounded fair enough (I didn't want to copy anything from Team Fortress 2, so don't think this title is straight from the Soldier). As a theme to play in I started designing a WW2 atmosphere. At this time, the soldier as character was meant to be a non-player character, who supports the players, which are small tanks.


These tanks were a cartoonized versions of the Sherman tank. It has two versions, the first one is before I started working at a 3D outsourcing studio, and the second one was after this job came to an end.

Time passed by, but I soon started being not so much satisfied with the concept of a WW2 game, since in the industry there are so many WW2 based games (both serious and goofy) that I started thinking it would loose interest if I don't come up with a less shown theme. That's when I jumped back in time several years, and choose WW1. The concept was not unfamiliar with me, since several years earlier I was working for a Half-Life One Modification, called The Trenches. It was a WW1 first person shooter, but that project died because of the lack of spare time of the developers.

So, I started designing a new concept for a WW1 tense game.




You probably noticed these models only used diffuse and specular maps, and they lack of any normal or bumpmap. That's because at the time I haven't played with baking normalmaps and such, and I always remembered it as something to be a real pain in the ass. But like as I didn't suspected, I ruined something really bad. Notice the characters have too much space between their legs. Because of this I couldn't rig the models up perfectly, not mentioning my problem with biped animation not being exported properly in DirectX format I needed. So the project was resting for almost a year.

Some time ago I had a lot of spare time because of illness, and I started being interested in UDK (Unreal Development Kit). I noticed how great goals you can achieve with it, and being free never the less.
So I dust off "Maggots" and let's see what I can do - said me. But I wasn't satisfied with my old concept and old characters, because now I though their legs are also way too small. So I made a new - and by time final - concept.


The green overlines show how the same character layout can be used for both german and british (in this case scottish) characters. I also wanted to experiment with Zbrush, and use normalmaps like in old times. You already saw the work in progress in my previous post. By now I finished it, and also managed to make a german bolt-action rifle for him.



I'm quite satisfied to tell the truth, and I'm so much looking forward to actually making it coming alive.

As last words, I would mention that yes, this whole process took several years, and actually making some models for absolutely nothing, but I learned, that I shouldn't be bothered about that. I made lots of models, but I also learned lots of new techniques, and got new experiences for future models. So that's exactly what I'm advising you. If you have made something for no particular reason or wanted to use it for something which didn't turn out to be anything, then always look on the bright side, and look at the things you probably learned or experienced!

Also look forward for more stuff on this blog coming your way!

Cheers!

2010-03-06

WIP: cartoon soldier

I just finished the baking of a cartoon soldier's upper body, and I thought it would be nice to share it with you.
It's still a work in progress, I still need to paint it's diffuse and specular maps, and maybe other shader maps as well...



Some details: At the moment it only has some specular and glossiness levels set to it. The lowpoly model (in the picture) has 2758 tris, the hipoly that was baked on it had more than 1,5 million. (It contained also the legs, but I don't need it at the moment.) The hipoly model was sculpted using Zbrush, the lowpoly was modeled and baked with 3DS Max.

This post was just for eyecandy, as soon as I finish the upper body completely I'm going to show you the result!
I think I also make a post about this cartoon soldier in more details and a little history, because this isn't the first version of it, so stay tuned!

EDIT:

Well, it seems I finished it the same day, so I won't make a new post just for it, so here it is:

 

History post still stands, so keep your eyes peeled! ;)
Cheers!

2010-03-02

Nothin' like a good smoke...

Today I'm gonna show you something. That's right, it's tutorial time (insert crowd cheers here)!
I'm going to show you how to put a simple smoke (or any particle) in 3ds Max together. I'm using this technique for a specified 3d engine, but I'm sure you can find a way to use some parts of this tutorial, if not the whole thing.

1st step: we need an effect! As the title suggests, let's make a smoke. In a new 3ds Max project, make a new SphereGizmo (Create tab > Helpers > Atmospheric Apparatus > SphereGizmo)! Now open the Environment and Effects window (Rendering > Environment... or the 8 key by default) and roll down to the Atmosphere rollout. Click Add... and select Fire Effect! If selected, there should be a Fire Effect Parameters rollout, there click on Pick Gizmo and pick on the SphereGizmo we made earlier. This is how your scene should look like at the moment:


2nd step: let's make a smoke! It's nice and good that we have a fireball at the moment, but it's quite useless by this point. If you make a quick render (F9 by default) you see what I mean. Yes, you have a point. We shall make it grey and it's a smoke, so let's do so!
First, go to the top in the Environment and Effects window for a second. In the Common Parameters rollout you see a Background setup, and the color is black by default. Click there and set it to white (RGB 255,255,255)! I explain later.
Now go back down to the Fire Effect Parameters, and set the colors to be black (RGB 0,0,0)!

Make a quick render! It almost looks like as a smoke, but we won't use this as a texture just yet! The reason why I told you to set the background color to white, is because it's easier to see how strong our smoke will be in the final process. Also, it will serve as a negative alpha texture for our final texture, so we're heading somewhere. Don't forget: since we use black as inner color, the more black it is, the more you can't see through it! Now I'd advise you to play with the values and settings, until you're satisfied with the result.
With a SphereGizmo with a radius of 45 units, I used:
Strech: 1,0
Regularity: 0,15
Flame Size: 16,0
Flame Detail: 4,0
Density: 10,0
Samples: 6



3rd step: let's animate it! You might ask yourself: why? We have a nice smoke texture, don't we? Well, not exactly. If you look at a real smoke, you see it doesn't stay in the same form all the time as it flies higher in the air. It moves, it grows in size, thus becomes blurred etc. Why don't we animate that whole thing and use it that as a texture? Wouldn't it be AWESOME? Yes it would, so let's start.
Normally, we don't want our smoke to just "pop up" in the middle of nothing, and just vanish instantly, so as the frames go (like on a film of an animation) first we want it to appear as a normal smoke would, then slowly become less visible, and disappearing by the last frame. Also, we don't want any frames to be pure empty, because making our smoke disappear as the animation finishes would do just the same.
Okay, enough of this confusion, let's do it so you'll see what I mean.

Set the animation bar to the first frame, which is 0. Set the Density of the smoke to 1. Now click the Auto Key button (on the right side of the animation settings) and move your animation bar to frame 3. Now set the Density back to 10,0. This will make our smoke slowly appear in 3 frames. Now, we want it to disappear. Go to frame 15, and set the Density back to 1. As you move your animation bar from start to end, you see the Density is always changing - going up till frame 3, and back down till 15. While on frame 15, set the Drift to 15. This will make the smoke look like it's being blown by wind. You also can try to rotate your SphereGizmo a bit, so it's actually moving.

Note: if you wan't a smoother animation, you can use more frames for your animation, just keep the framecount to be power of 2. So the next step after 16 should be 32, then 64, etc.

4th step: render time! Let's set up our render. Get the Render Setup window (Rendering > Render Setup or F10 key by default). Here set the Output Size to have a same width and height, with the power of 2. For our example, it will be 256. Now set the Time Output to be Range 0 to 15. Now go down to the Render Output, and click Files... By default it will save your files in the renderoutput folder, but here you can set it to save it somewhere else if you want. Choose BMP as type, and type in "smoke" as filename. Click save, then it should ask you what type of BMP you want to save it in. Just leave it to RGB 24 bit. Now if you hit Render, you should see your animation being rendered into different files.

That's all we needed 3DS Max for now. Next up, open your image editing software, I'm going to use Photoshop.

5th step: putting our texture together. In your renderoutput folder you should see 16 bmp files, open these. Now a little math. Since we made a 16 frame animation we take it's square root, which equals 4. The size of our bmp-s are 256×256, so the size of our texture will be 4×256=1024. So, we want to make a new project with the size of 1024×1024. (If you're smart enough, you already figured out why I told you to use numbers with the power of 2.) Now you should copy your opened smokes, then paste it into your empty canvas, snapping them together in the order left to right, from top to bottom. Here's an example:



and this is how it should look like:



Now with that all set, go ahead and Merge your layers together. Just in case make a copy of it. Now make a mask of your copied layer by clicking on the third button on the botton of the layers panel. (It should be a gray rectangle with a white sphere in it.) Now in the same window go to the Channels tab. You notice that under the red, green, and blue channels, there should be Layer name Mask. Click on the empty box next to it, so you can see it, then copy your smoke texture in it. Now our layer has transparency using the alpha channel. But since in an alpha channel black means transparent and white not, we need to invert its colors. Invert colors by going into Image > Adjustments > Invert, or press Ctrl + I keys by default.

Finally our smoke needs color. Select your layer, and go into Image > Adjustments > Gradient Map...
Click on the gradient color to change it. Notice that the black color in the original layer will be changed for the color on the left side, and the white color will be changed for the color on the right side. So if we want a smoke with a darker center and a lighter edge, this is how it should look like:




Press Ok. Before you save your result, you should clean up your project, and the only layer existing should be the one we just made. The background should be checkered by this time. If you're not satisfied, you can add changes either to your layer, or the layer mask - for example: Brightness and Contrast, Levels, Hue and Saturation, etc.
Go to File > Save as...
You should choose a file format which uses alpha channels. This could be a .png format, or a 24 bit .tga. I'll save it as a .png.



Congratulations! You just made an animated smoke texture!

In the next bonus stage, I'm going to show you it's usage in 3DS Max. Note, this might not work in all engines if you export it, however if you're familiar with scripting then you should be able to use it in any editors.

In a new max file, make a square plane (Create > Geometry > Standard Primitives > Plane). Now add your smoke texture to it - or to actually understand what we are going to do, download the image with the numbers above and use that one. In fact, I'm going to do so. :)



In the modifiers list, select UVW Xform. Let's do some math again!
Since our texture has 4×4 frames, U tile and V tile should be 1 / 4 = 0,25. Now you see only one frame fills our whole plane, but it's the 13rd frame. We need to offset it. Set V offset to 0,75.

Here is when it gets tricky: next to the Set Key button there is a small icon with a graph on it. This tells the animation editor what kind of a keyframe it should place when a new is created. Hold click on it, and select the third one, which looks like a piece of a staircase. Now whenever a new keyframe is made, it doesn't "fade" into it's new position, but it rather "jumps" there.

Click Auto key. Move your animation bar to 1, and set the U Offset to 0,25. You see the plane now shows 2. Move on to keyframe 2, and set U Offset to 0,5. Noticing a pattern? At every frame the U Offset changes by 0,25 units. We still have one more in this row, so go on and add U Offset 0,75 at frame 3. Now, we need to jump to the next row, and go back to the beginning, since that's where the next frame will be.
Set U Offset back to 0 and V Offset to 0,5. Now, repeat the process, until you get to the last frame, which should be on frame 15, and the plane should show 16.

Great, our plane has an animation going on. You can put the smoke texture on our plane now, it should work.

If you want to see how it looks like, you can do this:
Select your plane, make an animation starting at frame 0 and ending at frame 15. For example make it move upwards. (Don't forget to change your keyframe back to linear or smooth!) Now, go to Graph Editors > Track View - Curve Editor. Select all the keyframes, and click the Parameter Curve Out-of-Range Types button. Select Cycle. (This might act weird, but that's because you might have not forced the V Offset to 0 in the UVW Xform at frame 15, so do it!) Now make a copy of your plane, and move it's keyframes forward by 1 frame.
Repeat this 13 more times (so you should have a total of 15 planes).

Using the Track View - Curve Editor, you can change the speed, the size, and the lenght of your smoke by scaling the keyframes in different ways. Last, but not least, rotate all your planes in different angles, so they don't look exactly the same. This is how mine turned out:


Well, that's all for today. I hope you liked this tutorial, and remember: these are just the basics! Keep experimenting with new things, like:
- with a Line and a Path constraint you can make a trail of smoke
- use more frames
- make other effects, like fire, or liquid splatter

Have fun! I'm gonna eat something now and get some sleep, because this took me a while to actually make a tutorial out of it, and made me pretty tired. Otherwise making such effects after some time won't take so long after some time. :)

Cheers!