Tank Game WIP

Well, finally finished the first tank in its ‘2.0’ version, the Vanguard. Here are a few screencaps:
http://i911.photobucket.com/albums/ac319/RobMonty1987/VangaurdRender.jpghttp://i911.photobucket.com/albums/ac319/RobMonty1987/VangaurdRender1.jpg

…and for a short little vid showing detail: http://www.youtube.com/watch?v=kq93U76a_G0

Credit goes to Saleh Faleh for his texture-job, along with some final tweaks he made. (Saleh’s other work can be found here: http://salehfalah.com/default.aspx) It came out VERY nicely. Brightness of the colors might need to be tweaked, but overall I’m ecstatic with the results.

Very nice Rob! Keep it up!

those textures are really nice and the last image looks somewhat dangerous with that canon pointing at me, lol
Just wondering, will there also be bump- or normalmaps? Because there are a lot of parts on the texture which basically have baked shadows on them to give them form but they still look flat…

Well done :slight_smile:

Thanks for the positive feedback guys. As for the textures (kram), I’m pretty sure its just gonna be normal maps, considering I’m not the one doing the texturing, and I don’t see anything fancy as far as mapping textures here. I don’t know enough about texturing to do the bumpmaps yet, then again, I haven’t really looked into it. I’ve been learning stuff from all different directions and haven’t really had the time ><

As far as my treads, I THOUGHT i had a nice setup going, but it turned out to be ‘not so great’. What I would really like is to set up my skeleton for the treads (maybe 1 bone for each tread, with about 50 treads) so that when I pull on one bone, they follow each other (exactly how when an arrayed cube follows a bezier circle). I know how to do this with meshes, but not with a skeleton. The “Auto IK” function is nice for having treads stay linked and automatically adjust to me moving 1 tread, but the rest of the treads dont move when I pull on one of them. Do you guys know of a way I could set it up so I have my treads’ individual bones actually follow each other (along with either tracking constraints or auto-IK). That would completely solve my issue here :smiley:

First of all the models look great :slight_smile: and good to hear your exporter problem has been resolved aswell.
I’m not really sure what you’re trying to do with the whole treads thingie. But from the sound of it you need to use the ik constraints on the bones or something similar, as the auto ik is just a trick (as far as I know) to get the ik thingie working, but it isn’t ideal. Maybe if you could draw something or show a blend that you want to work I could give it a shot :slight_smile:

This is a video of exactly how I want my skeleton for my treads to perform. (Just imagine the cubes are the bones). I can shape and arrange the skeleton in the shape of some treads myself, but I would like it so that when I pull on one of the bones, it pulls the rest along with it (just like the cubes in the video). Honestly, I don’t even mind if the bones don’t follow a path (like the curve shown in the video). Just as long as the skeleton functions as a sort of “rope”, instead of just a limb anchored in place at the last bone.

Attached is also the .blend file as shown in the video if you need to get a better feel for what I’m talking about. Thanks for the offer to construct it for me Month, but I really need to learn this myself in case I need to make changes on my own.

Attachments

treadtest1.blend (179 KB)

I fear that will be a hard task… bones are not made for cyclic paths. I’m really not sure how to solve that.
The easiest thing would be to get the exporter to export curve-based animation… :-/

Hmm I think I understand what you want to do. But may I ask why you want to do it? wouldn’t it be much easier for the animation proces to have just 1 bone that allows you to control over the speed of one thread (rotation speed) and maybe another 1 that can control both threads at once? Animationway that would make more sense to me. I’ll try to wip up something later (got work this evening so might be later in the evening depending how well it goes) to show what I mean. I’ll also take a look and see if I can create something what you want, but I’m not making any promises :wink:

@ kram, you could also create 2 rigs i guess, one which would be the control rig with some kind of curve based control, and another 1 with just the basic movement bones that control the moving parts in the track, and then just copy 1 to the other. Shouldn’t be too hard (famous last words :p).

Rob, I have finally figured this out! I am sorry I didn’t dive into this further when you first posted in the support section. After seeing you struggling with the same problem here, I felt bad for not helping more. :o The advice I provided before held all the methods needed to do this, it just takes some combining of techniques.

The basic problem is this. Each tread must move independently, and follow the curve of the tread path. Ogre can only handle bone animation from Blender. So each tread must have it’s own bone. Each bone must be keyed to move along the path at precise intervals following the rotation of the path. I have tried to find an easy way to do this but I have failed in that endeavor, like most things, you have to do it the hard way.

  1. Setup your curve in blender. Set the path length of the curve to be 30 (depends on how fast one rotation should be I used 30 because it had less steps than 100 and was therefore easier to do)

2.Parent an Empty to the curve and adjust it’s time offset to 1. Duplicate the empty. Adjust time offset on the duplicate to 2. Duplicate that empty, adjust to 3.
Keep doing this until have 30 empties parented to your curve, time offset by 1 each. The last one will be offset by 30.

  1. Go to frame 30. All the empties should be spread along the curve evenly. Apply the parent transformation to each empty individually, Alt-P Clear parent and keep transformation (clear track). We now have an empty rotated properly and at the correct location for each step in our bone animation.

  2. Create the armature. Now select the first empty (you can start with any one you want) and do Shift-s cursor to selection. Now in pose mode on the armature, select the bone and shift-s selection to cursor. Now the bone is located right but we need rotation too. Press N to bring up the floating Transform Properties panel and then select the empty. Hover over the transform panel RotY value and press CTRL-C to copy it. Now select the bone and paste the value into the bones RotZ value. Usually you have to flip it by either typing a minus sign or removing the minus. Now the bone should be located and rotated perfectly aligned with the empty.

  3. Go to frame 1 select the bone and press I LocRot. Now go to frame 2. Select the next empty and repeat the process of moving the bone to align with it. Don’t forget to put a keyframe (I LocRot). Keep doing this until you have all 30 frames keyed. Your bone should spin perfectly when you hit Alt-A. You can go into the action editor and select the bone channel, and in the menu bar under Key, select Extend Mode Cyclic.
    Now it should keep spinning.

  4. In edit mode on the armature duplicate the bone. and then in pose mode start keying the second one selecting the empty next to the bone that is already keyed. I wish at this point I could figure how to do them all automatically, but it looks like you just have to go through the motions.

That’s it! Hope this helps. Here is a working blend example, I only keyed the second bone 3 frames, because it is a long and boring job. (and it’s not my job!) :wink:

Good luck! Let me know if this finally does the trick, I have racked my brain and spent a couple hours on this, so I really want to know.

Attachments

Track-Bones.blend (231 KB)

Thanks so much, 3dmentia! I will for sure try this tonight. Seems a bit out of my league but I am determined!

In the meantime, I think I’ve found another working way to do it (figures we find 2 ways in the same day after 3 weeks of my searching for a way). I’ve recently found out it is specifically the curve modifier that doesn’t get recognized on export. I tried to find another way to use the curve, and I did successfully manage to get the animation into the game! The way I do it in the video is a little sloppy, but I just wanted to show quickly how it was done.

Here is a video of my method: http://www.youtube.com/watch?v=WWnoBjCzqq0

Basically, the bone is clamped to the curve and framed for a full rotation. Then I go to pose mode for the bone and rotate for the ‘turns’ in the curve (since this is treads, its nice, because theres really only 2 u-turns in the path.)

I am still cleaning up the process, and trying to find a good way of having the bones rotate themselves instead of me doing it every time. I’ll keep you guys posted if I find anything useful. And I will be sure to try that method later tonight, 3d. File is attached if interested.

EDIT:
I’ve actually found a 3rd way to do it. Although it is the most unorthodox and most time consuming, it is strangely also the easiest in comparison to these other 2 methods. I’ll have a video up soon, thanks again.

Attachments

untitled1.blend (141 KB)

Ok, so I gave up on doing treads the normal way, and I decided to ‘caveman’ it. Basically, I keyframed the bones, moved each bone into its ‘leaders’ place, keyframed again, etc. It was probably the most unorthodox way of doing it but it worked, and I was tired of hurting my brain, so I just pounded it out. The treads moving is actually an illusion. It’s just 3 frames repeated. Looks clean though, since I have 50 or so feet per tread, no1 can tell the difference. Moving on ><

Here is a video with the current animations I have: http://www.youtube.com/watch?v=sqEcATZBXYo

Rob: That’s a standard phenomenon. IF new inventions are made, they very often come in doubles or more.
That’s true for the PSE, the Light Bulb, the Theory of Evolution and probably a lot of other ideas :slight_smile:

Great that you finally found your way through :slight_smile:
I like your first method a lot :wink: Very easy and straight forward.
Maybe there is some way to follow the normals or something.

But now that you found your way through, I guess that’s not important anymore :slight_smile: (Except you’ll have to do this for totally different curve paths aswell)

Wait a sec, i thought you already came up with an armature way:confused:

Cool stuff though, oh and for the texture…it needs to transition better between paint and metal, it is really abrupt now, it looks like paper was cut out and glued onto the metal. But I definitely like the design!

Yeah, the method I found for the treads wasn’t too bad. It was frustrating me and I was fed up with all the different attempts at treads (I’ve been at this for 3 weeks) so I gave up, but I will go back and do them properly eventually. Call this setup I have right now ‘temporary’ I guess.

As for the textures, I didn’t do them, but I am going over them and touching them up. They are not so nice in some spots. It’s good to know I’m not wasting my time on the small stuff by fixing it if its noticable then. I really wan’t to move onto some other models soon, so expect a change in direction. Probably some sci-fi machines and stuff from the old game that you guys have no clue what they are :stuck_out_tongue: Thanks again.

Well, we finally have our game to the point where I would officially say its in the alpha-stage. It’s not playable yet, and we are having a few issues with movement and textures, so alot of it is pretty much slapped together for a quick idea of how things are working.

Here’s a quick video

(Apologies for the sluggishness of the video. I couldn’t really show you any driving due to incredibly slow movement atm. My 5 year old e-machine isn’t too hot when running fraps and the alpha version of this game so far :P) Anyway, alot of the footage you will see missing or generic textures and models. Our programmer likes to update in chunks, so most of this stuff is older or temporary. I posted this more so you guys can see some of the work from a programming stance. The entire game is being programmed in C++ and rendered with Ogre, while 90% of the models are being done in Blender.

Also, how rude of me to not include some footage of the original game

That is actually a fan-made trailer, done quite well actually. It showcases the general feel of the game as well as the tanks. Think of it as the tip of a very large iceberg. You will notice 2 things throughout: Everyone works as a team, and it’s very sci-fi ish for a tank game. These are the two ‘feels’ we wish to mainly recreate.

Hmmm, my animations for my first tank are almost all done except for the death sequence, which should consist of the parts of the tank basically flying outward in different directions with the explosive firey effect. I’m not worried about the effect, but does anyone have an idea how I can do this simply with a skeleton? I have ALOT of unlinked bones I can send flying in different directions, but I don’t know if thats possible with armatures. I know of the explode modifier, but all of my animations have to be 100% done by armatures.

Here is a video with a quickly-made explosion at the end. I would like something to this effect if possible :smiley:

Any ideas?

really nice update :slight_smile:
Well… I’m not sure for the explosion effect… it pretty much works for me :slight_smile:
I noticed, the tower stays in place when exploding… will you add a comical explosion effect where it just stays in place until everything else is gone and then just falls on the floor? I guess not, huh? Most likely you go for a kinda realistic explosion :slight_smile:

It’s probably not helpful but with python you could probably build a script that makes your parts jump up randomly and then bounce to the floor kind of based on physics… I saw a script quite some time ago that did something not far away from that…
It was a script that lets you model for instance a wall of bricks and then make it auto build itself… The bricks basically fell down from very high and then just landed right in place “by chance”.
Such a kind of script, just slightly modified, would be perfect for this I guess…

Or maybe you could try running blender physics on it? Did you yet try the blender Game Engine? Inside that, you could do an actual physics simulation so that each bone rather than each part starts off with random pretty high motion values and the rest is done by the physics. You can record this motion and export that as an animation of the bones…
The animation will have an ipo curve entry in every single frame… I know that for Blender 2.50 there is a curve simplify script… Not sure if that’s the case for 2.49 though…

Thanks kram. I talked it over with my dev team and to be honest they have immersed themselves in their programming (you know how it gets) and are too busy to modify any scripts. I myself am a little too impatient, so I went ahead and did a ghetto geometry explosion by hand.

Here’s a vid

I made certain pieces disappear at certain points (by scaling their armatures to 0) to keep the clutter down. This is also because if the tank dies while spinning/moving etc, the individual pieces would move with the body, and keeping them around too long past the initial explosion would just look bad imo. The tank is 3 meshes: Body, Turret, and Barrel, so my programmer can still send those meshes bouncing around and interacting with the map realistically, while still keeping my animations to them. I guess if they don’t like it, they can always go back and modify that script, eh? :wink:

Wow, magic explosion where the parts go through each other :smiley:
Nice nevertheless :slight_smile:
I really think, the physics simulation inside Blender could work… (you don’t need a script for that^^)

And yup, they could always modify that script. If I find it lol…

Rofl you are right. Perhaps I’ve played this 1997 game too long and I am used to cheesy fx :stuck_out_tongue: The parts going through each other does kind of bug me now (thanks alot kram :P) but I have a good feeling between the tank mesh exploding upward and the firey splodey effect we will add later, no1 is gonna be able to tell :smiley:

Meh, I’ve spent too much time on this tank as it is. Either way, the players of Tanarus will look at anything as an improvement from some 1997 graphics (hopefully).